@saulwade/swl-ses 2.0.0 → 2.2.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 (97) hide show
  1. package/CLAUDE.md +196 -196
  2. package/README.md +579 -579
  3. package/agentes/_propose-step.md +90 -0
  4. package/agentes/implementador-swl.md +2 -0
  5. package/agentes/orquestador-swl.md +2 -0
  6. package/agentes/perfilador-usuario-swl.md +14 -1
  7. package/bin/swl-ses.js +64 -1
  8. package/comandos/swl/adoptar-proyecto.md +258 -255
  9. package/comandos/swl/aprender.md +828 -840
  10. package/comandos/swl/aprobar-plan.md +26 -37
  11. package/comandos/swl/autoresearch.md +12 -14
  12. package/comandos/swl/briefing.md +119 -0
  13. package/comandos/swl/checkpoint.md +10 -15
  14. package/comandos/swl/claudemd.md +239 -234
  15. package/comandos/swl/compactar.md +29 -2
  16. package/comandos/swl/configurar-ci.md +20 -19
  17. package/comandos/swl/cron.md +10 -12
  18. package/comandos/swl/discutir-fase.md +8 -5
  19. package/comandos/swl/ejecutar-fase.md +15 -2
  20. package/comandos/swl/evolucionar.md +6 -11
  21. package/comandos/swl/inbox.md +10 -10
  22. package/comandos/swl/modelo.md +7 -9
  23. package/comandos/swl/notificaciones.md +19 -116
  24. package/comandos/swl/nuevo-proyecto.md +205 -205
  25. package/comandos/swl/planear-fase.md +5 -3
  26. package/comandos/swl/release.md +46 -0
  27. package/comandos/swl/status.md +333 -279
  28. package/comandos/swl/verificar.md +817 -812
  29. package/habilidades/changelog-generator/scripts/parse-commits.js +6 -4
  30. package/habilidades/ejecutar-fase/SKILL.md +541 -518
  31. package/habilidades/planear-fase/SKILL.md +3 -2
  32. package/habilidades/swl-claudemd/SKILL.md +10 -6
  33. package/habilidades/tdd-workflow/SKILL.md +715 -713
  34. package/habilidades/validacion-ci-sistema/SKILL.md +17 -1
  35. package/hooks/calidad-pre-commit.js +5 -1
  36. package/hooks/check-update.js +39 -1
  37. package/hooks/lib/autonomia.js +208 -0
  38. package/hooks/lib/briefing.js +474 -0
  39. package/hooks/lib/propose-step.js +358 -0
  40. package/hooks/session-briefing.js +98 -0
  41. package/hooks/telemetria-skill-routing.js +100 -0
  42. package/instintos/autonomia.yaml +27 -0
  43. package/llms.txt +4 -4
  44. package/manifiestos/hooks-config.json +18 -0
  45. package/manifiestos/modulos.json +25 -3
  46. package/manifiestos/skills-lock.json +17 -17
  47. package/package.json +93 -93
  48. package/plugin.json +371 -371
  49. package/reglas/analizar-directorios-antes-de-escribir.md +228 -0
  50. package/reglas/consultar-vault-primero.md +195 -0
  51. package/reglas/debatir-antes-de-aceptar.md +158 -0
  52. package/reglas/git-coauthor.md +100 -0
  53. package/reglas/monitor-ci.md +309 -0
  54. package/reglas/registro-componentes-nuevos.md +38 -10
  55. package/reglas/sesiones-paralelas.md +180 -0
  56. package/reglas/usar-code-review-graph.md +155 -0
  57. package/reglas/verificar-citas-normativas.md +548 -0
  58. package/scripts/auditar-claudemd.js +38 -0
  59. package/scripts/cli/aprobar-plan.js +73 -0
  60. package/scripts/cli/briefing.js +23 -0
  61. package/scripts/cli/ciclo-evolucion.js +26 -0
  62. package/scripts/cli/configurar-ci.js +40 -0
  63. package/scripts/cli/derivar-feature-list.js +25 -0
  64. package/scripts/cli/detectar-host.js +27 -0
  65. package/scripts/cli/diary-entry.js +69 -0
  66. package/scripts/cli/execution-state.js +18 -0
  67. package/scripts/cli/gateway-notify.js +41 -0
  68. package/scripts/cli/liberar-fase.js +42 -0
  69. package/scripts/cli/loop-telemetry.js +125 -0
  70. package/scripts/cli/mark-evolved.js +56 -0
  71. package/scripts/cli/metricas-dora.js +26 -0
  72. package/scripts/cli/near-duplicate.js +55 -0
  73. package/scripts/cli/notificaciones.js +123 -0
  74. package/scripts/cli/propose-step.js +29 -0
  75. package/scripts/cli/schedule-parse.js +19 -0
  76. package/scripts/cli/sugerir-modelo.js +20 -0
  77. package/scripts/cli/verificar-plan.js +36 -0
  78. package/scripts/cli/verificar-trazabilidad.js +35 -0
  79. package/scripts/derivar-feature-list.js +1 -0
  80. package/scripts/instalador.js +52 -6
  81. package/scripts/lib/auditar-invocaciones-comandos.js +104 -0
  82. package/scripts/lib/ci-reader.js +193 -0
  83. package/scripts/lib/detectar-host-swl.js +175 -0
  84. package/scripts/lib/evidencia-release.js +322 -0
  85. package/scripts/lib/gate-hooks-requires.js +249 -0
  86. package/scripts/lib/gate-licencias.js +212 -0
  87. package/scripts/lib/git-metricas.js +257 -0
  88. package/scripts/lib/metricas-dora.js +204 -0
  89. package/scripts/lib/resolver-plan-fase.js +37 -0
  90. package/scripts/tui/ejecutores.js +1 -1
  91. package/scripts/validar-manifest.js +92 -1
  92. package/scripts/validar.js +13 -0
  93. package/scripts/verificar-evolucion.js +54 -4
  94. package/scripts/verificar-release.js +102 -0
  95. package/scripts/verificar-trazabilidad.js +12 -6
  96. package/reglas/arquitectura.evolved.json +0 -7
  97. package/reglas/seguridad.evolved.json +0 -7
