refacil-sdd-ai 4.0.0 → 4.0.1

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/README.md CHANGED
@@ -356,7 +356,7 @@ Bus local (WebSocket sobre `127.0.0.1`) para que los agentes de distintos repos
356
356
 
357
357
  **Observador puro** (0 tokens): `refacil-sdd-ai bus watch <session>` o `refacil-sdd-ai bus view` para la UI web.
358
358
 
359
- > **Diagramas, escenarios y pitch**: ver [`refacil-bus-diagrams.md`](./refacil-bus-diagrams.md) — incluye arquitectura, flujo con attend, flujo sin attend, tabla comparativa de impacto y guia de decision visual (Mermaid).
359
+ > **Diagramas, escenarios y pitch**: ver `refacil-bus-diagrams.md` (incluido en el paquete) — incluye arquitectura, flujo con attend, flujo sin attend, tabla comparativa de impacto y guia de decision visual (Mermaid).
360
360
  >
361
361
 
362
362
  ### Limitaciones conocidas
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "refacil-sdd-ai",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
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"
@@ -8,7 +8,7 @@ Lee este archivo **ademas** de la skill `openspec-*` que indique el comando `ref
8
8
 
9
9
  - Respuestas al usuario y artefactos bajo `openspec/`: **español**; terminos tecnicos (API, REST, nombres de tipos, etc.) en **ingles**.
10
10
 
11
- ## propose — `openspec-ff-change`
11
+ ## propose — `openspec-propose`
12
12
 
13
13
  - Criterios de aceptacion: formato **Dado / Cuando / Entonces**.
14
14
  - Incluir **criterios de rechazo** (edge cases) en specs.
@@ -6,7 +6,7 @@ user-invocable: true
6
6
 
7
7
  # refacil:propose — Propuesta de Cambio
8
8
 
9
- Este comando envuelve la funcionalidad de OpenSpec fast-forward (ff) y agrega las convenciones del equipo.
9
+ Este comando envuelve la funcionalidad de OpenSpec propose y agrega las convenciones del equipo.
10
10
 
11
11
  **Prerequisitos**: perfil `openspec` de `refacil-prereqs/SKILL.md` + reglas de `METHODOLOGY-CONTRACT.md`.
12
12
 
@@ -23,7 +23,7 @@ Si $ARGUMENTS ya es claro, no preguntes de nuevo.
23
23
 
24
24
  ### Paso 2: Delegar a OpenSpec ff (fast-forward)
25
25
 
26
- 1. Lee `openspec-ff-change/SKILL.md` en `.claude/skills/` o `.cursor/skills/`.
26
+ 1. Lee `openspec-propose/SKILL.md` en `.claude/skills/` o `.cursor/skills/`.
27
27
  2. Lee `OPENSPEC-DELTAS.md` en la carpeta `refacil-prereqs` (misma ruta dual que en prereqs).
28
28
  3. Ejecuta la skill OpenSpec siguiendo sus instrucciones y aplicando los deltas Refacil para generar los artefactos (proposal, specs, design, tasks) en una sola pasada.
29
29
 
@@ -16,17 +16,31 @@ Guia al desarrollador **paso a paso**. Tras cada paso, informa resultado; si fal
16
16
 
17
17
  ### Paso 2: OpenSpec
18
18
 
19
- `openspec --version 2>&1`. Si falla: ofrecer `npm install -g @fission-ai/openspec@latest`, re-verificar. Si sigue fallando: **troubleshooting.md**.
19
+ ```bash
20
+ openspec --version 2>&1
21
+ ```
22
+
23
+ Version minima requerida: **1.3.0**. Si falla o es inferior: `npm install -g @fission-ai/openspec@latest`, re-verificar. Si sigue fallando: **troubleshooting.md**.
20
24
 
21
- ### Paso 3: Perfil OpenSpec
25
+ ### Paso 3: Configurar todos los workflows de OpenSpec
26
+
27
+ `openspec config set workflows` no acepta arrays por CLI. La unica forma de configurar los workflows es editando el archivo de config directamente:
22
28
 
23
29
  ```bash
24
- openspec config set profile custom
25
- openspec config set workflows "explore,new,continue,apply,ff,sync,archive,bulk-archive,verify,onboard"
30
+ node -e "
31
+ const fs=require('fs');
32
+ const {execSync}=require('child_process');
33
+ const p=execSync('openspec config path',{encoding:'utf8'}).trim();
34
+ const c=JSON.parse(fs.readFileSync(p,'utf8'));
35
+ c.profile='custom';
36
+ c.workflows=['propose','explore','apply','archive','verify'];
37
+ fs.writeFileSync(p,JSON.stringify(c,null,2));
38
+ console.log('Workflows configurados:',c.workflows.join(', '));
39
+ "
26
40
  openspec config list
