@saulwade/swl-ses 1.6.1 → 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.
Files changed (50) hide show
  1. package/CLAUDE.md +2 -2
  2. package/README.md +4 -4
  3. package/agentes/_intent-spec.md +73 -0
  4. package/agentes/auto-evolucion-swl.md +24 -0
  5. package/agentes/cloud-infra-swl.md +25 -0
  6. package/agentes/datos-swl.md +23 -0
  7. package/agentes/devops-ci-swl.md +24 -0
  8. package/agentes/migrador-swl.md +22 -0
  9. package/agentes/pagos-swl.md +25 -0
  10. package/agentes/release-manager-swl.md +24 -0
  11. package/agentes/sre-swl.md +24 -0
  12. package/comandos/swl/planear-fase.md +16 -0
  13. package/habilidades/aprender-de-git-diff/SKILL.md +288 -0
  14. package/habilidades/diseno-herramientas-agente/SKILL.md +17 -1
  15. package/habilidades/meta-skills-estandar/SKILL.md +6 -0
  16. package/habilidades/meta-skills-estandar/recursos/skill-judge-rubrica.md +281 -0
  17. package/habilidades/proceso-autoverificacion-evidencias/SKILL.md +258 -0
  18. package/habilidades/proceso-confianza-pre-implementacion/SKILL.md +246 -0
  19. package/habilidades/proceso-ddia-fundamentos/SKILL.md +255 -0
  20. package/habilidades/proceso-ddia-streaming/SKILL.md +231 -0
  21. package/habilidades/proceso-intent-engineering/SKILL.md +269 -0
  22. package/habilidades/reducir-entropia/SKILL.md +219 -0
  23. package/hooks/lib/task-budget.js +218 -0
  24. package/hooks/validar-intent-spec.js +222 -0
  25. package/manifiestos/hooks-config.json +9 -0
  26. package/manifiestos/modulos.json +11 -2
  27. package/manifiestos/skills-lock.json +90 -41
  28. package/package.json +2 -2
  29. package/plugin.json +9 -2
  30. package/reglas/fragmentos-compartidos.md +26 -0
  31. package/reglas/intent-engineering.md +214 -0
  32. package/reglas/registro-componentes-nuevos.md +38 -0
  33. package/schemas/agent-frontmatter.schema.json +294 -167
  34. package/schemas/agent-message.schema.json +73 -53
  35. package/schemas/agent-output-implementacion.schema.json +114 -85
  36. package/schemas/agent-output-planificacion.schema.json +150 -113
  37. package/schemas/agent-output-review.schema.json +98 -78
  38. package/schemas/diary-entry.schema.json +42 -10
  39. package/schemas/hook-profiles.schema.json +54 -39
  40. package/schemas/hooks-config.schema.json +89 -74
  41. package/schemas/instinct.schema.json +152 -115
  42. package/schemas/modulos.schema.json +38 -29
  43. package/schemas/perfiles.schema.json +36 -28
  44. package/schemas/plugin.schema.json +77 -64
  45. package/schemas/skill-evals.schema.json +119 -95
  46. package/schemas/skill-frontmatter.schema.json +245 -170
  47. package/scripts/generar-inventario.js +3 -1
  48. package/scripts/lib/schema-version.js +164 -0
  49. package/scripts/validar-manifest.js +1 -1
  50. package/scripts/validar.js +3 -2
@@ -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.