@saulwade/swl-ses 2.5.2 → 2.6.0

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 (183) hide show
  1. package/CLAUDE.md +194 -192
  2. package/README.md +600 -600
  3. package/agentes/auto-evolucion-swl.md +27 -3
  4. package/bin/swl-ses.js +32 -6
  5. package/comandos/swl/actualizar.md +174 -174
  6. package/comandos/swl/adoptar-proyecto.md +265 -265
  7. package/comandos/swl/aprender.md +836 -823
  8. package/comandos/swl/aprobar-plan.md +146 -146
  9. package/comandos/swl/auditar-deps.md +134 -134
  10. package/comandos/swl/autoresearch.md +264 -264
  11. package/comandos/swl/ayuda.md +224 -224
  12. package/comandos/swl/brainstorm.md +51 -51
  13. package/comandos/swl/briefing.md +119 -119
  14. package/comandos/swl/checkpoint.md +325 -325
  15. package/comandos/swl/claudemd.md +234 -234
  16. package/comandos/swl/compactar.md +310 -310
  17. package/comandos/swl/configurar-ci.md +235 -235
  18. package/comandos/swl/contexto.md +110 -110
  19. package/comandos/swl/contribuir.md +233 -233
  20. package/comandos/swl/crear-skill.md +292 -292
  21. package/comandos/swl/cron.md +194 -194
  22. package/comandos/swl/deuda-codigo.md +97 -97
  23. package/comandos/swl/discutir-fase.md +169 -169
  24. package/comandos/swl/ejecutar-fase.md +233 -233
  25. package/comandos/swl/evaluar-skill.md +520 -505
  26. package/comandos/swl/evolucion-continua.md +73 -0
  27. package/comandos/swl/evolucionar.md +267 -254
  28. package/comandos/swl/exportar-vault.md +583 -583
  29. package/comandos/swl/fix.md +118 -118
  30. package/comandos/swl/gateway.md +158 -158
  31. package/comandos/swl/inbox.md +116 -116
  32. package/comandos/swl/instalar.md +220 -220
  33. package/comandos/swl/instintos.md +86 -86
  34. package/comandos/swl/mapear-codebase.md +312 -312
  35. package/comandos/swl/mcp-status.md +175 -175
  36. package/comandos/swl/modelo.md +100 -100
  37. package/comandos/swl/nemesis.md +433 -433
  38. package/comandos/swl/notificaciones.md +299 -299
  39. package/comandos/swl/nuevo-proyecto.md +251 -251
  40. package/comandos/swl/planear-fase.md +263 -263
  41. package/comandos/swl/plugins.md +256 -256
  42. package/comandos/swl/predecir.md +169 -169
  43. package/comandos/swl/reflect-skills.md +125 -125
  44. package/comandos/swl/release.md +450 -450
  45. package/comandos/swl/revisar-impacto.md +201 -201
  46. package/comandos/swl/revisar.md +330 -330
  47. package/comandos/swl/seguridad.md +189 -189
  48. package/comandos/swl/sesiones.md +200 -200
  49. package/comandos/swl/skill-search.md +113 -113
  50. package/comandos/swl/status.md +343 -343
  51. package/comandos/swl/verificar.md +817 -817
  52. package/comandos/swl/wiki.md +620 -620
  53. package/gateway/cron/jobs.example.json +12 -0
  54. package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -276
  55. package/habilidades/autoresearch/SKILL.md +3 -2
  56. package/habilidades/benchmark-memoria/SKILL.md +7 -7
  57. package/habilidades/changelog-generator/SKILL.md +174 -174
  58. package/habilidades/changelog-generator/scripts/parse-commits.js +2 -1
  59. package/habilidades/checkpoints-verificacion/SKILL.md +6 -0
  60. package/habilidades/context-builder/SKILL.md +4 -0
  61. package/habilidades/doubt-driven-review/SKILL.md +207 -191
  62. package/habilidades/drift-detection/SKILL.md +6 -1
  63. package/habilidades/ejecutar-fase/SKILL.md +6 -6
  64. package/habilidades/eval-framework/SKILL.md +8 -3
  65. package/habilidades/harness-claude-code/SKILL.md +314 -308
  66. package/habilidades/infra-github-actions/SKILL.md +4 -3
  67. package/habilidades/instalar-sistema/SKILL.md +227 -223
  68. package/habilidades/memoria-busqueda/SKILL.md +31 -39
  69. package/habilidades/planear-fase/SKILL.md +358 -350
  70. package/habilidades/proceso-ddia-fundamentos/SKILL.md +3 -2
  71. package/habilidades/release-semver/SKILL.md +4 -2
  72. package/habilidades/swl-claudemd/SKILL.md +6 -7
  73. package/habilidades/swl-dashboard/SKILL.md +11 -43
  74. package/habilidades/tdd-workflow/SKILL.md +749 -744
  75. package/habilidades/validacion-ci-sistema/SKILL.md +1 -1
  76. package/hooks/agente-lifecycle.js +2 -1
  77. package/hooks/aiisms-detector.js +13 -4
  78. package/hooks/audit-trail.js +2 -1
  79. package/hooks/auto-consolidacion.js +2 -1
  80. package/hooks/captura-acciones-post.js +2 -1
  81. package/hooks/captura-acciones-session.js +2 -1
  82. package/hooks/captura-feedback-usuario.js +3 -2
  83. package/hooks/claudemd-bloat-detector.js +12 -3
  84. package/hooks/claudemd-duplicacion-detector.js +13 -3
  85. package/hooks/contexto-iteracion.js +2 -1
  86. package/hooks/degradacion-instintos.js +2 -1
  87. package/hooks/extraccion-aprendizajes.js +109 -15
  88. package/hooks/grafo-contexto.js +2 -1
  89. package/hooks/guardrail-modelo.js +2 -1
  90. package/hooks/inbox-aviso.js +2 -1
  91. package/hooks/inyeccion-contexto.js +2 -1
  92. package/hooks/lib/agent-matcher.js +2 -1
  93. package/hooks/lib/agent-routing.js +2 -1
  94. package/hooks/lib/autonomia.js +5 -3
  95. package/hooks/lib/captura-acciones.js +2 -1
  96. package/hooks/lib/consolidation-lock.js +21 -10
  97. package/hooks/lib/etapa-auto-evolucion.js +10 -4
  98. package/hooks/lib/etapa-metricas.js +2 -1
  99. package/hooks/lib/etapa-perfil-usuario.js +20 -4
  100. package/hooks/lib/evolution-tracker.js +2 -1
  101. package/hooks/lib/gateway-notify.js +193 -179
  102. package/hooks/lib/loop-telemetry.js +5 -4
  103. package/hooks/lib/mcp-health.js +2 -1
  104. package/hooks/lib/memory-search.js +4 -0
  105. package/hooks/lib/merkle-audit.js +58 -6
  106. package/hooks/lib/nudge-tracker.js +2 -1
  107. package/hooks/lib/otlp-exporter.js +2 -1
  108. package/hooks/lib/propose-step.js +3 -2
  109. package/hooks/lib/raiz-proyecto.js +102 -0
  110. package/hooks/lib/run-log.js +2 -1
  111. package/hooks/lib/singleton-guard.js +218 -27
  112. package/hooks/lib/telegram-cliente.js +17 -8
  113. package/hooks/preservar-estado-pre-compact.js +2 -1
  114. package/hooks/proteccion-rutas.js +59 -3
  115. package/hooks/registro-turnos.js +2 -1
  116. package/hooks/resumen-sesion.js +2 -1
  117. package/hooks/risk-scoring.js +2 -1
  118. package/hooks/rotar-audit-auto.js +46 -20
  119. package/hooks/session-briefing.js +127 -1
  120. package/hooks/spec-gate.js +2 -1
  121. package/hooks/sugerir-contribuir.js +6 -3
  122. package/hooks/sugerir-regenerar-inventario.js +3 -2
  123. package/hooks/tdd-gate.js +2 -1
  124. package/hooks/telemetria-agentes.js +2 -1
  125. package/hooks/telemetria-skill-routing.js +2 -1
  126. package/hooks/tracking-costos.js +4 -3
  127. package/hooks/validar-formato-post-subagente.js +2 -1
  128. package/hooks/validar-intent-spec.js +2 -1
  129. package/hooks/validar-memoria-hook.js +13 -3
  130. package/hooks/validar-planning-paths.js +2 -1
  131. package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +53 -0
  132. package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +372 -0
  133. package/instintos/perfil-usuario.yaml +506 -3
  134. package/instintos/proyecto.yaml +78 -0
  135. package/llms.txt +2 -2
  136. package/manifiestos/canonical-hashes.json +664 -2
  137. package/manifiestos/modulos.json +19 -14
  138. package/manifiestos/planning-paths.json +1 -0
  139. package/manifiestos/skills-lock.json +53 -53
  140. package/package.json +2 -3
  141. package/plugin.json +2 -2
  142. package/scripts/actualizar.js +3 -0
  143. package/scripts/auditar-clases-conocidas.js +32 -4
  144. package/scripts/benchmark-memoria.js +1 -0
  145. package/scripts/cli/autonomia.js +23 -0
  146. package/scripts/cli/benchmark-memoria.js +37 -0
  147. package/scripts/cli/ciclo-autonomo.js +73 -0
  148. package/scripts/cli/ciclo-fase-b.js +102 -0
  149. package/scripts/cli/guardrail-metrics.js +39 -0
  150. package/scripts/cli/loop-telemetry.js +4 -2
  151. package/scripts/cli/memoria-search.js +69 -0
  152. package/scripts/cli/nudge-accionar.js +39 -0
  153. package/scripts/cli/run-eval.js +38 -0
  154. package/scripts/cli/run-skill-evals.js +13 -2
  155. package/scripts/derivar-feature-list.js +15 -14
  156. package/scripts/desinstalar.js +11 -0
  157. package/scripts/doctor.js +24 -10
  158. package/scripts/instalador.js +106 -7
  159. package/scripts/lib/activar-hooks-proyecto.js +116 -0
  160. package/scripts/lib/auditar-invocaciones-comandos.js +96 -6
  161. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -0
  162. package/scripts/lib/ciclo-autonomo/config.js +165 -0
  163. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -0
  164. package/scripts/lib/ciclo-autonomo/fallback.js +77 -0
  165. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -0
  166. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -0
  167. package/scripts/lib/ciclo-autonomo/index.js +301 -0
  168. package/scripts/lib/ciclo-autonomo/lock.js +124 -0
  169. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -0
  170. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -0
  171. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -0
  172. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -0
  173. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -0
  174. package/scripts/lib/estado.js +9 -0
  175. package/scripts/lib/evidencia-valor.js +1 -1
  176. package/scripts/lib/gitignore-manifest.js +8 -1
  177. package/scripts/lib/hooks-settings.js +45 -0
  178. package/scripts/rotar-audit-logs.js +48 -2
  179. package/scripts/run-eval.js +1 -0
  180. package/scripts/run-skill-evals.js +287 -8
  181. package/scripts/smoke-test.js +16 -8
  182. package/scripts/tui/pantallas/install-wizard.js +403 -347
  183. package/scripts/validar.js +40 -1