27
41
  ```
28
42
 
29
- Debe verse `profile: custom` y los 10 workflows.
43
+ Debe verse `profile: custom` y exactamente estos 5 workflows: `propose`, `explore`, `apply`, `archive`, `verify` — los unicos que usan los comandos `refacil:*`.
30
44
 
31
45
  ### Paso 4: Init en el repo
32
46
 
@@ -36,6 +50,25 @@ openspec init --tools claude,cursor
36
50
 
37
51
  `openspec init` instala `opsx:*` en `.claude/` y `.cursor/`; convive con `refacil:*` — el equipo usa **refacil:*** como interfaz principal.
38
52
 
53
+ `openspec init` no elimina skills de instalaciones anteriores. Después del init, elimina las carpetas sobrantes que no pertenezcan al conjunto requerido (`openspec-propose`, `openspec-explore`, `openspec-apply-change`, `openspec-archive-change`, `openspec-verify-change`):
54
+
55
+ ```bash
56
+ node -e "
57
+ const fs=require('fs');
58
+ const path=require('path');
59
+ const required=new Set(['openspec-propose','openspec-explore','openspec-apply-change','openspec-archive-change','openspec-verify-change']);
60
+ for(const base of ['.claude/skills','.cursor/skills']){
61
+ if(!fs.existsSync(base)) continue;
62
+ for(const d of fs.readdirSync(base)){
63
+ if(d.startsWith('openspec-') && !required.has(d)){
64
+ fs.rmSync(path.join(base,d),{recursive:true,force:true});
65
+ console.log('Eliminada:',path.join(base,d));
66
+ }
67
+ }
68
+ }
69
+ "
70
+ ```
71
+
39
72
  ### Paso 5: `openspec/config.yaml`
40
73
 
41
74
  Si no existe, crear con `language: spanish` (y comentario de terminos tecnicos en ingles). Si existe, asegurar `language: spanish`.
@@ -62,7 +95,35 @@ Un monorepo puede agregar `.agents/services.md`; una libreria puede combinar tes
62
95
  `AGENTS.md` es el **indice puro** — no contiene detalle de proyecto, solo:
63
96
  1. Una linea de descripcion del proyecto.
64
97
  2. Por cada archivo en `.agents/`: nombre del area + enlace relativo + cuando leer ese archivo (una frase).
65
- 3. Bloque `compact-guidance` (auto-gestionado por `refacil-sdd-ai`, no editar).
98
+ 3. Seccion `## Metodología SDD-AI` con la tabla completa de comandos `refacil:*` — siempre en `AGENTS.md`, nunca en `.agents/`. Si ya existe, sobreescribirla con el contenido actualizado; si no existe, crearla.
99
+ 4. Bloque `compact-guidance` (auto-gestionado por `refacil-sdd-ai`, no editar).
100
+
101
+ **Contenido obligatorio de `## Metodología SDD-AI`** (insertar literalmente, antes del bloque `compact-guidance`):
102
+
103
+ ```markdown
104
+ ## Metodología SDD-AI
105
+
106
+ | Comando | Descripcion |
107
+ |---------|-------------|
108
+ | `/refacil:setup` | Instalar y configurar la metodologia en el repo |
109
+ | `/refacil:guide` | Ver guia de flujo y elegir siguiente paso |
110
+ | `/refacil:explore` | Explorar el codebase sin modificar archivos |
111
+ | `/refacil:propose` | Crear propuesta de cambio (proposal, specs, design, tasks) |
112
+ | `/refacil:apply` | Implementar las tasks de una propuesta aprobada |
113
+ | `/refacil:test` | Ejecutar y revisar tests del cambio actual |
114
+ | `/refacil:verify` | Verificar implementacion contra las specs |
115
+ | `/refacil:review` | Auditoria de calidad del codigo implementado |
116
+ | `/refacil:archive` | Archivar el cambio y sincronizar specs al historico |
117
+ | `/refacil:up-code` | Actualizar codigo existente a patrones actuales |
118
+ | `/refacil:bug` | Crear propuesta de fix para un bug detectado |
119
+ | `/refacil:update` | Migrar documentacion al patron actual de la metodologia |
120
+ | `/refacil:join` | Unirse al bus cross-repo (primer setup del servicio) |
121
+ | `/refacil:say` | Enviar mensaje a otro agente via bus |
122
+ | `/refacil:ask` | Hacer consulta a otro agente y esperar respuesta |
123
+ | `/refacil:reply` | Responder a una consulta recibida via bus |
124
+ | `/refacil:attend` | Atender y responder mensajes pendientes del bus |
125
+ | `/refacil:inbox` | Ver mensajes pendientes en el bus |
126
+ ```
66
127
 
