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.
@@ -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 deteccion de stack, generacion y ejecucion en contexto aislado
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 delega la generacion y ejecucion de tests al sub-agente `refacil-tester`. El sub-agente corre en contexto aislado (no satura tu sesion principal con deteccion de stack, lectura de specs y ciclos de correccion) y retorna un reporte conciso + un bloque JSON con el resultado.
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 1 directamente.
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. No invoques al sub-agente con scope ambiguo.
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: Delegar al sub-agente refacil-tester
26
+ ### Paso 1 (solo modo openspec): Construir briefing
27
27
 
28
- Invoca al sub-agente `refacil-tester` pasandole:
29
- - `mode`: `openspec` o `file` (segun el paso anterior).
30
- - `changeName`: nombre del cambio activo (si `mode=openspec`).
31
- - `targetFile`: ruta del archivo (si `mode=file`).
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
- ### Paso 2: Presentar el reporte
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 (sin bloque JSON parseable), informa al usuario: "El tester retorno un reporte no estructurado — revisa los tests manualmente."
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 3: Continuidad del flujo
74
+ ### Paso 4: Continuidad del flujo (solo si tests pasaron)
48
75
 
49
- El sub-agente incluye en su reporte el estado (CUMPLE / NO CUMPLE). Despues de mostrarlo, agrega:
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 delega al sub-agente**. No repliques aqui la logica de deteccion de stack ni de generacion de tests.
59
- - **No invoques con scope ambiguo**. Si hay multiples cambios activos y no hay argumento claro, pide al usuario seleccionar primero.
60
- - **No muestres el bloque JSON al usuario**. Es solo metadata para parsear el resultado internamente si se necesita.
61
- - **Continuidad del flujo**: si el usuario confirma afirmativamente ("si", "ok", "dale", "continua", etc.) la pregunta de continuidad, 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`.)
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
 
@@ -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 delega el analisis pesado (lectura de specs + tests + archivos) al sub-agente `refacil-validator`, y maneja la interaccion con el usuario para aplicar correcciones cuando hay issues.
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 (listar archivos, confirmar precondiciones) **antes o despues** de delegar, aplica **`refacil-prereqs/METHODOLOGY-CONTRACT.md` §8**. El sub-agente `refacil-validator` sigue la misma regla.
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
- - Resuelve y corre el comando de tests del proyecto + coverage si aplica.
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 (sin issues CRITICAL ni WARNING):
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 (ya vienen en el reporte) y pregunta:
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, si quieres, continuo con /refacil:verify
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, no cambiar nada fuera del alcance de los issues reportados.
81
- 2. Si hay tests que necesitan ajuste por las correcciones, ajustarlos tambien.
82
- 3. Muestra un resumen breve de los archivos modificados.
83
- 4. **Re-ejecuta automaticamente desde el Paso 1** (re-invoca al sub-agente) para confirmar que las correcciones resolvieron los issues.
84
- 5. Si la re-verificacion encuentra nuevos issues, repite este ciclo (**maximo 2 rondas** de correccion automatica). Si despues de 2 rondas aun hay issues, lista los pendientes para correccion manual.
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
- Lista los issues para que el usuario los corrija manualmente. Sugiere `/refacil:verify` de nuevo cuando termine.
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 delega al sub-agente** para el analisis (pasos 1-3). No repliques aqui la logica de lectura de specs ni de ejecucion de tests.
93
- - **Dotfiles en `openspec/changes/`**: nunca afirmes ausencia de `.review-passed` (u otros `.…`) basandote solo en `ls` sin `-a`; ver `METHODOLOGY-CONTRACT.md` §8 y Paso 0.5.
94
- - **Las correcciones SOLO las aplica este wrapper** (Paso 4), despues de aprobacion explicita del usuario. El sub-agente es read-only.
95
- - **No muestres el bloque JSON al usuario**. Es solo metadata para parsear el resultado.
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 (sin bloque JSON parseable), informa al usuario: "El validator retorno un reporte no estructurado — continua manualmente con las correcciones."
99
- - **Continuidad del flujo**: si el resultado es APROBADO y el usuario confirma afirmativamente ("si", "ok", "dale", "continua", etc.) la pregunta de continuidad, invocar inmediatamente el **Skill tool** con `skill: "refacil:review"`. No describirlo en texto ni esperar que el usuario escriba `/refacil:review`. (Ver `METHODOLOGY-CONTRACT.md §5`.)
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