@saulwade/swl-ses 2.6.0 → 2.6.1

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 (207) hide show
  1. package/CLAUDE.md +197 -197
  2. package/README.md +600 -600
  3. package/agentes/_intent-spec.md +73 -73
  4. package/agentes/_propose-step.md +90 -90
  5. package/agentes/accesibilidad-wcag-swl.md +690 -690
  6. package/agentes/arquitecto-swl.md +267 -267
  7. package/agentes/auto-evolucion-swl.md +932 -932
  8. package/agentes/backend-csharp-swl.md +420 -420
  9. package/agentes/backend-go-swl.md +390 -390
  10. package/agentes/backend-java-swl.md +281 -281
  11. package/agentes/backend-rust-swl.md +364 -364
  12. package/agentes/backend-workers-swl.md +482 -482
  13. package/agentes/cloud-infra-swl.md +509 -509
  14. package/agentes/consolidador-swl.md +541 -541
  15. package/agentes/depurador-swl.md +352 -352
  16. package/agentes/devops-ci-swl.md +400 -400
  17. package/agentes/disenador-ui-swl.md +569 -569
  18. package/agentes/documentador-swl.md +345 -345
  19. package/agentes/frontend-angular-swl.md +621 -621
  20. package/agentes/frontend-css-swl.md +716 -716
  21. package/agentes/frontend-react-swl.md +692 -692
  22. package/agentes/frontend-swl.md +496 -496
  23. package/agentes/frontend-tailwind-swl.md +826 -826
  24. package/agentes/investigador-swl.md +432 -432
  25. package/agentes/investigador-ux-swl.md +505 -505
  26. package/agentes/migrador-swl.md +442 -442
  27. package/agentes/mobile-android-swl.md +511 -511
  28. package/agentes/mobile-cross-swl.md +541 -541
  29. package/agentes/mobile-ios-swl.md +502 -502
  30. package/agentes/mobile-testing-swl.md +302 -302
  31. package/agentes/nemesis-auditor-swl.md +285 -285
  32. package/agentes/observabilidad-swl.md +438 -438
  33. package/agentes/pagos-swl.md +310 -310
  34. package/agentes/perfilador-usuario-swl.md +321 -321
  35. package/agentes/planificador-swl.md +399 -399
  36. package/agentes/producto-prd-swl.md +589 -589
  37. package/agentes/red-team-swl.md +218 -218
  38. package/agentes/release-manager-swl.md +590 -590
  39. package/agentes/rendimiento-swl.md +713 -713
  40. package/agentes/revisor-angular-swl.md +278 -278
  41. package/agentes/revisor-csharp-swl.md +264 -264
  42. package/agentes/revisor-go-swl.md +259 -259
  43. package/agentes/revisor-java-swl.md +257 -257
  44. package/agentes/revisor-kotlin-swl.md +273 -273
  45. package/agentes/revisor-nextjs-swl.md +281 -281
  46. package/agentes/revisor-php-swl.md +271 -271
  47. package/agentes/revisor-react-swl.md +278 -278
  48. package/agentes/revisor-rust-swl.md +346 -346
  49. package/agentes/revisor-seguridad-swl.md +399 -399
  50. package/agentes/revisor-swift-swl.md +268 -268
  51. package/agentes/revisor-typescript-swl.md +346 -346
  52. package/agentes/tdd-qa-swl.md +393 -393
  53. package/comandos/swl/actualizar.md +174 -174
  54. package/comandos/swl/adoptar-proyecto.md +265 -265
  55. package/comandos/swl/aprender.md +836 -836
  56. package/comandos/swl/aprobar-plan.md +146 -146
  57. package/comandos/swl/auditar-deps.md +134 -134
  58. package/comandos/swl/autoresearch.md +264 -264
  59. package/comandos/swl/ayuda.md +224 -224
  60. package/comandos/swl/brainstorm.md +51 -51
  61. package/comandos/swl/briefing.md +119 -119
  62. package/comandos/swl/checkpoint.md +325 -325
  63. package/comandos/swl/claudemd.md +234 -234
  64. package/comandos/swl/compactar.md +310 -310
  65. package/comandos/swl/configurar-ci.md +235 -235
  66. package/comandos/swl/contexto.md +110 -110
  67. package/comandos/swl/contribuir.md +233 -233
  68. package/comandos/swl/crear-skill.md +292 -292
  69. package/comandos/swl/cron.md +194 -194
  70. package/comandos/swl/discutir-fase.md +169 -169
  71. package/comandos/swl/ejecutar-fase.md +233 -233
  72. package/comandos/swl/evaluar-skill.md +520 -520
  73. package/comandos/swl/evolucion-continua.md +73 -73
  74. package/comandos/swl/evolucionar.md +267 -267
  75. package/comandos/swl/exportar-vault.md +583 -583
  76. package/comandos/swl/fix.md +118 -118
  77. package/comandos/swl/gateway.md +158 -158
  78. package/comandos/swl/inbox.md +116 -116
  79. package/comandos/swl/instalar.md +220 -220
  80. package/comandos/swl/instintos.md +86 -86
  81. package/comandos/swl/mapear-codebase.md +312 -312
  82. package/comandos/swl/mcp-status.md +175 -175
  83. package/comandos/swl/modelo.md +100 -100
  84. package/comandos/swl/nemesis.md +433 -433
  85. package/comandos/swl/notificaciones.md +299 -299
  86. package/comandos/swl/nuevo-proyecto.md +251 -251
  87. package/comandos/swl/planear-fase.md +263 -263
  88. package/comandos/swl/plugins.md +256 -256
  89. package/comandos/swl/predecir.md +169 -169
  90. package/comandos/swl/reflect-skills.md +125 -125
  91. package/comandos/swl/release.md +450 -450
  92. package/comandos/swl/revisar-impacto.md +201 -201
  93. package/comandos/swl/revisar.md +330 -330
  94. package/comandos/swl/seguridad.md +189 -189
  95. package/comandos/swl/sesiones.md +200 -200
  96. package/comandos/swl/skill-search.md +113 -113
  97. package/comandos/swl/status.md +345 -345
  98. package/comandos/swl/verificar.md +817 -817
  99. package/comandos/swl/wiki.md +620 -620
  100. package/gateway/cron/jobs.example.json +12 -12
  101. package/habilidades/auto-evolucion-protocolo/SKILL.md +294 -294
  102. package/habilidades/backend-async-postgres-testing/SKILL.md +2 -1
  103. package/habilidades/changelog-generator/SKILL.md +174 -174
  104. package/habilidades/compactacion-contexto/SKILL.md +2 -1
  105. package/habilidades/contenedores-docker/SKILL.md +4 -2
  106. package/habilidades/doubt-driven-review/SKILL.md +207 -207
  107. package/habilidades/drift-detection/SKILL.md +1 -1
  108. package/habilidades/ejecutar-task-iterativo/SKILL.md +278 -278
  109. package/habilidades/extractor-de-aprendizajes/SKILL.md +8 -2
  110. package/habilidades/git-worktrees-paralelo/SKILL.md +19 -1
  111. package/habilidades/harness-claude-code/SKILL.md +314 -314
  112. package/habilidades/instalar-sistema/SKILL.md +227 -227
  113. package/habilidades/planear-fase/SKILL.md +358 -358
  114. package/habilidades/prevencion-sobreingenieria/recursos/soluciones-nativas.md +166 -166
  115. package/habilidades/prevencion-sobreingenieria/recursos/variables-residuales-post-refactor.md +85 -85
  116. package/habilidades/proceso-ingenieria-requerimientos/SKILL.md +147 -147
  117. package/habilidades/release-semver/SKILL.md +2 -2
  118. package/habilidades/tdd-workflow/SKILL.md +749 -749
  119. package/hooks/agente-lifecycle.js +1 -1
  120. package/hooks/audit-trail.js +1 -1
  121. package/hooks/auto-consolidacion.js +1 -1
  122. package/hooks/captura-acciones-post.js +1 -1
  123. package/hooks/captura-acciones-session.js +1 -1
  124. package/hooks/captura-feedback-usuario.js +1 -1
  125. package/hooks/contexto-iteracion.js +1 -1
  126. package/hooks/contexto-subagente.js +68 -68
  127. package/hooks/degradacion-instintos.js +1 -1
  128. package/hooks/grafo-contexto.js +1 -1
  129. package/hooks/guardrail-modelo.js +1 -1
  130. package/hooks/inbox-aviso.js +1 -1
  131. package/hooks/inyeccion-contexto.js +1 -1
  132. package/hooks/lib/agent-matcher.js +1 -1
  133. package/hooks/lib/agent-routing.js +1 -1
  134. package/hooks/lib/captura-acciones.js +1 -1
  135. package/hooks/lib/etapa-metricas.js +1 -1
  136. package/hooks/lib/evolution-tracker.js +1 -1
  137. package/hooks/lib/gateway-notify.js +193 -193
  138. package/hooks/lib/mcp-health.js +1 -1
  139. package/hooks/lib/notificacion-formato.js +58 -0
  140. package/hooks/lib/nudge-tracker.js +1 -1
  141. package/hooks/lib/otlp-exporter.js +1 -1
  142. package/hooks/lib/propose-step.js +1 -1
  143. package/hooks/lib/raiz-proyecto.js +127 -102
  144. package/hooks/lib/run-log.js +1 -1
  145. package/hooks/lib/singleton-guard.js +20 -13
  146. package/hooks/lib/telegram-cliente.js +11 -3
  147. package/hooks/notificacion-telegram.js +13 -3
  148. package/hooks/preservar-estado-pre-compact.js +1 -1
  149. package/hooks/registro-turnos.js +1 -1
  150. package/hooks/resumen-sesion.js +1 -1
  151. package/hooks/risk-scoring.js +1 -1
  152. package/hooks/session-briefing.js +1 -1
  153. package/hooks/spec-gate.js +1 -1
  154. package/hooks/sugerir-regenerar-inventario.js +1 -1
  155. package/hooks/tdd-gate.js +1 -1
  156. package/hooks/telemetria-agentes.js +1 -1
  157. package/hooks/telemetria-skill-routing.js +1 -1
  158. package/hooks/tracking-costos.js +1 -1
  159. package/hooks/validar-formato-post-subagente.js +1 -1
  160. package/hooks/validar-intent-spec.js +1 -1
  161. package/hooks/validar-planning-paths.js +1 -1
  162. package/llms.txt +29 -29
  163. package/manifiestos/canonical-hashes.json +5588 -5257
  164. package/manifiestos/hooks-config.json +469 -469
  165. package/manifiestos/invariantes-criticos.json +30 -30
  166. package/manifiestos/modulos.json +1429 -1428
  167. package/manifiestos/skills-lock.json +1275 -1275
  168. package/package.json +94 -94
  169. package/plugin.json +369 -369
  170. package/scripts/auditar-clases-conocidas.js +134 -134
  171. package/scripts/bootstrap-instintos.js +85 -14
  172. package/scripts/canario-hooks.js +166 -166
  173. package/scripts/cli/autonomia.js +23 -23
  174. package/scripts/cli/benchmark-memoria.js +37 -37
  175. package/scripts/cli/ciclo-autonomo.js +73 -73
  176. package/scripts/cli/ciclo-fase-b.js +102 -102
  177. package/scripts/cli/guardrail-metrics.js +39 -39
  178. package/scripts/cli/memoria-search.js +69 -69
  179. package/scripts/cli/nudge-accionar.js +39 -39
  180. package/scripts/cli/run-eval.js +38 -38
  181. package/scripts/doctor.js +26 -3
  182. package/scripts/evidencia-valor.js +101 -101
  183. package/scripts/field-report.js +16 -16
  184. package/scripts/instalador.js +13 -0
  185. package/scripts/lib/activar-hooks-proyecto.js +116 -116
  186. package/scripts/lib/ciclo-autonomo/candidatos.js +174 -174
  187. package/scripts/lib/ciclo-autonomo/config.js +165 -165
  188. package/scripts/lib/ciclo-autonomo/drenador-feedback.js +174 -174
  189. package/scripts/lib/ciclo-autonomo/fallback.js +77 -77
  190. package/scripts/lib/ciclo-autonomo/guard-convivencia.js +139 -139
  191. package/scripts/lib/ciclo-autonomo/higiene-nudges.js +112 -112
  192. package/scripts/lib/ciclo-autonomo/index.js +301 -301
  193. package/scripts/lib/ciclo-autonomo/lock.js +124 -124
  194. package/scripts/lib/ciclo-autonomo/presupuesto.js +122 -122
  195. package/scripts/lib/ciclo-autonomo/puente-degradacion.js +240 -240
  196. package/scripts/lib/ciclo-autonomo/runner-fase-b.js +248 -248
  197. package/scripts/lib/ciclo-autonomo/writer-instintos.js +190 -190
  198. package/scripts/lib/ciclo-autonomo/yaml-instintos.js +535 -535
  199. package/scripts/lib/evidencia-valor.js +228 -228
  200. package/scripts/lib/expandir-targets.js +71 -71
  201. package/scripts/lib/limpiar-basura-global.js +161 -0
  202. package/scripts/lib/toml-merge.js +204 -204
  203. package/scripts/mcp-server/auth.js +105 -105
  204. package/scripts/mcp-server/cache.js +106 -106
  205. package/scripts/tui/pantallas/install-wizard.js +403 -403
  206. package/instintos/.backups/perfil-usuario.yaml.2026-07-10-165128.bak +0 -53
  207. package/instintos/.backups/proyecto.yaml.2026-07-10-165128.bak +0 -372
@@ -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).