67
128
  **6.3 Fallback** — Si el analisis falla: crear `.agents/summary.md` con resumen minimo + tabla refacil + TODOs, y `AGENTS.md` como indice apuntando a ese unico archivo.
68
129
 
@@ -104,7 +165,7 @@ Si el usuario quiere personalizar exclusiones adicionales, puede editarlos direc
104
165
 
105
166
  ### Paso 8: Verificar skills
106
167
 
107
- - OpenSpec: 10 carpetas bajo `.claude/skills/` y `.cursor/skills/`: `openspec-apply-change`, `openspec-archive-change`, `openspec-bulk-archive-change`, `openspec-continue-change`, `openspec-explore`, `openspec-ff-change`, `openspec-new-change`, `openspec-onboard`, `openspec-sync-specs`, `openspec-verify-change`. Si falta alguna: sugerir `openspec init --tools claude,cursor` o `openspec config list`.
168
+ - OpenSpec: 5 carpetas bajo `.claude/skills/` y `.cursor/skills/`: `openspec-propose`, `openspec-explore`, `openspec-apply-change`, `openspec-archive-change`, `openspec-verify-change`. Si falta alguna: re-ejecutar el Paso 3 y luego `openspec init --tools claude,cursor`.
108
169
  - Refacil: carpetas `refacil-*` en esas rutas. Si no: `refacil-sdd-ai init` + reiniciar sesion.
109
170
 
110
171
  ### Paso 9: Resumen final
@@ -11,10 +11,16 @@ Consulta este archivo **solo** si un paso de setup falla. No forma parte del flu
11
11
 
12
12
  - OpenSpec exige **Node >= 20.19.0**. Actualiza Node y vuelve a intentar.
13
13
 
14
- ## `openspec init` no crea todas las skills
14
+ ## `openspec init` no crea las 5 skills requeridas
15
15
 
16
- - Ejecuta `openspec config list` y confirma `profile: custom` y los 10 workflows del proceso principal de setup.
17
- - Repite `openspec init --tools claude,cursor` desde la raiz del repo.
16
+ - Ejecuta `openspec config list` y confirma `profile: custom` y los 5 workflows: `propose, explore, apply, archive, verify`.
17
+ - Si faltan workflows, repite el Paso 3 del setup (script `node -e "..."`) y luego `openspec init --tools claude,cursor` desde la raiz del repo.
18
+ - Las skills esperadas son: `openspec-propose`, `openspec-explore`, `openspec-apply-change`, `openspec-archive-change`, `openspec-verify-change`.
19
+
20
+ ## `openspec config set workflows` falla con error de array
21
+
22
+ - El CLI de OpenSpec no acepta arrays via `config set`. Usa el script `node -e "..."` del Paso 3 para editar el JSON de configuracion directamente.
23
+ - La ruta del archivo de config se obtiene con `openspec config path`.
18
24
 
19
25
  ## Falta `openspec/config.yaml`
20
26
 
@@ -17,6 +17,7 @@ Evalua cada condicion y marca si aplica:
17
17
  | 1 | `AGENTS.md` existe y no existe carpeta `.agents/` | Reestructurar en `.agents/` + reescribir como indice |
18
18
  | 2 | `CLAUDE.md` tiene mas de 5 lineas o no apunta a `AGENTS.md` | Reemplazar por indice minimo |
19
19
  | 3 | `.cursorrules` tiene mas de 5 lineas o no apunta a `AGENTS.md` | Reemplazar por indice minimo |
20
+ | 4 | Existen skills `openspec-*` en `.claude/skills/` o `.cursor/skills/` que no estan en el conjunto requerido | Eliminar las sobrantes y reconfigurar OpenSpec |
20
21
 
21
22
  Si ninguna condicion aplica: informar al usuario que todo esta al dia y salir sin cambios.
22
23
 
