refacil-sdd-ai 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "refacil-sdd-ai",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "SDD-AI: Specification-Driven Development with AI — metodologia de desarrollo con IA usando OpenSpec, Claude Code y Cursor",
5
5
  "bin": {
6
6
  "refacil-sdd-ai": "./bin/cli.js"
@@ -16,28 +16,32 @@ Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-pr
16
16
 
17
17
  ### Paso 0: Verificar que existan artefactos SDD
18
18
 
19
- Busca carpetas en `openspec/changes/` que contengan los artefactos requeridos: `proposal.md`, `specs.md`, `design.md`, `tasks.md`.
19
+ Por cada carpeta bajo `openspec/changes/` (excluye `archive/` si aplica), comprueba:
20
20
 
21
- - **Si `openspec/changes/` no existe o esta vacia**: Informa al usuario:
22
- ```
23
- No hay cambios propuestos. Antes de implementar necesitas definir los artefactos SDD.
24
- Ejecuta: /refacil:propose "descripcion del cambio"
25
- ```
26
- **Detente.**
21
+ | Artefacto | Requisito |
22
+ |-----------|-----------|
23
+ | `proposal.md` | Obligatorio en la raiz del cambio |
24
+ | `design.md` | Obligatorio en la raiz del cambio |
25
+ | `tasks.md` | Obligatorio en la raiz del cambio |
26
+ | **Especificacion** | **`specs.md` en la raiz** **O** al menos un `.md` bajo `specs/` del cambio (recursivo, ej. `specs/foo/spec.md`) |
27
+
28
+ OpenSpec a veces solo genera el arbol `specs/**/*.md`; eso **cumple** la fila de especificacion. Ver `OPENSPEC-DELTAS.md` (seccion **Specs: archivo unico vs arbol**).
29
+
30
+ - **Si `openspec/changes/` no existe o no hay cambios activos**: informa que ejecute `/refacil:propose` y **detente**.
27
31
 
28
- - **Si hay carpetas pero les faltan artefactos** (falta proposal.md, specs.md, design.md o tasks.md): Informa al usuario:
32
+ - **Si falta proposal, design o tasks**, o **no hay ni `specs.md` ni ningun `.md` bajo `specs/`**:
29
33
  ```
30
34
  El cambio en openspec/changes/[nombre]/ esta incompleto.
31
- Faltan: [lista de artefactos faltantes]
35
+ Faltan: [lista]
32
36
  Ejecuta: /refacil:propose para completar los artefactos antes de implementar.
33
37
  ```
34
38
  **Detente.**
35
39
 
36
- - **Si hay multiples cambios activos**: Lista las carpetas y pregunta cual implementar.
40
+ - **Multiples cambios activos**: lista carpetas y pregunta cual implementar.
37
41
 
38
- - **Si los 4 artefactos existen**: Continua al siguiente paso.
42
+ - **Antes de implementar**: lee **toda** la especificacion relevante — si hay `specs.md` y ademas `specs/**/*.md`, lee **ambos**; si hay contradiccion, pregunta al usuario.
39
43
 
40
- **IMPORTANTE**: Este comando NUNCA genera artefactos SDD. Si no existen, el usuario debe usar `/refacil:propose`. La separacion entre planificacion e implementacion es fundamental en la metodologia SDD-AI.
44
+ **IMPORTANTE**: Este comando NUNCA genera artefactos SDD. Si no existen, el usuario debe usar `/refacil:propose`.
41
45
 
42
46
  ### Paso 1: Validar rama de trabajo
43
47
 
@@ -104,7 +108,7 @@ Al terminar la implementacion de OpenSpec, agrega este resumen:
104
108
 
105
109
  ## Reglas
106
110
 
107
- - NUNCA implementar codigo sin los 4 artefactos SDD completos (proposal.md, specs.md, design.md, tasks.md)
111
+ - NUNCA implementar codigo sin proposal, design, tasks y **especificacion** (`specs.md` y/o `specs/**/*.md` segun la tabla del Paso 0)
108
112
  - NUNCA generar artefactos SDD desde este comando — eso es responsabilidad exclusiva de `/refacil:propose`
109
113
  - SIEMPRE leer los artefactos completos antes de escribir codigo
110
114
  - Si `openspec/changes/` no tiene cambios activos o estan incompletos, informar y redirigir a `/refacil:propose`
@@ -38,7 +38,7 @@ Despues de que OpenSpec archive, verifica que `openspec/specs/` fue actualizada:
38
38
 
39
39
  1. Revisa si hay archivos nuevos o modificados en `openspec/specs/`
40
40
  2. Si la sincronizacion no ocurrio (OpenSpec la salto o fallo), ejecuta manualmente la sincronizacion:
41
- - Lee el `specs.md` del cambio archivado
41
+ - Lee la especificacion del cambio archivado: `specs.md` si existe **y** todos los `.md` bajo `specs/` de esa carpeta (misma regla que `refacil:apply`)
42
42
  - Busca el spec principal relevante en `openspec/specs/`
43
43
  - Si existe, integra los cambios (ADDED → agregar, MODIFIED → actualizar, REMOVED → eliminar)
44
44
  - Si NO existe, crea un spec principal nuevo con nombre descriptivo
@@ -156,7 +156,7 @@ describe('Bug Fix: [descripcion corta]', () => {
156
156
 
157
157
  Si el bug es significativo, preguntar al usuario si quiere documentarlo en OpenSpec:
158
158
  - Crear carpeta en `openspec/changes/fix-[nombre]/`
159
- - Generar proposal.md y specs.md con los detalles del bug y fix
159
+ - Generar `proposal.md`, `design.md`, `tasks.md` y especificacion (`specs.md` y/o `specs/**/*.md`, misma regla que `refacil:propose`)
160
160
 
161
161
  ## Reglas
162
162
 
@@ -15,12 +15,26 @@ Lee este archivo **ademas** de la skill `openspec-*` que indique el comando `ref
15
15
  - Tasks con estimacion de esfuerzo **S / M / L**.
16
16
  - Design alineado a **patrones existentes** del repo (desde `AGENTS.md` o exploracion acotada).
17
17
 
18
+ ### Specs: archivo unico vs arbol `specs/` (compatibilidad Refacil)
19
+
20
+ OpenSpec puede indicar `specs/**/*.md` y crear **un archivo por capability** (ej. `specs/product-amount-percentile/spec.md`). Los comandos **refacil:*** deben soportar **ambas** formas:
21
+
22
+ | Forma | Validacion |
23
+ |-------|------------|
24
+ | **A** | `specs.md` en la raiz del cambio (`openspec/changes/<id>/specs.md`) |
25
+ | **B** | Sin `specs.md`, pero existe al menos un `.md` bajo `openspec/changes/<id>/specs/` (recursivo) |
26
+
27
+ - **Si OpenSpec solo genera B:** no es error. **No hace falta** duplicar obligatoriamente en `specs.md` salvo que el equipo quiera un indice unico para humanos.
28
+ - **Si coexisten A y B:** lee **ambos**; si hay contradiccion clara entre `specs.md` y los fragmentos, **pregunta al usuario** cual manda antes de `apply`.
29
+ - Al cerrar **propose**, en el resumen de revision lista **todas** las rutas de spec (archivo raiz y/o cada `specs/**.md`).
30
+
18
31
  ## apply — `openspec-apply-change`
19
32
 
20
33
  - Respetar **estrictamente** `AGENTS.md`.
21
34
  - No agregar funcionalidad fuera del alcance de las specs aprobadas.
22
35
  - No refactorizar codigo no relacionado con el cambio.
23
36
  - Si una task es ambigua, **preguntar** antes de implementar.
37
+ - **Especificacion**: aplica la tabla del Paso 0 de `refacil:apply` (`specs.md` y/o `specs/**/*.md`); no asumas que solo existe `specs.md` en la raiz.
24
38
 
25
39
  ## archive — `openspec-archive-change`
26
40
 
@@ -36,7 +36,7 @@ Si $ARGUMENTS ya es claro, no preguntes de nuevo.
36
36
  Despues de que OpenSpec genere los artefactos, presenta al usuario un resumen claro para su revision:
37
37
 
38
38
  1. **Proposal**: Objetivo, alcance y justificacion del cambio
39
- 2. **Specs**: Criterios de aceptacion y rechazo — verificar que cubran todos los escenarios
39
+ 2. **Specs**: Criterios de aceptacion y rechazo — listar **rutas reales**: `specs.md` y/o cada `specs/**/spec.md` (OpenSpec puede usar solo el arbol `specs/`)
40
40
  3. **Design**: Archivos a crear/modificar y patrones a usar — verificar que se alineen con la arquitectura
41
41
  4. **Tasks**: Lista de tareas con estimacion — verificar que el desglose sea correcto y completo
42
42
 
@@ -46,7 +46,7 @@ Pregunta explicitamente:
46
46
  === Revision requerida ===
47
47
  Los artefactos estan listos para tu revision:
48
48
  - openspec/changes/[nombre]/proposal.md
49
- - openspec/changes/[nombre]/specs.md
49
+ - Especificacion: openspec/changes/[nombre]/specs.md y/o openspec/changes/[nombre]/specs/**/*.md (listar archivos)
50
50
  - openspec/changes/[nombre]/design.md
51
51
  - openspec/changes/[nombre]/tasks.md
52
52
 
@@ -69,7 +69,7 @@ Siguiente paso: ejecuta /refacil:apply para implementar las tasks.
69
69
 
70
70
  ## Reglas
71
71
 
72
- - **NUNCA escribir, modificar o generar codigo fuente** en esta fase — solo artefactos SDD (proposal.md, specs.md, design.md, tasks.md)
72
+ - **NUNCA escribir, modificar o generar codigo fuente** en esta fase — solo artefactos SDD: `proposal.md`, `design.md`, `tasks.md`, y especificacion en `specs.md` y/o `specs/**/*.md` (convencion OpenSpec)
73
73
  - Aunque el usuario pase una descripcion completa y detallada en $ARGUMENTS, la salida es EXCLUSIVAMENTE artefactos de planificacion
74
74
  - Si el usuario pide que tambien implemente, responder: "La implementacion se hace con `/refacil:apply` despues de aprobar los artefactos."
75
75
  - Siempre explorar el codebase ANTES de generar artefactos (para que el design sea realista)
@@ -46,7 +46,7 @@ Si el usuario ejecuta `/refacil:test` sin argumentos:
46
46
  1. **Buscar cambio activo**: Lista carpetas en `openspec/changes/` y pregunta cual testear si hay mas de uno.
47
47
 
48
48
  2. **Leer artefactos**:
49
- - `specs.md` Extraer criterios de aceptacion (CA-XX) y criterios de rechazo (CR-XX)
49
+ - **Especificacion**: lee `specs.md` si existe **y** todos los `.md` bajo `specs/` del cambio (recursivo). De ahi extrae criterios de aceptacion (CA-XX) y rechazo (CR-XX).
50
50
  - `design.md` — Identificar componentes y archivos creados/modificados
51
51
  - `tasks.md` — Identificar archivos implementados
52
52