@@ -1,205 +1,205 @@
1
- ---
2
- name: swl:nuevo-proyecto
3
- description: Inicializa un proyecto nuevo desde cero. Hace preguntas al usuario, investiga el stack tecnológico y produce la estructura de planeación completa en .planning/.
4
- allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- evolved: true
6
- evolved-from: "1.6.8"
7
- evolved-at: "2026-05-22"
8
- evolved-by: "aprender"
9
- evolved-note: "Paso 6 — validación síncrona del auditor tras generar CLAUDE.md inicial (contrato cruzado con /swl:claudemd)"
10
- ---
11
-
12
- # /swl:nuevo-proyecto — Inicializar proyecto nuevo
13
-
14
- Eres el coordinador de inicio de proyectos SWL. Tu misión es convertir una idea o descripción vaga en una estructura de planeación completa y accionable. Debes hacer esto de forma rigurosa, sin asumir nada que el usuario no haya confirmado explícitamente.
15
-
16
- ## Paso 0 — Carga de habilidades
17
-
18
- Antes de hacer cualquier pregunta o escribir cualquier archivo, carga la habilidad correspondiente:
19
-
20
- ```
21
- Skill("nuevo-proyecto")
22
- ```
23
-
24
- Si la habilidad no existe en el proyecto destino, busca en `.claude/skills/nuevo-proyecto/` o en `skills/nuevo-proyecto/`. Si tampoco existe ahí, continúa sin ella pero documenta la ausencia.
25
-
26
- ## Paso 1 — Verificación del directorio de trabajo
27
-
28
- 1. Confirma que el directorio de trabajo actual es el directorio raíz del proyecto donde el usuario quiere inicializar.
29
- 2. Verifica si ya existe un directorio `.planning/`. Si existe, DETENTE y pregunta al usuario:
30
- - "Ya existe un directorio `.planning/` en este proyecto. ¿Deseas sobrescribir la planeación existente, o prefieres continuar con `/swl:discutir-fase` o `/swl:planear-fase`?"
31
- - Espera respuesta explícita antes de continuar.
32
- 3. Verifica si existe `CLAUDE.md` en el directorio raíz. Si existe, léelo para entender las convenciones del proyecto.
33
-
34
- ## Paso 2 — Entrevista inicial con el usuario
35
-
36
- Haz las siguientes preguntas de forma conversacional, una sección a la vez. Espera respuesta antes de avanzar. Nunca hagas todas las preguntas de golpe.
37
-
38
- ### Bloque A — Contexto general
39
-
40
- Presenta estas preguntas juntas (son rápidas):
41
-
42
- 1. ¿Cuál es el nombre del proyecto?
43
- 2. ¿En una oración, qué problema resuelve o qué hace este sistema?
44
- 3. ¿Quiénes son los usuarios finales? (ejemplo: empleados internos, clientes externos, administradores)
45
- 4. ¿Existe ya algún código base o empezamos desde cero?
46
-
47
- ### Bloque B — Stack y restricciones técnicas
48
-
49
- Después de recibir el Bloque A, presenta estas:
50
-
51
- 5. ¿Hay tecnologías obligatorias (lenguaje, framework, base de datos, nube)? Si no hay restricción, escribe "libre".
52
- 6. ¿Hay tecnologías prohibidas o que definitivamente NO quieres usar?
53
- 7. ¿Cuál es el entorno de despliegue previsto? (ejemplos: servidor propio, AWS, Azure, Vercel, Docker)
54
- 8. ¿Hay integraciones con sistemas externos ya existentes? (APIs, ERP, CRM, bases de datos legadas)
55
-
56
- ### Bloque C — Alcance y tiempo
57
-
58
- Después de recibir el Bloque B, presenta estas:
59
-
60
- 9. ¿Cuántas fases o entregas grandes imaginas para este proyecto? (si no sabes, escribe "no sé")
61
- 10. ¿Hay una fecha límite o hito crítico próximo?
62
- 11. ¿Cuál es la funcionalidad más importante del sistema — la que si no existe, el sistema no tiene valor?
63
- 12. ¿Qué funcionalidades son "nice to have" y pueden quedar para después?
64
-
65
- ### Bloque D — Calidad y proceso
66
-
67
- Después de recibir el Bloque C:
68
-
69
- 13. ¿Requieres tests automatizados? ¿De qué tipo? (unitarios, integración, e2e)
70
- 14. ¿Hay estándares de seguridad o cumplimiento regulatorio que respetar? (ejemplo: datos personales, HIPAA, PCI-DSS)
71
- 15. ¿Cómo se manejará el control de versiones? (Git, rama principal, convención de commits)
72
-
73
- ## Paso 3 — Confirmación antes de generar
74
-
75
- Antes de crear cualquier archivo, presenta un resumen de lo que entendiste al usuario:
76
-
77
- ```
78
- Entendí lo siguiente sobre tu proyecto:
79
- - Nombre: [nombre]
80
- - Problema: [descripción]
81
- - Usuarios: [usuarios]
82
- - Stack previsto: [stack o "por definir"]
83
- - Fases estimadas: [número o "por definir"]
84
- - Prioridad máxima: [funcionalidad core]
85
- [...resto del resumen...]
86
-
87
- ¿Hay algo que corregir antes de que genere los archivos de planeación?
88
- ```
89
-
90
- Espera confirmación ("sí", "correcto", "adelante") o correcciones. Si hay correcciones, ajusta y muestra el resumen nuevamente.
91
-
92
- ## Paso 4 — Delegación al agente investigador
93
-
94
- Una vez confirmado el resumen, delega la investigación del stack al agente `investigador-swl`:
95
-
96
- - Instrucción al agente: investigar el stack tecnológico elegido, sus versiones estables actuales, patrones recomendados, y generar el directorio `research/` dentro de `.planning/`.
97
- - El agente debe producir al menos: `research/STACK.md`, `research/PATRONES.md`, `research/RIESGOS.md`.
98
- - Mientras el agente investiga, tú avanzas con la creación de los archivos de planeación base (Paso 5).
99
-
100
- ## Paso 5 — Creación de archivos de planeación
101
-
102
- Crea el directorio `.planning/` con la siguiente estructura:
103
-
104
- ```
105
- .planning/
106
- ├── PROYECTO.md
107
- ├── REQUISITOS.md
108
- ├── HOJA-RUTA.md
109
- ├── fases/
110
- └── research/
111
- ```
112
-
113
- ### .planning/PROYECTO.md
114
-
115
- Incluye:
116
- - Nombre del proyecto
117
- - Descripción del problema
118
- - Usuarios objetivo
119
- - Stack tecnológico (confirmado o propuesto)
120
- - Entorno de despliegue
121
- - Restricciones técnicas
122
- - Integraciones externas
123
- - Fecha de creación y última actualización
124
- - Estado: "Inicializado"
125
-
126
- ### .planning/REQUISITOS.md
127
-
128
- Estructura:
129
- - **Requisitos funcionales**: lista numerada, agrupados por módulo o actor
130
- - **Requisitos no funcionales**: rendimiento, seguridad, disponibilidad, escalabilidad
131
- - **Casos de uso críticos**: los 3-5 flujos más importantes
132
- - **Fuera de alcance** (explícito): qué NO hará el sistema en esta versión
133
- - Cada requisito funcional lleva etiqueta de prioridad: `[CORE]`, `[IMPORTANTE]`, `[NICE-TO-HAVE]`
134
-
135
- ### .planning/HOJA-RUTA.md
136
-
137
- Estructura:
138
- - Tabla de fases: número, nombre, descripción, dependencias, estado
139
- - Para cada fase: objetivos medibles, entregables esperados, criterios de éxito
140
- - Si el usuario no definió fases claras, propón una división lógica basada en las respuestas del Bloque C
141
- - Estado inicial de todas las fases: "Pendiente"
142
-
143
- ## Paso 6 — Generar CLAUDE.md inicial del proyecto
144
-
145
- Si NO existe `CLAUDE.md` en la raíz del proyecto, generarlo con la estructura
146
- mínima definida en `/swl:claudemd init-project`. **OBLIGATORIO** incluir como
147
- primera sección bajo el título:
148
-
149
- ```markdown
150
- ## Reglas obligatorias
151
-
152
- @reglas/usar-sistema-swl.md
153
- ```
154
-
155
- Esta referencia carga la matriz operacional del sistema SWL al inicio de cada
156
- sesión del proyecto y previene que el agente haga trabajo directo cuando
157
- existe un componente especializado. Sin ella, el proyecto pierde el contrato
158
- de uso del sistema SWL.
159
-
160
- Si ya existe `CLAUDE.md` (verificado en Paso 1), revisar que incluya
161
- `@reglas/usar-sistema-swl.md` en la sección de reglas obligatorias. Si NO
162
- lo incluye, agregarlo en este paso preservando el resto del contenido.
163
-
164
- ### Validación síncrona post-generación (contrato cruzado con /swl:claudemd)
165
-
166
- Tras generar el `CLAUDE.md` inicial, ejecutar el auditor síncrono para
167
- verificar el contrato canónico desde el primer commit:
168
-
169
- ```bash
170
- node scripts/auditar-claudemd.js --json
171
- # Fallback:
172
- npx -y @saulwade/swl-ses@latest audit-claudemd --json
173
- ```
174
-
175
- Veredicto esperado en proyecto nuevo: `OK` (el template generado debe
176
- respetar el contrato por construcción). Si reporta WARN o ERROR:
177
-
178
- - `WARN secciones-canonicas` ausentes → bug del template, abrir issue.
179
- - `ERROR placeholders` → bug del template, reemplazar `[ej.]` con
180
- ejemplos reales o HTML comments.
181
-
182
- Cualquier otro WARN/ERROR es señal de que el template necesita ajuste —
183
- reportar al usuario y considerar invocar `/swl:claudemd refactor` antes
184
- de continuar.
185
-
186
- Detalle del contrato cruzado en `@docs/contrato-aprender-claudemd.md`.
187
-
188
- ## Paso 7 — Reporte al usuario
189
-
190
- Al terminar, reporta:
191
-
192
- 1. Lista de archivos creados con sus rutas absolutas (incluyendo CLAUDE.md
193
- si se generó o se modificó)
194
- 2. Resumen de la investigación del agente (cuando esté disponible)
195
- 3. Próximo paso recomendado: "Para comenzar a trabajar en la Fase 1, usa `/swl:discutir-fase 1`"
196
- 4. Si encontraste riesgos o ambigüedades durante la entrevista, listarlos aquí como "Puntos a resolver"
197
-
198
- ## Reglas de comportamiento
199
-
200
- - NUNCA inventes información que el usuario no proporcionó. Si algo es incierto, márcalo como "[POR DEFINIR]" en los archivos.
201
- - NUNCA crees archivos de código fuente en este paso — solo planeación.
202
- - Si el usuario responde de forma ambigua, pregunta para aclarar antes de continuar.
203
- - Si el usuario dice "no sé" a algo crítico, documenta la incertidumbre y continúa.
204
- - Escribe todos los archivos en español-MX.
205
- - Las rutas de archivos deben ser absolutas en los reportes al usuario.
1
+ ---
2
+ name: swl:nuevo-proyecto
3
+ description: Inicializa un proyecto nuevo desde cero. Hace preguntas al usuario, investiga el stack tecnológico y produce la estructura de planeación completa en .planning/.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ evolved: true
6
+ evolved-from: "1.6.8"
7
+ evolved-at: "2026-05-22"
8
+ evolved-by: "aprender"
9
+ evolved-note: "Paso 6 — validación síncrona del auditor tras generar CLAUDE.md inicial (contrato cruzado con /swl:claudemd)"
10
+ ---
11
+
12
+ # /swl:nuevo-proyecto — Inicializar proyecto nuevo
13
+
14
+ Eres el coordinador de inicio de proyectos SWL. Tu misión es convertir una idea o descripción vaga en una estructura de planeación completa y accionable. Debes hacer esto de forma rigurosa, sin asumir nada que el usuario no haya confirmado explícitamente.
15
+
16
+ ## Paso 0 — Carga de habilidades
17
+
18
+ Antes de hacer cualquier pregunta o escribir cualquier archivo, carga la habilidad correspondiente:
19
+
20
+ ```
21
+ Skill("nuevo-proyecto")
22
+ ```
23
+
24
+ Si la habilidad no existe en el proyecto destino, busca en `.claude/skills/nuevo-proyecto/` o en `skills/nuevo-proyecto/`. Si tampoco existe ahí, continúa sin ella pero documenta la ausencia.
25
+
26
+ ## Paso 1 — Verificación del directorio de trabajo
27
+
28
+ 1. Confirma que el directorio de trabajo actual es el directorio raíz del proyecto donde el usuario quiere inicializar.
29
+ 2. Verifica si ya existe un directorio `.planning/`. Si existe, DETENTE y pregunta al usuario:
30
+ - "Ya existe un directorio `.planning/` en este proyecto. ¿Deseas sobrescribir la planeación existente, o prefieres continuar con `/swl:discutir-fase` o `/swl:planear-fase`?"
31
+ - Espera respuesta explícita antes de continuar.
32
+ 3. Verifica si existe `CLAUDE.md` en el directorio raíz. Si existe, léelo para entender las convenciones del proyecto.
33
+
34
+ ## Paso 2 — Entrevista inicial con el usuario
35
+
36
+ Haz las siguientes preguntas de forma conversacional, una sección a la vez. Espera respuesta antes de avanzar. Nunca hagas todas las preguntas de golpe.
37
+
38
+ ### Bloque A — Contexto general
39
+
40
+ Presenta estas preguntas juntas (son rápidas):
41
+
42
+ 1. ¿Cuál es el nombre del proyecto?
43
+ 2. ¿En una oración, qué problema resuelve o qué hace este sistema?
44
+ 3. ¿Quiénes son los usuarios finales? (ejemplo: empleados internos, clientes externos, administradores)
45
+ 4. ¿Existe ya algún código base o empezamos desde cero?
46
+
47
+ ### Bloque B — Stack y restricciones técnicas
48
+
49
+ Después de recibir el Bloque A, presenta estas:
50
+
51
+ 5. ¿Hay tecnologías obligatorias (lenguaje, framework, base de datos, nube)? Si no hay restricción, escribe "libre".
52
+ 6. ¿Hay tecnologías prohibidas o que definitivamente NO quieres usar?
53
+ 7. ¿Cuál es el entorno de despliegue previsto? (ejemplos: servidor propio, AWS, Azure, Vercel, Docker)
54
+ 8. ¿Hay integraciones con sistemas externos ya existentes? (APIs, ERP, CRM, bases de datos legadas)
55
+
56
+ ### Bloque C — Alcance y tiempo
57
+
58
+ Después de recibir el Bloque B, presenta estas:
59
+
60
+ 9. ¿Cuántas fases o entregas grandes imaginas para este proyecto? (si no sabes, escribe "no sé")
61
+ 10. ¿Hay una fecha límite o hito crítico próximo?
62
+ 11. ¿Cuál es la funcionalidad más importante del sistema — la que si no existe, el sistema no tiene valor?
63
+ 12. ¿Qué funcionalidades son "nice to have" y pueden quedar para después?
64
+
65
+ ### Bloque D — Calidad y proceso
66
+
67
+ Después de recibir el Bloque C:
68
+
69
+ 13. ¿Requieres tests automatizados? ¿De qué tipo? (unitarios, integración, e2e)
70
+ 14. ¿Hay estándares de seguridad o cumplimiento regulatorio que respetar? (ejemplo: datos personales, HIPAA, PCI-DSS)
71
+ 15. ¿Cómo se manejará el control de versiones? (Git, rama principal, convención de commits)
72
+
73
+ ## Paso 3 — Confirmación antes de generar
74
+
75
+ Antes de crear cualquier archivo, presenta un resumen de lo que entendiste al usuario:
76
+
77
+ ```
78
+ Entendí lo siguiente sobre tu proyecto:
79
+ - Nombre: [nombre]
80
+ - Problema: [descripción]
81
+ - Usuarios: [usuarios]
82
+ - Stack previsto: [stack o "por definir"]
83
+ - Fases estimadas: [número o "por definir"]
84
+ - Prioridad máxima: [funcionalidad core]
85
+ [...resto del resumen...]
86
+
87
+ ¿Hay algo que corregir antes de que genere los archivos de planeación?
88
+ ```
89
+
90
+ Espera confirmación ("sí", "correcto", "adelante") o correcciones. Si hay correcciones, ajusta y muestra el resumen nuevamente.
91
+
92
+ ## Paso 4 — Delegación al agente investigador
93
+
94
+ Una vez confirmado el resumen, delega la investigación del stack al agente `investigador-swl`:
95
+
96
+ - Instrucción al agente: investigar el stack tecnológico elegido, sus versiones estables actuales, patrones recomendados, y generar el directorio `research/` dentro de `.planning/`.
97
+ - El agente debe producir al menos: `research/STACK.md`, `research/PATRONES.md`, `research/RIESGOS.md`.
98
+ - Mientras el agente investiga, tú avanzas con la creación de los archivos de planeación base (Paso 5).
99
+
100
+ ## Paso 5 — Creación de archivos de planeación
101
+
102
+ Crea el directorio `.planning/` con la siguiente estructura:
103
+
104
+ ```
105
+ .planning/
106
+ ├── PROYECTO.md
107
+ ├── REQUISITOS.md
108
+ ├── HOJA-RUTA.md
109
+ ├── fases/
110
+ └── research/
111
+ ```
112
+
113
+ ### .planning/PROYECTO.md
114
+
115
+ Incluye:
116
+ - Nombre del proyecto
117
+ - Descripción del problema
118
+ - Usuarios objetivo
119
+ - Stack tecnológico (confirmado o propuesto)
120
+ - Entorno de despliegue
121
+ - Restricciones técnicas
122
+ - Integraciones externas
123
+ - Fecha de creación y última actualización
124
+ - Estado: "Inicializado"
125
+
126
+ ### .planning/REQUISITOS.md
127
+
128
+ Estructura:
129
+ - **Requisitos funcionales**: lista numerada, agrupados por módulo o actor
130
+ - **Requisitos no funcionales**: rendimiento, seguridad, disponibilidad, escalabilidad
131
+ - **Casos de uso críticos**: los 3-5 flujos más importantes
132
+ - **Fuera de alcance** (explícito): qué NO hará el sistema en esta versión
133
+ - Cada requisito funcional lleva etiqueta de prioridad: `[CORE]`, `[IMPORTANTE]`, `[NICE-TO-HAVE]`
134
+
135
+ ### .planning/HOJA-RUTA.md
136
+
137
+ Estructura:
138
+ - Tabla de fases: número, nombre, descripción, dependencias, estado
139
+ - Para cada fase: objetivos medibles, entregables esperados, criterios de éxito
140
+ - Si el usuario no definió fases claras, propón una división lógica basada en las respuestas del Bloque C
141
+ - Estado inicial de todas las fases: "Pendiente"
142
+
143
+ ## Paso 6 — Generar CLAUDE.md inicial del proyecto
144
+
145
+ Si NO existe `CLAUDE.md` en la raíz del proyecto, generarlo con la estructura
146
+ mínima definida en `/swl:claudemd init-project`. **OBLIGATORIO** incluir como
147
+ primera sección bajo el título:
148
+
149
+ ```markdown
150
+ ## Reglas obligatorias
151
+
152
+ Aplica la regla global `usar-sistema-swl.md` (matriz operacional del sistema
153
+ SWL), auto-cargada desde `.claude/rules/`. NO duplicar su contenido aquí.
154
+ ```
155
+
156
+ Esta mención recuerda la matriz operacional del sistema SWL sin @-include. NO
157
+ usar `@reglas/usar-sistema-swl.md`: la regla se auto-carga desde `.claude/rules/`
158
+ y un `@reglas/...` se rompe en proyectos downstream (ahí no existe `reglas/`).
159
+
160
+ Si ya existe `CLAUDE.md` (verificado en Paso 1), revisar que mencione la regla
161
+ global `usar-sistema-swl`. Si NO la menciona, agregar la sección preservando el
162
+ resto del contenido.
163
+
164
+ ### Validación síncrona post-generación (contrato cruzado con /swl:claudemd)
165
+
166
+ Tras generar el `CLAUDE.md` inicial, ejecutar el auditor síncrono para
167
+ verificar el contrato canónico desde el primer commit:
168
+
169
+ ```bash
170
+ swl-ses audit-claudemd --json
171
+ # Fallback:
172
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json
173
+ ```
174
+
175
+ Veredicto esperado en proyecto nuevo: `OK` (el template generado debe
176
+ respetar el contrato por construcción). Si reporta WARN o ERROR:
177
+
178
+ - `WARN secciones-canonicas` ausentes → bug del template, abrir issue.
179
+ - `ERROR placeholders` → bug del template, reemplazar `[ej.]` con
180
+ ejemplos reales o HTML comments.
181
+
182
+ Cualquier otro WARN/ERROR es señal de que el template necesita ajuste —
183
+ reportar al usuario y considerar invocar `/swl:claudemd refactor` antes
184
+ de continuar.
185
+
186
+ Detalle del contrato cruzado en `@docs/contrato-aprender-claudemd.md`.
187
+
188
+ ## Paso 7 — Reporte al usuario
189
+
190
+ Al terminar, reporta:
191
+
192
+ 1. Lista de archivos creados con sus rutas absolutas (incluyendo CLAUDE.md
193
+ si se generó o se modificó)
194
+ 2. Resumen de la investigación del agente (cuando esté disponible)
195
+ 3. Próximo paso recomendado: "Para comenzar a trabajar en la Fase 1, usa `/swl:discutir-fase 1`"
196
+ 4. Si encontraste riesgos o ambigüedades durante la entrevista, listarlos aquí como "Puntos a resolver"
197
+
198
+ ## Reglas de comportamiento
199
+
200
+ - NUNCA inventes información que el usuario no proporcionó. Si algo es incierto, márcalo como "[POR DEFINIR]" en los archivos.
201
+ - NUNCA crees archivos de código fuente en este paso — solo planeación.
202
+ - Si el usuario responde de forma ambigua, pregunta para aclarar antes de continuar.
203
+ - Si el usuario dice "no sé" a algo crítico, documenta la incertidumbre y continúa.
204
+ - Escribe todos los archivos en español-MX.
205
+ - Las rutas de archivos deben ser absolutas en los reportes al usuario.
@@ -181,9 +181,11 @@ fases técnicas puras — Gherkin sin lector de negocio es ceremonia.]
181
181
  ## Matriz REQ×T (obligatoria si el CONTEXTO tiene criterios REQ-NN)
