@saulwade/swl-ses 2.2.0 → 2.2.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 (74) hide show
  1. package/CLAUDE.md +199 -196
  2. package/README.md +597 -579
  3. package/agentes/arquitecto-swl.md +0 -5
  4. package/agentes/backend-python-swl.md +0 -5
  5. package/agentes/implementador-swl.md +0 -5
  6. package/agentes/nemesis-auditor-swl.md +0 -5
  7. package/agentes/orquestador-swl.md +0 -5
  8. package/agentes/planificador-swl.md +0 -5
  9. package/agentes/revisor-codigo-swl.md +0 -5
  10. package/comandos/swl/adoptar-proyecto.md +253 -258
  11. package/comandos/swl/aprender.md +823 -828
  12. package/comandos/swl/claudemd.md +234 -239
  13. package/comandos/swl/ejecutar-fase.md +0 -5
  14. package/comandos/swl/nuevo-proyecto.md +200 -205
  15. package/comandos/swl/release.md +19 -5
  16. package/comandos/swl/revisar-impacto.md +0 -5
  17. package/habilidades/agent-browser/SKILL.md +0 -5
  18. package/habilidades/angular-moderno/SKILL.md +0 -5
  19. package/habilidades/api-rest-diseno/SKILL.md +0 -5
  20. package/habilidades/aprendizaje-continuo/SKILL.md +0 -5
  21. package/habilidades/auth-patrones/SKILL.md +0 -5
  22. package/habilidades/build-errors-nextjs/SKILL.md +0 -5
  23. package/habilidades/changelog-generator/SKILL.md +174 -179
  24. package/habilidades/checklist-seguridad/SKILL.md +0 -5
  25. package/habilidades/contenedores-docker/SKILL.md +0 -5
  26. package/habilidades/datos-etl/SKILL.md +0 -5
  27. package/habilidades/doc-sync/SKILL.md +0 -5
  28. package/habilidades/extractor-de-aprendizajes/SKILL.md +0 -5
  29. package/habilidades/fastapi-experto/SKILL.md +0 -5
  30. package/habilidades/frontend-avanzado/SKILL.md +0 -5
  31. package/habilidades/iam-secretos/SKILL.md +0 -5
  32. package/habilidades/manejo-errores/SKILL.md +0 -5
  33. package/habilidades/mapear-codebase/SKILL.md +0 -5
  34. package/habilidades/meta-skills-estandar/SKILL.md +0 -5
  35. package/habilidades/monitoring-alertas/SKILL.md +0 -5
  36. package/habilidades/nextjs-experto/SKILL.md +0 -5
  37. package/habilidades/nextjs-testing/SKILL.md +0 -5
  38. package/habilidades/node-experto/SKILL.md +0 -5
  39. package/habilidades/orquestacion-async/SKILL.md +0 -5
  40. package/habilidades/patrones-python/SKILL.md +227 -232
  41. package/habilidades/planear-fase/SKILL.md +336 -341
  42. package/habilidades/postgresql-experto/SKILL.md +0 -5
  43. package/habilidades/prevencion-sobreingenieria/SKILL.md +0 -5
  44. package/habilidades/protocolo-revision-swl/SKILL.md +0 -5
  45. package/habilidades/react-experto/SKILL.md +0 -5
  46. package/habilidades/release-semver/SKILL.md +0 -5
  47. package/habilidades/swl-claudemd/SKILL.md +0 -5
  48. package/habilidades/tdd-workflow/SKILL.md +710 -715
  49. package/habilidades/testing-python/SKILL.md +335 -340
  50. package/habilidades/verificar-trabajo/SKILL.md +0 -5
  51. package/hooks/lib/evolution-tracker.js +191 -35
  52. package/llms.txt +1 -1
  53. package/manifiestos/canonical-hashes.json +656 -0
  54. package/manifiestos/modulos.json +3 -0
  55. package/manifiestos/skills-lock.json +70 -70
  56. package/package.json +1 -1
  57. package/plugin.json +1 -1
  58. package/scripts/generar-canonical-hashes.js +147 -0
  59. package/scripts/instalador.js +126 -53
  60. package/scripts/lib/audit-evolved.js +71 -0
  61. package/scripts/lib/canonical-hash.js +94 -0
  62. package/scripts/lib/evolved-fuente.js +138 -0
  63. package/scripts/remediar-evolved-instaladas.js +239 -0
  64. package/scripts/validar.js +14 -0
  65. package/scripts/verificar-evolucion.js +36 -0
  66. package/scripts/verificar-release.js +33 -0
  67. package/agentes/.evolved.json +0 -9
  68. package/comandos/swl/.evolved.json +0 -23
  69. package/habilidades/auth-patrones/.evolved.json +0 -9
  70. package/habilidades/extractor-de-aprendizajes/.evolved.json +0 -9
  71. package/habilidades/instalar-sistema/.evolved.json +0 -9
  72. package/habilidades/manejo-errores/.evolved.json +0 -9
  73. package/habilidades/node-experto/.evolved.json +0 -9
  74. package/habilidades/release-semver/.evolved.json +0 -9
