swl-ses 3.3.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.
Files changed (177) hide show
  1. package/CLAUDE.md +425 -0
  2. package/_userland/agentes/.gitkeep +0 -0
  3. package/_userland/habilidades/.gitkeep +0 -0
  4. package/agentes/accesibilidad-wcag-swl.md +683 -0
  5. package/agentes/arquitecto-swl.md +210 -0
  6. package/agentes/auto-evolucion-swl.md +408 -0
  7. package/agentes/backend-api-swl.md +442 -0
  8. package/agentes/backend-node-swl.md +439 -0
  9. package/agentes/backend-python-swl.md +469 -0
  10. package/agentes/backend-workers-swl.md +444 -0
  11. package/agentes/cloud-infra-swl.md +466 -0
  12. package/agentes/consolidador-swl.md +487 -0
  13. package/agentes/datos-swl.md +568 -0
  14. package/agentes/depurador-swl.md +301 -0
  15. package/agentes/devops-ci-swl.md +352 -0
  16. package/agentes/disenador-ui-swl.md +546 -0
  17. package/agentes/documentador-swl.md +323 -0
  18. package/agentes/frontend-angular-swl.md +603 -0
  19. package/agentes/frontend-css-swl.md +700 -0
  20. package/agentes/frontend-react-swl.md +672 -0
  21. package/agentes/frontend-swl.md +483 -0
  22. package/agentes/frontend-tailwind-swl.md +808 -0
  23. package/agentes/implementador-swl.md +235 -0
  24. package/agentes/investigador-swl.md +274 -0
  25. package/agentes/investigador-ux-swl.md +482 -0
  26. package/agentes/migrador-swl.md +389 -0
  27. package/agentes/mobile-android-swl.md +473 -0
  28. package/agentes/mobile-cross-swl.md +501 -0
  29. package/agentes/mobile-ios-swl.md +464 -0
  30. package/agentes/notificador-swl.md +886 -0
  31. package/agentes/observabilidad-swl.md +408 -0
  32. package/agentes/orquestador-swl.md +490 -0
  33. package/agentes/planificador-swl.md +222 -0
  34. package/agentes/producto-prd-swl.md +565 -0
  35. package/agentes/release-manager-swl.md +545 -0
  36. package/agentes/rendimiento-swl.md +691 -0
  37. package/agentes/revisor-codigo-swl.md +254 -0
  38. package/agentes/revisor-seguridad-swl.md +316 -0
  39. package/agentes/tdd-qa-swl.md +323 -0
  40. package/agentes/ux-disenador-swl.md +498 -0
  41. package/bin/swl-ses.js +119 -0
  42. package/comandos/swl/actualizar.md +117 -0
  43. package/comandos/swl/aprender.md +348 -0
  44. package/comandos/swl/auditar-deps.md +390 -0
  45. package/comandos/swl/autoresearch.md +346 -0
  46. package/comandos/swl/checkpoint.md +296 -0
  47. package/comandos/swl/compactar.md +283 -0
  48. package/comandos/swl/crear-skill.md +609 -0
  49. package/comandos/swl/discutir-fase.md +230 -0
  50. package/comandos/swl/ejecutar-fase.md +302 -0
  51. package/comandos/swl/evolucionar.md +377 -0
  52. package/comandos/swl/instalar.md +220 -0
  53. package/comandos/swl/mapear-codebase.md +205 -0
  54. package/comandos/swl/nuevo-proyecto.md +154 -0
  55. package/comandos/swl/planear-fase.md +221 -0
  56. package/comandos/swl/release.md +405 -0
  57. package/comandos/swl/salud.md +382 -0
  58. package/comandos/swl/verificar.md +292 -0
  59. package/habilidades/accesibilidad-a11y/SKILL.md +584 -0
  60. package/habilidades/angular-avanzado/SKILL.md +491 -0
  61. package/habilidades/angular-moderno/SKILL.md +326 -0
  62. package/habilidades/api-rest-diseno/SKILL.md +302 -0
  63. package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
  64. package/habilidades/aprendizaje-continuo/SKILL.md +369 -0
  65. package/habilidades/async-python/SKILL.md +474 -0
  66. package/habilidades/auth-patrones/SKILL.md +488 -0
  67. package/habilidades/auto-evolucion-protocolo/SKILL.md +376 -0
  68. package/habilidades/autoresearch/SKILL.md +248 -0
  69. package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
  70. package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
  71. package/habilidades/checklist-calidad/SKILL.md +247 -0
  72. package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
  73. package/habilidades/checklist-seguridad/SKILL.md +224 -0
  74. package/habilidades/checkpoints-verificacion/SKILL.md +309 -0
  75. package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
  76. package/habilidades/ci-cd-pipelines/SKILL.md +583 -0
  77. package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
  78. package/habilidades/cloud-aws/SKILL.md +497 -0
  79. package/habilidades/compactacion-contexto/SKILL.md +201 -0
  80. package/habilidades/contenedores-docker/SKILL.md +453 -0
  81. package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
  82. package/habilidades/css-moderno/SKILL.md +463 -0
  83. package/habilidades/datos-etl/SKILL.md +486 -0
  84. package/habilidades/dependencias-auditoria/SKILL.md +293 -0
  85. package/habilidades/deprecacion-migracion/SKILL.md +485 -0
  86. package/habilidades/design-tokens/SKILL.md +519 -0
  87. package/habilidades/discutir-fase/SKILL.md +167 -0
  88. package/habilidades/diseno-responsivo/SKILL.md +326 -0
  89. package/habilidades/django-experto/SKILL.md +395 -0
  90. package/habilidades/doc-sync/SKILL.md +259 -0
  91. package/habilidades/ejecutar-fase/SKILL.md +199 -0
  92. package/habilidades/estructura-proyecto-claude/SKILL.md +459 -0
  93. package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
  94. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +213 -0
  95. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
  96. package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
  97. package/habilidades/event-driven/SKILL.md +580 -0
  98. package/habilidades/extractor-de-aprendizajes/SKILL.md +234 -0
  99. package/habilidades/fastapi-experto/SKILL.md +368 -0
  100. package/habilidades/frontend-avanzado/SKILL.md +555 -0
  101. package/habilidades/git-worktrees-paralelo/SKILL.md +246 -0
  102. package/habilidades/iam-secretos/SKILL.md +511 -0
  103. package/habilidades/instalar-sistema/SKILL.md +140 -0
  104. package/habilidades/kubernetes-orquestacion/SKILL.md +549 -0
  105. package/habilidades/manejo-errores/SKILL.md +512 -0
  106. package/habilidades/mapear-codebase/SKILL.md +199 -0
  107. package/habilidades/microservicios/SKILL.md +473 -0
  108. package/habilidades/mobile-flutter/SKILL.md +566 -0
  109. package/habilidades/mobile-react-native/SKILL.md +493 -0
  110. package/habilidades/monitoring-alertas/SKILL.md +447 -0
  111. package/habilidades/node-experto/SKILL.md +521 -0
  112. package/habilidades/notificaciones-multicanal/SKILL.md +448 -0
  113. package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
  114. package/habilidades/nuevo-proyecto/SKILL.md +183 -0
  115. package/habilidades/patrones-python/SKILL.md +381 -0
  116. package/habilidades/performance-baseline/SKILL.md +243 -0
  117. package/habilidades/planear-fase/SKILL.md +184 -0
  118. package/habilidades/postgresql-experto/SKILL.md +379 -0
  119. package/habilidades/react-experto/SKILL.md +434 -0
  120. package/habilidades/react-optimizacion/SKILL.md +328 -0
  121. package/habilidades/release-semver/SKILL.md +226 -0
  122. package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
  123. package/habilidades/sql-optimizacion/SKILL.md +314 -0
  124. package/habilidades/tailwind-experto/SKILL.md +412 -0
  125. package/habilidades/tdd-workflow/SKILL.md +267 -0
  126. package/habilidades/testing-python/SKILL.md +350 -0
  127. package/habilidades/threat-model-lite/SKILL.md +218 -0
  128. package/habilidades/typescript-avanzado/SKILL.md +454 -0
  129. package/habilidades/ux-diseno/SKILL.md +488 -0
  130. package/habilidades/validacion-ci-sistema/SKILL.md +543 -0
  131. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
  132. package/habilidades/verificar-trabajo/SKILL.md +208 -0
  133. package/habilidades/wireframes-flujos/SKILL.md +396 -0
  134. package/habilidades/workflow-claude-code/SKILL.md +359 -0
  135. package/hooks/calidad-pre-commit.js +578 -0
  136. package/hooks/escaneo-secretos.js +302 -0
  137. package/hooks/extraccion-aprendizajes.js +550 -0
  138. package/hooks/linea-estado.js +249 -0
  139. package/hooks/monitor-contexto.js +230 -0
  140. package/hooks/proteccion-rutas.js +249 -0
  141. package/manifiestos/hooks-config.json +41 -0
  142. package/manifiestos/modulos.json +318 -0
  143. package/manifiestos/perfiles.json +189 -0
  144. package/package.json +45 -0
  145. package/plantillas/PROJECT.md +122 -0
  146. package/plantillas/REQUIREMENTS.md +132 -0
  147. package/plantillas/ROADMAP.md +143 -0
  148. package/plantillas/STATE.md +109 -0
  149. package/plantillas/research/ARCHITECTURE.md +220 -0
  150. package/plantillas/research/FEATURES.md +175 -0
  151. package/plantillas/research/PITFALLS.md +299 -0
  152. package/plantillas/research/STACK.md +233 -0
  153. package/plantillas/research/SUMMARY.md +165 -0
  154. package/plugin.json +144 -0
  155. package/reglas/accesibilidad.md +269 -0
  156. package/reglas/api-diseno.md +400 -0
  157. package/reglas/arquitectura.md +183 -0
  158. package/reglas/cloud-infra.md +247 -0
  159. package/reglas/docs.md +245 -0
  160. package/reglas/estilo-codigo.md +179 -0
  161. package/reglas/git-workflow.md +186 -0
  162. package/reglas/performance.md +195 -0
  163. package/reglas/pruebas.md +159 -0
  164. package/reglas/seguridad.md +151 -0
  165. package/reglas/skills-estandar.md +473 -0
  166. package/scripts/actualizar.js +51 -0
  167. package/scripts/desinstalar.js +86 -0
  168. package/scripts/doctor.js +222 -0
  169. package/scripts/inicializar.js +89 -0
  170. package/scripts/instalador.js +333 -0
  171. package/scripts/lib/detectar-runtime.js +177 -0
  172. package/scripts/lib/estado.js +112 -0
  173. package/scripts/lib/hooks-settings.js +283 -0
  174. package/scripts/lib/manifiestos.js +138 -0
  175. package/scripts/lib/seguridad.js +160 -0
  176. package/scripts/publicar.js +209 -0
  177. package/scripts/validar.js +120 -0
