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.
- package/CLAUDE.md +425 -0
- package/_userland/agentes/.gitkeep +0 -0
- package/_userland/habilidades/.gitkeep +0 -0
- package/agentes/accesibilidad-wcag-swl.md +683 -0
- package/agentes/arquitecto-swl.md +210 -0
- package/agentes/auto-evolucion-swl.md +408 -0
- package/agentes/backend-api-swl.md +442 -0
- package/agentes/backend-node-swl.md +439 -0
- package/agentes/backend-python-swl.md +469 -0
- package/agentes/backend-workers-swl.md +444 -0
- package/agentes/cloud-infra-swl.md +466 -0
- package/agentes/consolidador-swl.md +487 -0
- package/agentes/datos-swl.md +568 -0
- package/agentes/depurador-swl.md +301 -0
- package/agentes/devops-ci-swl.md +352 -0
- package/agentes/disenador-ui-swl.md +546 -0
- package/agentes/documentador-swl.md +323 -0
- package/agentes/frontend-angular-swl.md +603 -0
- package/agentes/frontend-css-swl.md +700 -0
- package/agentes/frontend-react-swl.md +672 -0
- package/agentes/frontend-swl.md +483 -0
- package/agentes/frontend-tailwind-swl.md +808 -0
- package/agentes/implementador-swl.md +235 -0
- package/agentes/investigador-swl.md +274 -0
- package/agentes/investigador-ux-swl.md +482 -0
- package/agentes/migrador-swl.md +389 -0
- package/agentes/mobile-android-swl.md +473 -0
- package/agentes/mobile-cross-swl.md +501 -0
- package/agentes/mobile-ios-swl.md +464 -0
- package/agentes/notificador-swl.md +886 -0
- package/agentes/observabilidad-swl.md +408 -0
- package/agentes/orquestador-swl.md +490 -0
- package/agentes/planificador-swl.md +222 -0
- package/agentes/producto-prd-swl.md +565 -0
- package/agentes/release-manager-swl.md +545 -0
- package/agentes/rendimiento-swl.md +691 -0
- package/agentes/revisor-codigo-swl.md +254 -0
- package/agentes/revisor-seguridad-swl.md +316 -0
- package/agentes/tdd-qa-swl.md +323 -0
- package/agentes/ux-disenador-swl.md +498 -0
- package/bin/swl-ses.js +119 -0
- package/comandos/swl/actualizar.md +117 -0
- package/comandos/swl/aprender.md +348 -0
- package/comandos/swl/auditar-deps.md +390 -0
- package/comandos/swl/autoresearch.md +346 -0
- package/comandos/swl/checkpoint.md +296 -0
- package/comandos/swl/compactar.md +283 -0
- package/comandos/swl/crear-skill.md +609 -0
- package/comandos/swl/discutir-fase.md +230 -0
- package/comandos/swl/ejecutar-fase.md +302 -0
- package/comandos/swl/evolucionar.md +377 -0
- package/comandos/swl/instalar.md +220 -0
- package/comandos/swl/mapear-codebase.md +205 -0
- package/comandos/swl/nuevo-proyecto.md +154 -0
- package/comandos/swl/planear-fase.md +221 -0
- package/comandos/swl/release.md +405 -0
- package/comandos/swl/salud.md +382 -0
- package/comandos/swl/verificar.md +292 -0
- package/habilidades/accesibilidad-a11y/SKILL.md +584 -0
- package/habilidades/angular-avanzado/SKILL.md +491 -0
- package/habilidades/angular-moderno/SKILL.md +326 -0
- package/habilidades/api-rest-diseno/SKILL.md +302 -0
- package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
- package/habilidades/aprendizaje-continuo/SKILL.md +369 -0
- package/habilidades/async-python/SKILL.md +474 -0
- package/habilidades/auth-patrones/SKILL.md +488 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +376 -0
- package/habilidades/autoresearch/SKILL.md +248 -0
- package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
- package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
- package/habilidades/checklist-calidad/SKILL.md +247 -0
- package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
- package/habilidades/checklist-seguridad/SKILL.md +224 -0
- package/habilidades/checkpoints-verificacion/SKILL.md +309 -0
- package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
- package/habilidades/ci-cd-pipelines/SKILL.md +583 -0
- package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
- package/habilidades/cloud-aws/SKILL.md +497 -0
- package/habilidades/compactacion-contexto/SKILL.md +201 -0
- package/habilidades/contenedores-docker/SKILL.md +453 -0
- package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
- package/habilidades/css-moderno/SKILL.md +463 -0
- package/habilidades/datos-etl/SKILL.md +486 -0
- package/habilidades/dependencias-auditoria/SKILL.md +293 -0
- package/habilidades/deprecacion-migracion/SKILL.md +485 -0
- package/habilidades/design-tokens/SKILL.md +519 -0
- package/habilidades/discutir-fase/SKILL.md +167 -0
- package/habilidades/diseno-responsivo/SKILL.md +326 -0
- package/habilidades/django-experto/SKILL.md +395 -0
- package/habilidades/doc-sync/SKILL.md +259 -0
- package/habilidades/ejecutar-fase/SKILL.md +199 -0
- package/habilidades/estructura-proyecto-claude/SKILL.md +459 -0
- package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
- package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +213 -0
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
- package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
- package/habilidades/event-driven/SKILL.md +580 -0
- package/habilidades/extractor-de-aprendizajes/SKILL.md +234 -0
- package/habilidades/fastapi-experto/SKILL.md +368 -0
- package/habilidades/frontend-avanzado/SKILL.md +555 -0
- package/habilidades/git-worktrees-paralelo/SKILL.md +246 -0
- package/habilidades/iam-secretos/SKILL.md +511 -0
- package/habilidades/instalar-sistema/SKILL.md +140 -0
- package/habilidades/kubernetes-orquestacion/SKILL.md +549 -0
- package/habilidades/manejo-errores/SKILL.md +512 -0
- package/habilidades/mapear-codebase/SKILL.md +199 -0
- package/habilidades/microservicios/SKILL.md +473 -0
- package/habilidades/mobile-flutter/SKILL.md +566 -0
- package/habilidades/mobile-react-native/SKILL.md +493 -0
- package/habilidades/monitoring-alertas/SKILL.md +447 -0
- package/habilidades/node-experto/SKILL.md +521 -0
- package/habilidades/notificaciones-multicanal/SKILL.md +448 -0
- package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
- package/habilidades/nuevo-proyecto/SKILL.md +183 -0
- package/habilidades/patrones-python/SKILL.md +381 -0
- package/habilidades/performance-baseline/SKILL.md +243 -0
- package/habilidades/planear-fase/SKILL.md +184 -0
- package/habilidades/postgresql-experto/SKILL.md +379 -0
- package/habilidades/react-experto/SKILL.md +434 -0
- package/habilidades/react-optimizacion/SKILL.md +328 -0
- package/habilidades/release-semver/SKILL.md +226 -0
- package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
- package/habilidades/sql-optimizacion/SKILL.md +314 -0
- package/habilidades/tailwind-experto/SKILL.md +412 -0
- package/habilidades/tdd-workflow/SKILL.md +267 -0
- package/habilidades/testing-python/SKILL.md +350 -0
- package/habilidades/threat-model-lite/SKILL.md +218 -0
- package/habilidades/typescript-avanzado/SKILL.md +454 -0
- package/habilidades/ux-diseno/SKILL.md +488 -0
- package/habilidades/validacion-ci-sistema/SKILL.md +543 -0
- package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
- package/habilidades/verificar-trabajo/SKILL.md +208 -0
- package/habilidades/wireframes-flujos/SKILL.md +396 -0
- package/habilidades/workflow-claude-code/SKILL.md +359 -0
- package/hooks/calidad-pre-commit.js +578 -0
- package/hooks/escaneo-secretos.js +302 -0
- package/hooks/extraccion-aprendizajes.js +550 -0
- package/hooks/linea-estado.js +249 -0
- package/hooks/monitor-contexto.js +230 -0
- package/hooks/proteccion-rutas.js +249 -0
- package/manifiestos/hooks-config.json +41 -0
- package/manifiestos/modulos.json +318 -0
- package/manifiestos/perfiles.json +189 -0
- package/package.json +45 -0
- package/plantillas/PROJECT.md +122 -0
- package/plantillas/REQUIREMENTS.md +132 -0
- package/plantillas/ROADMAP.md +143 -0
- package/plantillas/STATE.md +109 -0
- package/plantillas/research/ARCHITECTURE.md +220 -0
- package/plantillas/research/FEATURES.md +175 -0
- package/plantillas/research/PITFALLS.md +299 -0
- package/plantillas/research/STACK.md +233 -0
- package/plantillas/research/SUMMARY.md +165 -0
- package/plugin.json +144 -0
- package/reglas/accesibilidad.md +269 -0
- package/reglas/api-diseno.md +400 -0
- package/reglas/arquitectura.md +183 -0
- package/reglas/cloud-infra.md +247 -0
- package/reglas/docs.md +245 -0
- package/reglas/estilo-codigo.md +179 -0
- package/reglas/git-workflow.md +186 -0
- package/reglas/performance.md +195 -0
- package/reglas/pruebas.md +159 -0
- package/reglas/seguridad.md +151 -0
- package/reglas/skills-estandar.md +473 -0
- package/scripts/actualizar.js +51 -0
- package/scripts/desinstalar.js +86 -0
- package/scripts/doctor.js +222 -0
- package/scripts/inicializar.js +89 -0
- package/scripts/instalador.js +333 -0
- package/scripts/lib/detectar-runtime.js +177 -0
- package/scripts/lib/estado.js +112 -0
- package/scripts/lib/hooks-settings.js +283 -0
- package/scripts/lib/manifiestos.js +138 -0
- package/scripts/lib/seguridad.js +160 -0
- package/scripts/publicar.js +209 -0
- 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.
|