@@ -1,205 +1,200 @@
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.
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
+ ---
6
+
7
+ # /swl:nuevo-proyecto — Inicializar proyecto nuevo
8
+
9
+ 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.
10
+
11
+ ## Paso 0 — Carga de habilidades
12
+
13
+ Antes de hacer cualquier pregunta o escribir cualquier archivo, carga la habilidad correspondiente:
14
+
15
+ ```
16
+ Skill("nuevo-proyecto")
17
+ ```
18
+
19
+ 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.
20
+
21
+ ## Paso 1 — Verificación del directorio de trabajo
22
+
23
+ 1. Confirma que el directorio de trabajo actual es el directorio raíz del proyecto donde el usuario quiere inicializar.
24
+ 2. Verifica si ya existe un directorio `.planning/`. Si existe, DETENTE y pregunta al usuario:
25
+ - "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`?"
26
+ - Espera respuesta explícita antes de continuar.
27
+ 3. Verifica si existe `CLAUDE.md` en el directorio raíz. Si existe, léelo para entender las convenciones del proyecto.
28
+
29
+ ## Paso 2 Entrevista inicial con el usuario
30
+
31
+ 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.
32
+
33
+ ### Bloque A — Contexto general
34
+
35
+ Presenta estas preguntas juntas (son rápidas):
36
+
37
+ 1. ¿Cuál es el nombre del proyecto?
38
+ 2. ¿En una oración, qué problema resuelve o qué hace este sistema?
39
+ 3. ¿Quiénes son los usuarios finales? (ejemplo: empleados internos, clientes externos, administradores)
40
+ 4. ¿Existe ya algún código base o empezamos desde cero?
41
+
42
+ ### Bloque B Stack y restricciones técnicas
43
+
44
+ Después de recibir el Bloque A, presenta estas:
45
+
46
+ 5. ¿Hay tecnologías obligatorias (lenguaje, framework, base de datos, nube)? Si no hay restricción, escribe "libre".
47
+ 6. ¿Hay tecnologías prohibidas o que definitivamente NO quieres usar?
48
+ 7. ¿Cuál es el entorno de despliegue previsto? (ejemplos: servidor propio, AWS, Azure, Vercel, Docker)
49
+ 8. ¿Hay integraciones con sistemas externos ya existentes? (APIs, ERP, CRM, bases de datos legadas)
50
+
51
+ ### Bloque C Alcance y tiempo
52
+
53
+ Después de recibir el Bloque B, presenta estas:
54
+
55
+ 9. ¿Cuántas fases o entregas grandes imaginas para este proyecto? (si no sabes, escribe "no sé")
56
+ 10. ¿Hay una fecha límite o hito crítico próximo?
57
+ 11. ¿Cuál es la funcionalidad más importante del sistema — la que si no existe, el sistema no tiene valor?
58
+ 12. ¿Qué funcionalidades son "nice to have" y pueden quedar para después?
59
+
60
+ ### Bloque D Calidad y proceso
61
+
62
+ Después de recibir el Bloque C:
63
+
64
+ 13. ¿Requieres tests automatizados? ¿De qué tipo? (unitarios, integración, e2e)
65
+ 14. ¿Hay estándares de seguridad o cumplimiento regulatorio que respetar? (ejemplo: datos personales, HIPAA, PCI-DSS)
66
+ 15. ¿Cómo se manejará el control de versiones? (Git, rama principal, convención de commits)
67
+
68
+ ## Paso 3 — Confirmación antes de generar
69
+
70
+ Antes de crear cualquier archivo, presenta un resumen de lo que entendiste al usuario:
71
+
72
+ ```
73
+ Entendí lo siguiente sobre tu proyecto:
74
+ - Nombre: [nombre]
75
+ - Problema: [descripción]
76
+ - Usuarios: [usuarios]
77
+ - Stack previsto: [stack o "por definir"]
78
+ - Fases estimadas: [número o "por definir"]
79
+ - Prioridad máxima: [funcionalidad core]
80
+ [...resto del resumen...]
81
+
82
+ ¿Hay algo que corregir antes de que genere los archivos de planeación?
83
+ ```
84
+
85
+ Espera confirmación ("sí", "correcto", "adelante") o correcciones. Si hay correcciones, ajusta y muestra el resumen nuevamente.
86
+
87
+ ## Paso 4 Delegación al agente investigador
88
+
89
+ Una vez confirmado el resumen, delega la investigación del stack al agente `investigador-swl`:
90
+
91
+ - Instrucción al agente: investigar el stack tecnológico elegido, sus versiones estables actuales, patrones recomendados, y generar el directorio `research/` dentro de `.planning/`.
92
+ - El agente debe producir al menos: `research/STACK.md`, `research/PATRONES.md`, `research/RIESGOS.md`.
93
+ - Mientras el agente investiga, tú avanzas con la creación de los archivos de planeación base (Paso 5).
94
+
95
+ ## Paso 5 — Creación de archivos de planeación
96
+
97
+ Crea el directorio `.planning/` con la siguiente estructura:
98
+
99
+ ```
100
+ .planning/
101
+ ├── PROYECTO.md
102
+ ├── REQUISITOS.md
103
+ ├── HOJA-RUTA.md
104
+ ├── fases/
105
+ └── research/
106
+ ```
107
+
108
+ ### .planning/PROYECTO.md
109
+
110
+ Incluye:
111
+ - Nombre del proyecto
112
+ - Descripción del problema
113
+ - Usuarios objetivo
114
+ - Stack tecnológico (confirmado o propuesto)
115
+ - Entorno de despliegue
116
+ - Restricciones técnicas
117
+ - Integraciones externas
118
+ - Fecha de creación y última actualización
119
+ - Estado: "Inicializado"
120
+
121
+ ### .planning/REQUISITOS.md
122
+
123
+ Estructura:
124
+ - **Requisitos funcionales**: lista numerada, agrupados por módulo o actor
125
+ - **Requisitos no funcionales**: rendimiento, seguridad, disponibilidad, escalabilidad
126
+ - **Casos de uso críticos**: los 3-5 flujos más importantes
127
+ - **Fuera de alcance** (explícito): qué NO hará el sistema en esta versión
128
+ - Cada requisito funcional lleva etiqueta de prioridad: `[CORE]`, `[IMPORTANTE]`, `[NICE-TO-HAVE]`
129
+
130
+ ### .planning/HOJA-RUTA.md
131
+
132
+ Estructura:
133
+ - Tabla de fases: número, nombre, descripción, dependencias, estado
134
+ - Para cada fase: objetivos medibles, entregables esperados, criterios de éxito
135
+ - Si el usuario no definió fases claras, propón una división lógica basada en las respuestas del Bloque C
136
+ - Estado inicial de todas las fases: "Pendiente"
137
+
138
+ ## Paso 6 Generar CLAUDE.md inicial del proyecto
139
+
140
+ Si NO existe `CLAUDE.md` en la raíz del proyecto, generarlo con la estructura
141
+ mínima definida en `/swl:claudemd init-project`. **OBLIGATORIO** incluir como
142
+ primera sección bajo el título:
143
+
144
+ ```markdown
145
+ ## Reglas obligatorias
146
+
147
+ Aplica la regla global `usar-sistema-swl.md` (matriz operacional del sistema
148
+ SWL), auto-cargada desde `.claude/rules/`. NO duplicar su contenido aquí.
149
+ ```
150
+
151
+ Esta mención recuerda la matriz operacional del sistema SWL sin @-include. NO
152
+ usar `@reglas/usar-sistema-swl.md`: la regla se auto-carga desde `.claude/rules/`
153
+ y un `@reglas/...` se rompe en proyectos downstream (ahí no existe `reglas/`).
154
+
155
+ Si ya existe `CLAUDE.md` (verificado en Paso 1), revisar que mencione la regla
156
+ global `usar-sistema-swl`. Si NO la menciona, agregar la sección preservando el
157
+ resto del contenido.
158
+
159
+ ### Validación síncrona post-generación (contrato cruzado con /swl:claudemd)
160
+
161
+ Tras generar el `CLAUDE.md` inicial, ejecutar el auditor síncrono para
162
+ verificar el contrato canónico desde el primer commit:
163
+
164
+ ```bash
165
+ swl-ses audit-claudemd --json
166
+ # Fallback:
167
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json
168
+ ```
169
+
170
+ Veredicto esperado en proyecto nuevo: `OK` (el template generado debe
171
+ respetar el contrato por construcción). Si reporta WARN o ERROR:
172
+
173
+ - `WARN secciones-canonicas` ausentes → bug del template, abrir issue.
174
+ - `ERROR placeholders` → bug del template, reemplazar `[ej.]` con
175
+ ejemplos reales o HTML comments.
176
+
177
+ Cualquier otro WARN/ERROR es señal de que el template necesita ajuste —
178
+ reportar al usuario y considerar invocar `/swl:claudemd refactor` antes
179
+ de continuar.
180
+
181
+ Detalle del contrato cruzado en `@docs/contrato-aprender-claudemd.md`.
182
+
183
+ ## Paso 7 Reporte al usuario
184
+
185
+ Al terminar, reporta:
186
+
187
+ 1. Lista de archivos creados con sus rutas absolutas (incluyendo CLAUDE.md
188
+ si se generó o se modificó)
189
+ 2. Resumen de la investigación del agente (cuando esté disponible)
190
+ 3. Próximo paso recomendado: "Para comenzar a trabajar en la Fase 1, usa `/swl:discutir-fase 1`"
191
+ 4. Si encontraste riesgos o ambigüedades durante la entrevista, listarlos aquí como "Puntos a resolver"
192
+
193
+ ## Reglas de comportamiento
194
+
195
+ - NUNCA inventes información que el usuario no proporcionó. Si algo es incierto, márcalo como "[POR DEFINIR]" en los archivos.
196
+ - NUNCA crees archivos de código fuente en este paso solo planeación.
197
+ - Si el usuario responde de forma ambigua, pregunta para aclarar antes de continuar.
198
+ - Si el usuario dice "no sé" a algo crítico, documenta la incertidumbre y continúa.
199
+ - Escribe todos los archivos en español-MX.
200
+ - Las rutas de archivos deben ser absolutas en los reportes al usuario.
@@ -2,11 +2,6 @@
2
2
  name: swl:release
