SDD Devkit
version license
SDD Devkit es un plugin de Spec-Driven Development: convierte un requerimiento en documentación (historias de usuario, decisiones de arquitectura, diseño técnico, casos de prueba) y te acompaña hasta un entregable verificado. Incluye skills para:
- Documentar arquitectura (ADRs, estándares) y auditar su cumplimiento.
- Crear historias de usuario, planificar e implementar tareas.
- Definir y trazar casos de prueba.
- Investigar producto, arquitectura o aspectos técnicos.
- Revisar código, integrar cambios y crear Pull Requests con puertas de calidad.
Instalación
Instala el plugin completo, no skills sueltos. Es compatible con cualquier agente que soporte el estándar abierto Agent Plugins, entre ellos:
Cursor:
/add-plugin https://github.com/juanca202/sdd-devkit
VS Code:
Paleta de comandos (Ctrl/Cmd+Shift+P) → Chat: Install Plugin From Source → pega https://github.com/juanca202/sdd-devkit
Kiro:
Panel de Powers → Add Custom Power → Import power from GitHub → pega https://github.com/juanca202/sdd-devkit
Claude Code (tiene su propio sistema de plugins, no usa el estándar Agent Plugins):
/plugin marketplace add juanca202/sdd-devkit
/plugin install sdd-devkit@juanca202
Configuración del proyecto
La primera vez que uses el plugin en un proyecto, /arch-init crea .sdd-devkit/settings.json. Ahí eliges el idioma de los documentos, dónde viven tus especificaciones, cuánto te pregunta el agente antes de commitear, implementar o corregir algo, y cuántos intentos hace sobre un problema que no logra resolver antes de devolvértelo. Puedes dejarlo todo en sus valores por defecto y ajustarlo cuando quieras.
Detalle de cada opción en SETTINGS.md.
Skills incluidos
Detalle de uso, opciones y ejemplos de cada skill: SKILLS.md.
Harness
Skills que preparan y mantienen la base del proyecto — arquitectura y control de versiones — independientes del requerimiento en el que estés trabajando.
| Skill | Uso |
|---|---|
| arch‑init | Prepara el proyecto para trabajar con el plugin: repositorio git, archivos base, stack tecnológico y una compuerta de calidad mínima. Funciona con uno o varios repositorios. |
| plugin‑migrate | Normaliza el contenido producido con versiones anteriores del plugin a la estructura vigente: rutas, plantillas y formatos, con confirmación y mapeo de cambios. |
| arch‑manage | Crea o actualiza decisiones de arquitectura (ADRs) y estándares del proyecto (docs/adr/, docs/standards/). |
| arch‑discover | Analiza un repositorio existente y propone qué decisiones y estándares documentar a partir de lo que ya está implementado. |
| arch‑audit | Audita si el código cumple los estándares definidos y genera un informe con hallazgos priorizados (docs/audits/). |
| git‑commit | Prepara commits con mensajes claros, inferidos de los cambios pendientes. |
Flujo del harness
arch-init es el punto de entrada: detecta en qué estado está el proyecto, prepara la base y te lleva a la compuerta de calidad. Desde ahí se pasa al flujo de implementación de requerimientos.
flowchart TD
INIT["Inicialización<br/>**/arch-init**"]
subgraph BF["Proyecto con código existente"]
BA["Descubrimiento de arquitectura<br/>**/arch-discover**"]
BA -.-> WR["Descubrimiento de funcionalidades<br/>**/work-research**"]
WR -.-> TD["Casos de prueba<br/>**/test-define**"]
end
INIT --> BA
INIT --> T["Compuerta de calidad<br/>(vía **/arch-init**)"]
BA --> T
WR -.-> T
TD -.-> T
T --> S["Arquitectura: ADRs y estándares<br/>**/arch-manage**"]
S -.-> AUD["Auditoría<br/>**/arch-audit**"]
subgraph NESTED["Implementación de requerimientos"]
IMPL["ver diagrama siguiente"]
end
S --> IMPL
IMPL --> DONE(["Entregable"])
classDef nestedFlow fill:#fff7ed,stroke:#ea580c,stroke-width:2px,stroke-dasharray:5 5,color:#9a3412
classDef entryPoint fill:#dcfce7,stroke:#15803d,stroke-width:3px,color:#14532d
classDef exitPoint fill:#fee2e2,stroke:#b91c1c,stroke-width:3px,color:#7f1d1d
class IMPL nestedFlow
class INIT entryPoint
class DONE exitPoint
- Todo empieza con
arch-init: prepara la base y el stack (si hay varios repositorios, uno de ellos agrupa a los demás). - Si el proyecto ya tiene código,
arch-initte lleva a descubrir su arquitectura (arch-discover) y, si quieres, sus funcionalidades (work-research) y casos de prueba (test-define). - Se configura la compuerta de calidad.
- Se documentan o actualizan los ADRs/estándares (
arch-manage); opcionalmente se audita el cumplimiento (arch-audit). - Con la base lista, entras al flujo de implementación de requerimientos (siguiente sección).
Specs
Skills del ciclo de vida de un requerimiento: de la idea al Pull Request mergeado.
| Skill | Uso |
|---|---|
| work‑research | Investiga y resume hallazgos en un informe: viabilidad de una idea, decisiones pendientes, diagnóstico de un bug, análisis de código legado o de una migración. |
| requirement‑refine | Convierte un requerimiento en bruto en una especificación clara (SRS): alcance, stack, repositorios. Paso opcional antes de work-define. |
| work‑define | Crea o actualiza historias de usuario. |
| design‑define | Documenta el diseño técnico de una historia: modelos de datos, endpoints, diagramas. |
| test‑define | Crea casos de prueba a partir de los criterios de aceptación de una historia o funcionalidad. |
| work‑plan | Planifica las tareas técnicas de una historia, o una tarea de mantenimiento independiente. |
| work‑implement | Implementa una tarea planificada, o automatiza los casos de prueba ya definidos. |
| quality‑check | Corre las verificaciones automáticas del proyecto (tipado, linter, pruebas, build, etc.) antes de integrar. |
| code‑review | Revisión de código antes de integrar: intención, diseño y feedback accionable. |
| coverage‑verify | Verifica que el código cubra los criterios de aceptación del artefacto implementado —con pruebas o casos de prueba— y emite un reporte con veredicto. |
| work‑integrate | Cierra e integra el trabajo directamente a la rama de desarrollo. |
| pr‑create | Crea el Pull Request (o Merge Request) con las puertas de calidad ya verificadas. |
Flujo de implementación
Seguir este flujo te da trazabilidad de punta a punta (cada línea de código rastreable hasta su historia y su criterio de aceptación), calidad consistente en cada entrega, y la posibilidad de pausar y retomar el trabajo sin perder contexto. Los pasos con línea punteada son opcionales.
flowchart TD
A[Requerimiento] --> B["Historias de usuario<br/>**/work-define**"]
A -.-> Z["Refinar el requerimiento<br/>**/requirement-refine**"]
Z -.-> B
B -.-> C["Casos de prueba<br/>**/test-define**"]
B -.-> D["Diseño técnico<br/>**/design-define**"]
B --> E["Planificación de tareas<br/>**/work-plan**"]
A -.->|tareas de mantenimiento| E
E -.-> F["Investigación<br/>**/work-research**"]
E -.-> D
E --> G["Implementación<br/>**/work-implement**"]
C -.->|automatizar pruebas| G
G --> H["Integración directa<br/>**/work-integrate**"]
G --> I["Creación de PR<br/>**/pr-create**"]
H --> J(["Entregable"])
I --> J
classDef main fill:#dbeafe,stroke:#2563eb,color:#1e3a8a
classDef entryPoint fill:#dcfce7,stroke:#15803d,stroke-width:3px,color:#14532d
classDef exitPoint fill:#fee2e2,stroke:#b91c1c,stroke-width:3px,color:#7f1d1d
class B,E,G,I main
class A entryPoint
class J exitPoint
- Un requerimiento se convierte en historias de usuario (
work-define). Si llega ambiguo, puedes refinarlo primero conrequirement-refine. Si es una tarea de mantenimiento sin historia, pasa directo a planificación. - Opcionalmente, desde la historia se definen casos de prueba (
test-define) y/o diseño técnico (design-define). - Se planifican las tareas técnicas de la historia, o la tarea de mantenimiento (
work-plan). - Las tareas se implementan (
work-implement); los casos de prueba también pueden automatizarse ahí. - El trabajo se cierra integrándolo directo a tu rama de desarrollo (
work-integrate) o mediante un Pull Request (pr-create) — ambos verifican calidad, revisan el código y validan la cobertura de pruebas antes de dar por cerrado el trabajo.
Integración con otros frameworks de implementación
¿Ya usas Speckit, OpenSpec, AgentOS u otro framework de specs para implementar? SDD Devkit puede cubrir solo hasta las historias de usuario (y, si quieres, investigación, casos de prueba y diseño técnico) y dejarte el resto a tu framework — el cierre sigue siendo el mismo.
flowchart TD
A[Requerimiento] --> B["Historias de usuario<br/>**/work-define**"]
A -.-> Z["Refinar el requerimiento<br/>**/requirement-refine**"]
Z -.-> B
B -.-> R["Investigación<br/>**/work-research**"]
B -.-> C["Casos de prueba<br/>**/test-define**"]
B -.-> D["Diseño técnico<br/>**/design-define**"]
subgraph NESTED["Tu framework · Speckit / OpenSpec / AgentOS…"]
S["Specs e implementación"]
end
B --> S
S --> H["Integración directa<br/>**/work-integrate**"]
S --> I["Creación de PR<br/>**/pr-create**"]
H --> J(["Entregable"])
I --> J
classDef main fill:#dbeafe,stroke:#2563eb,color:#1e3a8a
classDef nestedFlow fill:#fff7ed,stroke:#ea580c,stroke-width:2px,stroke-dasharray:5 5,color:#9a3412
classDef entryPoint fill:#dcfce7,stroke:#15803d,stroke-width:3px,color:#14532d
classDef exitPoint fill:#fee2e2,stroke:#b91c1c,stroke-width:3px,color:#7f1d1d
class B,H,I main
class S nestedFlow
class A entryPoint
class J exitPoint
Las historias alimentan tu framework de terceros; al cerrar, work-integrate/pr-create corren igual las puertas de calidad sobre el entregable. Lo que genere tu framework (sus propias specs, planes o tareas) no lo toca SDD Devkit — solo archiva sus propios artefactos (historias, tareas de mantenimiento e investigaciones).
Nivel de responsabilidades
Tú defines la intención, las restricciones y las decisiones importantes; el agente resuelve los detalles dentro de esos límites.
| Nivel | Lo defines tú | Te asiste |
|---|---|---|
| Problema de negocio | Product Owner | /work-define |
| Comportamiento esperado | Desarrollador | /work-plan |
| Casos de prueba | QA | /test-define |
| UX/UI (cómo debe verse) | Diseñador | — |
| Modelo de dominio / datos | Arquitecto | /design-define |
| Arquitectura | Arquitecto | /arch-manage |
| Validación de criterios de aceptación | QA | /coverage-verify |
| Implementación detallada | — | /work-implement |
Casos de uso
Recorridos completos que combinan varios skills para una situación concreta.
| Caso de uso | Descripción |
|---|---|
| Corregir un bug | Diagnóstico → planificación e implementación de la corrección → puertas de calidad → integración/PR |
| Refactorizar código | Investigación de factibilidad e impacto → planificación e implementación → puertas de calidad → integración/PR |
| Tarea de mantenimiento | Planificación directa (sin historia de usuario) → implementación → puertas de calidad → integración/PR |
| Cobertura de pruebas en código existente | Descubrir funcionalidades existentes → definir casos de prueba → automatizarlas → puertas de calidad → PR |
Contribuir
Las contribuciones son bienvenidas. Antes de abrir un issue o un Pull Request, lee la guía de contribución.
Licencia
Este proyecto es de código abierto y se distribuye bajo la licencia MIT.