refacil-sdd-ai 2.0.7 → 2.0.9
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 +48 -0
- package/bin/cli.js +81 -5
- package/package.json +1 -1
- package/skills/apply/SKILL.md +5 -35
- package/skills/archive/SKILL.md +3 -1
- package/skills/bug/SKILL.md +9 -38
- package/skills/prereqs/METHODOLOGY-CONTRACT.md +57 -0
- package/skills/prereqs/SKILL.md +3 -1
- package/skills/review/SKILL.md +43 -56
- package/skills/review/checklist.md +16 -2
- package/skills/up-code/SKILL.md +12 -41
- package/skills/verify/SKILL.md +6 -3
package/README.md
CHANGED
|
@@ -73,6 +73,34 @@ Una vez instalado, estos comandos estan disponibles en Claude Code y Cursor:
|
|
|
73
73
|
| `/refacil:up-code` | Subir codigo a rama de desarrollo (con validacion de ramas protegidas) |
|
|
74
74
|
| `/refacil:bug` | Flujo guiado completo para investigar y corregir bugs |
|
|
75
75
|
|
|
76
|
+
## Uso rapido (guia de decision)
|
|
77
|
+
|
|
78
|
+
Si no tienes claro que comando usar, aplica esta regla simple:
|
|
79
|
+
|
|
80
|
+
- Quiero entender el sistema sin tocar codigo -> `/refacil:explore`
|
|
81
|
+
- Quiero construir algo nuevo o cambiar comportamiento -> `/refacil:propose`
|
|
82
|
+
- Ya aprobe artefactos y quiero implementar -> `/refacil:apply`
|
|
83
|
+
- Quiero generar o completar pruebas -> `/refacil:test`
|
|
84
|
+
- Quiero validar cumplimiento contra spec -> `/refacil:verify`
|
|
85
|
+
- Quiero evaluacion de calidad tecnica -> `/refacil:review`
|
|
86
|
+
- Ya termine y quiero cerrar el cambio en OpenSpec -> `/refacil:archive`
|
|
87
|
+
- Quiero subir cambios y abrir PR -> `/refacil:up-code`
|
|
88
|
+
- Tengo un error en produccion o bug funcional -> `/refacil:bug`
|
|
89
|
+
|
|
90
|
+
## Flujo minimo recomendado (equipo)
|
|
91
|
+
|
|
92
|
+
Para mantener trazabilidad y calidad sin pasos innecesarios:
|
|
93
|
+
|
|
94
|
+
1. `/refacil:propose` (aprobacion humana obligatoria)
|
|
95
|
+
2. `/refacil:apply`
|
|
96
|
+
3. `/refacil:test`
|
|
97
|
+
4. `/refacil:verify`
|
|
98
|
+
5. `/refacil:review`
|
|
99
|
+
6. `/refacil:archive`
|
|
100
|
+
7. `/refacil:up-code`
|
|
101
|
+
|
|
102
|
+
Si es bugfix, puedes iniciar con `/refacil:bug` y luego continuar en `review -> up-code`.
|
|
103
|
+
|
|
76
104
|
## Flujos de trabajo
|
|
77
105
|
|
|
78
106
|
### Feature nuevo
|
|
@@ -104,6 +132,26 @@ Una vez instalado, estos comandos estan disponibles en Claude Code y Cursor:
|
|
|
104
132
|
/refacil:explore "que quiero entender"
|
|
105
133
|
```
|
|
106
134
|
|
|
135
|
+
## Reglas metodologicas transversales
|
|
136
|
+
|
|
137
|
+
Para mantener consistencia entre todas las skills, el paquete define un contrato metodologico unico en `skills/prereqs/METHODOLOGY-CONTRACT.md`:
|
|
138
|
+
|
|
139
|
+
- Estados del flujo (Ready for Propose/Apply/Verify/Review/Archive/Merge)
|
|
140
|
+
- Politica de `AGENTS.md` por perfil (`openspec` vs `agents`)
|
|
141
|
+
- Resolucion de comando de tests multi-stack (sin hardcodear `npm test`)
|
|
142
|
+
- Politica unificada de ramas protegidas y creacion de ramas
|
|
143
|
+
- Modo de salida estandar: `conciso` por defecto, `detallado` bajo demanda
|
|
144
|
+
|
|
145
|
+
### Checkpoints de estado (DoR/DoD)
|
|
146
|
+
|
|
147
|
+
Antes de avanzar de etapa, valida estos estados:
|
|
148
|
+
|
|
149
|
+
- `READY_FOR_APPLY`: artefactos SDD completos + aprobacion explicita
|
|
150
|
+
- `READY_FOR_VERIFY`: implementacion terminada y enfocada al alcance
|
|
151
|
+
- `READY_FOR_REVIEW`: verify ejecutado y bloqueantes tratados
|
|
152
|
+
- `READY_FOR_ARCHIVE`: cambio funcionalmente cerrado
|
|
153
|
+
- `READY_FOR_MERGE`: rama lista para PR
|
|
154
|
+
|
|
107
155
|
## Como funciona
|
|
108
156
|
|
|
109
157
|
1. **`refacil-sdd-ai init`** copia las skills a `.claude/skills/` y `.cursor/skills/`, y crea `CLAUDE.md` + `.cursorrules`
|
package/bin/cli.js
CHANGED
|
@@ -135,6 +135,68 @@ function checkNodeVersion() {
|
|
|
135
135
|
return true;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
// --- Hook installation ---
|
|
139
|
+
|
|
140
|
+
function installHook() {
|
|
141
|
+
const settingsDir = path.join(projectRoot, '.claude');
|
|
142
|
+
const settingsPath = path.join(settingsDir, 'settings.json');
|
|
143
|
+
let settings = {};
|
|
144
|
+
|
|
145
|
+
if (fs.existsSync(settingsPath)) {
|
|
146
|
+
settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if (!settings.hooks) settings.hooks = {};
|
|
150
|
+
if (!settings.hooks.SessionStart) settings.hooks.SessionStart = [];
|
|
151
|
+
|
|
152
|
+
// Skip if already installed (marked with _sdd)
|
|
153
|
+
const alreadyInstalled = settings.hooks.SessionStart.some(h => h._sdd === true);
|
|
154
|
+
if (alreadyInstalled) {
|
|
155
|
+
console.log(' Hook check-update ya configurado.');
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
settings.hooks.SessionStart.push({
|
|
160
|
+
_sdd: true,
|
|
161
|
+
matcher: '',
|
|
162
|
+
hooks: [
|
|
163
|
+
{
|
|
164
|
+
type: 'command',
|
|
165
|
+
command: 'refacil-sdd-ai check-update',
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
fs.mkdirSync(settingsDir, { recursive: true });
|
|
171
|
+
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n');
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// --- Check update ---
|
|
176
|
+
|
|
177
|
+
function checkUpdate() {
|
|
178
|
+
const { execSync } = require('child_process');
|
|
179
|
+
const localVersion = require(path.join(packageRoot, 'package.json')).version;
|
|
180
|
+
|
|
181
|
+
try {
|
|
182
|
+
const latest = execSync('npm view refacil-sdd-ai version', {
|
|
183
|
+
encoding: 'utf8',
|
|
184
|
+
timeout: 10000,
|
|
185
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
186
|
+
}).trim();
|
|
187
|
+
|
|
188
|
+
if (latest && latest !== localVersion) {
|
|
189
|
+
console.log(
|
|
190
|
+
`[refacil-sdd-ai] La metodologia SDD-AI tiene una nueva version disponible: v${localVersion} (instalada) -> v${latest} (disponible en npm). ` +
|
|
191
|
+
'Informa al usuario que hay una actualizacion disponible y preguntale si desea actualizar ahora. ' +
|
|
192
|
+
`Si acepta, ejecuta: npm update -g refacil-sdd-ai && refacil-sdd-ai update`,
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
} catch (_) {
|
|
196
|
+
// Silent on error (no internet, registry unreachable, etc.)
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
138
200
|
// --- Commands ---
|
|
139
201
|
|
|
140
202
|
function init() {
|
|
@@ -160,6 +222,11 @@ function init() {
|
|
|
160
222
|
console.log(' .cursorrules OK');
|
|
161
223
|
}
|
|
162
224
|
|
|
225
|
+
// Install SessionStart hook for version check
|
|
226
|
+
if (installHook()) {
|
|
227
|
+
console.log(' Hook check-update agregado a .claude/settings.json');
|
|
228
|
+
}
|
|
229
|
+
|
|
163
230
|
console.log('\n Siguientes pasos:\n');
|
|
164
231
|
console.log(' 1. REINICIA tu sesion de Claude Code o Cursor');
|
|
165
232
|
console.log(' (las skills nuevas no se detectan hasta reiniciar)\n');
|
|
@@ -174,7 +241,12 @@ function update() {
|
|
|
174
241
|
console.log('\n refacil-sdd-ai: Actualizando skills...\n');
|
|
175
242
|
const count = installSkills();
|
|
176
243
|
console.log(` ${count} skills actualizadas en .claude/skills/ y .cursor/skills/`);
|
|
177
|
-
|
|
244
|
+
|
|
245
|
+
// Ensure hook is installed (for users updating from versions without hook)
|
|
246
|
+
if (installHook()) {
|
|
247
|
+
console.log(' Hook check-update agregado a .claude/settings.json');
|
|
248
|
+
}
|
|
249
|
+
|
|
178
250
|
console.log('\n REINICIA tu sesion de Claude Code o Cursor para aplicar los cambios.\n');
|
|
179
251
|
}
|
|
180
252
|
|
|
@@ -192,10 +264,11 @@ function help() {
|
|
|
192
264
|
refacil-sdd-ai — Metodologia SDD-AI con OpenSpec
|
|
193
265
|
|
|
194
266
|
Comandos:
|
|
195
|
-
init
|
|
196
|
-
update
|
|
197
|
-
|
|
198
|
-
|
|
267
|
+
init Instala skills en .claude/ y .cursor/, crea CLAUDE.md y .cursorrules
|
|
268
|
+
update Re-copia skills (para actualizar a nueva version del paquete)
|
|
269
|
+
check-update Verifica si hay una version mas reciente en npm
|
|
270
|
+
clean Elimina skills de .claude/ y .cursor/
|
|
271
|
+
help Muestra esta ayuda
|
|
199
272
|
|
|
200
273
|
Flujo completo:
|
|
201
274
|
1. npm install -g refacil-sdd-ai
|
|
@@ -220,6 +293,9 @@ switch (command) {
|
|
|
220
293
|
case 'update':
|
|
221
294
|
update();
|
|
222
295
|
break;
|
|
296
|
+
case 'check-update':
|
|
297
|
+
checkUpdate();
|
|
298
|
+
break;
|
|
223
299
|
case 'clean':
|
|
224
300
|
clean();
|
|
225
301
|
break;
|
package/package.json
CHANGED
package/skills/apply/SKILL.md
CHANGED
|
@@ -11,6 +11,7 @@ Este comando envuelve la funcionalidad de OpenSpec apply y agrega las convencion
|
|
|
11
11
|
## Antes de empezar
|
|
12
12
|
|
|
13
13
|
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `openspec`** antes de continuar.
|
|
14
|
+
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
14
15
|
|
|
15
16
|
## Instrucciones
|
|
16
17
|
|
|
@@ -47,42 +48,11 @@ OpenSpec a veces solo genera el arbol `specs/**/*.md`; eso **cumple** la fila de
|
|
|
47
48
|
|
|
48
49
|
Ejecuta `git branch --show-current` para obtener la rama actual.
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
Aplica la **Politica de ramas protegidas y creacion de rama** definida en `refacil-prereqs/METHODOLOGY-CONTRACT.md`.
|
|
51
52
|
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Estas en la rama '[nombre-rama]' que es una rama protegida.
|
|
57
|
-
No se deben hacer cambios directamente aqui.
|
|
58
|
-
|
|
59
|
-
Cual es el numero de tarea de Jira para este cambio? (ejemplo: RF-5088)
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Crear la rama siempre desde develop/dev actualizado:**
|
|
63
|
-
1. **Verificar working directory limpio**: Ejecuta `git status --porcelain`. Si hay cambios sin commitear (archivos modificados o sin trackear), informa al usuario:
|
|
64
|
-
```
|
|
65
|
-
Hay cambios sin commitear en la rama actual.
|
|
66
|
-
Para cambiar de rama de forma segura, necesito guardarlos temporalmente con git stash.
|
|
67
|
-
Quieres que haga git stash antes de continuar?
|
|
68
|
-
```
|
|
69
|
-
- Si acepta: ejecuta `git stash push -m "stash-automatico-refacil"` y continua. Al final del proceso (despues de crear la rama), ejecuta `git stash pop` para restaurar los cambios.
|
|
70
|
-
- Si no acepta: **detente**.
|
|
71
|
-
2. Detecta cual existe en el repo: `develop` o `dev` (ejecuta `git branch --list develop dev`)
|
|
72
|
-
3. Cambia a esa rama: `git checkout develop` (o `dev`)
|
|
73
|
-
4. Actualiza: `git pull origin develop` (o `dev`)
|
|
74
|
-
5. Determina el nombre de la nueva rama:
|
|
75
|
-
- Si el usuario entrego el numero de Jira (ej: `RF-5088`): la rama sera `feature/RF-5088`
|
|
76
|
-
- Si el usuario no tiene tarea de Jira: usa un nombre descriptivo corto basado en el cambio activo en openspec/changes/ (ej: `feature/agregar-filtro-productos`). Pero **recomienda crear la tarea en Jira** para trazabilidad.
|
|
77
|
-
6. Verifica que la rama no exista ya: `git branch --list [nombre-rama]`
|
|
78
|
-
- Si ya existe, informa al usuario y pregunta si quiere cambiarse a esa rama existente o elegir otro nombre.
|
|
79
|
-
7. Crea la rama: `git checkout -b [nombre-rama]`
|
|
80
|
-
8. Si se hizo stash en el paso 1, ejecuta `git stash pop` para restaurar los cambios.
|
|
81
|
-
|
|
82
|
-
Si el usuario no acepta crear rama, **detente**.
|
|
83
|
-
|
|
84
|
-
- **Si la rama es cualquier otra** (feature/, fix/, hotfix/, refactor/, etc.):
|
|
85
|
-
La rama es valida. Continua con el siguiente paso sin interrumpir.
|
|
53
|
+
- Si la rama actual es protegida, ejecutar ese protocolo completo antes de continuar.
|
|
54
|
+
- Para `refacil:apply`, el prefijo sugerido de rama es `feature/`.
|
|
55
|
+
- Si la rama actual ya es de trabajo (feature/fix/hotfix/refactor/etc.), continuar sin interrumpir.
|
|
86
56
|
|
|
87
57
|
### Paso 2: Delegar a OpenSpec apply
|
|
88
58
|
|
package/skills/archive/SKILL.md
CHANGED
|
@@ -11,6 +11,7 @@ Este comando envuelve la funcionalidad de OpenSpec archive (que internamente lla
|
|
|
11
11
|
## Antes de empezar
|
|
12
12
|
|
|
13
13
|
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `openspec`** antes de continuar.
|
|
14
|
+
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
14
15
|
|
|
15
16
|
## Instrucciones
|
|
16
17
|
|
|
@@ -20,7 +21,7 @@ Antes de archivar, verifica que el cambio esta realmente completo:
|
|
|
20
21
|
|
|
21
22
|
1. **Tasks completadas**: Busca el `tasks.md` del cambio y verifica que todas las tasks tienen checkbox marcado (`[x]`). Si hay tasks sin completar, informa al usuario y pregunta si quiere continuar de todas formas.
|
|
22
23
|
|
|
23
|
-
2. **Tests pasan**:
|
|
24
|
+
2. **Tests pasan**: Resuelve y ejecuta el comando de tests segun `refacil-prereqs/METHODOLOGY-CONTRACT.md`. Si hay tests que fallan, informa y pregunta si quiere continuar.
|
|
24
25
|
|
|
25
26
|
3. **Sin archivos pendientes**: Ejecuta `git status` y verifica si hay cambios sin commitear relacionados al feature. Si los hay, sugiere hacer commit antes de archivar.
|
|
26
27
|
|
|
@@ -70,3 +71,4 @@ Tip: Ejecuta /refacil:up-code para subir los cambios a tu rama de desarrollo.
|
|
|
70
71
|
- Siempre verificar completitud antes de archivar
|
|
71
72
|
- La sincronizacion de specs es OBLIGATORIA en la metodologia Refacil
|
|
72
73
|
- No eliminar artefactos, solo moverlos a archive/ para trazabilidad
|
|
74
|
+
- Usa modo de salida **conciso** por defecto y **detallado** solo si el usuario lo pide (ver `METHODOLOGY-CONTRACT.md`)
|
package/skills/bug/SKILL.md
CHANGED
|
@@ -11,6 +11,7 @@ Eres un asistente especializado en investigacion y correccion de bugs. Guias al
|
|
|
11
11
|
## Contexto
|
|
12
12
|
|
|
13
13
|
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `agents`** antes de continuar.
|
|
14
|
+
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
14
15
|
|
|
15
16
|
## Instrucciones
|
|
16
17
|
|
|
@@ -67,42 +68,11 @@ Espera aprobacion del usuario antes de implementar.
|
|
|
67
68
|
|
|
68
69
|
**ANTES de implementar cualquier cambio**, ejecuta `git branch --show-current` para obtener la rama actual.
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
Estas en la rama '[nombre-rama]' que es una rama protegida.
|
|
77
|
-
No se deben hacer cambios directamente aqui.
|
|
78
|
-
|
|
79
|
-
Cual es el numero de tarea de Jira para este fix? (ejemplo: RF-5088)
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**Crear la rama siempre desde develop/dev actualizado:**
|
|
83
|
-
1. **Verificar working directory limpio**: Ejecuta `git status --porcelain`. Si hay cambios sin commitear (archivos modificados o sin trackear), informa al usuario:
|
|
84
|
-
```
|
|
85
|
-
Hay cambios sin commitear en la rama actual.
|
|
86
|
-
Para cambiar de rama de forma segura, necesito guardarlos temporalmente con git stash.
|
|
87
|
-
Quieres que haga git stash antes de continuar?
|
|
88
|
-
```
|
|
89
|
-
- Si acepta: ejecuta `git stash push -m "stash-automatico-refacil"` y continua. Al final del proceso (despues de crear la rama), ejecuta `git stash pop` para restaurar los cambios.
|
|
90
|
-
- Si no acepta: **detente**.
|
|
91
|
-
2. Detecta cual existe en el repo: `develop` o `dev` (ejecuta `git branch --list develop dev`)
|
|
92
|
-
3. Cambia a esa rama: `git checkout develop` (o `dev`)
|
|
93
|
-
4. Actualiza: `git pull origin develop` (o `dev`)
|
|
94
|
-
5. Determina el nombre de la nueva rama:
|
|
95
|
-
- Si el usuario entrego el numero de Jira (ej: `RF-5088`): la rama sera `fix/RF-5088`
|
|
96
|
-
- Si el usuario no tiene tarea de Jira: usa un nombre descriptivo corto del bug (ej: `fix/error-calculo-total`). Pero **recomienda crear la tarea en Jira** para trazabilidad.
|
|
97
|
-
6. Verifica que la rama no exista ya: `git branch --list [nombre-rama]`
|
|
98
|
-
- Si ya existe, informa al usuario y pregunta si quiere cambiarse a esa rama existente o elegir otro nombre.
|
|
99
|
-
7. Crea la rama: `git checkout -b [nombre-rama]`
|
|
100
|
-
8. Si se hizo stash en el paso 1, ejecuta `git stash pop` para restaurar los cambios.
|
|
101
|
-
|
|
102
|
-
Si el usuario no acepta crear rama, **detente**.
|
|
103
|
-
|
|
104
|
-
- **Si la rama es cualquier otra** (feature/, fix/, hotfix/, etc.):
|
|
105
|
-
La rama es valida. Continua sin interrumpir.
|
|
71
|
+
Aplica la **Politica de ramas protegidas y creacion de rama** definida en `refacil-prereqs/METHODOLOGY-CONTRACT.md`.
|
|
72
|
+
|
|
73
|
+
- Si la rama actual es protegida, ejecutar ese protocolo completo antes de continuar.
|
|
74
|
+
- Para `refacil:bug`, el prefijo sugerido de rama es `fix/`.
|
|
75
|
+
- Si la rama actual ya es de trabajo (feature/fix/hotfix/refactor/etc.), continuar sin interrumpir.
|
|
106
76
|
|
|
107
77
|
### Paso 6: Implementar el fix
|
|
108
78
|
|
|
@@ -135,7 +105,7 @@ describe('Bug Fix: [descripcion corta]', () => {
|
|
|
135
105
|
|
|
136
106
|
### Paso 8: Verificar
|
|
137
107
|
|
|
138
|
-
1.
|
|
108
|
+
1. Resuelve el comando de tests segun `METHODOLOGY-CONTRACT.md` y ejecutalo — todos los tests deben pasar
|
|
139
109
|
2. Muestra resumen del fix
|
|
140
110
|
|
|
141
111
|
```
|
|
@@ -145,7 +115,7 @@ describe('Bug Fix: [descripcion corta]', () => {
|
|
|
145
115
|
Fix: [que se cambio]
|
|
146
116
|
Archivos modificados: [lista]
|
|
147
117
|
Tests de regresion: [N] tests agregados
|
|
148
|
-
|
|
118
|
+
[comando-test]: PASS
|
|
149
119
|
|
|
150
120
|
Siguientes pasos:
|
|
151
121
|
1. /refacil:review — Review del fix (recomendado para bugs criticos)
|
|
@@ -166,3 +136,4 @@ Si el bug es significativo, preguntar al usuario si quiere documentarlo en OpenS
|
|
|
166
136
|
- Los tests de regresion son OBLIGATORIOS
|
|
167
137
|
- Si el bug es en produccion (critico), priorizar velocidad pero sin saltarse tests
|
|
168
138
|
- Responder en español con terminos tecnicos en ingles
|
|
139
|
+
- Usa modo de salida **conciso** por defecto y **detallado** solo si el usuario lo pide (ver `METHODOLOGY-CONTRACT.md`)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Contrato Metodologico SDD-AI (Refacil)
|
|
2
|
+
|
|
3
|
+
Este archivo centraliza reglas transversales para evitar duplicacion e inconsistencias entre skills.
|
|
4
|
+
|
|
5
|
+
## 1) Estados del flujo (Definition of Ready / Done)
|
|
6
|
+
|
|
7
|
+
- **READY_FOR_PROPOSE**: problema entendido (objetivo, alcance, restricciones) y contexto minimo del repo.
|
|
8
|
+
- **READY_FOR_APPLY**: artefactos SDD completos (`proposal.md`, `design.md`, `tasks.md`, especificacion en `specs.md` y/o `specs/**/*.md`) y aprobacion explicita del usuario.
|
|
9
|
+
- **READY_FOR_VERIFY**: implementacion terminada, sin cambios fuera de alcance.
|
|
10
|
+
- **READY_FOR_REVIEW**: verify ejecutado, issues criticos resueltos o explicitamente aceptados por el usuario.
|
|
11
|
+
- **READY_FOR_ARCHIVE**: tasks completas o excepciones aprobadas, verificacion ejecutada, cambio funcionalmente cerrado.
|
|
12
|
+
- **READY_FOR_MERGE**: review aprobado y rama remota actualizada para PR.
|
|
13
|
+
|
|
14
|
+
## 2) Politica AGENTS.md
|
|
15
|
+
|
|
16
|
+
- Si una skill requiere perfil `openspec`: `AGENTS.md` es obligatorio (si falta, detener y redirigir a `/refacil:setup`).
|
|
17
|
+
- Si una skill requiere perfil `agents`: si falta `AGENTS.md`, continuar con baseline generico y reportar limitacion al usuario.
|
|
18
|
+
|
|
19
|
+
## 3) Resolucion de comando de tests (multi-stack)
|
|
20
|
+
|
|
21
|
+
No hardcodear `npm test` salvo que sea realmente el comando del proyecto.
|
|
22
|
+
|
|
23
|
+
Orden de deteccion:
|
|
24
|
+
1. Si `AGENTS.md` define comando oficial de tests, usar ese.
|
|
25
|
+
2. Si existe script de package manager (ej. `npm test`, `pnpm test`, `yarn test`, `bun test`), usar el correspondiente.
|
|
26
|
+
3. Si es Python: `pytest`.
|
|
27
|
+
4. Si es Go: `go test ./...`.
|
|
28
|
+
5. Si es Rust: `cargo test`.
|
|
29
|
+
6. Si es Java/Gradle: `./gradlew test` o `gradle test`.
|
|
30
|
+
7. Si es Java/Maven: `mvn test`.
|
|
31
|
+
|
|
32
|
+
Coverage (si aplica): detectar comando del proyecto (`test:cov`, `coverage`, `pytest --cov`, etc.). Si no existe, reportar N/A con justificacion.
|
|
33
|
+
|
|
34
|
+
## 4) Politica de ramas protegidas y creacion de rama
|
|
35
|
+
|
|
36
|
+
Ramas protegidas: `master`, `main`, `develop`, `dev`, `testing`, `qa`.
|
|
37
|
+
|
|
38
|
+
Si la rama actual es protegida:
|
|
39
|
+
1. Informar y pedir identificador de tarea (Jira u otro).
|
|
40
|
+
2. Verificar working directory limpio (`git status --porcelain`).
|
|
41
|
+
3. Si hay cambios sin commitear, pedir aprobacion para `git stash push -m "stash-automatico-refacil"`.
|
|
42
|
+
4. Detectar base (`develop` o `dev`), cambiar y actualizar (`git pull origin <base>`).
|
|
43
|
+
5. Crear rama de trabajo:
|
|
44
|
+
- Feature: `feature/<ID>`
|
|
45
|
+
- Bugfix: `fix/<ID>`
|
|
46
|
+
- Sin ID: nombre descriptivo corto y recomendar crear ticket.
|
|
47
|
+
6. Restaurar `stash` si se uso.
|
|
48
|
+
7. Si el usuario no aprueba el proceso, detener.
|
|
49
|
+
|
|
50
|
+
## 5) Politica de salida (UX)
|
|
51
|
+
|
|
52
|
+
Modo por defecto: **conciso**.
|
|
53
|
+
|
|
54
|
+
- **Conciso**: veredicto + blockers + maximo 5 hallazgos priorizados + siguiente paso.
|
|
55
|
+
- **Detallado**: reporte completo por seccion.
|
|
56
|
+
|
|
57
|
+
Si el usuario no pide detalle, usa modo conciso.
|
package/skills/prereqs/SKILL.md
CHANGED
|
@@ -9,6 +9,7 @@ user-invocable: false
|
|
|
9
9
|
La metodologia SDD-AI es **la misma** en **Claude Code** y **Cursor**: `refacil-sdd-ai init` instala copias equivalentes bajo `.claude/skills/refacil-*` y `.cursor/skills/refacil-*`. Usa la ruta del directorio que corresponda al IDE que tengas abierto.
|
|
10
10
|
|
|
11
11
|
Las demas skills `refacil:*` remiten aqui para no duplicar instrucciones. **Lee esta skill cuando otra skill indique un perfil** y ejecuta los pasos en orden; si uno falla, **detente** y muestra al usuario el mensaje indicado.
|
|
12
|
+
Ademas, lee y aplica `METHODOLOGY-CONTRACT.md` (misma carpeta) para reglas transversales: estados del flujo, politica de ramas, tests multi-stack y modo de salida.
|
|
12
13
|
|
|
13
14
|
## Perfil `openspec` (OpenSpec + repo + AGENTS.md)
|
|
14
15
|
|
|
@@ -26,7 +27,8 @@ Usar cuando la skill diga: *Aplica el perfil `openspec`.*
|
|
|
26
27
|
|
|
27
28
|
Usar cuando la skill diga: *Aplica el perfil `agents`.*
|
|
28
29
|
|
|
29
|
-
Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender convenciones, arquitectura y patrones.
|
|
30
|
+
Si existe `AGENTS.md` en la raiz del proyecto, leelo para entender convenciones, arquitectura y patrones.
|
|
31
|
+
Si NO existe, informa al usuario: "No se encontro AGENTS.md. Continuare con baseline generico; para reglas del proyecto ejecuta `/refacil:setup`." y continua.
|
|
30
32
|
|
|
31
33
|
## Ubicacion de este archivo
|
|
32
34
|
|
package/skills/review/SKILL.md
CHANGED
|
@@ -11,10 +11,19 @@ Eres un reviewer exigente pero constructivo que evalua el codigo contra el check
|
|
|
11
11
|
## Contexto
|
|
12
12
|
|
|
13
13
|
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `agents`** antes de continuar.
|
|
14
|
+
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` y aplica el modo de salida definido ahi.
|
|
14
15
|
Lee el archivo [checklist.md](checklist.md) para conocer los criterios de evaluacion.
|
|
15
16
|
|
|
16
17
|
## Instrucciones
|
|
17
18
|
|
|
19
|
+
### Paso 0: Definir alcance (obligatorio)
|
|
20
|
+
|
|
21
|
+
- Determina el alcance real del review antes de evaluar.
|
|
22
|
+
- Prioriza este orden:
|
|
23
|
+
1) Argumento del usuario (`$ARGUMENTS`)
|
|
24
|
+
2) Cambio activo en `openspec/changes/`
|
|
25
|
+
3) Cambios no commiteados (`git diff`)
|
|
26
|
+
|
|
18
27
|
### Paso 1: Identificar que revisar
|
|
19
28
|
|
|
20
29
|
Si hay un cambio activo en `openspec/changes/`, usalo como referencia.
|
|
@@ -37,67 +46,42 @@ Para CADA item del [checklist.md](checklist.md), evalua:
|
|
|
37
46
|
|
|
38
47
|
Se especifico en las evaluaciones. No des PASS generico — justifica brevemente.
|
|
39
48
|
|
|
49
|
+
### Paso 3.1: Clasificar severidad en cada FAIL
|
|
50
|
+
|
|
51
|
+
- **CRITICO**: Riesgo de seguridad, datos, o incumplimiento de spec.
|
|
52
|
+
- **ALTO**: Puede romper funcionalidad, tests o despliegue.
|
|
53
|
+
- **MEDIO**: Deuda tecnica relevante (arquitectura/mantenibilidad).
|
|
54
|
+
- **BAJO**: Mejora recomendada no bloqueante.
|
|
55
|
+
|
|
56
|
+
Usa severidad para priorizar correcciones, no para inflar el reporte.
|
|
57
|
+
|
|
40
58
|
### Paso 4: Reporte
|
|
41
59
|
|
|
42
60
|
```
|
|
43
61
|
=== Review Report ===
|
|
44
62
|
|
|
45
|
-
|
|
46
|
-
[
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
[PASS/FAIL/N/A]
|
|
55
|
-
[PASS/FAIL/N/A]
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
[PASS/FAIL/N/A]
|
|
59
|
-
[PASS/FAIL/N/A]
|
|
60
|
-
[PASS/FAIL/N/A]
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
[
|
|
66
|
-
[
|
|
67
|
-
[PASS/FAIL/N/A] npm test pasa sin errores
|
|
68
|
-
|
|
69
|
-
## 5. Seguridad
|
|
70
|
-
[PASS/FAIL/N/A] Sin secrets hardcodeados
|
|
71
|
-
[PASS/FAIL/N/A] Inputs validados
|
|
72
|
-
[PASS/FAIL/N/A] Sin inyeccion SQL
|
|
73
|
-
[PASS/FAIL/N/A] Endpoints con autorizacion
|
|
74
|
-
|
|
75
|
-
## 6. Performance
|
|
76
|
-
[PASS/FAIL/N/A] Queries usan indices
|
|
77
|
-
[PASS/FAIL/N/A] Sin queries N+1
|
|
78
|
-
[PASS/FAIL/N/A] Operaciones pesadas son async
|
|
79
|
-
|
|
80
|
-
## 7. Mantenibilidad
|
|
81
|
-
[PASS/FAIL/N/A] Codigo autoexplicativo
|
|
82
|
-
[PASS/FAIL/N/A] Funciones hacen una sola cosa
|
|
83
|
-
[PASS/FAIL/N/A] Archivos < 300 lineas
|
|
84
|
-
|
|
85
|
-
## 8. Git y Deploy
|
|
86
|
-
[PASS/FAIL/N/A] Commits atomicos
|
|
87
|
-
[PASS/FAIL/N/A] Sin archivos generados en commit
|
|
88
|
-
[PASS/FAIL/N/A] Migraciones reversibles (si aplica)
|
|
89
|
-
|
|
90
|
-
## 9. Reglas especificas del proyecto
|
|
91
|
-
[PASS/FAIL/N/A] Cumple reglas de "Siempre hacer" de AGENTS.md
|
|
92
|
-
[PASS/FAIL/N/A] No viola reglas de "Nunca hacer" de AGENTS.md
|
|
93
|
-
[PASS/FAIL/N/A] Reglas adicionales del proyecto (si aplica)
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
RESUMEN: [X] PASS | [Y] FAIL | [Z] N/A
|
|
97
|
-
VEREDICTO: APROBADO / REQUIERE CORRECCIONES
|
|
98
|
-
|
|
99
|
-
Correcciones necesarias:
|
|
100
|
-
1. [FAIL] [seccion] — [que corregir y como]
|
|
63
|
+
VEREDICTO: APROBADO | APROBADO CON OBSERVACIONES | REQUIERE CORRECCIONES
|
|
64
|
+
BLOCKERS: [si/no]
|
|
65
|
+
|
|
66
|
+
## Hallazgos priorizados (solo FAIL)
|
|
67
|
+
1. [CRITICO|ALTO|MEDIO|BAJO] [seccion/item] — [problema]
|
|
68
|
+
- Evidencia: [archivo/rango o comportamiento]
|
|
69
|
+
- Correccion sugerida: [accion concreta]
|
|
70
|
+
|
|
71
|
+
## Checklist resumido
|
|
72
|
+
- Conformidad con Spec: [PASS/FAIL/N/A]
|
|
73
|
+
- Calidad de Codigo: [PASS/FAIL/N/A]
|
|
74
|
+
- Arquitectura: [PASS/FAIL/N/A]
|
|
75
|
+
- Testing: [PASS/FAIL/N/A]
|
|
76
|
+
- Seguridad: [PASS/FAIL/N/A]
|
|
77
|
+
- Performance: [PASS/FAIL/N/A]
|
|
78
|
+
- Mantenibilidad: [PASS/FAIL/N/A]
|
|
79
|
+
- Git y Deploy: [PASS/FAIL/N/A]
|
|
80
|
+
- Reglas del proyecto (AGENTS.md): [PASS/FAIL/N/A]
|
|
81
|
+
|
|
82
|
+
## Correcciones minimas para aprobar
|
|
83
|
+
1. [item accionable]
|
|
84
|
+
2. [item accionable]
|
|
101
85
|
```
|
|
102
86
|
|
|
103
87
|
## Reglas
|
|
@@ -106,3 +90,6 @@ Correcciones necesarias:
|
|
|
106
90
|
- No ser excesivamente estricto con N/A — si no aplica, marcarlo
|
|
107
91
|
- Si todo es PASS, felicitar brevemente y sugerir `/refacil:archive`
|
|
108
92
|
- Si hay FAILs criticos (seguridad, tests), marcar como bloqueantes y sugerir `/refacil:verify` para aplicar correcciones con asistencia de la IA
|
|
93
|
+
- No reportar ruido: evita listar mejoras cosmeticas como bloqueantes
|
|
94
|
+
- Si hay demasiados hallazgos, prioriza los 5 de mayor impacto primero
|
|
95
|
+
- Usa modo **conciso** por defecto; si el usuario pide detalle, entrega el reporte completo por secciones
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
# Checklist de Calidad — Equipo Refacil
|
|
2
2
|
|
|
3
3
|
> **IMPORTANTE**: Este checklist es generico. Antes de evaluar, lee `AGENTS.md` del proyecto para adaptar cada seccion al stack, arquitectura y convenciones reales del repositorio. Si AGENTS.md indica patrones, frameworks o reglas especificas, usalas en lugar de los ejemplos genericos de abajo.
|
|
4
|
+
> Si `AGENTS.md` no existe, aplica este checklist como baseline y marca N/A en reglas que dependan de convenciones no documentadas.
|
|
5
|
+
|
|
6
|
+
## Como usar este checklist (metodologia)
|
|
7
|
+
1. Define alcance de revision: `$ARGUMENTS` > `openspec/changes/` > `git diff`.
|
|
8
|
+
2. Evalua primero bloqueantes: Spec, Testing y Seguridad.
|
|
9
|
+
3. Luego evalua Calidad, Arquitectura, Performance y Mantenibilidad.
|
|
10
|
+
4. Marca cada item como PASS, FAIL o N/A con una justificacion breve.
|
|
11
|
+
5. Para cada FAIL, agrega severidad: CRITICO, ALTO, MEDIO o BAJO.
|
|
12
|
+
6. Si hay muchos FAIL, prioriza los 5 de mayor impacto.
|
|
4
13
|
|
|
5
14
|
## 1. Conformidad con Spec
|
|
6
15
|
- Todos los criterios de aceptacion de la spec estan cubiertos
|
|
@@ -12,7 +21,7 @@
|
|
|
12
21
|
- El codigo sigue los patrones existentes del repo (consultar AGENTS.md seccion de arquitectura/convenciones)
|
|
13
22
|
- No hay codigo duplicado que pueda extraerse
|
|
14
23
|
- Los nombres de variables, funciones y clases son claros y descriptivos
|
|
15
|
-
- No hay console.log, TODO, o codigo comentado sin razon
|
|
24
|
+
- No hay `console.log` fuera de bloques `catch` (permitido solo para diagnostico de errores), TODO, o codigo comentado sin razon
|
|
16
25
|
- Los imports usan los alias configurados del proyecto (consultar AGENTS.md seccion de alias de rutas, si aplica)
|
|
17
26
|
- No hay dependencias circulares nuevas
|
|
18
27
|
|
|
@@ -50,7 +59,7 @@
|
|
|
50
59
|
## 7. Mantenibilidad
|
|
51
60
|
- El codigo es autoexplicativo (comentarios solo donde la logica no es obvia)
|
|
52
61
|
- Las funciones hacen una sola cosa
|
|
53
|
-
- Los archivos no son excesivamente largos (<
|
|
62
|
+
- Los archivos no son excesivamente largos (< 400 lineas como guia)
|
|
54
63
|
- El manejo de errores es consistente con el resto del proyecto
|
|
55
64
|
|
|
56
65
|
## 8. Git y Deploy
|
|
@@ -63,3 +72,8 @@
|
|
|
63
72
|
- Consultar la seccion "Reglas criticas" de AGENTS.md
|
|
64
73
|
- Evaluar contra las reglas de "Siempre hacer", "Nunca hacer" y "Preguntar primero"
|
|
65
74
|
- Si AGENTS.md define reglas adicionales (ej: zona horaria, formato de fechas, naming conventions), verificar su cumplimiento
|
|
75
|
+
|
|
76
|
+
## Criterio de salida del review
|
|
77
|
+
- **APROBADO**: No hay FAILs CRITICOS/ALTOS.
|
|
78
|
+
- **APROBADO CON OBSERVACIONES**: Solo FAILs MEDIOS/BAJOS.
|
|
79
|
+
- **REQUIERE CORRECCIONES**: Existe al menos un FAIL CRITICO/ALTO.
|
package/skills/up-code/SKILL.md
CHANGED
|
@@ -11,6 +11,7 @@ Sube los cambios al repositorio remoto asegurando que NUNCA se haga push directo
|
|
|
11
11
|
## Antes de empezar
|
|
12
12
|
|
|
13
13
|
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `agents`** antes de continuar.
|
|
14
|
+
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
14
15
|
|
|
15
16
|
## Instrucciones
|
|
16
17
|
|
|
@@ -20,44 +21,11 @@ Ejecuta `git branch --show-current` para obtener el nombre de la rama.
|
|
|
20
21
|
|
|
21
22
|
### Paso 2: Validar rama
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
- `master`
|
|
25
|
-
- `main`
|
|
26
|
-
- `develop`
|
|
27
|
-
- `testing`
|
|
28
|
-
- `qa`
|
|
29
|
-
- `dev`
|
|
24
|
+
Aplica la **Politica de ramas protegidas y creacion de rama** definida en `refacil-prereqs/METHODOLOGY-CONTRACT.md`.
|
|
30
25
|
|
|
31
|
-
Si la rama actual es
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
ERROR: Estas en la rama '[nombre-rama]' que es una rama protegida.
|
|
35
|
-
No se puede hacer push directo a ramas protegidas (master, main, develop, testing, qa, dev).
|
|
36
|
-
|
|
37
|
-
Cual es el numero de tarea de Jira para este cambio? (ejemplo: RF-5088)
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**Crear la rama siempre desde develop/dev actualizado:**
|
|
41
|
-
1. **Verificar working directory limpio**: Ejecuta `git status --porcelain`. Si hay cambios sin commitear (archivos modificados o sin trackear), informa al usuario:
|
|
42
|
-
```
|
|
43
|
-
Hay cambios sin commitear en la rama actual.
|
|
44
|
-
Para cambiar de rama de forma segura, necesito guardarlos temporalmente con git stash.
|
|
45
|
-
Quieres que haga git stash antes de continuar?
|
|
46
|
-
```
|
|
47
|
-
- Si acepta: ejecuta `git stash push -m "stash-automatico-refacil"` y continua. Al final del proceso (despues de crear la rama), ejecuta `git stash pop` para restaurar los cambios.
|
|
48
|
-
- Si no acepta: **detente**.
|
|
49
|
-
2. Detecta cual existe en el repo: `develop` o `dev` (ejecuta `git branch --list develop dev`)
|
|
50
|
-
3. Cambia a esa rama: `git checkout develop` (o `dev`)
|
|
51
|
-
4. Actualiza: `git pull origin develop` (o `dev`)
|
|
52
|
-
5. Determina el nombre de la nueva rama:
|
|
53
|
-
- Si el usuario entrego el numero de Jira (ej: `RF-5088`): la rama sera `feature/RF-5088`
|
|
54
|
-
- Si el usuario no tiene tarea de Jira: usa un nombre descriptivo corto (ej: `feature/ajuste-validacion`). Pero **recomienda crear la tarea en Jira** para trazabilidad.
|
|
55
|
-
6. Verifica que la rama no exista ya: `git branch --list [nombre-rama]`
|
|
56
|
-
- Si ya existe, informa al usuario y pregunta si quiere cambiarse a esa rama existente o elegir otro nombre.
|
|
57
|
-
7. Crea la rama: `git checkout -b [nombre-rama]`
|
|
58
|
-
8. Si se hizo stash en el paso 1, ejecuta `git stash pop` para restaurar los cambios.
|
|
59
|
-
|
|
60
|
-
Si el usuario no quiere crear una rama, **detente**. No continuar con el push.
|
|
26
|
+
- Si la rama actual es protegida, ejecutar ese protocolo completo antes de continuar.
|
|
27
|
+
- Para `refacil:up-code`, el prefijo sugerido de rama es `feature/` (o `fix/` si el cambio es bugfix).
|
|
28
|
+
- Si el usuario no aprueba la creacion/cambio de rama, detener. No continuar con commit/push.
|
|
61
29
|
|
|
62
30
|
### Paso 3: Verificar cambios pendientes
|
|
63
31
|
|
|
@@ -69,10 +37,13 @@ Ejecuta `git status` para verificar si hay cambios para subir.
|
|
|
69
37
|
|
|
70
38
|
### Paso 4: Commit de cambios
|
|
71
39
|
|
|
72
|
-
1. Ejecuta `git
|
|
73
|
-
2.
|
|
74
|
-
3. Si
|
|
75
|
-
4.
|
|
40
|
+
1. Ejecuta `git status --short` y muestra al usuario la lista de archivos detectados.
|
|
41
|
+
2. Pide confirmacion explicita antes de stagear todo.
|
|
42
|
+
3. Si el usuario confirma stage global, usa `git add -A`.
|
|
43
|
+
4. Si el usuario pide stage parcial, agrega solo las rutas indicadas.
|
|
44
|
+
5. Si el usuario proporciono un mensaje como argumento (`$ARGUMENTS`), usalo como mensaje del commit.
|
|
45
|
+
6. Si no se proporciono mensaje, genera uno descriptivo basado en los cambios detectados con `git diff --staged --stat`.
|
|
46
|
+
7. Ejecuta `git commit -m "[mensaje]"`.
|
|
76
47
|
|
|
77
48
|
### Paso 5: Push a remoto
|
|
78
49
|
|
package/skills/verify/SKILL.md
CHANGED
|
@@ -11,6 +11,7 @@ Este comando envuelve la funcionalidad de OpenSpec verify y agrega verificacion
|
|
|
11
11
|
## Antes de empezar
|
|
12
12
|
|
|
13
13
|
Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-prereqs/` (misma skill en Claude Code y Cursor) y aplica el **perfil `openspec`** antes de continuar.
|
|
14
|
+
Lee `METHODOLOGY-CONTRACT.md` en `refacil-prereqs` para reglas transversales del flujo.
|
|
14
15
|
|
|
15
16
|
## Instrucciones
|
|
16
17
|
|
|
@@ -22,11 +23,11 @@ Lee `SKILL.md` en `.claude/skills/refacil-prereqs/` o `.cursor/skills/refacil-pr
|
|
|
22
23
|
|
|
23
24
|
### Paso 2: Verificar tests (aporte Refacil)
|
|
24
25
|
|
|
25
|
-
Ademas de la verificacion de OpenSpec, ejecuta
|
|
26
|
+
Ademas de la verificacion de OpenSpec, resuelve y ejecuta el comando de tests segun `refacil-prereqs/METHODOLOGY-CONTRACT.md` y verifica:
|
|
26
27
|
- Todos los tests pasan
|
|
27
28
|
- Los tests cubren los criterios de aceptacion de la spec
|
|
28
29
|
- No hay tests faltantes para requisitos clave
|
|
29
|
-
- Si hay
|
|
30
|
+
- Si hay comando de coverage del proyecto, ejecutalo y reporta el porcentaje; si no existe, reporta N/A con justificacion
|
|
30
31
|
|
|
31
32
|
### Paso 3: Reporte combinado (aporte Refacil)
|
|
32
33
|
|
|
@@ -39,9 +40,10 @@ Combina el reporte de OpenSpec con la verificacion de tests en un reporte unific
|
|
|
39
40
|
[Resultados del reporte de OpenSpec: CRITICAL, WARNING, SUGGESTION]
|
|
40
41
|
|
|
41
42
|
--- Tests (Refacil) ---
|
|
43
|
+
[PASS/FAIL] Comando de tests: [comando]
|
|
42
44
|
[PASS/FAIL] Tests ejecutados: [N]
|
|
43
45
|
[PASS/FAIL] Tests pasaron: [N]
|
|
44
|
-
[PASS/FAIL] Coverage: [X]% (minimo requerido: 80%)
|
|
46
|
+
[PASS/FAIL/N/A] Coverage: [X]% (minimo requerido: 80%)
|
|
45
47
|
|
|
46
48
|
RESULTADO: APROBADO / REQUIERE CORRECCIONES
|
|
47
49
|
|
|
@@ -91,3 +93,4 @@ Lista los issues para que el usuario los corrija manualmente. Sugiere ejecutar `
|
|
|
91
93
|
- Las correcciones deben ser quirurgicas: solo lo necesario para resolver los issues reportados
|
|
92
94
|
- Ser estricto con los criterios de la spec
|
|
93
95
|
- Si algo no esta en la spec pero parece necesario, mencionarlo como SUGGESTION (observacion), no como CRITICAL/WARNING
|
|
96
|
+
- Usa modo de salida **conciso** por defecto y **detallado** solo si el usuario lo pide (ver `METHODOLOGY-CONTRACT.md`)
|