3
3
  description: Gestión del ciclo de release del proyecto. Genera versión siguiendo SemVer, crea changelog automático desde commits con Conventional Commits, valida que los tests pasan, crea tag de git y genera release notes. Flags: --tipo=patch|minor|major, --dry-run, --skip-tests.
4
4
  allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
- evolved: true
6
- evolved-from: "5.10.5"
7
- evolved-at: "2026-04-20"
8
- evolved-by: "aprender"
9
- evolved-note: "Paso 10 integra scripts/verificar-release.js como gate anti-gap obligatoria tras 3 releases consecutivos donde el release-manager-swl omitio archivos"
10
5
  ---
11
6
 
12
7
  # /swl:release — Gestión del ciclo de release
@@ -172,6 +167,25 @@ drift silencioso entre releases. Si el lock no cambió respecto al anterior,
172
167
  el commit lo refleja como no-op (idempotente). El archivo es pequeño (~37KB)
173
168
  y debe versionarse.
174
169
 
170
+ ## Paso 6.6 — Regenerar canonical-hashes.json (baseline del discriminador A/B)
171
+
172
+ Regenerar el manifiesto de hashes canónicos para la versión nueva. Es la baseline
173
+ que el instalador usa (Fase 16) para distinguir evolución del usuario (merge) de
174
+ shipped-evolved (actualizable) en cada upgrade. Debe incluir la versión que se
175
+ publica para que clientes que evolucionen desde ella se clasifiquen bien.
176
+
177
+ ```bash
178
+ node scripts/generar-canonical-hashes.js
179
+ git add manifiestos/canonical-hashes.json
180
+ ```
181
+
182
+ Idempotente (no-op si no cambió). El gate `node scripts/verificar-release.js`
183
+ (Paso 10.1) verifica que el manifiesto esté al día y que el fuente no porte
184
+ marcadores `evolved` espurios — si falla, ejecutar
185
+ `node scripts/verificar-evolucion.js --gate-inverso --fix`. El test e2e
186
+ `tests/scripts/release-e2e-evolved.test.js` (en `npm test`) bloquea el release
187
+ si la propagación A/B regresa.
188
+
175
189
  ## Paso 7 — Generar CHANGELOG
