@saulwade/swl-ses 1.6.0 → 1.6.3
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/CLAUDE.md +32 -61
- package/README.md +4 -4
- package/agentes/_intent-spec.md +73 -0
- package/agentes/auto-evolucion-swl.md +24 -0
- package/agentes/cloud-infra-swl.md +25 -0
- package/agentes/datos-swl.md +24 -1
- package/agentes/devops-ci-swl.md +24 -0
- package/agentes/frontend-angular-swl.md +7 -7
- package/agentes/frontend-css-swl.md +4 -4
- package/agentes/frontend-react-swl.md +7 -7
- package/agentes/frontend-swl.md +9 -9
- package/agentes/frontend-tailwind-swl.md +4 -4
- package/agentes/migrador-swl.md +22 -0
- package/agentes/pagos-swl.md +25 -0
- package/agentes/release-manager-swl.md +24 -0
- package/agentes/rendimiento-swl.md +2 -2
- package/agentes/sre-swl.md +24 -0
- package/comandos/swl/brainstorm.md +1 -0
- package/comandos/swl/compactar.md +1 -1
- package/comandos/swl/discutir-fase.md +15 -1
- package/comandos/swl/mapear-codebase.md +1 -1
- package/comandos/swl/nemesis.md +29 -0
- package/comandos/swl/planear-fase.md +18 -2
- package/comandos/swl/verificar.md +4 -4
- package/habilidades/aprender-de-git-diff/SKILL.md +288 -0
- package/habilidades/aprendizaje-continuo/SKILL.md +7 -1
- package/habilidades/diseno-herramientas-agente/SKILL.md +17 -0
- package/habilidades/doc-sync/SKILL.md +441 -1
- package/habilidades/doubt-driven-review/SKILL.md +177 -171
- package/habilidades/feynman-auditor-swl/SKILL.md +129 -123
- package/habilidades/infra-github-actions/SKILL.md +172 -166
- package/habilidades/meta-skills-estandar/SKILL.md +6 -0
- package/habilidades/meta-skills-estandar/recursos/skill-judge-rubrica.md +281 -0
- package/habilidades/meta-skills-estandar/recursos/skills-as-agents.md +163 -163
- package/habilidades/nemesis-evaluacion-json/SKILL.md +5 -0
- package/habilidades/nemesis-redistribuir/SKILL.md +5 -0
- package/habilidades/node-experto/SKILL.md +197 -3
- package/habilidades/prevencion-racionalizacion/SKILL.md +1 -0
- package/habilidades/privacy-memoria/SKILL.md +1 -0
- package/habilidades/proceso-autoverificacion-evidencias/SKILL.md +258 -0
- package/habilidades/proceso-confianza-pre-implementacion/SKILL.md +246 -0
- package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -0
- package/habilidades/proceso-ddia-streaming/SKILL.md +231 -0
- package/habilidades/proceso-intent-engineering/SKILL.md +269 -0
- package/habilidades/reducir-entropia/SKILL.md +219 -0
- package/habilidades/sre-patrones/SKILL.md +1 -1
- package/habilidades/state-inconsistency-auditor-swl/SKILL.md +172 -166
- package/habilidades/tdd-workflow/SKILL.md +178 -3
- package/habilidades/verificacion-evidencia/SKILL.md +1 -0
- package/habilidades/web-fetcher-routing/SKILL.md +81 -75
- package/habilidades/workflow-claude-code/SKILL.md +2 -2
- package/hooks/lib/task-budget.js +218 -0
- package/hooks/validar-intent-spec.js +222 -0
- package/manifiestos/hooks-config.json +9 -0
- package/manifiestos/modulos.json +12 -2
- package/manifiestos/skills-lock.json +1191 -1142
- package/package.json +5 -3
- package/plugin.json +9 -2
- package/reglas/auditorias-documentales-estructurales.md +205 -0
- package/reglas/fragmentos-compartidos.md +26 -0
- package/reglas/intent-engineering.md +214 -0
- package/reglas/registro-componentes-nuevos.md +38 -0
- package/schemas/agent-frontmatter.schema.json +294 -167
- package/schemas/agent-message.schema.json +73 -53
- package/schemas/agent-output-implementacion.schema.json +114 -85
- package/schemas/agent-output-planificacion.schema.json +150 -113
- package/schemas/agent-output-review.schema.json +98 -78
- package/schemas/diary-entry.schema.json +42 -10
- package/schemas/hook-profiles.schema.json +54 -39
- package/schemas/hooks-config.schema.json +89 -74
- package/schemas/instinct.schema.json +152 -115
- package/schemas/modulos.schema.json +38 -29
- package/schemas/perfiles.schema.json +36 -28
- package/schemas/plugin.schema.json +77 -64
- package/schemas/skill-evals.schema.json +119 -95
- package/schemas/skill-frontmatter.schema.json +245 -170
- package/scripts/generar-inventario.js +452 -420
- package/scripts/lib/schema-version.js +164 -0
- package/scripts/validar-manifest.js +1 -1
- package/scripts/validar.js +3 -2
- package/scripts/verificar-docs-vs-codigo.js +654 -425
- package/scripts/verificar-evolucion.js +19 -3
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: proceso-autoverificacion-evidencias
|
|
3
|
+
description: >
|
|
4
|
+
Protocolo de auto-verificación post-implementación basado en las Four
|
|
5
|
+
Questions (tests passing / requirements met / assumptions verified /
|
|
6
|
+
evidence exists) + 7 red flags de alucinación. Cargar al cerrar una
|
|
7
|
+
feature, bugfix o refactor — antes de reportar "completado" al usuario,
|
|
8
|
+
antes del commit final, antes de mergear. Adaptación del SelfCheckProtocol
|
|
9
|
+
de SuperClaude_Framework, accuracy reportada 94% en detección de claims
|
|
10
|
+
no verificadas.
|
|
11
|
+
version: "1.0.0"
|
|
12
|
+
herramientasPermitidas: [Read, Grep, Glob, Bash]
|
|
13
|
+
exclusiones:
|
|
14
|
+
- "No cargar para cambios triviales (typo, formato, comentario) — los checks no aportan valor."
|
|
15
|
+
- "No cargar en mitad de la implementación; este skill aplica al CIERRE. Para verificación pre-implementación usar `proceso-confianza-pre-implementacion`."
|
|
16
|
+
- "No cargar si ya se ejecutó `/swl:verificar` o el revisor de código emitió veredicto APROBADO — esos cubren el rol al nivel de fase/sesión."
|
|
17
|
+
- "No cargar para trabajo de research/discovery donde no hay implementación que cerrar."
|
|
18
|
+
evolvable: true
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Habilidad: Auto-verificación con evidencias
|
|
22
|
+
|
|
23
|
+
## Propósito
|
|
24
|
+
|
|
25
|
+
Cerrar el trabajo con evidencias verificables, no con claims. El material
|
|
26
|
+
fuente (SuperClaude_Framework `pm_agent/self_check.py`) reporta 94% de
|
|
27
|
+
accuracy detectando los patrones de alucinación más comunes ("tests pass"
|
|
28
|
+
sin mostrar output, "implementación completa" con tests rotos, lenguaje
|
|
29
|
+
de incertidumbre). En SWL este patrón complementa la regla
|
|
30
|
+
`verificar-citas-normativas.md` (que cubre citas durante el trabajo) con
|
|
31
|
+
el protocolo de cierre obligatorio.
|
|
32
|
+
|
|
33
|
+
## Cuándo cargar
|
|
34
|
+
|
|
35
|
+
- Antes de reportar "completado" al usuario tras una implementación.
|
|
36
|
+
- Antes del commit final de una feature/bugfix/refactor.
|
|
37
|
+
- Antes de mergear un PR.
|
|
38
|
+
- Cuando un sub-agente reporta éxito y el agente padre debe validar.
|
|
39
|
+
- Cuando el usuario pregunta "¿está terminado?" y el agente está a punto
|
|
40
|
+
de responder "sí" — pasar por las Four Questions primero.
|
|
41
|
+
|
|
42
|
+
## Cuándo NO cargar
|
|
43
|
+
|
|
44
|
+
Listado en el campo `exclusiones` del frontmatter — incluye cambios
|
|
45
|
+
triviales, mitad de implementación, casos donde `/swl:verificar` o el
|
|
46
|
+
revisor ya emitió veredicto.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Las Four Questions
|
|
51
|
+
|
|
52
|
+
El protocolo es **mandatorio** — todas las cuatro preguntas se responden
|
|
53
|
+
explícitamente. Si una se omite, el trabajo NO está cerrado.
|
|
54
|
+
|
|
55
|
+
### Pregunta 1 — ¿Pasan todos los tests?
|
|
56
|
+
|
|
57
|
+
No basta con afirmar "los tests pasan". Hay que **mostrar el output real**
|
|
58
|
+
del runner.
|
|
59
|
+
|
|
60
|
+
- Ejecutar el suite con el runner del proyecto (`npm test`, `pytest`,
|
|
61
|
+
`cargo test`, etc.).
|
|
62
|
+
- Mostrar las últimas 20-50 líneas del output que incluyen el resumen
|
|
63
|
+
("X passed, 0 failed").
|
|
64
|
+
- Si hay tests skipped, indicar el conteo y la razón documentada.
|
|
65
|
+
- Si los tests aún no se han escrito (TDD inverso, fix urgente), declararlo
|
|
66
|
+
explícitamente con plan de cierre.
|
|
67
|
+
|
|
68
|
+
**Anti-patrón crítico**: "tests pasan" sin pegar el output. Es la red
|
|
69
|
+
flag #1 de alucinación detectada por el patrón Reflexion.
|
|
70
|
+
|
|
71
|
+
### Pregunta 2 — ¿Se cumplen todos los requisitos?
|
|
72
|
+
|
|
73
|
+
Comparar requirements vs implementación, item por item:
|
|
74
|
+
|
|
75
|
+
- Listar los requisitos originales del usuario o del plan.
|
|
76
|
+
- Marcar cada uno: ✅ Hecho / ⚠️ Parcial / ❌ Pendiente.
|
|
77
|
+
- Si hay parciales o pendientes: declarar por qué y cuándo se cierran.
|
|
78
|
+
- No declarar "completo" si quedan ❌ no negociados.
|
|
79
|
+
|
|
80
|
+
La regla `arreglar-al-detectar.md` prohíbe deuda silenciosa: si algo se
|
|
81
|
+
deja para "después", se documenta como DA formal con trigger verificable,
|
|
82
|
+
no como "lo dejo pendiente".
|
|
83
|
+
|
|
84
|
+
### Pregunta 3 — ¿Hay suposiciones sin verificar?
|
|
85
|
+
|
|
86
|
+
Toda suposición técnica usada durante la implementación debe estar
|
|
87
|
+
verificada contra fuente autoritativa:
|
|
88
|
+
|
|
89
|
+
- Suposiciones sobre APIs internas: verificadas leyendo el módulo, no por
|
|
90
|
+
nombre.
|
|
91
|
+
- Suposiciones sobre librerías externas: verificadas en Context7 o doc
|
|
92
|
+
oficial (regla `usar-context7.md`).
|
|
93
|
+
- Suposiciones sobre estructura del codebase: verificadas con `Grep`/`Glob`.
|
|
94
|
+
- Suposiciones sobre comportamiento esperado del sistema: verificadas con
|
|
95
|
+
test o evidencia de ejecución.
|
|
96
|
+
|
|
97
|
+
**Anti-patrón**: dejar "probablemente funciona", "debería andar", "creo
|
|
98
|
+
que sí". Lenguaje de incertidumbre = red flag #7.
|
|
99
|
+
|
|
100
|
+
### Pregunta 4 — ¿Hay evidencia?
|
|
101
|
+
|
|
102
|
+
Evidencia concreta en tres ejes:
|
|
103
|
+
|
|
104
|
+
- **Test results**: output del runner pegado (no resumen propio).
|
|
105
|
+
- **Code changes**: lista de archivos modificados (`git diff --stat`).
|
|
106
|
+
- **Validation**: lint, typecheck, build exitosos — output pegado.
|
|
107
|
+
|
|
108
|
+
Si falta cualquiera de los tres, el trabajo NO está cerrado.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Las 7 Red Flags de alucinación
|
|
113
|
+
|
|
114
|
+
Patrones que indican que el agente está "cerrando sin verificar". Si el
|
|
115
|
+
agente detecta cualquiera de estos en su propio output, debe corregir
|
|
116
|
+
ANTES de reportar:
|
|
117
|
+
|
|
118
|
+
1. **"Tests pass" sin output** — afirmación sin evidencia.
|
|
119
|
+
2. **"Everything works" sin evidencia** — claim de completitud sin pruebas.
|
|
120
|
+
3. **"Implementation complete" con tests rotos** — contradicción directa.
|
|
121
|
+
4. **Saltar mensajes de error** — el runner reportó errores y el agente
|
|
122
|
+
los ignora en el reporte.
|
|
123
|
+
5. **Ignorar warnings** — warnings tratados como ruido en lugar de señales
|
|
124
|
+
accionables.
|
|
125
|
+
6. **Esconder fallos** — reportar éxitos parciales como totales.
|
|
126
|
+
7. **Lenguaje de incertidumbre** — "probably", "should work", "might
|
|
127
|
+
work" en un reporte de cierre.
|
|
128
|
+
|
|
129
|
+
Cada red flag detectada bloquea el cierre hasta que se resuelva.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Formato de reporte obligatorio
|
|
134
|
+
|
|
135
|
+
Al cerrar el trabajo, emitir al usuario (o registrar en
|
|
136
|
+
`.planning/sessions/`) el siguiente formato:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
### Auto-verificación de cierre
|
|
140
|
+
|
|
141
|
+
**Pregunta 1 — Tests passing?**
|
|
142
|
+
<output del runner pegado, últimas 20-50 líneas con resumen>
|
|
143
|
+
Estado: ✅ N passed / ⚠️ M skipped con razón / ❌ K failed
|
|
144
|
+
|
|
145
|
+
**Pregunta 2 — Requirements met?**
|
|
146
|
+
- ✅ Requisito A: <evidencia / referencia a commit / archivo:línea>
|
|
147
|
+
- ✅ Requisito B: <evidencia>
|
|
148
|
+
- ⚠️ Requisito C: parcial — <qué falta y cuándo cierra>
|
|
149
|
+
- ❌ Requisito D: pendiente — DA formal en `.planning/...` con trigger X
|
|
150
|
+
|
|
151
|
+
**Pregunta 3 — Assumptions verified?**
|
|
152
|
+
- ✅ Suposición X verificada en <fuente>
|
|
153
|
+
- ✅ Suposición Y verificada con <comando/test>
|
|
154
|
+
|
|
155
|
+
**Pregunta 4 — Evidence?**
|
|
156
|
+
- Test results: <pegado arriba>
|
|
157
|
+
- Code changes: `git diff --stat` → <output>
|
|
158
|
+
- Validation: lint/typecheck/build → <output o "no aplica al proyecto">
|
|
159
|
+
|
|
160
|
+
**Red flags detectadas**: <lista o "ninguna">
|
|
161
|
+
|
|
162
|
+
**Veredicto**: ✅ Cerrado con evidencias / ❌ Bloqueado por <razón>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Si el veredicto es ❌, el agente NO reporta "completado" al usuario.
|
|
166
|
+
Reporta el bloqueo y propone el siguiente paso.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Reglas obligatorias
|
|
171
|
+
|
|
172
|
+
1. **Evidencia, no claims**: cualquier afirmación de éxito requiere output
|
|
173
|
+
pegado, no resumen propio. **Por qué**: el resumen propio puede ser
|
|
174
|
+
alucinado; el output real del runner no.
|
|
175
|
+
|
|
176
|
+
2. **Las 4 preguntas son AND, no OR**: las cuatro deben pasar para cerrar.
|
|
177
|
+
No se puede compensar el fallo de una con el éxito de las otras.
|
|
178
|
+
**Por qué**: la regla `arreglar-al-detectar.md` exige resolver todo,
|
|
179
|
+
no esquivar; cerrar con 3 de 4 es deuda silenciosa.
|
|
180
|
+
|
|
181
|
+
3. **Sin lenguaje de incertidumbre en el reporte**: las palabras
|
|
182
|
+
"probablemente", "creo que", "debería", "tal vez" están prohibidas en
|
|
183
|
+
el output de cierre. Si hay incertidumbre, verificarla; si no se puede
|
|
184
|
+
verificar, declararla explícitamente como gap con plan de cierre.
|
|
185
|
+
|
|
186
|
+
4. **Re-leer el propio reporte**: antes de enviarlo, escanear las 7 red
|
|
187
|
+
flags. La detección es self-applied — si el agente no se audita, el
|
|
188
|
+
skill no funciona.
|
|
189
|
+
|
|
190
|
+
5. **Si el cierre falla, NO ocultar**: reportar el fallo al usuario en
|
|
191
|
+
el mismo turno (regla `arreglar-al-detectar.md`). "Detecté que el
|
|
192
|
+
Check N falla porque X — voy a corregir Y" es la respuesta correcta.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Relación con otras herramientas SWL
|
|
197
|
+
|
|
198
|
+
- **Regla `verificar-citas-normativas.md`**: aplica DURANTE el trabajo a
|
|
199
|
+
cada cita verificable (archivo:línea, artículo de ley, etc.). Este
|
|
200
|
+
skill aplica al CIERRE del trabajo completo.
|
|
201
|
+
- **Skill `proceso-confianza-pre-implementacion`**: aplica al INICIO con
|
|
202
|
+
las 5 dimensiones de confianza. Este aplica al CIERRE con las 4
|
|
203
|
+
preguntas. Forman par.
|
|
204
|
+
- **Skill `verificar-trabajo`**: el agente Verificador SWL lo usa para
|
|
205
|
+
validación de fase con goal-backward 4 niveles. Si se ejecutó
|
|
206
|
+
`/swl:verificar` y aprobó, este skill no es necesario (cobertura
|
|
207
|
+
redundante).
|
|
208
|
+
- **`revisor-codigo-swl`**: emite veredicto APROBADO/RECHAZADO sobre
|
|
209
|
+
código terminado. Si aprobó, este skill no es necesario.
|
|
210
|
+
- **Skill `monitor-ci`** (regla global): aplica a CI post-push. Este
|
|
211
|
+
skill aplica antes del push.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Ejemplo de uso
|
|
216
|
+
|
|
217
|
+
Tras implementar el endpoint POST /facturas/cancelar:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
### Auto-verificación de cierre
|
|
221
|
+
|
|
222
|
+
**Pregunta 1 — Tests passing?**
|
|
223
|
+
|
|
224
|
+
PASS tests/api/facturas-cancelar.test.ts
|
|
225
|
+
PASS tests/services/factura-service.test.ts
|
|
226
|
+
Tests: 23 passed, 0 failed, 1 skipped
|
|
227
|
+
Time: 4.2 s
|
|
228
|
+
|
|
229
|
+
Estado: ✅ 23 passed, 1 skipped (test de integración E2E pendiente de
|
|
230
|
+
fixture de pago — no bloqueante, documentado en TODO.md).
|
|
231
|
+
|
|
232
|
+
**Pregunta 2 — Requirements met?**
|
|
233
|
+
- ✅ Endpoint POST /facturas/{id}/cancelar: implementado en
|
|
234
|
+
`backend/app/api/facturas.py:142`.
|
|
235
|
+
- ✅ Validación de estatus permitido (solo "pendiente" o "emitida"):
|
|
236
|
+
implementada en `factura_service.py:88-101`.
|
|
237
|
+
- ✅ Auditoría: registro en tabla `factura_historial`: confirmado en
|
|
238
|
+
test `factura-cancelar-audit.test.py:55`.
|
|
239
|
+
|
|
240
|
+
**Pregunta 3 — Assumptions verified?**
|
|
241
|
+
- ✅ Modelo Factura tiene método `puede_cancelarse()`: confirmado leyendo
|
|
242
|
+
`models/factura.py:120-135`.
|
|
243
|
+
- ✅ FastAPI `Depends(get_db)` es la inyección estándar del proyecto:
|
|
244
|
+
confirmado en ADR-0008 y 12 endpoints existentes.
|
|
245
|
+
|
|
246
|
+
**Pregunta 4 — Evidence?**
|
|
247
|
+
- Test results: pegado arriba.
|
|
248
|
+
- Code changes:
|
|
249
|
+
3 files changed, 84 insertions(+), 2 deletions(-)
|
|
250
|
+
backend/app/api/facturas.py | 32 ++++++++++++++++++--
|
|
251
|
+
backend/app/services/factura_service.py | 18 +++++++++++
|
|
252
|
+
backend/tests/api/facturas-cancelar.test.ts | 36 +++++++++++++++++++
|
|
253
|
+
- Validation: `ruff check .` → 0 errors, `mypy backend/` → 0 errors.
|
|
254
|
+
|
|
255
|
+
**Red flags detectadas**: ninguna.
|
|
256
|
+
|
|
257
|
+
**Veredicto**: ✅ Cerrado con evidencias.
|
|
258
|
+
```
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: proceso-confianza-pre-implementacion
|
|
3
|
+
description: >
|
|
4
|
+
Evaluación de confianza pre-implementación con scoring de 5 dimensiones
|
|
5
|
+
(sin duplicación 25%, cumplimiento de arquitectura 25%, docs oficiales 20%,
|
|
6
|
+
referencias OSS 15%, causa raíz identificada 15%) y umbrales 0.9 / 0.7 / <0.7.
|
|
7
|
+
Cargar antes de escribir la primera línea de una feature, refactor o fix no
|
|
8
|
+
trivial — especialmente cuando la tarea cruza >1 archivo o introduce un patrón
|
|
9
|
+
nuevo. Adaptación del patrón ConfidenceChecker de SuperClaude_Framework.
|
|
10
|
+
version: "1.0.0"
|
|
11
|
+
herramientasPermitidas: [Read, Grep, Glob, Bash]
|
|
12
|
+
exclusiones:
|
|
13
|
+
- "No cargar para fixes triviales (typo, rename, comentario) — el overhead supera el valor."
|
|
14
|
+
- "No cargar cuando ya se ejecutó `/swl:discutir-fase` y existe `CONTEXTO.md` con decisiones cerradas — ese flujo ya cubre la verificación previa."
|
|
15
|
+
- "No cargar para tareas exploratorias (`/swl:explorar`, scouting de codebase) donde el objetivo es entender, no implementar."
|
|
16
|
+
- "No cargar para fixes urgentes de producción con incidente activo — aplicar fix mínimo, este protocolo queda para el post-mortem."
|
|
17
|
+
evolvable: true
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Habilidad: Evaluación de confianza pre-implementación
|
|
21
|
+
|
|
22
|
+
## Propósito
|
|
23
|
+
|
|
24
|
+
Detener el "wrong-direction execution" antes de empezar. El costo de implementar
|
|
25
|
+
una solución incorrecta supera siempre el costo de la verificación previa: el
|
|
26
|
+
material analizado (SuperClaude_Framework `pm_agent/confidence.py`) reporta
|
|
27
|
+
ROI **25-250×** en token savings cuando este check detiene una iteración
|
|
28
|
+
equivocada. SWL ya tiene la regla `analisis-previo-tareas-grandes.md` con el
|
|
29
|
+
espíritu correcto; este skill la operacionaliza con scoring objetivo y umbrales
|
|
30
|
+
de acción.
|
|
31
|
+
|
|
32
|
+
## Cuándo cargar
|
|
33
|
+
|
|
34
|
+
- Antes de escribir la primera línea de una feature nueva > 50 LOC.
|
|
35
|
+
- Antes de un refactor que cruza >1 archivo o >1 módulo.
|
|
36
|
+
- Antes de fix de bug donde la causa raíz no está identificada todavía.
|
|
37
|
+
- Antes de adoptar una librería externa nueva.
|
|
38
|
+
- Cuando el usuario dice "implementa X" sin contexto previo y el agente
|
|
39
|
+
no tiene certeza ≥90% de qué hacer.
|
|
40
|
+
|
|
41
|
+
## Cuándo NO cargar
|
|
42
|
+
|
|
43
|
+
Listado en el campo `exclusiones` del frontmatter — incluye fixes triviales,
|
|
44
|
+
fases con `CONTEXTO.md` ya cerrado, tareas exploratorias e incidentes
|
|
45
|
+
urgentes.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Protocolo de evaluación (5 checks ponderados)
|
|
50
|
+
|
|
51
|
+
Antes de tocar código, el agente responde estos 5 checks. Cada uno aporta una
|
|
52
|
+
porción del score total (0.0 a 1.0).
|
|
53
|
+
|
|
54
|
+
### Check 1 — Sin duplicación (peso 0.25)
|
|
55
|
+
|
|
56
|
+
¿Existe ya en el codebase una función, clase, módulo o utilidad que resuelva
|
|
57
|
+
el mismo problema?
|
|
58
|
+
|
|
59
|
+
- Ejecutar `Grep` con palabras clave del nombre tentativo de la nueva entidad.
|
|
60
|
+
- Revisar `INVENTARIO.md` para componentes SWL ya registrados.
|
|
61
|
+
- Buscar imports/usos que sugieran que ya hay solución.
|
|
62
|
+
|
|
63
|
+
**Pasa** si la búsqueda confirma que no existe equivalente o el equivalente
|
|
64
|
+
está deprecado/marcado para eliminación. **No pasa** si hay duda o si existe
|
|
65
|
+
algo que con extensión menor cubriría el caso.
|
|
66
|
+
|
|
67
|
+
### Check 2 — Cumplimiento de arquitectura (peso 0.25)
|
|
68
|
+
|
|
69
|
+
¿La solución propuesta usa el stack y los patrones ya definidos del proyecto?
|
|
70
|
+
|
|
71
|
+
- Leer `CLAUDE.md` del proyecto (sección "Stack" y "Convenciones").
|
|
72
|
+
- Revisar ADRs vigentes (`docs/adr/` o `.planning/adrs/`).
|
|
73
|
+
- Verificar reglas globales (`~/.claude/rules/`) y del proyecto (`reglas/`).
|
|
74
|
+
|
|
75
|
+
**Pasa** si la solución se alinea con el stack declarado y no contradice
|
|
76
|
+
ningún ADR vigente. **No pasa** si introduce dependencia nueva no justificada,
|
|
77
|
+
si rompe una invariante documentada o si elige un patrón distinto al que el
|
|
78
|
+
proyecto ya estandariza para el mismo problema.
|
|
79
|
+
|
|
80
|
+
### Check 3 — Documentación oficial verificada (peso 0.20)
|
|
81
|
+
|
|
82
|
+
¿Se consultó documentación oficial actualizada de la librería/API/patrón
|
|
83
|
+
relevante?
|
|
84
|
+
|
|
85
|
+
- Para librerías de terceros: regla `usar-context7.md` obliga consultar
|
|
86
|
+
Context7 antes de generar código que las use.
|
|
87
|
+
- Para APIs internas: leer el módulo objetivo, no asumir su contrato por
|
|
88
|
+
el nombre.
|
|
89
|
+
- Para patrones del framework: documentación oficial vigente (no copiar
|
|
90
|
+
ejemplos de StackOverflow sin verificar versión).
|
|
91
|
+
|
|
92
|
+
**Pasa** si la doc oficial está leída y la API/patrón coincide con lo
|
|
93
|
+
planeado. **No pasa** si se asume la API por memoria del modelo o si la
|
|
94
|
+
documentación está desactualizada.
|
|
95
|
+
|
|
96
|
+
### Check 4 — Referencia OSS funcional (peso 0.15)
|
|
97
|
+
|
|
98
|
+
¿Existe una implementación open-source madura que resuelva el problema y
|
|
99
|
+
se haya consultado?
|
|
100
|
+
|
|
101
|
+
- Buscar en repos de referencia (`temp/`, `respositorios-git/`, GitHub).
|
|
102
|
+
- Si hay implementación OSS validada, su patrón es la base; SWL adapta,
|
|
103
|
+
no reescribe.
|
|
104
|
+
- Si no hay OSS de referencia, documentar **por qué** se prefiere solución
|
|
105
|
+
custom.
|
|
106
|
+
|
|
107
|
+
**Pasa** si se identificó OSS de referencia o se justificó la ausencia.
|
|
108
|
+
**No pasa** si simplemente no se buscó.
|
|
109
|
+
|
|
110
|
+
### Check 5 — Causa raíz identificada (peso 0.15)
|
|
111
|
+
|
|
112
|
+
Aplicable a bugfixes y refactors motivados por un problema observado.
|
|
113
|
+
¿Se identificó la causa raíz con certeza, o se está parchando un síntoma?
|
|
114
|
+
|
|
115
|
+
- Reproducir el bug en localhost o con test mínimo.
|
|
116
|
+
- Aislar la línea/función responsable, no solo el módulo.
|
|
117
|
+
- Verificar que la solución elimina la causa, no esconde el síntoma.
|
|
118
|
+
|
|
119
|
+
**Pasa** si la causa raíz está localizada con archivo:línea o función
|
|
120
|
+
específica, sin lenguaje vago ("posiblemente", "creo que", "tal vez").
|
|
121
|
+
**No pasa** si hay incertidumbre o si el fix es "agregar try/catch para que
|
|
122
|
+
no falle".
|
|
123
|
+
|
|
124
|
+
Para tareas que no son bugfix (features nuevas, refactors planeados),
|
|
125
|
+
este check se da por pasado automáticamente — pero documentar en el
|
|
126
|
+
output que "no aplica causa raíz, es trabajo nuevo".
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Umbrales y acción recomendada
|
|
131
|
+
|
|
132
|
+
Tras sumar los pesos de los checks que pasan:
|
|
133
|
+
|
|
134
|
+
| Score | Nivel | Acción |
|
|
135
|
+
|---|---|---|
|
|
136
|
+
| **≥ 0.9** | Alta confianza | Proceder con la implementación. La inversión de los checks ya está pagada. |
|
|
137
|
+
| **0.7 – 0.89** | Media confianza | **No implementar todavía**. Presentar al usuario las opciones específicas que cierran los gaps. Esperar elección. |
|
|
138
|
+
| **< 0.7** | Baja confianza | **DETENERSE**. La investigación está incompleta. Volver a investigar — no implementar bajo este nivel. |
|
|
139
|
+
|
|
140
|
+
El skill `analisis-previo-tareas-grandes` aplica cuando el score es 0.7-0.89
|
|
141
|
+
y la tarea es grande: produce tabla comparativa + 3 opciones para el usuario.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Formato de reporte obligatorio
|
|
146
|
+
|
|
147
|
+
Antes de cualquier escritura de código, emitir al usuario (o registrar en
|
|
148
|
+
`.planning/sessions/`) el siguiente formato:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
### Confianza pre-implementación
|
|
152
|
+
|
|
153
|
+
- ✅/❌ Check 1 — Sin duplicación: <descripción de qué se buscó y resultado>
|
|
154
|
+
- ✅/❌ Check 2 — Arquitectura: <ADRs/reglas/stack verificados>
|
|
155
|
+
- ✅/❌ Check 3 — Docs oficiales: <fuente consultada o "no aplica">
|
|
156
|
+
- ✅/❌ Check 4 — Referencia OSS: <repo/módulo de referencia o justificación>
|
|
157
|
+
- ✅/❌ Check 5 — Causa raíz: <archivo:línea o "no aplica (trabajo nuevo)">
|
|
158
|
+
|
|
159
|
+
**Score**: 0.XX
|
|
160
|
+
**Nivel**: Alto / Medio / Bajo
|
|
161
|
+
**Acción**: <Procedo / Presento opciones / Detengo y re-investigo>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
El reporte NO es opcional cuando el skill se carga. Si el agente decide
|
|
165
|
+
saltarlo "por brevedad", está violando el contrato del skill — y la regla
|
|
166
|
+
`debatir-antes-de-aceptar.md` exige justificar la omisión, no esquivarla.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Reglas obligatorias
|
|
171
|
+
|
|
172
|
+
1. **Score honesto**: no inflar checks "para superar el umbral". Si un check
|
|
173
|
+
no se hizo, marcar ❌. **Por qué**: inflar destruye el ROI del 25-250× —
|
|
174
|
+
un score artificial alto hace que el agente proceda con baja confianza
|
|
175
|
+
real, y el costo de la corrección posterior anula el ahorro.
|
|
176
|
+
|
|
177
|
+
2. **Reportar antes de implementar**: el reporte se entrega ANTES del primer
|
|
178
|
+
`Write` o `Edit`, no después. **Por qué**: si se reporta después es
|
|
179
|
+
justificación, no verificación.
|
|
180
|
+
|
|
181
|
+
3. **No saltar checks "porque obvio"**: el Check 1 (duplicación) es el más
|
|
182
|
+
tentador de saltar porque "obvio que no existe". `Grep` es de 2 segundos;
|
|
183
|
+
la duplicación silenciosa cuesta horas (ver `arreglar-al-detectar.md`).
|
|
184
|
+
|
|
185
|
+
4. **Lenguaje específico, no vago**: cuando se marca ✅ un check, decir QUÉ
|
|
186
|
+
se verificó. "Grep en `backend/auth/` con patrón `verifyToken` — 0
|
|
187
|
+
resultados" es válido. "Revisé que no existe" no.
|
|
188
|
+
|
|
189
|
+
5. **Si el usuario insiste en proceder con score bajo**, la regla
|
|
190
|
+
`debatir-antes-de-aceptar.md` aplica: presentar el costo conocido,
|
|
191
|
+
esperar confirmación informada, registrar la excepción en la sesión.
|
|
192
|
+
No proceder silenciosamente.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Relación con otras herramientas SWL
|
|
197
|
+
|
|
198
|
+
- **Skill `analisis-previo-tareas-grandes` (regla global)**: cubre el caso
|
|
199
|
+
específico de tarea grande con score 0.7-0.89. Produce tabla comparativa
|
|
200
|
+
y 3 opciones. Este skill (confianza pre-implementación) es más general:
|
|
201
|
+
cubre cualquier tarea no trivial.
|
|
202
|
+
- **Skill `proceso-autoverificacion-evidencias`**: aplica al CIERRE del
|
|
203
|
+
trabajo (post-implementación), con las Four Questions. Este skill aplica
|
|
204
|
+
al INICIO.
|
|
205
|
+
- **Skill `discutir-fase`**: cuando hay HOJA-RUTA.md y CONTEXTO.md formal,
|
|
206
|
+
ese flujo absorbe el rol de este skill — no cargar ambos.
|
|
207
|
+
- **Regla `verificar-citas-normativas.md`**: aplica a citas verificables
|
|
208
|
+
durante el trabajo. Este skill aplica al inicio del trabajo.
|
|
209
|
+
- **Skill `confidence-check` (oficial SuperClaude)**: si SuperClaude está
|
|
210
|
+
instalado en el sistema, el skill oficial coexiste. Este skill SWL es
|
|
211
|
+
la versión integrada con el resto del flujo SWL (CONTEXTO.md, ADRs,
|
|
212
|
+
`_userland/`, `arreglar-al-detectar.md`). Preferir el SWL dentro de
|
|
213
|
+
proyectos SWL.
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Ejemplo de uso
|
|
218
|
+
|
|
219
|
+
Usuario: *"implementa un endpoint POST /facturas/cancelar"*.
|
|
220
|
+
|
|
221
|
+
Agente carga este skill antes del primer `Write`:
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
### Confianza pre-implementación
|
|
225
|
+
|
|
226
|
+
- ✅ Check 1 — Sin duplicación: Grep "cancelar.*factura" en backend/app/ → 0 resultados.
|
|
227
|
+
No existe endpoint equivalente. INVENTARIO.md confirma sin overlap.
|
|
228
|
+
- ✅ Check 2 — Arquitectura: CLAUDE.md confirma FastAPI + SQLAlchemy async.
|
|
229
|
+
ADR-0008 establece convención de endpoints "/recursos/accion" para
|
|
230
|
+
acciones que no mapean a CRUD. Esta solución cumple.
|
|
231
|
+
- ✅ Check 3 — Docs oficiales: leí docs/endpoints-existentes/facturas.md;
|
|
232
|
+
el modelo Factura ya tiene método `puede_cancelarse()`.
|
|
233
|
+
- ❌ Check 4 — Referencia OSS: no busqué; es lógica de negocio interna.
|
|
234
|
+
Justificación: no aplica patrón OSS estándar — es flujo del dominio.
|
|
235
|
+
- ✅ Check 5 — Causa raíz: no aplica (trabajo nuevo, no bugfix).
|
|
236
|
+
|
|
237
|
+
**Score**: 0.85 (5×0.25+0.20+0+0.15 = pasan 4 de 5, falla Check 4
|
|
238
|
+
con justificación aceptable)
|
|
239
|
+
**Nivel**: Medio (0.7-0.89)
|
|
240
|
+
**Acción**: Presento opciones al usuario antes de implementar.
|
|
241
|
+
|
|
242
|
+
¿Procedo con la implementación directa, o prefieres que valide primero
|
|
243
|
+
con un test de aceptación escrito (TDD)?
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
El usuario decide, no el agente. Score medio → preguntar.
|