@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.
- package/CLAUDE.md +199 -196
- package/README.md +597 -579
- package/agentes/arquitecto-swl.md +0 -5
- package/agentes/backend-python-swl.md +0 -5
- package/agentes/implementador-swl.md +0 -5
- package/agentes/nemesis-auditor-swl.md +0 -5
- package/agentes/orquestador-swl.md +0 -5
- package/agentes/planificador-swl.md +0 -5
- package/agentes/revisor-codigo-swl.md +0 -5
- package/comandos/swl/adoptar-proyecto.md +253 -258
- package/comandos/swl/aprender.md +823 -828
- package/comandos/swl/claudemd.md +234 -239
- package/comandos/swl/ejecutar-fase.md +0 -5
- package/comandos/swl/nuevo-proyecto.md +200 -205
- package/comandos/swl/release.md +19 -5
- package/comandos/swl/revisar-impacto.md +0 -5
- package/habilidades/agent-browser/SKILL.md +0 -5
- package/habilidades/angular-moderno/SKILL.md +0 -5
- package/habilidades/api-rest-diseno/SKILL.md +0 -5
- package/habilidades/aprendizaje-continuo/SKILL.md +0 -5
- package/habilidades/auth-patrones/SKILL.md +0 -5
- package/habilidades/build-errors-nextjs/SKILL.md +0 -5
- package/habilidades/changelog-generator/SKILL.md +174 -179
- package/habilidades/checklist-seguridad/SKILL.md +0 -5
- package/habilidades/contenedores-docker/SKILL.md +0 -5
- package/habilidades/datos-etl/SKILL.md +0 -5
- package/habilidades/doc-sync/SKILL.md +0 -5
- package/habilidades/extractor-de-aprendizajes/SKILL.md +0 -5
- package/habilidades/fastapi-experto/SKILL.md +0 -5
- package/habilidades/frontend-avanzado/SKILL.md +0 -5
- package/habilidades/iam-secretos/SKILL.md +0 -5
- package/habilidades/manejo-errores/SKILL.md +0 -5
- package/habilidades/mapear-codebase/SKILL.md +0 -5
- package/habilidades/meta-skills-estandar/SKILL.md +0 -5
- package/habilidades/monitoring-alertas/SKILL.md +0 -5
- package/habilidades/nextjs-experto/SKILL.md +0 -5
- package/habilidades/nextjs-testing/SKILL.md +0 -5
- package/habilidades/node-experto/SKILL.md +0 -5
- package/habilidades/orquestacion-async/SKILL.md +0 -5
- package/habilidades/patrones-python/SKILL.md +227 -232
- package/habilidades/planear-fase/SKILL.md +336 -341
- package/habilidades/postgresql-experto/SKILL.md +0 -5
- package/habilidades/prevencion-sobreingenieria/SKILL.md +0 -5
- package/habilidades/protocolo-revision-swl/SKILL.md +0 -5
- package/habilidades/react-experto/SKILL.md +0 -5
- package/habilidades/release-semver/SKILL.md +0 -5
- package/habilidades/swl-claudemd/SKILL.md +0 -5
- package/habilidades/tdd-workflow/SKILL.md +710 -715
- package/habilidades/testing-python/SKILL.md +335 -340
- package/habilidades/verificar-trabajo/SKILL.md +0 -5
- package/hooks/lib/evolution-tracker.js +191 -35
- package/llms.txt +1 -1
- package/manifiestos/canonical-hashes.json +656 -0
- package/manifiestos/modulos.json +3 -0
- package/manifiestos/skills-lock.json +70 -70
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/scripts/generar-canonical-hashes.js +147 -0
- package/scripts/instalador.js +126 -53
- package/scripts/lib/audit-evolved.js +71 -0
- package/scripts/lib/canonical-hash.js +94 -0
- package/scripts/lib/evolved-fuente.js +138 -0
- package/scripts/remediar-evolved-instaladas.js +239 -0
- package/scripts/validar.js +14 -0
- package/scripts/verificar-evolucion.js +36 -0
- package/scripts/verificar-release.js +33 -0
- package/agentes/.evolved.json +0 -9
- package/comandos/swl/.evolved.json +0 -23
- package/habilidades/auth-patrones/.evolved.json +0 -9
- package/habilidades/extractor-de-aprendizajes/.evolved.json +0 -9
- package/habilidades/instalar-sistema/.evolved.json +0 -9
- package/habilidades/manejo-errores/.evolved.json +0 -9
- package/habilidades/node-experto/.evolved.json +0 -9
- 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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
-
|
|
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.
|
package/comandos/swl/release.md
CHANGED
|
@@ -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."
|