176
190
 
177
191
  Desde v1.6.5 este paso usa el skill `changelog-generator` para parsear
@@ -2,11 +2,6 @@
2
2
  name: swl:revisar-impacto
3
3
  description: Analiza el impacto estructural de cambios usando el grafo de dependencias SWL. Proporciona blast radius topológico real, god nodes, comunidades y conexiones sorpresivas. Potenciado por graph-builder.py + graph-analyze.py (graphify-3 patterns).
4
4
  allowed_tools: ["Bash", "Read"]
5
- evolved: true
6
- evolved-from: "5.3.4"
7
- evolved-at: "2026-04-09"
8
- evolved-by: "graphify-integration"
9
- evolved-note: "Análisis topológico real con networkx — graph-builder + graph-analyze + graph-cluster"
10
5
  ---
11
6
 
12
7
  # /swl:revisar-impacto — Análisis de impacto estructural
@@ -11,11 +11,6 @@ user-invocable: false
11
11
  version: "1.2.0"
12
12
  herramientasPermitidas: [Read, Bash, WebFetch, Skill]
13
13
  skillsInvocables: [browser-interaction-patterns, browser-research-domains]
14
- evolved: true
15
- evolved-from: "1.6.3"
16
- evolved-at: "2026-05-18"
17
- evolved-by: "aprender"
18
- evolved-note: "Adoptar patrones CDP de browser-harness (MIT) — coordinate clicks, wait_for_network_idle, dialogs auto-detect; añadir skillsInvocables a 2 skills nuevos consolidados"
19
14
  fuente: "Vercel Labs agent-browser — 26K+ GitHub stars (2026-04); patrones CDP avanzados adaptados de browser-use/browser-harness (MIT, 2026)"