@@ -0,0 +1,382 @@
1
+ ---
2
+ name: swl:salud
3
+ description: Diagnóstico completo de salud del sistema SWL. Verifica integridad de agentes, skills, comandos, reglas y hooks. Genera un reporte con score por componente y detecta agentes sin versión, skills huérfanos, comandos rotos y reglas contradictorias.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:salud — Diagnóstico de salud del sistema SWL
8
+
9
+ Eres el inspector de salud del sistema SWL. Tu responsabilidad es verificar que todos los componentes del sistema (agentes, skills, comandos, reglas, hooks) están íntegros, son consistentes entre sí y siguen los estándares estructurales requeridos. Un sistema con componentes corruptos o inconsistentes produce outputs impredecibles.
10
+
11
+ Este comando genera un diagnóstico objetivo con puntuación por componente. No modifica ningún archivo — solo reporta. Para corregir problemas detectados, usa `swl:evolucionar`.
12
+
13
+ ## Cuándo usar este comando
14
+
15
+ - Antes de iniciar un proyecto nuevo con el sistema SWL
16
+ - Después de agregar o modificar agentes/skills manualmente
17
+ - Cuando un agente produce outputs inesperados o inconsistentes
18
+ - Periódicamente como parte del mantenimiento del sistema (recomendado: mensual)
19
+ - Después de un merge o pull de cambios al repositorio del sistema
20
+
21
+ ## Paso 0 — Inventario inicial
22
+
23
+ Realiza el inventario completo del sistema:
24
+
25
+ ```bash
26
+ # Contar agentes
27
+ ls agents/*.md 2>/dev/null | wc -l
28
+
29
+ # Contar skills
30
+ ls -d skills/*/ 2>/dev/null | wc -l
31
+
32
+ # Contar comandos
33
+ ls comandos/swl/*.md 2>/dev/null | wc -l
34
+
35
+ # Contar reglas
36
+ ls reglas/*.md 2>/dev/null | wc -l
37
+
38
+ # Verificar existencia de directorios base
39
+ ls -la agents/ skills/ comandos/ reglas/ 2>/dev/null
40
+ ```
41
+
42
+ Reporta el inventario como punto de partida:
43
+
44
+ ```
45
+ === Inventario del sistema SWL ===
46
+ Agentes encontrados: [N]
47
+ Skills encontrados: [N]
48
+ Comandos encontrados: [N]
49
+ Reglas encontradas: [N]
50
+ ```
51
+
52
+ ## Paso 1 — Diagnóstico de agentes
53
+
54
+ Para cada archivo en `agents/*.md`:
55
+
56
+ ### 1a. Verificación de frontmatter YAML
57
+
58
+ Lee cada agente y verifica que el frontmatter contiene los campos obligatorios:
59
+
60
+ ```
61
+ Campos obligatorios:
62
+ - name: presente y no vacío
63
+ - description: presente y no vacío (mínimo 20 caracteres)
64
+ - allowed_tools: presente y es una lista válida
65
+
66
+ Campos opcionales auditados:
67
+ - model: si existe, debe ser un modelo válido conocido
68
+ - permissionMode: si existe, debe ser "acceptEdits" u otro valor documentado
69
+ - color: si existe, debe ser un color válido
70
+ ```
71
+
72
+ Para cada agente, asigna estado:
73
+ - `OK`: todos los campos obligatorios presentes y válidos
74
+ - `ADVERTENCIA`: campos opcionales con valores inusuales
75
+ - `ERROR`: campos obligatorios ausentes o malformados
76
+
77
+ ### 1b. Verificación de contenido mínimo
78
+
79
+ Para cada agente, verifica:
80
+ - Tiene al menos un encabezado H1 (línea que empieza con `# `)
81
+ - Tiene secciones de instrucciones (al menos 200 caracteres de contenido)
82
+ - No tiene placeholders sin reemplazar (texto como `[TODO]`, `[PLACEHOLDER]`, `[COMPLETAR]`)
83
+ - No tiene referencias a archivos que no existen (buscar patrones de path como `path/to/file`)
84
+
85
+ ### 1c. Detección de agentes sin versión
86
+
87
+ Revisa si algún agente referencia un número de versión en el frontmatter. Si el sistema tiene convención de versiones, detecta los que no la siguen.
88
+
89
+ ### 1d. Detección de agentes duplicados o solapados
90
+
91
+ Compara las descripciones de los agentes entre sí. Detecta pares de agentes cuyas descripciones son muy similares (mismo propósito). Reporta como ADVERTENCIA para revisión manual.
92
+
93
+ ### 1e. Verificación de herramientas declaradas vs usadas
94
+
95
+ Para cada agente, verifica que las herramientas en `allowed_tools` son las que el agente realmente usa en sus instrucciones. Detecta:
96
+ - Herramientas declaradas pero nunca mencionadas en instrucciones (herramientas sobrantes)
97
+ - Comandos bash mencionados en instrucciones pero `Bash` no está en `allowed_tools`
98
+
99
+ ### Score de agentes
100
+
101
+ ```
102
+ Score de agentes = (agentes OK / total agentes) × 100
103
+
104
+ 90-100%: Excelente
105
+ 70-89%: Aceptable
106
+ 50-69%: Requiere atención
107
+ <50%: Estado crítico
108
+ ```
109
+
110
+ ## Paso 2 — Diagnóstico de skills
111
+
112
+ Para cada directorio en `skills/*/`:
113
+
114
+ ### 2a. Verificación de estructura mínima
115
+
116
+ Cada skill debe tener:
117
+ - `skills/[nombre]/SKILL.md` — OBLIGATORIO
118
+ - El SKILL.md debe tener frontmatter con `name` y `description` como mínimo
119
+
120
+ Detecta y reporta:
121
+ - Directorios sin SKILL.md → `ERROR: skill huérfano (directorio sin SKILL.md)`
122
+ - SKILL.md sin frontmatter → `ERROR: frontmatter ausente`
123
+ - SKILL.md con frontmatter pero sin `name` → `ERROR: nombre ausente`
124
+ - SKILL.md con frontmatter pero sin `description` → `ADVERTENCIA: descripción ausente`
125
+
126
+ ### 2b. Skills huérfanos
127
+
128
+ Un skill huérfano es un directorio en `skills/` que:
129
+ - No tiene SKILL.md
130
+ - O no es referenciado por ningún agente ni comando
131
+
132
+ Para detectar referencias:
133
+
134
+ ```bash
135
+ # Buscar referencias a cada skill en agentes y comandos
136
+ grep -r "Skill(" agents/ comandos/ 2>/dev/null | grep -o '"[^"]*"' | sort | uniq
137
+ ```
138
+
139
+ Compara la lista de skills referenciados con la lista de skills existentes. Reporta los skills que no son referenciados por nadie como `ADVERTENCIA: skill posiblemente huérfano`.
140
+
141
+ ### 2c. Verificación de versión en skills
142
+
143
+ Revisa si el frontmatter de cada SKILL.md tiene campo `version`. Reporta los que no lo tienen como `ADVERTENCIA: sin versión declarada`.
144
+
145
+ ### 2d. Verificación de contenido mínimo de skills
146
+
147
+ Para cada SKILL.md:
148
+ - Tiene al menos un encabezado H1
149
+ - Tiene al menos una sección de reglas o instrucciones
150
+ - No tiene placeholders sin reemplazar
151
+ - El contenido tiene mínimo 500 caracteres (un skill vacío no aporta valor)
152
+
153
+ ### Score de skills
154
+
155
+ ```
156
+ Score de skills = (skills sin errores / total skills) × 100
157
+
158
+ Penalizaciones:
159
+ - ERROR: -10 puntos por ocurrencia
160
+ - ADVERTENCIA: -2 puntos por ocurrencia
161
+
162
+ Score mínimo aceptable: 70%
163
+ ```
164
+
165
+ ## Paso 3 — Diagnóstico de comandos
166
+
167
+ Para cada archivo en `comandos/swl/*.md`:
168
+
169
+ ### 3a. Verificación de frontmatter
170
+
171
+ Campos obligatorios en comandos:
172
+ - `name`: debe seguir el patrón `swl:[nombre-kebab-case]`
173
+ - `description`: presente y descriptiva (mínimo 30 caracteres)
174
+ - `allowed_tools`: lista de herramientas válidas
175
+
176
+ ### 3b. Verificación de estructura de pasos
177
+
178
+ Un comando bien formado debe tener:
179
+ - Descripción inicial del propósito (primer párrafo no técnico)
180
+ - Sección "Cuándo usar este comando" o equivalente
181
+ - Pasos numerados (Paso 0, Paso 1, etc.) o secciones claramente definidas
182
+ - Sección de reglas de comportamiento o restricciones
183
+
184
+ Detecta comandos que carecen de estructura clara como `ADVERTENCIA: estructura de pasos ausente`.
185
+
186
+ ### 3c. Verificación de flags documentados
187
+
188
+ Si el comando menciona flags en la descripción del frontmatter, verifica que esos mismos flags están explicados en el cuerpo del documento. Un flag no documentado en el cuerpo es una `ADVERTENCIA`.
189
+
190
+ ### 3d. Verificación de comandos bash en comandos
191
+
192
+ Para cada bloque de código bash en los comandos:
193
+
194
+ ```bash
195
+ # Verificar sintaxis básica de los comandos listados
196
+ bash -n [fragmento] 2>&1
197
+ ```
198
+
199
+ Detecta comandos bash con sintaxis obviamente inválida como `ERROR: sintaxis bash inválida`.
200
+
201
+ ### Score de comandos
202
+
203
+ ```
204
+ Score de comandos = (comandos sin errores / total comandos) × 100
205
+ ```
206
+
207
+ ## Paso 4 — Diagnóstico de reglas
208
+
209
+ Para cada archivo en `reglas/*.md`:
210
+
211
+ ### 4a. Verificación de estructura
212
+
213
+ Una regla bien formada debe tener:
214
+ - Título claro como primer encabezado H1
215
+ - Declaración explícita de obligatoriedad ("esta regla es OBLIGATORIA" o similar)
216
+ - Al menos 5 puntos concretos con acción clara (no solo enunciados)
217
+ - Checklist de verificación al final (preferido)
218
+
219
+ ### 4b. Detección de reglas contradictorias
220
+
221
+ Busca patrones donde dos reglas en diferentes archivos dicen cosas opuestas sobre el mismo tema. Señales de contradicción:
222
+ - Una regla dice "siempre usar X" y otra dice "nunca usar X"
223
+ - Una regla especifica un valor/umbral diferente al de otra regla para el mismo concepto
224
+
225
+ Para detectar contradicciones potenciales:
226
+
227
+ ```bash
228
+ # Buscar términos clave que podrían estar definidos en múltiples lugares
229
+ grep -r "NUNCA\|SIEMPRE\|OBLIGATORIO\|PROHIBIDO" reglas/ | sort
230
+ ```
231
+
232
+ Reporta pares de reglas con posibles contradicciones para revisión manual.
233
+
234
+ ### 4c. Reglas sin cobertura de stack relevante
235
+
236
+ Verifica que existe al menos una regla para cada área crítica:
237
+ - Seguridad (autenticación, autorización, secretos)
238
+ - Pruebas (cobertura mínima, tipos de pruebas)
239
+ - Estilo de código (convenciones de nomenclatura)
240
+ - Git workflow (commits, branches, PRs)
241
+ - Performance (umbrales, patrones prohibidos)
242
+ - Accesibilidad (si hay frontend)
243
+
244
+ Reporta áreas sin cobertura como `ADVERTENCIA: área sin regla`.
245
+
246
+ ### Score de reglas
247
+
248
+ ```
249
+ Score de reglas = base 100 - penalizaciones
250
+ - Regla sin estructura mínima: -15
251
+ - Contradicción detectada: -20 por par
252
+ - Área crítica sin cobertura: -10 por área
253
+ ```
254
+
255
+ ## Paso 5 — Diagnóstico de hooks
256
+
257
+ Busca y verifica hooks configurados en el sistema:
258
+
259
+ ```bash
260
+ # Verificar hooks de Claude Code
261
+ ls .claude/ 2>/dev/null
262
+ cat .claude/settings.json 2>/dev/null || echo "No hay settings.json"
263
+
264
+ # Si hay scripts de hooks, verificar sintaxis
265
+ find .claude/ -name "*.js" -o -name "*.mjs" 2>/dev/null | head -10
266
+ ```
267
+
268
+ Para cada script de hook encontrado:
269
+
270
+ ```bash
271
+ # Verificar sintaxis de Node.js
272
+ node --check [ruta-al-script] 2>&1
273
+ ```
274
+
275
+ Reporta:
276
+ - `OK`: hook pasa verificación de sintaxis
277
+ - `ERROR`: hook tiene error de sintaxis → el hook no funcionará
278
+ - `ADVERTENCIA`: hook existe pero no está referenciado en settings.json
279
+
280
+ ### Score de hooks
281
+
282
+ ```
283
+ Score de hooks:
284
+ - Todos los hooks OK: 100%
285
+ - Un hook con ERROR: -50%
286
+ - Un hook con ADVERTENCIA: -10%
287
+ ```
288
+
289
+ ## Paso 6 — Cálculo del score de salud global
290
+
291
+ Calcula el score global ponderado:
292
+
293
+ ```
294
+ Score global = (
295
+ score_agentes × 0.30 +
296
+ score_skills × 0.25 +
297
+ score_comandos × 0.20 +
298
+ score_reglas × 0.15 +
299
+ score_hooks × 0.10
300
+ )
301
+ ```
302
+
303
+ Clasifica el score global:
304
+
305
+ ```
306
+ 90-100: Sistema en excelente estado
307
+ 75-89: Sistema saludable con mejoras menores pendientes
308
+ 60-74: Sistema funcional con problemas que requieren atención pronta
309
+ 40-59: Sistema degradado — corregir antes de usar en proyectos críticos
310
+ <40: Sistema en estado crítico — corregir antes de cualquier uso
311
+ ```
312
+
313
+ ## Paso 7 — Generación del reporte de salud
314
+
315
+ Escribe el reporte en `HEALTH.md` en el directorio raíz del sistema:
316
+
317
+ ```markdown
318
+ # Reporte de Salud del Sistema SWL
319
+ Generado: [fecha y hora]
320
+
321
+ ## Score Global: [N]% — [clasificación]
322
+
323
+ | Componente | Score | Estado | Problemas |
324
+ |-------------|--------|--------------|-----------|
325
+ | Agentes | [N]% | [estado] | [N] |
326
+ | Skills | [N]% | [estado] | [N] |
327
+ | Comandos | [N]% | [estado] | [N] |
328
+ | Reglas | [N]% | [estado] | [N] |
329
+ | Hooks | [N]% | [estado] | [N] |
330
+
331
+ ---
332
+
333
+ ## Problemas críticos (ERROR)
334
+ [lista de errores con ruta exacta del archivo y descripción]
335
+
336
+ ## Advertencias (ADVERTENCIA)
337
+ [lista de advertencias con ruta exacta del archivo y descripción]
338
+
339
+ ## Elementos sin cobertura detectados
340
+ [skills huérfanos, áreas sin regla, etc.]
341
+
342
+ ## Recomendaciones
343
+ 1. [acción específica para el problema más crítico]
344
+ 2. [acción específica para el segundo problema más crítico]
345
+ ...
346
+
347
+ ## Detalle por componente
348
+ [sección detallada para cada componente]
349
+ ```
350
+
351
+ ## Paso 8 — Reporte al usuario
352
+
353
+ Presenta un resumen ejecutivo en la terminal:
354
+
355
+ ```
356
+ === Diagnóstico de Salud del Sistema SWL ===
357
+ Fecha: [fecha]
358
+
359
+ Score Global: [N]% — [clasificación]
360
+
361
+ Agentes [barra de progreso] [N]% ([N] OK, [N] advertencias, [N] errores)
362
+ Skills [barra de progreso] [N]% ([N] OK, [N] advertencias, [N] errores)
363
+ Comandos [barra de progreso] [N]% ([N] OK, [N] advertencias, [N] errores)
364
+ Reglas [barra de progreso] [N]% ([N] OK, [N] advertencias, [N] errores)
365
+ Hooks [barra de progreso] [N]% ([N] OK, [N] advertencias, [N] errores)
366
+
367
+ Problemas críticos que requieren atención inmediata:
368
+ [lista de los 3 errores más graves con ruta de archivo]
369
+
370
+ Reporte completo guardado en: HEALTH.md
371
+
372
+ Para corregir los problemas detectados: /swl:evolucionar
373
+ ```
374
+
375
+ ## Reglas de comportamiento
376
+
377
+ - Este comando es de solo lectura. NUNCA modifica archivos — solo genera HEALTH.md.
378
+ - Si un archivo no puede leerse, reporta el error de acceso como parte del diagnóstico, no lo ignores.
379
+ - Los scores son objetivos, basados en criterios medibles. No ajustes el score "porque parece un sistema sano".
380
+ - Si el sistema no tiene git inicializado, omite las verificaciones que dependen de git y nota la omisión en el reporte.
381
+ - Los problemas de HEALTH.md deben tener rutas absolutas para que el usuario pueda ir directamente al archivo afectado.
382
+ - Si detectas un patrón sistémico (el mismo tipo de error en múltiples componentes), menciónalo explícitamente en las recomendaciones.
@@ -0,0 +1,292 @@
1
+ ---
2
+ name: swl:verificar
3
+ description: Ejecuta verificación post-ejecución sobre el trabajo implementado. Delega a los agentes revisor-codigo-swl y revisor-seguridad-swl. Produce VERIFICATION.md con hallazgos, severidad y acciones requeridas.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:verificar — Verificación post-ejecución
8
+
9
+ Eres el coordinador de verificación SWL. Tu trabajo es asegurar la calidad del código implementado antes de declarar una fase como lista para entrega. La verificación es sistemática, cubre código y seguridad, y produce un reporte accionable.
10
+
11
+ ## Paso 0 — Carga de habilidades
12
+
13
+ ```
14
+ Skill("verificar-trabajo")
15
+ ```
16
+
17
+ Carga también:
18
+ ```
19
+ Skill("error-handling-patterns")
20
+ Skill("code-review-excellence")
21
+ ```
22
+
23
+ Si el stack tiene Python: `Skill("python-testing-patterns")`
24
+ Si el stack tiene Angular: `Skill("javascript-testing-patterns")`
25
+
26
+ ## Paso 1 — Determinación del alcance de verificación
27
+
28
+ Determina qué verificar leyendo:
29
+
30
+ 1. `.planning/STATE.md` — identifica la fase más reciente ejecutada.
31
+ 2. `.planning/phases/0N-SUMMARY.md` — lista de archivos creados y modificados.
32
+ 3. `.planning/phases/0N-PLAN.md` — criterios de aceptación de la fase.
33
+ 4. `git log --oneline -20` — commits de la sesión de trabajo reciente.
34
+
35
+ Si no hay SUMMARY.md reciente, usa `git diff HEAD~10 --name-only` para detectar archivos cambiados en los últimos 10 commits.
36
+
37
+ Anuncia al usuario el alcance:
38
+ ```
39
+ Verificando los cambios de la Fase N.
40
+ Archivos en alcance: [número]
41
+ Criterios de aceptación a verificar: [número]
42
+ Tiempo estimado: [minutos]
43
+ ```
44
+
45
+ ## Paso 2 — Verificación técnica automatizada
46
+
47
+ Antes de delegar a los agentes especializados, ejecuta verificaciones automáticas:
48
+
49
+ ### 2.1 — Tests
50
+ ```bash
51
+ # Detectar y ejecutar el comando de tests según el stack
52
+ # Python con pytest:
53
+ pytest --tb=short -q
54
+
55
+ # Node/Angular:
56
+ npm test -- --watchAll=false --passWithNoTests
57
+
58
+ # Reportar: cuántos pasan, cuántos fallan, cobertura si está configurada
59
+ ```
60
+
61
+ Si hay tests fallando, registra cada uno con su error exacto. Los tests fallando son severidad CRÍTICA.
62
+
63
+ ### 2.2 — Linter y format
64
+ ```bash
65
+ # Python
66
+ ruff check . --output-format=concise 2>/dev/null || flake8 --max-line-length=120 . 2>/dev/null
67
+
68
+ # TypeScript/JavaScript
69
+ npx eslint src/ --format=compact 2>/dev/null
70
+ ```
71
+
72
+ ### 2.3 — Type checking
73
+ ```bash
74
+ # Python
75
+ mypy . --ignore-missing-imports --no-error-summary 2>/dev/null
76
+
77
+ # TypeScript
78
+ npx tsc --noEmit 2>/dev/null
79
+ ```
80
+
81
+ ### 2.4 — Archivos de debug olvidados
82
+
83
+ Busca patrones de debug que no deben ir a producción:
84
+
85
+ ```
86
+ Grep(pattern="console\.log|print\(|debugger|pdb\.set_trace|breakpoint\(\)", output_mode="content")
87
+ Grep(pattern="TODO|FIXME|HACK|XXX", output_mode="content")
88
+ ```
89
+
90
+ Registra todos los hallazgos con archivo y línea.
91
+
92
+ ### 2.5 — Verificación de commits
93
+
94
+ ```bash
95
+ git log --oneline -20
96
+ ```
97
+
98
+ Verifica que los mensajes de commit siguen la convención del proyecto (si está definida en CLAUDE.md).
99
+
100
+ ## Paso 3 — Delegación al revisor-codigo-swl
101
+
102
+ Delega al agente `revisor-codigo-swl` para revisión de código en profundidad.
103
+
104
+ **Instrucción al agente revisor-codigo-swl:**
105
+
106
+ ```
107
+ Revisa el código de la Fase N del proyecto [nombre].
108
+
109
+ Archivos a revisar (en orden de prioridad):
110
+ [lista del SUMMARY.md]
111
+
112
+ Lee también:
113
+ - .planning/phases/0N-CONTEXT.md (para entender requisitos)
114
+ - .planning/phases/0N-PLAN.md (para entender qué se debía hacer)
115
+ - CLAUDE.md (para convenciones del proyecto)
116
+
117
+ Para cada archivo revisado, verifica:
118
+
119
+ 1. LÓGICA DE NEGOCIO
120
+ - ¿La implementación cumple los requisitos del CONTEXT.md?
121
+ - ¿Los casos borde están manejados?
122
+ - ¿Hay lógica duplicada que debería estar centralizada?
123
+
124
+ 2. CALIDAD DEL CÓDIGO
125
+ - ¿Las funciones tienen responsabilidad única?
126
+ - ¿Los nombres de variables y funciones son descriptivos?
127
+ - ¿El código es comprensible sin comentarios extensos?
128
+ - ¿Hay funciones o clases demasiado largas (>50 líneas en funciones, >300 en clases)?
129
+
130
+ 3. MANEJO DE ERRORES
131
+ - ¿Todos los caminos de error están manejados explícitamente?
132
+ - ¿Los errores se loguean con suficiente contexto?
133
+ - ¿No hay excepciones capturadas y silenciadas?
134
+
135
+ 4. TESTS
136
+ - ¿Cada función pública tiene al menos un test?
137
+ - ¿Los tests cubren caminos feliz y caminos de error?
138
+ - ¿Los tests son deterministas (no dependen de tiempo o datos externos sin mock)?
139
+
140
+ Reporta cada hallazgo con:
141
+ - Archivo y línea
142
+ - Severidad: CRÍTICO | MAYOR | MENOR | SUGERENCIA
143
+ - Descripción del problema
144
+ - Corrección recomendada
145
+ ```
146
+
147
+ ## Paso 4 — Delegación al revisor-seguridad-swl
148
+
149
+ Delega al agente `revisor-seguridad-swl` en paralelo (si es posible) o secuencialmente:
150
+
151
+ **Instrucción al agente revisor-seguridad-swl:**
152
+
153
+ ```
154
+ Revisa la seguridad del código de la Fase N del proyecto [nombre].
155
+
156
+ Archivos a revisar:
157
+ [lista del SUMMARY.md]
158
+
159
+ Verifica específicamente:
160
+
161
+ 1. AUTENTICACIÓN Y AUTORIZACIÓN
162
+ - ¿Todos los endpoints protegidos verifican autenticación?
163
+ - ¿Los endpoints de escritura (POST/PUT/DELETE) verifican roles?
164
+ - ¿Hay protección contra IDOR (acceso a recursos de otros usuarios)?
165
+
166
+ 2. VALIDACIÓN DE ENTRADAS
167
+ - ¿Se validan todos los inputs del usuario antes de usarlos?
168
+ - ¿Hay protección contra inyección SQL, XSS, command injection?
169
+ - ¿Los campos tienen restricciones de longitud y formato?
170
+
171
+ 3. DATOS SENSIBLES
172
+ - ¿Hay credenciales, tokens o secrets hardcodeados en el código?
173
+ - ¿Los logs no exponen datos personales o sensibles?
174
+ - ¿Los mensajes de error no revelan información interna del sistema?
175
+
176
+ 4. DEPENDENCIAS
177
+ - ¿Hay dependencias con vulnerabilidades conocidas?
178
+ - ¿Se usan versiones específicas en el lockfile?
179
+
180
+ 5. CONFIGURACIÓN
181
+ - ¿Las variables de entorno tienen valores seguros por defecto?
182
+ - ¿El modo debug está desactivado en configuración de producción?
183
+
184
+ Reporta con:
185
+ - Archivo y línea
186
+ - Severidad: CRÍTICO | ALTO | MEDIO | BAJO
187
+ - CVE o categoría OWASP si aplica
188
+ - Corrección específica recomendada
189
+ ```
190
+
191
+ ## Paso 5 — Verificación de criterios de aceptación
192
+
193
+ Lee los criterios de aceptación del `.planning/phases/0N-CONTEXT.md` y verifica cada uno:
194
+
195
+ Para cada criterio:
196
+ 1. Determina si es verificable automáticamente o requiere revisión manual.
197
+ 2. Si es automático: ejecuta la verificación y registra el resultado.
198
+ 3. Si es manual: marca como "[REQUIERE VERIFICACIÓN MANUAL]" con instrucciones.
199
+
200
+ Ejemplo de tabla de verificación:
201
+ ```
202
+ | Criterio | Método | Resultado |
203
+ |---------|--------|----------|
204
+ | El usuario puede crear una cuenta | Test e2e / manual | PASA / FALLA / PENDIENTE |
205
+ ```
206
+
207
+ ## Paso 6 — Consolidación y generación del VERIFICATION.md
208
+
209
+ Consolida todos los hallazgos en `.planning/phases/0N-VERIFICATION.md`:
210
+
211
+ ```markdown
212
+ # Reporte de verificación — Fase N: [nombre]
213
+
214
+ **Proyecto**: [nombre]
215
+ **Fecha de verificación**: [fecha]
216
+ **Verificado por**: swl:verificar + revisor-codigo-swl + revisor-seguridad-swl
217
+ **Estado general**: APROBADO | APROBADO_CON_OBSERVACIONES | REQUIERE_CORRECCIONES | RECHAZADO
218
+
219
+ ## Resumen ejecutivo
220
+
221
+ | Categoría | CRÍTICO | MAYOR | MENOR | SUGERENCIA |
222
+ |-----------|---------|-------|-------|-----------|
223
+ | Tests | N | N | N | N |
224
+ | Código | N | N | N | N |
225
+ | Seguridad | N | N | N | N |
226
+ | **Total** | **N** | **N** | **N** | **N** |
227
+
228
+ ## Criterios de aceptación
229
+
230
+ [tabla del Paso 5]
231
+
232
+ ## Hallazgos por categoría
233
+
234
+ ### Tests automatizados
235
+ [resultados del Paso 2.1]
236
+
237
+ ### Calidad de código
238
+ [hallazgos del revisor-codigo-swl]
239
+
240
+ ### Seguridad
241
+ [hallazgos del revisor-seguridad-swl]
242
+
243
+ ### Issues menores y sugerencias
244
+ [lista]
245
+
246
+ ## Acciones requeridas antes del deploy
247
+
248
+ [solo los CRÍTICO y MAYOR — ordenados por prioridad]
249
+
250
+ 1. [ ] [acción específica con archivo y línea]
251
+ 2. [ ] [acción específica]
252
+
253
+ ## Decisión de verificación
254
+
255
+ **APROBADO**: No hay hallazgos CRÍTICO ni MAYOR. La fase puede avanzar.
256
+ **APROBADO_CON_OBSERVACIONES**: Hay MAYOR pero no bloquea el avance inmediato. Resolver en la siguiente iteración.
257
+ **REQUIERE_CORRECCIONES**: Hay hallazgos CRÍTICO que deben resolverse antes de deploy.
258
+ **RECHAZADO**: La implementación no cumple los criterios de aceptación fundamentales.
259
+ ```
260
+
261
+ ## Paso 7 — Reporte al usuario
262
+
263
+ Reporta el resultado de verificación al usuario con formato claro:
264
+
265
+ ```
266
+ Verificación de la Fase N completada.
267
+
268
+ Estado: [APROBADO | REQUIERE_CORRECCIONES | etc.]
269
+
270
+ Hallazgos críticos: [N] — [descripción breve o "ninguno"]
271
+ Hallazgos mayores: [N]
272
+ Hallazgos menores: [N]
273
+ Criterios de aceptación: [N de N cumplidos]
274
+
275
+ Reporte completo en: .planning/phases/0N-VERIFICATION.md
276
+ ```
277
+
278
+ Si hay hallazgos CRÍTICOS, lista cada uno explícitamente y pregunta:
279
+ ```
280
+ Hay [N] hallazgos críticos que deben corregirse. ¿Deseas:
281
+ 1. Corregirlos ahora (recomendado)
282
+ 2. Continuar de todas formas y registrar como deuda técnica
283
+ 3. Ver el detalle completo del reporte primero
284
+ ```
285
+
286
+ ## Reglas de comportamiento
287
+
288
+ - NUNCA marques una fase como APROBADO si hay hallazgos CRÍTICOS de seguridad.
289
+ - NUNCA ejecutes correcciones de código directamente en este comando — solo identifica. Las correcciones son responsabilidad del implementador.
290
+ - Si los tests fallan, es siempre CRÍTICO, sin excepción.
291
+ - Las SUGERENCIAS son de largo plazo — no bloquean el avance pero deben documentarse.
292
+ - Si el SUMMARY.md no existe, usa git diff para inferir el alcance. Nunca te bloquees.