182
182
  [tabla REQ → tareas que lo verifican. Cada tarea declara `**Verifica REQ**: REQ-XX`.
183
183
  Todo REQ sin tarea = plan NO apto para aprobación (aprobar-plan lo rechaza).
184
- La convención de cierre de cadena: commits con footer `Refs: REQ-NN` y tests con
185
- marker `# verifica: REQ-NN` (Python) / `// verifica: REQ-NN` (JS/TS) validada
186
- por `scripts/verificar-trazabilidad.js`. Omitir solo en CONTEXTOs legacy sin REQ-IDs.]
184
+ La convención de cierre de cadena (fases ≥12, IDs namespaceados por fase): commits
185
+ con prefijo `[F<fase>·T-NN]` y footer `Refs: REQ-<fase>-NN`, tests con marker
186
+ `# verifica: REQ-<fase>-NN` (Python) / `// verifica: REQ-<fase>-NN` (JS/TS)
187
+ validada por `scripts/verificar-trazabilidad.js` (acepta también el formato plano
188
+ `REQ-NN`/`[T-NN]` de fases 01-11). Omitir solo en CONTEXTOs legacy sin REQ-IDs.]
187
189
 
188
190
  | REQ | Tareas que lo verifican |
189
191
  |-----|------------------------|
@@ -254,6 +254,52 @@ Usar tags anotados siempre (regla del skill).
254
254
 