20
15
  evolvable: true # default para skill estandar
21
16
  exclusiones:
@@ -2,11 +2,6 @@
2
2
  name: angular-moderno
3
3
  description: Angular v17+/v20+. Signals, standalone components, OnPush, host bindings, nueva sintaxis de control flow (@if/@for/@switch), defer blocks y patrones modernos.
4
4
  version: "1.0.1"
5
- evolved: true
6
- evolved-from: "1.0.0"
7
- evolved-at: "2026-06-04"
8
- evolved-by: "evolucionar"
9
- evolved-note: "PE-009 patrón Angular 19+ ErrorHandler custom con provideBrowserGlobalErrorListeners (NO listeners manuales window.onerror). Origen: OIC v1.5 Slice 6 2026-06-04."
10
5
  herramientasPermitidas: [Read]
11
6
  exclusiones:
12
7
  - "No cargar para patrones Angular avanzados (zoneless, SSR, Resource API, interceptores funcionales) — para eso cargar `angular-avanzado`."
@@ -2,11 +2,6 @@
2
2
  name: api-rest-diseno
3
3
  description: Diseño de APIs REST idiomáticas. Recursos, verbos HTTP, códigos de estado, paginación, filtrado, versionado, HATEOAS y principios de diseño orientado al consumidor.
