refacil-sdd-ai 4.2.0 → 4.2.2
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/agents/auditor.md +55 -41
- package/agents/debugger.md +9 -1
- package/agents/implementer.md +67 -22
- package/agents/investigator.md +26 -7
- package/agents/proposer.md +11 -1
- package/agents/tester.md +56 -56
- package/agents/validator.md +47 -27
- package/package.json +1 -1
- package/skills/apply/SKILL.md +41 -12
- package/skills/review/SKILL.md +52 -43
- package/skills/test/SKILL.md +51 -23
- package/skills/verify/SKILL.md +53 -25
package/skills/test/SKILL.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: refacil:test
|
|
3
|
-
description: Generar tests unitarios basados en los artefactos de OpenSpec o para archivos especificos — delega al sub-agente refacil-tester para la
|
|
3
|
+
description: Generar tests unitarios basados en los artefactos de OpenSpec o para archivos especificos — construye un briefing con CA/CR y scope de archivos, y delega al sub-agente refacil-tester para la generacion y ejecucion en contexto aislado
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# refacil:test — Entrypoint de Generacion de Tests
|
|
8
8
|
|
|
9
|
-
Este skill es un **wrapper delgado** que
|
|
9
|
+
Este skill es un **wrapper delgado** que resuelve el scope, extrae los criterios CA/CR y la lista de archivos a testear, y delega al sub-agente `refacil-tester` con un **briefing estructurado**. El sub-agente arranca con los criterios ya extraidos — no re-lee specs desde cero.
|
|
10
10
|
|
|
11
11
|
**Prerequisitos**: perfil `openspec` de `refacil-prereqs/SKILL.md` + comando de tests segun `METHODOLOGY-CONTRACT.md §3`.
|
|
12
12
|
|
|
@@ -15,38 +15,65 @@ Este skill es un **wrapper delgado** que delega la generacion y ejecucion de tes
|
|
|
15
15
|
### Paso 0: Resolver scope y modo
|
|
16
16
|
|
|
17
17
|
**Modo file** — si `$ARGUMENTS` contiene una ruta de archivo:
|
|
18
|
-
- `targetFile` = la ruta recibida. Continua al Paso
|
|
18
|
+
- `targetFile` = la ruta recibida. Continua al Paso 2 directamente (no se necesita briefing de specs).
|
|
19
19
|
|
|
20
20
|
**Modo openspec** — si `$ARGUMENTS` esta vacio:
|
|
21
21
|
- Lista las carpetas en `openspec/changes/`.
|
|
22
22
|
- Si hay exactamente una carpeta activa, usarla como `changeName`.
|
|
23
|
-
- Si hay multiples carpetas activas, **detente** y pide al usuario seleccionar cual testear.
|
|
23
|
+
- Si hay multiples carpetas activas, **detente** y pide al usuario seleccionar cual testear.
|
|
24
24
|
- Si no hay cambios activos, informa que ejecute `/refacil:propose` y detente.
|
|
25
25
|
|
|
26
|
-
### Paso 1
|
|
26
|
+
### Paso 1 (solo modo openspec): Construir briefing
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
Antes de invocar al sub-agente, extrae el contexto clave:
|
|
29
|
+
|
|
30
|
+
1. **Criterios** — lee la especificacion del cambio (`openspec/changes/<changeName>/specs.md` y/o `specs/**/*.md` si existen). Extrae la lista de criterios de aceptacion (CA-XX) y rechazo (CR-XX) con su descripcion.
|
|
31
|
+
2. **Archivos a testear** — lee `openspec/changes/<changeName>/design.md`. Extrae la lista de archivos creados/modificados.
|
|
32
|
+
3. **Comando de test** — lee `refacil-prereqs/METHODOLOGY-CONTRACT.md §3`. Extrae el comando exacto.
|
|
33
|
+
4. **Patron de tests** — busca un archivo de test existente relevante (1 archivo de ejemplo, no multiples). Si existe `testing-patterns.md` en este directorio, incluyelo.
|
|
34
|
+
|
|
35
|
+
Construye el bloque BRIEFING que incluiras en el prompt de delegacion:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
BRIEFING:
|
|
39
|
+
changeName: <nombre>
|
|
40
|
+
mode: openspec
|
|
41
|
+
criteria:
|
|
42
|
+
acceptance:
|
|
43
|
+
- CA-01: <descripcion>
|
|
44
|
+
- CA-02: <descripcion>
|
|
45
|
+
rejection:
|
|
46
|
+
- CR-01: <descripcion>
|
|
47
|
+
filesToTest: [ruta/archivo-1.ts, ruta/archivo-2.ts, ...]
|
|
48
|
+
testCommand: <comando exacto>
|
|
49
|
+
testPatternFile: <ruta de un archivo de test existente como referencia, o null>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Paso 2: Delegar al sub-agente refacil-tester
|
|
53
|
+
|
|
54
|
+
Invoca al sub-agente `refacil-tester` pasandole el BRIEFING (modo openspec) o directamente:
|
|
55
|
+
- `mode`: `openspec` o `file`
|
|
56
|
+
- `changeName` / `targetFile` segun corresponda
|
|
57
|
+
- BRIEFING completo (modo openspec)
|
|
32
58
|
- Si el usuario pidio modo detallado explicitamente, indicaselo. Default: conciso.
|
|
33
59
|
|
|
34
|
-
El sub-agente
|
|
35
|
-
- Detecta el stack tecnologico del proyecto (lenguaje, framework de tests, patrones existentes).
|
|
36
|
-
- En modo openspec: lee specs, design y tasks del cambio → genera tests cubriendo cada CA-XX y CR-XX.
|
|
37
|
-
- En modo file: lee el archivo objetivo → genera el test file correspondiente.
|
|
38
|
-
- Corre los tests, itera sobre fallos, ejecuta coverage si aplica.
|
|
39
|
-
- Retorna UN solo mensaje con el reporte + bloque JSON fenced como ` ```refacil-test-result `.
|
|
60
|
+
El sub-agente usara el briefing para generar tests directamente sin re-leer specs.
|
|
40
61
|
|
|
41
|
-
|
|
62
|
+
Retorna UN solo mensaje con el reporte + bloque JSON fenced como ` ```refacil-test-result `.
|
|
63
|
+
|
|
64
|
+
### Paso 3: Presentar el reporte y procesar resultado
|
|
42
65
|
|
|
43
66
|
Muestra al usuario el **reporte** (todo lo anterior al bloque `refacil-test-result`). No muestres el bloque JSON — es metadata interna.
|
|
44
67
|
|
|
45
|
-
Si el sub-agente retorno algo fuera de formato
|
|
68
|
+
Si el sub-agente retorno algo fuera de formato, informa al usuario: "El tester retorno un reporte no estructurado — revisa los tests manualmente." y detente.
|
|
69
|
+
|
|
70
|
+
Parsea el bloque `refacil-test-result` del sub-agente:
|
|
71
|
+
- **Si `passed: false`** (tests fallaron): presenta los `issues` del JSON y pregunta al usuario como quiere proceder. **No continues al Paso 4** hasta que los tests pasen.
|
|
72
|
+
- **Si `passed: true`**: continua al Paso 4.
|
|
46
73
|
|
|
47
|
-
### Paso
|
|
74
|
+
### Paso 4: Continuidad del flujo (solo si tests pasaron)
|
|
48
75
|
|
|
49
|
-
|
|
76
|
+
Agrega:
|
|
50
77
|
|
|
51
78
|
```
|
|
52
79
|
El siguiente paso es validar la implementacion vs specs.
|
|
@@ -55,10 +82,11 @@ Quieres que continue con /refacil:verify?
|
|
|
55
82
|
|
|
56
83
|
## Reglas
|
|
57
84
|
|
|
58
|
-
- **Siempre
|
|
59
|
-
- **
|
|
60
|
-
- **No
|
|
61
|
-
- **
|
|
85
|
+
- **Siempre construye el briefing en modo openspec (Paso 1) antes de delegar** — reduce los tool calls del sub-agente.
|
|
86
|
+
- **Siempre delega al sub-agente**. No repliques aqui la logica de deteccion de stack ni de generacion.
|
|
87
|
+
- **No invoques con scope ambiguo**. Si hay multiples cambios activos, pide seleccion primero.
|
|
88
|
+
- **No muestres el bloque JSON al usuario**. Es solo metadata interna.
|
|
89
|
+
- **Continuidad del flujo**: si el usuario confirma afirmativamente ("si", "ok", "dale", "continua", etc.) la pregunta de continuidad **y los tests pasaron (`passed: true`)**, invocar inmediatamente el **Skill tool** con `skill: "refacil:verify"`. No describirlo en texto ni esperar que el usuario escriba `/refacil:verify`. (Ver `METHODOLOGY-CONTRACT.md §5`.)
|
|
62
90
|
|
|
63
91
|
## Ver tambien
|
|
64
92
|
|
package/skills/verify/SKILL.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: refacil:verify
|
|
3
|
-
description: Validar que la implementacion cumple con las specs — delega al sub-agente refacil-validator para el reporte y maneja correcciones con aprobacion del usuario
|
|
3
|
+
description: Validar que la implementacion cumple con las specs — construye un briefing con testCommand y criterios CA/CR, delega al sub-agente refacil-validator para el reporte y maneja correcciones con aprobacion del usuario
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# refacil:verify — Entrypoint de Verificacion
|
|
8
8
|
|
|
9
|
-
Este skill es un **wrapper** que
|
|
9
|
+
Este skill es un **wrapper** que construye un **briefing estructurado** con el comando de test y los criterios ya extraidos, delega el analisis al sub-agente `refacil-validator`, y maneja la interaccion con el usuario para aplicar correcciones.
|
|
10
10
|
|
|
11
11
|
**Prerequisitos**: perfil `openspec` de `refacil-prereqs/SKILL.md` + reglas de `METHODOLOGY-CONTRACT.md`.
|
|
12
12
|
|
|
@@ -23,17 +23,47 @@ No invoques al sub-agente con scope ambiguo.
|
|
|
23
23
|
|
|
24
24
|
### Paso 0.5: Archivos ocultos bajo `openspec/changes/` (evitar falsos negativos)
|
|
25
25
|
|
|
26
|
-
Si **esta sesion** inspecciona el directorio del cambio
|
|
26
|
+
Si **esta sesion** inspecciona el directorio del cambio antes o despues de delegar, aplica **`refacil-prereqs/METHODOLOGY-CONTRACT.md` §8**.
|
|
27
|
+
|
|
28
|
+
### Paso 0.6: Construir briefing para el sub-agente (reduce tool calls del validator)
|
|
29
|
+
|
|
30
|
+
Antes de invocar al sub-agente, extrae el contexto que de otro modo el validator calcularía por su cuenta:
|
|
31
|
+
|
|
32
|
+
1. **Comando de test** — lee `refacil-prereqs/METHODOLOGY-CONTRACT.md` §3. Extrae el comando exacto.
|
|
33
|
+
|
|
34
|
+
2. **Criterios CA/CR** — si hay cambio activo, lee la especificacion en `openspec/changes/<changeName>/`:
|
|
35
|
+
- `specs.md` si existe, y/o archivos bajo `specs/` (recursivo).
|
|
36
|
+
- Extrae la lista de CA-XX (criterios de aceptacion) y CR-XX (criterios de rechazo) con su descripcion.
|
|
37
|
+
- Si no hay specs o el scope es `git-diff`, omite este campo.
|
|
38
|
+
|
|
39
|
+
3. **Archivos del scope** — ejecuta `git diff --name-only HEAD` para obtener los archivos modificados en este cambio.
|
|
40
|
+
|
|
41
|
+
Construye el bloque BRIEFING:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
BRIEFING:
|
|
45
|
+
changeName: <nombre o null si scope=git-diff>
|
|
46
|
+
testCommand: <comando exacto>
|
|
47
|
+
criteria:
|
|
48
|
+
acceptance:
|
|
49
|
+
- CA-01: <descripcion>
|
|
50
|
+
- CA-02: <descripcion>
|
|
51
|
+
rejection:
|
|
52
|
+
- CR-01: <descripcion>
|
|
53
|
+
changedFiles: [ruta/archivo-1.ts, ...]
|
|
54
|
+
mode: conciso | detailed
|
|
55
|
+
```
|
|
27
56
|
|
|
28
57
|
### Paso 1: Delegar al sub-agente refacil-validator
|
|
29
58
|
|
|
30
|
-
Invoca a `refacil-validator` pasandole
|
|
31
|
-
- El scope resuelto (nombre del cambio activo o rutas).
|
|
32
|
-
- Si el usuario pidio modo detallado, indicaselo (`mode: detailed`). Default: conciso.
|
|
59
|
+
Invoca a `refacil-validator` pasandole el BRIEFING del paso anterior.
|
|
33
60
|
|
|
34
61
|
El sub-agente:
|
|
62
|
+
- Usa `testCommand` del briefing directamente (sin buscarlo en METHODOLOGY-CONTRACT.md).
|
|
63
|
+
- Usa `criteria` del briefing para la verificacion (sin re-leer specs desde cero).
|
|
64
|
+
- Usa `changedFiles` para enfocar el scope de verificacion OpenSpec.
|
|
35
65
|
- Delega a OpenSpec verify para issues contra la spec.
|
|
36
|
-
-
|
|
66
|
+
- Corre los tests y verifica coverage.
|
|
37
67
|
- Opcionalmente consulta el bus cross-repo ante ambigüedades.
|
|
38
68
|
- Retorna reporte combinado + bloque JSON fenced como ` ```refacil-verify-result `.
|
|
39
69
|
|
|
@@ -47,9 +77,8 @@ Muestra el **reporte combinado** (todo lo anterior al bloque `refacil-verify-res
|
|
|
47
77
|
|
|
48
78
|
Parsea el bloque ` ```refacil-verify-result ` del sub-agente.
|
|
49
79
|
|
|
50
|
-
#### Si `result` es APROBADO
|
|
80
|
+
#### Si `result` es APROBADO:
|
|
51
81
|
|
|
52
|
-
Felicita y sugiere:
|
|
53
82
|
```
|
|
54
83
|
RESULTADO: APROBADO
|
|
55
84
|
|
|
@@ -59,7 +88,7 @@ Quieres que continue con `/refacil:review`?
|
|
|
59
88
|
|
|
60
89
|
#### Si `result` es REQUIERE CORRECCIONES:
|
|
61
90
|
|
|
62
|
-
Presenta los issues
|
|
91
|
+
Presenta los issues y pregunta:
|
|
63
92
|
|
|
64
93
|
```
|
|
65
94
|
RESULTADO: REQUIERE CORRECCIONES
|
|
@@ -70,33 +99,32 @@ Correcciones necesarias:
|
|
|
70
99
|
|
|
71
100
|
Quieres que aplique estas correcciones? (si/no)
|
|
72
101
|
- Si: aplicare los fixes y re-verificare automaticamente
|
|
73
|
-
- No: puedes corregirlos manualmente y luego
|
|
102
|
+
- No: puedes corregirlos manualmente y luego continuo con /refacil:verify
|
|
74
103
|
```
|
|
75
104
|
|
|
76
105
|
### Paso 4: Aplicar correcciones (si el usuario acepta)
|
|
77
106
|
|
|
78
107
|
**Solo aplica fixes despues de aprobacion explicita del usuario.**
|
|
79
108
|
|
|
80
|
-
1. Aplica SOLO las correcciones listadas — no agregar funcionalidad nueva, no refactorizar codigo no relacionado
|
|
81
|
-
2. Si hay tests que necesitan ajuste
|
|
82
|
-
3. Muestra
|
|
83
|
-
4. **Re-ejecuta automaticamente desde el Paso 1** (re-invoca al sub-agente) para confirmar que las correcciones resolvieron los issues.
|
|
84
|
-
5.
|
|
85
|
-
|
|
86
|
-
**Si el usuario no acepta:**
|
|
109
|
+
1. Aplica SOLO las correcciones listadas — no agregar funcionalidad nueva, no refactorizar codigo no relacionado.
|
|
110
|
+
2. Si hay tests que necesitan ajuste, ajustarlos tambien.
|
|
111
|
+
3. Muestra resumen de archivos modificados.
|
|
112
|
+
4. **Re-ejecuta automaticamente desde el Paso 1** (re-invoca al sub-agente con el mismo briefing) para confirmar que las correcciones resolvieron los issues.
|
|
113
|
+
5. Maximo **2 rondas** de correccion automatica. Si persisten issues, listarlos para correccion manual.
|
|
87
114
|
|
|
88
|
-
|
|
115
|
+
**Si el usuario no acepta:** lista los issues para correccion manual. Sugiere `/refacil:verify` de nuevo.
|
|
89
116
|
|
|
90
117
|
## Reglas
|
|
91
118
|
|
|
92
|
-
- **Siempre
|
|
93
|
-
- **
|
|
94
|
-
- **
|
|
95
|
-
- **
|
|
119
|
+
- **Siempre construye el briefing (Paso 0.6) antes de delegar** — reduce los tool calls del sub-agente.
|
|
120
|
+
- **Siempre delega al sub-agente** para el analisis. No repliques aqui la logica de lectura de specs ni de ejecucion de tests.
|
|
121
|
+
- **Dotfiles en `openspec/changes/`**: nunca afirmes ausencia de `.review-passed` sin `-a`; ver §8.
|
|
122
|
+
- **Las correcciones SOLO las aplica este wrapper** (Paso 4), despues de aprobacion explicita.
|
|
123
|
+
- **No muestres el bloque JSON al usuario**.
|
|
96
124
|
- **Las correcciones deben ser quirurgicas**: solo lo necesario para resolver los issues reportados.
|
|
97
125
|
- Maximo 2 rondas de correccion automatica antes de escalar a manual.
|
|
98
|
-
- Si el sub-agente retorno algo fuera de formato
|
|
99
|
-
- **Continuidad del flujo**: si el resultado es APROBADO y el usuario confirma afirmativamente
|
|
126
|
+
- Si el sub-agente retorno algo fuera de formato, informa: "El validator retorno un reporte no estructurado — continua manualmente."
|
|
127
|
+
- **Continuidad del flujo**: si el resultado es APROBADO y el usuario confirma afirmativamente, invocar inmediatamente el **Skill tool** con `skill: "refacil:review"`. (Ver `METHODOLOGY-CONTRACT.md §5`.)
|
|
100
128
|
|
|
101
129
|
## Ver tambien
|
|
102
130
|
|