refacil-sdd-ai 2.1.9 → 2.2.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 +173 -22
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ Una vez instalado, estos comandos estan disponibles en Claude Code y Cursor:
|
|
|
72
72
|
| `/refacil:verify` | Validar implementacion vs specs (con opcion de aplicar correcciones) |
|
|
73
73
|
| `/refacil:review` | Review con checklist de calidad del equipo |
|
|
74
74
|
| `/refacil:archive` | Archivar cambio completado |
|
|
75
|
-
| `/refacil:up-code` | Integrar codigo
|
|
75
|
+
| `/refacil:up-code` | Integrar codigo a rama propia del desarollo y gestionar PR |
|
|
76
76
|
| `/refacil:bug` | Flujo guiado completo para investigar y corregir bugs |
|
|
77
77
|
|
|
78
78
|
## Uso rapido (guia de decision)
|
|
@@ -86,7 +86,7 @@ Si no tienes claro que comando usar, aplica esta regla simple:
|
|
|
86
86
|
- Quiero validar cumplimiento contra spec -> `/refacil:verify`
|
|
87
87
|
- Quiero evaluacion de calidad tecnica -> `/refacil:review`
|
|
88
88
|
- Ya termine y quiero cerrar el cambio en OpenSpec -> `/refacil:archive`
|
|
89
|
-
- Quiero
|
|
89
|
+
- Quiero subir cambios al repositorio -> `/refacil:up-code`
|
|
90
90
|
- Tengo un error en produccion o bug funcional -> `/refacil:bug`
|
|
91
91
|
|
|
92
92
|
## Flujo minimo recomendado (equipo)
|
|
@@ -97,15 +97,16 @@ Para mantener trazabilidad y calidad sin pasos innecesarios:
|
|
|
97
97
|
2. `/refacil:apply`
|
|
98
98
|
3. `/refacil:test`
|
|
99
99
|
4. `/refacil:verify`
|
|
100
|
-
5. `/refacil:review` (
|
|
100
|
+
5. `/refacil:review` (si lo omites, `/refacil:up-code` lo dispara antes del push)
|
|
101
101
|
6. `/refacil:archive`
|
|
102
102
|
7. `/refacil:up-code`
|
|
103
103
|
|
|
104
|
-
Si es bugfix,
|
|
104
|
+
Si es bugfix, inicia con `/refacil:bug` (ya genera tests de regresion internamente) y continua con `/refacil:review` → `/refacil:archive` → `/refacil:up-code`.
|
|
105
105
|
|
|
106
|
-
> **Nota
|
|
106
|
+
> **Nota — dos capas independientes de chequeo de review**:
|
|
107
|
+
> - `/refacil:up-code` detecta si falta `.review-passed` y **ejecuta `/refacil:review` automaticamente** antes del push.
|
|
108
|
+
> - El hook `check-review` (en `.claude/settings.json`) intercepta tambien `git push` manuales y **bloquea** la operacion si falta `.review-passed`. El hook NO invoca skills por si mismo — solo bloquea y emite instrucciones para ejecutar `/refacil:review` manualmente.
|
|
107
109
|
>
|
|
108
|
-
> Politica de integracion: la rama objetivo por defecto es `testing` mediante PR. Para cualquier otra rama protegida tambien se requiere PR. No hay integraciones directas a ramas protegidas.
|
|
109
110
|
|
|
110
111
|
## Flujos de trabajo
|
|
111
112
|
|
|
@@ -118,7 +119,7 @@ Si es bugfix, puedes iniciar con `/refacil:bug` y luego continuar con `/refacil:
|
|
|
118
119
|
/refacil:test
|
|
119
120
|
/refacil:verify
|
|
120
121
|
# → Si hay correcciones: verify pregunta si aplicarlas automaticamente
|
|
121
|
-
# → Si aprueba: aplica fixes y re-verifica (
|
|
122
|
+
# → Si aprueba: aplica fixes y re-verifica (maximo 2 rondas de correccion automatica)
|
|
122
123
|
/refacil:review
|
|
123
124
|
/refacil:archive
|
|
124
125
|
/refacil:up-code
|
|
@@ -148,7 +149,7 @@ Si es bugfix, puedes iniciar con `/refacil:bug` y luego continuar con `/refacil:
|
|
|
148
149
|
>
|
|
149
150
|
> **Importante**: `/refacil:archive` requiere review aprobado (`.review-passed`). Si no existe, bloquea el archivado. Para bugs, el archive no delega a OpenSpec — hace el archivado manual y documenta el bug en `openspec/specs/` como spec individual en formato OpenSpec estandar, con `review.yaml` separado.
|
|
150
151
|
>
|
|
151
|
-
> En cambios regulares (feature/mejora) que se archivan con OpenSpec, Refacil
|
|
152
|
+
> En cambios regulares (feature/mejora) que se archivan con OpenSpec, Refacil **extrae los campos** de `.review-passed` (JSON) y los persiste como `review.yaml` dentro de cada spec afectado (o en `openspec/specs/review-metadata.yaml` si no hay mapeo preciso). El archivo `.review-passed` original no se copia: solo su contenido convertido a YAML.
|
|
152
153
|
|
|
153
154
|
### Explorar codigo
|
|
154
155
|
|
|
@@ -156,6 +157,143 @@ Si es bugfix, puedes iniciar con `/refacil:bug` y luego continuar con `/refacil:
|
|
|
156
157
|
/refacil:explore "que quiero entender"
|
|
157
158
|
```
|
|
158
159
|
|
|
160
|
+
## Diagrama de flujo completo
|
|
161
|
+
|
|
162
|
+
Vista unica del ciclo de vida de un cambio — desde la necesidad hasta el PR integrado.
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
166
|
+
│ INICIO: Necesidad de cambio │
|
|
167
|
+
└────────────────────────────────┬────────────────────────────────┘
|
|
168
|
+
│
|
|
169
|
+
▼
|
|
170
|
+
┌────────────────────────┐
|
|
171
|
+
│ ¿Repo configurado? │
|
|
172
|
+
└───┬────────────────┬───┘
|
|
173
|
+
NO│ │SI
|
|
174
|
+
▼ │
|
|
175
|
+
┌──────────────────┐ │
|
|
176
|
+
│ refacil-sdd-ai │ │
|
|
177
|
+
│ init │ │
|
|
178
|
+
│ /refacil:setup │ │
|
|
179
|
+
└────────┬─────────┘ │
|
|
180
|
+
└────────┬────────┘
|
|
181
|
+
▼
|
|
182
|
+
┌────────────────────────┐
|
|
183
|
+
│ ¿Que tipo de tarea? │
|
|
184
|
+
└───┬────────┬───────┬───┘
|
|
185
|
+
│ │ │
|
|
186
|
+
┌─────────┘ │ └─────────┐
|
|
187
|
+
▼ ▼ ▼
|
|
188
|
+
┌────────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
189
|
+
│ FEATURE NUEVO │ │ BUG │ │ EXPLORAR │
|
|
190
|
+
└───────┬────────┘ └──────┬───────┘ └──────┬───────┘
|
|
191
|
+
│ │ │
|
|
192
|
+
▼ ▼ ▼
|
|
193
|
+
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
|
|
194
|
+
│/refacil:propose │ │/refacil:bug │ │/refacil:explore │
|
|
195
|
+
│ │ │ │ │ │
|
|
196
|
+
│ Genera: │ │ Investiga + │ │ Analiza codigo │
|
|
197
|
+
│ • proposal.md │ │ fix + test │ │ sin modificar │
|
|
198
|
+
│ • specs/ │ │ de regresion │ │ │
|
|
199
|
+
│ • design.md │ │ (interno) │ │ (FIN) │
|
|
200
|
+
│ • tasks.md │ │ │ └─────────────────┘
|
|
201
|
+
└────────┬────────┘ └──────┬───────┘
|
|
202
|
+
│ │
|
|
203
|
+
▼ │
|
|
204
|
+
┌─────────────────┐ │
|
|
205
|
+
│ REVISAR │ │
|
|
206
|
+
│ artefactos │ │
|
|
207
|
+
│ (aprobacion │ │
|
|
208
|
+
│ humana) │ │
|
|
209
|
+
└────────┬────────┘ │
|
|
210
|
+
│ │
|
|
211
|
+
▼ │
|
|
212
|
+
┌─────────────────┐ │
|
|
213
|
+
│ /refacil:apply │ │
|
|
214
|
+
│ Implementa │ │
|
|
215
|
+
│ tasks │ │
|
|
216
|
+
└────────┬────────┘ │
|
|
217
|
+
│ │
|
|
218
|
+
▼ │
|
|
219
|
+
┌─────────────────┐ │
|
|
220
|
+
│ /refacil:test │ │
|
|
221
|
+
│ Tests unitarios │ │
|
|
222
|
+
│ + edge cases │ │
|
|
223
|
+
└────────┬────────┘ │
|
|
224
|
+
│ │
|
|
225
|
+
▼ │
|
|
226
|
+
┌─────────────────┐ │
|
|
227
|
+
│ /refacil:verify │ │
|
|
228
|
+
│ ¿Cumple specs? │ │
|
|
229
|
+
│ (max 2 rondas │ │
|
|
230
|
+
│ autofix) │ │
|
|
231
|
+
└────────┬────────┘ │
|
|
232
|
+
│ │
|
|
233
|
+
└────────┬────────┘
|
|
234
|
+
▼
|
|
235
|
+
┌─────────────────┐
|
|
236
|
+
│ /refacil:review │
|
|
237
|
+
│ Checklist │──► genera .review-passed
|
|
238
|
+
│ calidad │ (JSON con veredicto)
|
|
239
|
+
└────────┬────────┘
|
|
240
|
+
▼
|
|
241
|
+
┌─────────────────┐
|
|
242
|
+
│/refacil:archive │
|
|
243
|
+
│ Mueve a archive/│
|
|
244
|
+
│ Sincroniza specs│
|
|
245
|
+
│ (bug → fix-*/ │
|
|
246
|
+
│ spec OpenSpec) │
|
|
247
|
+
└────────┬────────┘
|
|
248
|
+
▼
|
|
249
|
+
┌─────────────────┐
|
|
250
|
+
│/refacil:up-code │
|
|
251
|
+
│ commit + push │
|
|
252
|
+
│ + PR │
|
|
253
|
+
└────────┬────────┘
|
|
254
|
+
▼
|
|
255
|
+
┌─────────────────┐
|
|
256
|
+
│ PR creado │
|
|
257
|
+
│ (FIN) │
|
|
258
|
+
└─────────────────┘
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Gate de review en el push
|
|
262
|
+
|
|
263
|
+
Vista del mecanismo de dos capas que protege `git push`:
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
┌──────────────────────────────┐
|
|
267
|
+
│ Dev ejecuta /refacil:up-code │
|
|
268
|
+
│ o git push manual │
|
|
269
|
+
└────────────────┬─────────────┘
|
|
270
|
+
│
|
|
271
|
+
┌──────────────────────┴──────────────────────┐
|
|
272
|
+
│ Via /refacil:up-code │ git push directo
|
|
273
|
+
▼ ▼
|
|
274
|
+
┌─────────────────────────┐ ┌───────────────────────────┐
|
|
275
|
+
│ up-code detecta │ │ Hook check-review │
|
|
276
|
+
│ .review-passed faltante │ │ (PreToolUse en Bash) │
|
|
277
|
+
│ │ │ │
|
|
278
|
+
│ INVOCA /refacil:review │ │ Verifica .review-passed │
|
|
279
|
+
│ automaticamente │ │ en openspec/changes/* │
|
|
280
|
+
└────────────┬────────────┘ └────────────┬───────────────┘
|
|
281
|
+
│ │
|
|
282
|
+
▼ ▼
|
|
283
|
+
┌──────────────┐ ┌─────────────────┐
|
|
284
|
+
│ Review OK? │ │ Falta alguno? │
|
|
285
|
+
└──┬────────┬──┘ └──┬───────────┬──┘
|
|
286
|
+
SI│ NO│ SI│ NO│
|
|
287
|
+
▼ ▼ ▼ ▼
|
|
288
|
+
┌─────────┐ ┌────────────┐ ┌─────────────┐ ┌────────┐
|
|
289
|
+
│ push OK │ │ informa │ │ block + │ │ allow │
|
|
290
|
+
│ │ │ correccion │ │ instruccion │ │ push │
|
|
291
|
+
│ │ │ no pushea │ │ a ejecutar │ │ │
|
|
292
|
+
│ │ │ │ │ /refacil: │ │ │
|
|
293
|
+
│ │ │ │ │ review │ │ │
|
|
294
|
+
└─────────┘ └────────────┘ └─────────────┘ └────────┘
|
|
295
|
+
```
|
|
296
|
+
|
|
159
297
|
## Reglas metodologicas transversales
|
|
160
298
|
|
|
161
299
|
Para mantener consistencia entre todas las skills, el paquete define un contrato metodologico unico en `skills/prereqs/METHODOLOGY-CONTRACT.md`:
|
|
@@ -163,14 +301,13 @@ Para mantener consistencia entre todas las skills, el paquete define un contrato
|
|
|
163
301
|
- Estados del flujo (Ready for Propose/Apply/Verify/Review/Archive/Merge)
|
|
164
302
|
- Politica de `AGENTS.md` por perfil (`openspec` vs `agents`)
|
|
165
303
|
- Resolucion de comando de tests multi-stack (sin hardcodear `npm test`)
|
|
166
|
-
- Politica unificada de ramas protegidas, creacion de ramas e integracion por
|
|
304
|
+
- Politica unificada de ramas protegidas, creacion de ramas e integracion por pr
|
|
167
305
|
- Modo de salida estandar: `conciso` por defecto, `detallado` bajo demanda
|
|
168
306
|
|
|
169
307
|
### Politica de ramas (resumen)
|
|
170
308
|
|
|
171
309
|
- Toda rama nueva de trabajo (`feature/*`, `fix/*`, `hotfix/*`, etc.) se crea desde `develop` o `dev` actualizado.
|
|
172
310
|
- Excepcion para repos nuevos: si no existe `develop`/`dev`, se permite usar temporalmente `main` o `master` como rama base.
|
|
173
|
-
- La integracion por defecto de features/bugs es hacia `testing` mediante PR.
|
|
174
311
|
- Toda integracion a ramas protegidas (`testing`, `develop`, `dev`, `main`, `master`, `qa`) requiere PR.
|
|
175
312
|
- NUNCA se hacen ajustes directos en `master` o `main`.
|
|
176
313
|
|
|
@@ -191,21 +328,35 @@ El paquete instala hooks en `.claude/settings.json` durante `init` y `update`:
|
|
|
191
328
|
| Hook | Evento | Que hace |
|
|
192
329
|
|------|--------|----------|
|
|
193
330
|
| `check-update` | `SessionStart` | Verifica si hay nueva version del paquete en npm y la instala automaticamente |
|
|
194
|
-
| `check-review` | `PreToolUse` (Bash) | Intercepta `git push` y verifica que exista `.review-passed` en cada cambio activo de `openspec/changes/`. Si falta,
|
|
331
|
+
| `check-review` | `PreToolUse` (Bash) | Intercepta `git push` y verifica que exista `.review-passed` en cada cambio activo de `openspec/changes/`. Si falta, **bloquea el push** y emite instrucciones para ejecutar `/refacil:review`. El hook no invoca skills por si mismo. |
|
|
195
332
|
|
|
196
333
|
#### Flujo del hook de review
|
|
197
334
|
|
|
335
|
+
El hook unicamente decide `allow` o `block`. La ejecucion automatica de `/refacil:review` la realiza `/refacil:up-code`, no el hook.
|
|
336
|
+
|
|
198
337
|
```
|
|
199
|
-
/refacil:up-code
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
338
|
+
git push (manual o via /refacil:up-code)
|
|
339
|
+
│
|
|
340
|
+
▼
|
|
341
|
+
Hook check-review se dispara
|
|
342
|
+
│
|
|
343
|
+
▼
|
|
344
|
+
Busca carpetas activas en openspec/changes/ (excluye archive/)
|
|
345
|
+
│
|
|
346
|
+
▼
|
|
347
|
+
¿Todas tienen .review-passed?
|
|
348
|
+
│
|
|
349
|
+
├─ SI ──► allow → el push procede
|
|
350
|
+
│
|
|
351
|
+
└─ NO ──► block → emite mensaje instructivo:
|
|
352
|
+
• 1 pendiente → sugiere "/refacil:review <cambio>"
|
|
353
|
+
• N pendientes → lista cambios y pide seleccionar uno
|
|
354
|
+
|
|
355
|
+
Capa adicional cuando se usa /refacil:up-code:
|
|
356
|
+
/refacil:up-code detecta el faltante ANTES de llamar a git push,
|
|
357
|
+
invoca /refacil:review y solo entonces intenta el push.
|
|
358
|
+
• Si el review APRUEBA → genera .review-passed → push procede
|
|
359
|
+
• Si requiere CORRECCIONES → informa al usuario, no pushea
|
|
209
360
|
```
|
|
210
361
|
|
|
211
362
|
#### Evidencia de review
|
|
@@ -260,7 +411,7 @@ refacil-sdd-ai init → Skills en .claude/ y .cursor/
|
|
|
260
411
|
.claude/skills/refacil-*/ # Claude Code (refacil-prereqs incluye OPENSPEC-DELTAS.md)
|
|
261
412
|
.claude/settings.json # Hooks automaticos (check-update + check-review)
|
|
262
413
|
.cursor/skills/refacil-*/ # Cursor — copia equivalente
|
|
263
|
-
|
|
414
|
+
.claude/skills/refacil-setup/troubleshooting.md # guia incluida en refacil-setup si falla install/PATH
|
|
264
415
|
CLAUDE.md # Claude Code — apunta a AGENTS.md
|
|
265
416
|
.cursorrules # Cursor — apunta a AGENTS.md
|
|
266
417
|
AGENTS.md # Generado por /refacil:setup (NO por el CLI)
|
package/package.json
CHANGED