4
4
  version: "1.0.1"
5
- evolved: true
6
- evolved-from: "5.0.3"
7
- evolved-at: "2026-04-23"
8
- evolved-by: "aprender"
9
- evolved-note: "Gotcha nuevo: parser detecta estructura pero 0 contenido → 422 es peor UX que fallback con advertencia"
10
5
  herramientasPermitidas: [Read, Grep]
11
6
  exclusiones:
12
7
  - "No cargar para implementación de endpoints FastAPI o Django — el diseño aquí es agnóstico de framework; para implementación cargar `fastapi-experto`."
@@ -7,11 +7,6 @@ description: >
7
7
  promocion a skills/comandos/agentes, evolucion (merge, split, deprecate) y
8
8
  proteccion contra contaminacion cross-proyecto.
9
9
  version: "1.0.1"
10
- evolved: true
11
- evolved-from: "1.0.0"
12
- evolved-at: "2026-05-16"
13
- evolved-by: "aprender"
14
- evolved-note: "v1.0.1 (PATCH): nuevo gotcha 'Filtro de exclusión de hooks debe cubrir tests/'. Origen: H3 sesión 2026-05-16 — el extractor de aprendizajes capturaba comentarios JSDoc de un test recién escrito (palabras 'bug', 'patrón', 'fix') y los promovía como entradas truncadas a APRENDIZAJES.md porque PATRONES_ARCHIVO_SWL_EXCLUIDO no incluía tests/."
15
10
  herramientasPermitidas: [Read]
16
11
  exclusiones:
17
12
  - "No cargar para consultar instintos ya cargados en la sesión actual — si el perfil fue leído, re-cargarlo es desperdicio de contexto."
@@ -2,11 +2,6 @@
2
2
  name: auth-patrones
3
3
  description: Patrones de autenticación y autorización. JWT, OAuth2, OIDC, RBAC, ABAC, session management, refresh tokens, PKCE, MFA. Implementaciones en FastAPI y Django. Reglas anti-error de seguridad críticas.
4
4
  version: "1.2.0"
5
- evolved: true
6
- evolved-from: "1.1.0"
7
- evolved-at: "2026-04-24"
8
- evolved-by: "aprender"
9
- evolved-note: "2 secciones nuevas: IDOR defense con 404 (no 403) + consent PII en TODOS los ambientes"
10
5
  herramientasPermitidas: [Read, Grep]
11
6
  nist_csf: [PR.AA-01, PR.AA-02, PR.AA-03, PR.AA-04, PR.AA-05]
12
7
  attack_techniques: [T1078, T1110, T1212]
@@ -6,11 +6,6 @@ description: >
6
6
  ISR, optimización de imágenes, CSS modules y variables de entorno.
7
7
  Cargar cuando un build Next.js falle o haya errores de renderizado.
8
8
  version: "1.1.0"
9
- evolved: true
10
- evolved-from: "1.0.0"
11
- evolved-at: "2026-05-12"
12
- evolved-by: "aprender"
13
- evolved-note: "Backport L-135 SIGM: sección diagnóstico — loop de fetches infinito = HMR panic del bundler (Turbopack), NO useEffect mal escrito; síntomas distintivos + orden de diagnóstico"
14
9
  herramientasPermitidas: [Read, Bash, Grep]
15
10
  exclusiones:
16
11
  - "No cargar para errores de TypeScript puros en un proyecto Next.js (TS2322, TS2345, errores de tipos en archivos .ts/.tsx) — para esos cargar `build-errors-typescript`; este skill cubre errores específicos de la plataforma Next.js."