255
255
  Crea `RELEASE-NOTES-v[nueva-versión].md` con: resumen, cambios, instrucciones de actualización y guía de migración si hay breaking changes.
256
256
 
257
+ ## Paso 9.5 — Evidencia de procedencia (cadena de suministro, ADR-0038)
258
+
259
+ Genera la evidencia de cadena de suministro del release: SBOM CycloneDX del
260
+ árbol runtime + SHA256SUMS del tarball. No publica nada; produce artefactos
261
+ versionados en `releases/v[nueva-versión]/`.
262
+
263
+ ```bash
264
+ node scripts/lib/evidencia-release.js --version [nueva-versión]
265
+ ```
266
+
267
+ Esto escribe (vía `scripts/lib/evidencia-release.js`):
268
+ - `releases/v[nueva-versión]/sbom-v[nueva-versión].cdx.json` — SBOM CycloneDX
269
+ runtime-only (`npm sbom --sbom-format cyclonedx --omit dev`).
270
+ - `releases/v[nueva-versión]/SHA256SUMS` — checksum del tarball de `npm pack`.
271
+
272
+ Luego:
273
+
274
+ 1. **Insertar la sección "Integridad y verificación"** en
275
+ `RELEASE-NOTES-v[nueva-versión].md`, justo después de la sección de
276
+ correcciones. La genera `seccionVerificacionNotas` de la lib:
277
+
278
+ ```bash
279
+ node -e "const {seccionVerificacionNotas}=require('./scripts/lib/evidencia-release');const fs=require('fs');const v='[nueva-versión]';const sums=fs.readFileSync('releases/v'+v+'/SHA256SUMS','utf8').trim().split(/\s+/);const md=seccionVerificacionNotas({version:v,hash:sums[0],tarball:sums[1]});console.log(md)"
280
+ ```
281
+
282
+ Copiar ese markdown a RELEASE-NOTES (tras "Correcciones").
283
+
284
+ 2. **Copiar las RELEASE-NOTES** a la carpeta del release como evidencia
285
+ versionada:
286
+
287
+ ```bash
288
+ cp RELEASE-NOTES-v[nueva-versión].md releases/v[nueva-versión]/
289
+ git add releases/v[nueva-versión]/
290
+ ```
291
+
292
+ `releases/` NO viaja en el tarball npm (`package.json#files` es allowlist y no
293
+ lo incluye) — es evidencia del repo, no del paquete. Verificar con
294
+ `npm pack --dry-run | grep -c "releases/"` → debe ser `0`.
295
+
296
+ **Provenance (opt-in)**: el publish default sigue siendo local
297
+ (`scripts/publicar.js`). Para publicar a npmjs con `npm publish --provenance`
298
+ (que exige OIDC desde CI) usar el workflow opt-in
299
+ `.github/workflows/publish-npm.yml` (trigger `workflow_dispatch`, `dry_run`
300
+ default true). GitHub Packages permanece local. Runbook de verificación para
301
+ el consumidor: `docs/verificacion-consumidor.md`.
302
+
257
303
  ## Paso 10 — Verificación final
258
304
 
259
305
  ### 10.1 Gate automática anti-gap (OBLIGATORIA antes del push)