@@ -31,9 +32,10 @@ Ejecutar solo las migraciones marcadas en el Paso 1.
31
32
  ### Migracion 1 — AGENTS.md → `.agents/` + indice
32
33
 
33
34
  1. Lee el contenido completo de `AGENTS.md`.
34
- 2. Identifica y separa los **bloques gestionados** NO deben moverse a `.agents/`:
35
+ 2. Identifica y separa el contenido que NO debe moverse a `.agents/`:
35
36
  - Bloque `compact-guidance`: entre `<!-- refacil-sdd-ai:compact-guidance:start -->` y `<!-- refacil-sdd-ai:compact-guidance:end -->`
36
37
  - Bloque de presentacion del bus: entre `<!-- refacil-bus:presentation:start -->` y `<!-- refacil-bus:presentation:end -->`
38
+ - Seccion `## Metodología SDD-AI`: tabla de comandos `refacil:*` — siempre permanece en `AGENTS.md`. Si existe, sobreescribirla con la tabla actualizada (ver Paso 6.2 de `refacil:setup`); si no existe, crearla.
37
39
  3. Crea la carpeta `.agents/`.
38
40
  4. Distribuye el contenido de proyecto (todo excepto los bloques gestionados) en archivos por area. Reglas:
39
41
  - **`.agents/summary.md` es siempre obligatorio** — descripcion del proyecto, tabla mini de stack, scripts esenciales, reglas criticas condensadas. Si el AGENTS.md original no tiene resumen claro, sintetizalo a partir del contenido disponible.
@@ -43,9 +45,10 @@ Ejecutar solo las migraciones marcadas en el Paso 1.
43
45
  - `.agents/testing.md` — estrategia de tests, comandos, convenciones, fixtures.
44
46
  - `.agents/commands.md` — comandos de desarrollo, alias, scripts de CI/CD.
45
47
  - Adaptar al tipo de proyecto: un monorepo puede necesitar `.agents/services.md`; una libreria simple puede combinar testing y stack en un solo archivo. Usar el mismo criterio que `/refacil:setup`.
46
- 5. Reescribe `AGENTS.md` como indice puro preservando los bloques gestionados al final:
48
+ 5. Reescribe `AGENTS.md` como indice puro en este orden:
47
49
  - Primera linea: descripcion breve del proyecto.
48
50
  - Por cada archivo en `.agents/`: nombre del area + enlace relativo + cuando leerlo (una frase).
51
+ - Seccion `## Metodología SDD-AI` con la tabla actualizada de comandos `refacil:*` (ver Paso 6.2 de `refacil:setup` para el contenido exacto).
49
52
  - Bloques gestionados que ya existian (compact-guidance, bus presentation) al final, intactos.
50
53
  - Si no existian, el bloque compact-guidance se re-inyectara automaticamente en el proximo SessionStart.
51
54
 
@@ -69,6 +72,27 @@ Contexto completo del proyecto: ver `AGENTS.md`.
69
72
  Si no existe, ejecuta `/refacil:setup`.
70
73
  ```
71
74
 
75
+ ### Migracion 4 — Skills OpenSpec sobrantes
76
+
77
+ Conjunto requerido: `openspec-propose`, `openspec-explore`, `openspec-apply-change`, `openspec-archive-change`, `openspec-verify-change`.
78
+
79
+ 1. Detecta las carpetas `openspec-*` presentes en `.claude/skills/` y `.cursor/skills/`.
80
+ 2. Identifica las sobrantes (las que no estan en el conjunto requerido).
81
+ 3. Reconfigura OpenSpec con solo los 5 workflows necesarios:
82
+ ```bash
83
+ node -e "
84
+ const fs=require('fs');
85
+ const {execSync}=require('child_process');
86
+ const p=execSync('openspec config path',{encoding:'utf8'}).trim();
87
+ const c=JSON.parse(fs.readFileSync(p,'utf8'));
88
+ c.profile='custom';
89
+ c.workflows=['propose','explore','apply','archive','verify'];
90
+ fs.writeFileSync(p,JSON.stringify(c,null,2));
91
+ "
92
+ ```
93
+ 4. Elimina las carpetas sobrantes de `.claude/skills/` y `.cursor/skills/`.
94
+ 5. Ejecuta `openspec init --tools claude,cursor` para dejar el estado limpio.
95
+
72
96
  ## Paso 4: Resumen
73
97
 
74
98
  Informar que archivos se crearon o modificaron. Mencionar que el bloque `compact-guidance` se sincronizara automaticamente en el proximo SessionStart.