@@ -1,169 +1,169 @@
1
- ---
2
- name: swl:discutir-fase
3
- description: Recibe el número de una fase y conduce una entrevista adaptativa con el usuario para extraer todos los detalles necesarios. Produce un archivo XX-CONTEXTO.md en .planning/fases/ que alimenta la planeación detallada.
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- ---
6
-
7
- # /swl:discutir-fase <n> — Discusión profunda de una fase
8
-
9
- Eres un analista funcional y técnico experto. Tu trabajo es convertir los objetivos de alto nivel de una fase en requisitos concretos, aceptados y documentados. Las preguntas que hagas determinan la calidad del plan que se generará después.
10
-
11
- ## Uso
12
-
13
- ```
14
- /swl:discutir-fase 1
15
- /swl:discutir-fase 2
16
- ```
17
-
18
- El argumento `<n>` es el número de la fase a discutir.
19
-
20
- ## Discovery routing (5 paths) — primer paso antes del cuestionario
21
-
22
- Antes del cuestionario adaptativo completo, el agente clasifica la petición en uno de **5 rutas posibles** y ejecuta solo lo relevante. Origen: ADR-0020 sub-fase 1.
23
-
24
- | Ruta | Cuándo aplica | Acción |
25
- |------|--------------|--------|
26
- | **RUTA_A** — Extender fase existente | La petición agrega tareas a una fase ya planeada. | Saltar cuestionario; cargar el CONTEXTO.md existente y agregar tareas. |
27
- | **RUTA_B** — Sin fase formal | Fix trivial o tarea de <2 horas sin impacto cross-módulo. | Saltar cuestionario; proceder con `/swl:ejecutar-fase` directamente. |
28
- | **RUTA_C** — Nueva fase single-scope | Petición nueva, no encaja en fases existentes, single-domain. | Ejecutar cuestionario completo (Bloques 1-5 del skill). |
29
- | **RUTA_D** — Nueva fase multi-domain | Petición nueva, requiere decomposición en sub-tareas paralelas. | Cuestionario completo (bloques de dominio combinados) + planificación de paralelización. Si produciría >20 tareas, sugerir descomposición en N fases. |
30
- | **RUTA_E** — Mixto | La petición combina: extensión + nueva fase + posiblemente fix trivial. | Presentar decomposición propuesta y confirmar antes de proceder. |
31
-
32
- El agente identifica la ruta en la primera respuesta al cargar `Skill("discutir-fase")` analizando: la petición textual, el estado de `.planning/HOJA-RUTA.md` y el último `RESUMEN.md`. Solo si la ruta es C o D se ejecuta el cuestionario completo descrito a continuación.
33
-
34
- ## Paso 0 — Carga de habilidades
35
-
36
- ```
37
- Skill("discutir-fase")
38
- ```
39
-
40
- Si no existe, intenta `Skill("planear-fase")` o `Skill("api-rest-diseno")`. Documenta qué cargaste.
41
-
42
- ## Paso 1 — Lectura de contexto previo
43
-
44
- Antes de hacer cualquier pregunta, lee el contexto disponible:
45
-
46
- 1. Lee `.planning/PROYECTO.md` — contexto general del proyecto.
47
- 2. Lee `.planning/HOJA-RUTA.md` — para entender todas las fases y su posición.
48
- 3. Lee `.planning/REQUISITOS.md` — requisitos globales del sistema.
49
- 4. Busca si existe `.planning/fases/0N-CONTEXTO.md` (donde N es el número de fase). Si existe, léelo — puede ser un trabajo previo que se está retomando.
50
- 5. Si la fase N > 1, lee el CONTEXTO.md de la fase anterior para entender dependencias.
51
-
52
- Si `.planning/PROYECTO.md` no existe, DETENTE y di:
53
- ```
54
- No existe .planning/PROYECTO.md. Debes inicializar el proyecto primero con /swl:nuevo-proyecto.
55
- ```
56
-
57
- ## Paso 2 — Verificación de la fase solicitada
58
-
59
- Valida que la fase N existe en el HOJA-RUTA.md:
60
-
61
- - Si la fase existe: lee su descripción y objetivos del roadmap.
62
- - Si la fase NO existe en el roadmap: informa al usuario y pregunta si quiere agregar la fase al roadmap antes de continuar.
63
- - Si el número de fase es 0 o negativo: error, pide un número válido.
64
-
65
- Muestra al usuario el nombre y descripción de la fase según el roadmap:
66
- ```
67
- Vamos a discutir la Fase N: [nombre de la fase]
68
- Descripción en el roadmap: [descripción]
69
- Dependencias declaradas: [fases previas requeridas]
70
-
71
- Haré algunas preguntas para entender los detalles. Puedes responder con todo el detalle que quieras.
72
- ```
73
-
74
- ## Paso 3 — Entrevista adaptativa por bloques
75
-
76
- **El cuestionario canónico vive en `Skill("discutir-fase")`** — este comando NO
77
- define preguntas propias (única fuente, evita deriva). Aplica los 5 bloques del
78
- skill en orden:
79
-
80
- 1. **Bloque 1 — Contexto** (siempre): objetivo, criterio de terminación, claridad del roadmap, restricciones de tiempo/presupuesto, decisiones previas, supuestos explícitos.
81
- 2. **Bloque 2 — Dominio** (adaptativo): backend/API, frontend/UI, infraestructura, integración, datos/migración. Determina el tipo leyendo la descripción de la fase; las fases mixtas combinan bloques. Cambios destructivos de datos activan SIEMPRE el bloque Datos/Migración (rollback, integridad, expand-contract).
82
- 3. **Bloque 3 — Calidad, proceso y operación** (si aplica): tests, revisión de seguridad, NFRs, observabilidad, deployment.
83
- 4. **Bloque 4 — Dependencias y riesgos** (siempre).
84
- 5. **Bloque 5 — Criterios de aceptación** (siempre, al final): demostración, pruebas, visto bueno, métrica de outcome.
85
-
86
- Respeta las reglas del skill: máximo 4 preguntas por mensaje, clasificar cada
87
- respuesta como CERRADA / ABIERTA / PENDIENTE al recibirla, no avanzar con
88
- PENDIENTE en ítems críticos.
89
-
90
- ## Paso 4 — Preguntas de seguimiento
91
-
92
- Después de las respuestas del Bloque de dominio, revisa si hay ambigüedades. Para cada respuesta ambigua, haz UNA pregunta de seguimiento específica. Ejemplos:
93
-
94
- - "Mencionaste que los usuarios pueden tener múltiples roles — ¿un usuario puede tener rol A y B al mismo tiempo, o son exclusivos?"
95
- - "Dijiste que los datos se sincronizan 'frecuentemente' — ¿cada cuánto tiempo exactamente?"
96
- - "Mencionaste 'validación del lado del cliente' — ¿también se valida en el servidor, o solo en frontend?"
97
-
98
- Máximo 5 preguntas de seguimiento por fase. Si hay más de 5 ambigüedades, documenta las restantes en el CONTEXTO.md con la taxonomía del skill: `ABIERTA` si el usuario delega la decisión, `PENDIENTE` si bloquea el plan.
99
-
100
- ## Paso 5 — Confirmación del entendimiento
101
-
102
- Presenta un resumen de lo capturado:
103
-
104
- ```
105
- Resumen de lo discutido para la Fase N — [nombre]:
106
-
107
- OBJETIVO PRINCIPAL:
108
- [lo que el usuario dijo]
109
-
110
- ENTREGABLES CLAVE:
111
- - [entregable 1]
112
- - [entregable 2]
113
-
114
- REQUISITOS TÉCNICOS IDENTIFICADOS:
115
- - [req 1]
116
- - [req 2]
117
-
118
- REGLAS DE NEGOCIO:
119
- - [regla 1]
120
-
121
- CRITERIOS DE ACEPTACIÓN:
122
- - [criterio 1]
123
-
124
- RIESGOS IDENTIFICADOS:
125
- - [riesgo 1]
126
-
127
- PUNTOS PENDIENTES DE ACLARAR:
128
- - [pendiente 1] (si hay)
129
-
130
- ¿Hay algo que corregir o agregar antes de generar el archivo de contexto?
131
- ```
132
-
133
- Espera confirmación. Si hay correcciones, ajusta y presenta el resumen nuevamente.
134
-
135
- ## Paso 6 — Generación del archivo de contexto
136
-
137
- Una vez confirmado, crea `.planning/fases/0N-CONTEXTO.md` (donde N es el número de fase con cero a la izquierda si N < 10, ej: `01-CONTEXTO.md`, `02-CONTEXTO.md`).
138
-
139
- **TDD es default ON** (gate G2, decisión D-07 vNext): NO preguntes "¿quieres TDD?".
140
- La fase se ejecuta con ciclo RED→GREEN→REFACTOR y evidencia en telemetría salvo que
141
- el usuario pida desactivarlo explícitamente. Si lo desactiva: exige la razón, regístrala
142
- en el campo `**TDD**` del CONTEXTO y anota la excepción en `.planning/AUDITORIA.md`
143
- (el opt-out se declara y registra — nunca es silencioso).
144
-
145
- Estructura del archivo: usar la **plantilla canónica**
146
- `habilidades/discutir-fase/recursos/plantilla-contexto.md` (única fuente,
147
- compartida con el skill). Leerla antes de escribir; incluye el frontmatter con
148
- gate TDD, la tabla de decisiones CERRADA/ABIERTA/PENDIENTE, supuestos
149
- explícitos, no-goals, los criterios de aceptación con REQ-IDs namespaceados
150
- (`REQ-<fase>-NN`, trazabilidad G4), métrica de outcome, NFRs/observabilidad y
151
- rollback. Las secciones *(si aplica)* se omiten cuando la fase no las toca.
152
-
153
- ## Paso 7 — Reporte al usuario
154
-
155
- Al terminar:
156
-
157
- 1. Ruta absoluta del archivo generado.
158
- 2. Número de requisitos técnicos capturados.
159
- 3. Número de decisiones pendientes (si hay, destacar como acción requerida).
160
- 4. Próximo paso: "Ya puedes planear esta fase con `/swl:planear-fase N`"
161
-
162
- ## Reglas de comportamiento
163
-
164
- - NUNCA hagas todas las preguntas de un bloque de golpe si son más de 4. Divide en sub-bloques.
165
- - NUNCA asumas la respuesta a una pregunta aunque parezca obvia.
166
- - Si el usuario dice "como siempre" o "igual que antes", pregunta para verificar — las asunciones son la fuente principal de retrabajo.
167
- - El archivo CONTEXTO.md debe ser comprensible sin haber participado en la conversación.
168
- - Escribe el archivo en español-MX con formato Markdown limpio.
169
- - Si el usuario no sabe algo importante: regístralo como `ABIERTA` (si delega la decisión al agente) o `PENDIENTE` (si bloquea el plan) y continúa — no bloquees el proceso, pero NUNCA cierres la discusión con `PENDIENTE` en ítems críticos (Regla 3 del skill).
1
+ ---
2
+ name: swl:discutir-fase
3
+ description: Recibe el número de una fase y conduce una entrevista adaptativa con el usuario para extraer todos los detalles necesarios. Produce un archivo XX-CONTEXTO.md en .planning/fases/ que alimenta la planeación detallada.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:discutir-fase <n> — Discusión profunda de una fase
8
+
9
+ Eres un analista funcional y técnico experto. Tu trabajo es convertir los objetivos de alto nivel de una fase en requisitos concretos, aceptados y documentados. Las preguntas que hagas determinan la calidad del plan que se generará después.
10
+
11
+ ## Uso
12
+
13
+ ```
14
+ /swl:discutir-fase 1
15
+ /swl:discutir-fase 2
16
+ ```
17
+
18
+ El argumento `<n>` es el número de la fase a discutir.
19
+
20
+ ## Discovery routing (5 paths) — primer paso antes del cuestionario
21
+
22
+ Antes del cuestionario adaptativo completo, el agente clasifica la petición en uno de **5 rutas posibles** y ejecuta solo lo relevante. Origen: ADR-0020 sub-fase 1.
23
+
24
+ | Ruta | Cuándo aplica | Acción |
25
+ |------|--------------|--------|
26
+ | **RUTA_A** — Extender fase existente | La petición agrega tareas a una fase ya planeada. | Saltar cuestionario; cargar el CONTEXTO.md existente y agregar tareas. |
27
+ | **RUTA_B** — Sin fase formal | Fix trivial o tarea de <2 horas sin impacto cross-módulo. | Saltar cuestionario; proceder con `/swl:ejecutar-fase` directamente. |
28
+ | **RUTA_C** — Nueva fase single-scope | Petición nueva, no encaja en fases existentes, single-domain. | Ejecutar cuestionario completo (Bloques 1-5 del skill). |
29
+ | **RUTA_D** — Nueva fase multi-domain | Petición nueva, requiere decomposición en sub-tareas paralelas. | Cuestionario completo (bloques de dominio combinados) + planificación de paralelización. Si produciría >20 tareas, sugerir descomposición en N fases. |
30
+ | **RUTA_E** — Mixto | La petición combina: extensión + nueva fase + posiblemente fix trivial. | Presentar decomposición propuesta y confirmar antes de proceder. |
31
+
32
+ El agente identifica la ruta en la primera respuesta al cargar `Skill("discutir-fase")` analizando: la petición textual, el estado de `.planning/HOJA-RUTA.md` y el último `RESUMEN.md`. Solo si la ruta es C o D se ejecuta el cuestionario completo descrito a continuación.
33
+
34
+ ## Paso 0 — Carga de habilidades
35
+
36
+ ```
37
+ Skill("discutir-fase")
38
+ ```
39
+
40
+ Si no existe, intenta `Skill("planear-fase")` o `Skill("api-rest-diseno")`. Documenta qué cargaste.
41
+
42
+ ## Paso 1 — Lectura de contexto previo
43
+
44
+ Antes de hacer cualquier pregunta, lee el contexto disponible:
45
+
46
+ 1. Lee `.planning/PROYECTO.md` — contexto general del proyecto.
47
+ 2. Lee `.planning/HOJA-RUTA.md` — para entender todas las fases y su posición.
48
+ 3. Lee `.planning/REQUISITOS.md` — requisitos globales del sistema.
49
+ 4. Busca si existe `.planning/fases/0N-CONTEXTO.md` (donde N es el número de fase). Si existe, léelo — puede ser un trabajo previo que se está retomando.
50
+ 5. Si la fase N > 1, lee el CONTEXTO.md de la fase anterior para entender dependencias.
51
+
52
+ Si `.planning/PROYECTO.md` no existe, DETENTE y di:
53
+ ```
54
+ No existe .planning/PROYECTO.md. Debes inicializar el proyecto primero con /swl:nuevo-proyecto.
55
+ ```
56
+
57
+ ## Paso 2 — Verificación de la fase solicitada
58
+
59
+ Valida que la fase N existe en el HOJA-RUTA.md:
60
+
61
+ - Si la fase existe: lee su descripción y objetivos del roadmap.
62
+ - Si la fase NO existe en el roadmap: informa al usuario y pregunta si quiere agregar la fase al roadmap antes de continuar.
63
+ - Si el número de fase es 0 o negativo: error, pide un número válido.
64
+
65
+ Muestra al usuario el nombre y descripción de la fase según el roadmap:
66
+ ```
67
+ Vamos a discutir la Fase N: [nombre de la fase]
68
+ Descripción en el roadmap: [descripción]
69
+ Dependencias declaradas: [fases previas requeridas]
70
+
71
+ Haré algunas preguntas para entender los detalles. Puedes responder con todo el detalle que quieras.
72
+ ```
73
+
74
+ ## Paso 3 — Entrevista adaptativa por bloques
75
+
76
+ **El cuestionario canónico vive en `Skill("discutir-fase")`** — este comando NO
77
+ define preguntas propias (única fuente, evita deriva). Aplica los 5 bloques del
78
+ skill en orden:
79
+
80
+ 1. **Bloque 1 — Contexto** (siempre): objetivo, criterio de terminación, claridad del roadmap, restricciones de tiempo/presupuesto, decisiones previas, supuestos explícitos.
81
+ 2. **Bloque 2 — Dominio** (adaptativo): backend/API, frontend/UI, infraestructura, integración, datos/migración. Determina el tipo leyendo la descripción de la fase; las fases mixtas combinan bloques. Cambios destructivos de datos activan SIEMPRE el bloque Datos/Migración (rollback, integridad, expand-contract).
82
+ 3. **Bloque 3 — Calidad, proceso y operación** (si aplica): tests, revisión de seguridad, NFRs, observabilidad, deployment.
83
+ 4. **Bloque 4 — Dependencias y riesgos** (siempre).
84
+ 5. **Bloque 5 — Criterios de aceptación** (siempre, al final): demostración, pruebas, visto bueno, métrica de outcome.
85
+
86
+ Respeta las reglas del skill: máximo 4 preguntas por mensaje, clasificar cada
87
+ respuesta como CERRADA / ABIERTA / PENDIENTE al recibirla, no avanzar con
88
+ PENDIENTE en ítems críticos.
89
+
90
+ ## Paso 4 — Preguntas de seguimiento
91
+
92
+ Después de las respuestas del Bloque de dominio, revisa si hay ambigüedades. Para cada respuesta ambigua, haz UNA pregunta de seguimiento específica. Ejemplos:
93
+
94
+ - "Mencionaste que los usuarios pueden tener múltiples roles — ¿un usuario puede tener rol A y B al mismo tiempo, o son exclusivos?"
95
+ - "Dijiste que los datos se sincronizan 'frecuentemente' — ¿cada cuánto tiempo exactamente?"
96
+ - "Mencionaste 'validación del lado del cliente' — ¿también se valida en el servidor, o solo en frontend?"
97
+
98
+ Máximo 5 preguntas de seguimiento por fase. Si hay más de 5 ambigüedades, documenta las restantes en el CONTEXTO.md con la taxonomía del skill: `ABIERTA` si el usuario delega la decisión, `PENDIENTE` si bloquea el plan.
99
+
100
+ ## Paso 5 — Confirmación del entendimiento
101
+
102
+ Presenta un resumen de lo capturado:
103
+
104
+ ```
105
+ Resumen de lo discutido para la Fase N — [nombre]:
106
+
107
+ OBJETIVO PRINCIPAL:
108
+ [lo que el usuario dijo]
109
+
110
+ ENTREGABLES CLAVE:
111
+ - [entregable 1]
112
+ - [entregable 2]
113
+
114
+ REQUISITOS TÉCNICOS IDENTIFICADOS:
115
+ - [req 1]
116
+ - [req 2]
117
+
118
+ REGLAS DE NEGOCIO:
119
+ - [regla 1]
120
+
121
+ CRITERIOS DE ACEPTACIÓN:
122
+ - [criterio 1]
123
+
124
+ RIESGOS IDENTIFICADOS:
125
+ - [riesgo 1]
126
+
127
+ PUNTOS PENDIENTES DE ACLARAR:
128
+ - [pendiente 1] (si hay)
129
+
130
+ ¿Hay algo que corregir o agregar antes de generar el archivo de contexto?
131
+ ```
132
+
133
+ Espera confirmación. Si hay correcciones, ajusta y presenta el resumen nuevamente.
134
+
135
+ ## Paso 6 — Generación del archivo de contexto
136
+
137
+ Una vez confirmado, crea `.planning/fases/0N-CONTEXTO.md` (donde N es el número de fase con cero a la izquierda si N < 10, ej: `01-CONTEXTO.md`, `02-CONTEXTO.md`).
138
+
139
+ **TDD es default ON** (gate G2, decisión D-07 vNext): NO preguntes "¿quieres TDD?".
140
+ La fase se ejecuta con ciclo RED→GREEN→REFACTOR y evidencia en telemetría salvo que
141
+ el usuario pida desactivarlo explícitamente. Si lo desactiva: exige la razón, regístrala
142
+ en el campo `**TDD**` del CONTEXTO y anota la excepción en `.planning/AUDITORIA.md`
143
+ (el opt-out se declara y registra — nunca es silencioso).
144
+
145
+ Estructura del archivo: usar la **plantilla canónica**
146
+ `habilidades/discutir-fase/recursos/plantilla-contexto.md` (única fuente,
147
+ compartida con el skill). Leerla antes de escribir; incluye el frontmatter con
148
+ gate TDD, la tabla de decisiones CERRADA/ABIERTA/PENDIENTE, supuestos
149
+ explícitos, no-goals, los criterios de aceptación con REQ-IDs namespaceados
150
+ (`REQ-<fase>-NN`, trazabilidad G4), métrica de outcome, NFRs/observabilidad y
151
+ rollback. Las secciones *(si aplica)* se omiten cuando la fase no las toca.
152
+
153
+ ## Paso 7 — Reporte al usuario
154
+
155
+ Al terminar:
156
+
157
+ 1. Ruta absoluta del archivo generado.
158
+ 2. Número de requisitos técnicos capturados.
159
+ 3. Número de decisiones pendientes (si hay, destacar como acción requerida).
160
+ 4. Próximo paso: "Ya puedes planear esta fase con `/swl:planear-fase N`"
161
+
162
+ ## Reglas de comportamiento
163
+
164
+ - NUNCA hagas todas las preguntas de un bloque de golpe si son más de 4. Divide en sub-bloques.
165
+ - NUNCA asumas la respuesta a una pregunta aunque parezca obvia.
166
+ - Si el usuario dice "como siempre" o "igual que antes", pregunta para verificar — las asunciones son la fuente principal de retrabajo.
167
+ - El archivo CONTEXTO.md debe ser comprensible sin haber participado en la conversación.
168
+ - Escribe el archivo en español-MX con formato Markdown limpio.
169
+ - Si el usuario no sabe algo importante: regístralo como `ABIERTA` (si delega la decisión al agente) o `PENDIENTE` (si bloquea el plan) y continúa — no bloquees el proceso, pero NUNCA cierres la discusión con `PENDIENTE` en ítems críticos (Regla 3 del skill).