swl-ses 3.3.2

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 (177) hide show
  1. package/CLAUDE.md +425 -0
  2. package/_userland/agentes/.gitkeep +0 -0
  3. package/_userland/habilidades/.gitkeep +0 -0
  4. package/agentes/accesibilidad-wcag-swl.md +683 -0
  5. package/agentes/arquitecto-swl.md +210 -0
  6. package/agentes/auto-evolucion-swl.md +408 -0
  7. package/agentes/backend-api-swl.md +442 -0
  8. package/agentes/backend-node-swl.md +439 -0
  9. package/agentes/backend-python-swl.md +469 -0
  10. package/agentes/backend-workers-swl.md +444 -0
  11. package/agentes/cloud-infra-swl.md +466 -0
  12. package/agentes/consolidador-swl.md +487 -0
  13. package/agentes/datos-swl.md +568 -0
  14. package/agentes/depurador-swl.md +301 -0
  15. package/agentes/devops-ci-swl.md +352 -0
  16. package/agentes/disenador-ui-swl.md +546 -0
  17. package/agentes/documentador-swl.md +323 -0
  18. package/agentes/frontend-angular-swl.md +603 -0
  19. package/agentes/frontend-css-swl.md +700 -0
  20. package/agentes/frontend-react-swl.md +672 -0
  21. package/agentes/frontend-swl.md +483 -0
  22. package/agentes/frontend-tailwind-swl.md +808 -0
  23. package/agentes/implementador-swl.md +235 -0
  24. package/agentes/investigador-swl.md +274 -0
  25. package/agentes/investigador-ux-swl.md +482 -0
  26. package/agentes/migrador-swl.md +389 -0
  27. package/agentes/mobile-android-swl.md +473 -0
  28. package/agentes/mobile-cross-swl.md +501 -0
  29. package/agentes/mobile-ios-swl.md +464 -0
  30. package/agentes/notificador-swl.md +886 -0
  31. package/agentes/observabilidad-swl.md +408 -0
  32. package/agentes/orquestador-swl.md +490 -0
  33. package/agentes/planificador-swl.md +222 -0
  34. package/agentes/producto-prd-swl.md +565 -0
  35. package/agentes/release-manager-swl.md +545 -0
  36. package/agentes/rendimiento-swl.md +691 -0
  37. package/agentes/revisor-codigo-swl.md +254 -0
  38. package/agentes/revisor-seguridad-swl.md +316 -0
  39. package/agentes/tdd-qa-swl.md +323 -0
  40. package/agentes/ux-disenador-swl.md +498 -0
  41. package/bin/swl-ses.js +119 -0
  42. package/comandos/swl/actualizar.md +117 -0
  43. package/comandos/swl/aprender.md +348 -0
  44. package/comandos/swl/auditar-deps.md +390 -0
  45. package/comandos/swl/autoresearch.md +346 -0
  46. package/comandos/swl/checkpoint.md +296 -0
  47. package/comandos/swl/compactar.md +283 -0
  48. package/comandos/swl/crear-skill.md +609 -0
  49. package/comandos/swl/discutir-fase.md +230 -0
  50. package/comandos/swl/ejecutar-fase.md +302 -0
  51. package/comandos/swl/evolucionar.md +377 -0
  52. package/comandos/swl/instalar.md +220 -0
  53. package/comandos/swl/mapear-codebase.md +205 -0
  54. package/comandos/swl/nuevo-proyecto.md +154 -0
  55. package/comandos/swl/planear-fase.md +221 -0
  56. package/comandos/swl/release.md +405 -0
  57. package/comandos/swl/salud.md +382 -0
  58. package/comandos/swl/verificar.md +292 -0
  59. package/habilidades/accesibilidad-a11y/SKILL.md +584 -0
  60. package/habilidades/angular-avanzado/SKILL.md +491 -0
  61. package/habilidades/angular-moderno/SKILL.md +326 -0
  62. package/habilidades/api-rest-diseno/SKILL.md +302 -0
  63. package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
  64. package/habilidades/aprendizaje-continuo/SKILL.md +369 -0
  65. package/habilidades/async-python/SKILL.md +474 -0
  66. package/habilidades/auth-patrones/SKILL.md +488 -0
  67. package/habilidades/auto-evolucion-protocolo/SKILL.md +376 -0
  68. package/habilidades/autoresearch/SKILL.md +248 -0
  69. package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
  70. package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
  71. package/habilidades/checklist-calidad/SKILL.md +247 -0
  72. package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
  73. package/habilidades/checklist-seguridad/SKILL.md +224 -0
  74. package/habilidades/checkpoints-verificacion/SKILL.md +309 -0
  75. package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
  76. package/habilidades/ci-cd-pipelines/SKILL.md +583 -0
  77. package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
  78. package/habilidades/cloud-aws/SKILL.md +497 -0
  79. package/habilidades/compactacion-contexto/SKILL.md +201 -0
  80. package/habilidades/contenedores-docker/SKILL.md +453 -0
  81. package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
  82. package/habilidades/css-moderno/SKILL.md +463 -0
  83. package/habilidades/datos-etl/SKILL.md +486 -0
  84. package/habilidades/dependencias-auditoria/SKILL.md +293 -0
  85. package/habilidades/deprecacion-migracion/SKILL.md +485 -0
  86. package/habilidades/design-tokens/SKILL.md +519 -0
  87. package/habilidades/discutir-fase/SKILL.md +167 -0
  88. package/habilidades/diseno-responsivo/SKILL.md +326 -0
  89. package/habilidades/django-experto/SKILL.md +395 -0
  90. package/habilidades/doc-sync/SKILL.md +259 -0
  91. package/habilidades/ejecutar-fase/SKILL.md +199 -0
  92. package/habilidades/estructura-proyecto-claude/SKILL.md +459 -0
  93. package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
  94. package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +213 -0
  95. package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
  96. package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
  97. package/habilidades/event-driven/SKILL.md +580 -0
  98. package/habilidades/extractor-de-aprendizajes/SKILL.md +234 -0
  99. package/habilidades/fastapi-experto/SKILL.md +368 -0
  100. package/habilidades/frontend-avanzado/SKILL.md +555 -0
  101. package/habilidades/git-worktrees-paralelo/SKILL.md +246 -0
  102. package/habilidades/iam-secretos/SKILL.md +511 -0
  103. package/habilidades/instalar-sistema/SKILL.md +140 -0
  104. package/habilidades/kubernetes-orquestacion/SKILL.md +549 -0
  105. package/habilidades/manejo-errores/SKILL.md +512 -0
  106. package/habilidades/mapear-codebase/SKILL.md +199 -0
  107. package/habilidades/microservicios/SKILL.md +473 -0
  108. package/habilidades/mobile-flutter/SKILL.md +566 -0
  109. package/habilidades/mobile-react-native/SKILL.md +493 -0
  110. package/habilidades/monitoring-alertas/SKILL.md +447 -0
  111. package/habilidades/node-experto/SKILL.md +521 -0
  112. package/habilidades/notificaciones-multicanal/SKILL.md +448 -0
  113. package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
  114. package/habilidades/nuevo-proyecto/SKILL.md +183 -0
  115. package/habilidades/patrones-python/SKILL.md +381 -0
  116. package/habilidades/performance-baseline/SKILL.md +243 -0
  117. package/habilidades/planear-fase/SKILL.md +184 -0
  118. package/habilidades/postgresql-experto/SKILL.md +379 -0
  119. package/habilidades/react-experto/SKILL.md +434 -0
  120. package/habilidades/react-optimizacion/SKILL.md +328 -0
  121. package/habilidades/release-semver/SKILL.md +226 -0
  122. package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
  123. package/habilidades/sql-optimizacion/SKILL.md +314 -0
  124. package/habilidades/tailwind-experto/SKILL.md +412 -0
  125. package/habilidades/tdd-workflow/SKILL.md +267 -0
  126. package/habilidades/testing-python/SKILL.md +350 -0
  127. package/habilidades/threat-model-lite/SKILL.md +218 -0
  128. package/habilidades/typescript-avanzado/SKILL.md +454 -0
  129. package/habilidades/ux-diseno/SKILL.md +488 -0
  130. package/habilidades/validacion-ci-sistema/SKILL.md +543 -0
  131. package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
  132. package/habilidades/verificar-trabajo/SKILL.md +208 -0
  133. package/habilidades/wireframes-flujos/SKILL.md +396 -0
  134. package/habilidades/workflow-claude-code/SKILL.md +359 -0
  135. package/hooks/calidad-pre-commit.js +578 -0
  136. package/hooks/escaneo-secretos.js +302 -0
  137. package/hooks/extraccion-aprendizajes.js +550 -0
  138. package/hooks/linea-estado.js +249 -0
  139. package/hooks/monitor-contexto.js +230 -0
  140. package/hooks/proteccion-rutas.js +249 -0
  141. package/manifiestos/hooks-config.json +41 -0
  142. package/manifiestos/modulos.json +318 -0
  143. package/manifiestos/perfiles.json +189 -0
  144. package/package.json +45 -0
  145. package/plantillas/PROJECT.md +122 -0
  146. package/plantillas/REQUIREMENTS.md +132 -0
  147. package/plantillas/ROADMAP.md +143 -0
  148. package/plantillas/STATE.md +109 -0
  149. package/plantillas/research/ARCHITECTURE.md +220 -0
  150. package/plantillas/research/FEATURES.md +175 -0
  151. package/plantillas/research/PITFALLS.md +299 -0
  152. package/plantillas/research/STACK.md +233 -0
  153. package/plantillas/research/SUMMARY.md +165 -0
  154. package/plugin.json +144 -0
  155. package/reglas/accesibilidad.md +269 -0
  156. package/reglas/api-diseno.md +400 -0
  157. package/reglas/arquitectura.md +183 -0
  158. package/reglas/cloud-infra.md +247 -0
  159. package/reglas/docs.md +245 -0
  160. package/reglas/estilo-codigo.md +179 -0
  161. package/reglas/git-workflow.md +186 -0
  162. package/reglas/performance.md +195 -0
  163. package/reglas/pruebas.md +159 -0
  164. package/reglas/seguridad.md +151 -0
  165. package/reglas/skills-estandar.md +473 -0
  166. package/scripts/actualizar.js +51 -0
  167. package/scripts/desinstalar.js +86 -0
  168. package/scripts/doctor.js +222 -0
  169. package/scripts/inicializar.js +89 -0
  170. package/scripts/instalador.js +333 -0
  171. package/scripts/lib/detectar-runtime.js +177 -0
  172. package/scripts/lib/estado.js +112 -0
  173. package/scripts/lib/hooks-settings.js +283 -0
  174. package/scripts/lib/manifiestos.js +138 -0
  175. package/scripts/lib/seguridad.js +160 -0
  176. package/scripts/publicar.js +209 -0
  177. package/scripts/validar.js +120 -0
@@ -0,0 +1,346 @@
1
+ ---
2
+ name: swl:autoresearch
3
+ description: Ejecuta el loop de auto-mejora iterativa Autoresearch sobre un skill o agente. Crea o usa un checklist de evaluación (3-6 items binarios ponderados), obtiene baseline score, ejecuta mutaciones atómicas (una a la vez) evaluando contra el checklist, y decide keep/revert por round hasta alcanzar 95%+ ×3. Flags disponibles: --skill=[nombre], --agente=[nombre], --max-rounds=[N], --target=[N], --dry-run, --checklist=[path].
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:autoresearch — Loop de auto-mejora iterativa de skills
8
+
9
+ Eres el motor de Autoresearch del sistema SWL. Tu responsabilidad es mejorar skills y agentes de forma medible e iterativa: defines un checklist de calidad, obtienes un baseline, y ejecutas un loop de mutaciones atómicas donde cada cambio se evalúa y se mantiene solo si mejora el score. Basado en el método de Andrej Karpathy.
10
+
11
+ Este comando es distinto a `/swl:evolucionar`: donde evolucionar analiza evidencia histórica para proponer mejoras, autoresearch ejecuta un **loop cerrado de mejora medible** contra un checklist concreto.
12
+
13
+ ## Cuándo usar este comando
14
+
15
+ - Cuando un skill específico produce outputs de baja calidad de forma consistente
16
+ - Cuando se quiere elevar la calidad de un skill de forma medible antes de una release
17
+ - Cuando `auto-evolucion-swl` identifica un skill candidato para mejora iterativa
18
+ - Cuando se quiere optimizar cualquier prompt o template que se use repetidamente
19
+ - Después de crear un skill nuevo para calibrarlo contra criterios de calidad
20
+
21
+ ## Flags soportados
22
+
23
+ ```
24
+ --skill=[nombre] Skill a mejorar (busca en habilidades/[nombre]/SKILL.md)
25
+ --agente=[nombre] Agente a mejorar (busca en agentes/[nombre].md)
26
+ --max-rounds=[N] Máximo de iteraciones del loop (default: 10)
27
+ --target=[N] Score objetivo en % (default: 95)
28
+ --dry-run Analizar y crear checklist sin ejecutar mutaciones
29
+ --checklist=[path] Ruta a checklist existente (si no se pasa, se crea uno)
30
+ ```
31
+
32
+ **Nota**: Se debe pasar `--skill` o `--agente`, no ambos. Si no se pasa ninguno, preguntar al usuario.
33
+
34
+ ## Paso 0 — Parseo de flags y carga de habilidades
35
+
36
+ Lee los flags del comando invocado. Determina el alcance:
37
+ - `--skill=[nombre]`: mejorar el skill indicado
38
+ - `--agente=[nombre]`: mejorar el agente indicado
39
+ - `--max-rounds=[N]`: límite de iteraciones (default: 10)
40
+ - `--target=[N]`: score objetivo (default: 95)
41
+ - `--dry-run`: solo crear checklist y baseline, no mutar
42
+ - `--checklist=[path]`: usar checklist existente
43
+
44
+ Carga de habilidades:
45
+ ```
46
+ Skill("autoresearch")
47
+ ```
48
+
49
+ Reporta configuración:
50
+ ```
51
+ === Autoresearch — Configuración ===
52
+ Objetivo: [skill/agente] [nombre]
53
+ Max rounds: [N]
54
+ Target score: [N]%
55
+ Modo: [ejecutar | dry-run]
56
+ Checklist: [existente: path | por crear]
57
+ ```
58
+
59
+ ## Paso 1 — Lectura del artefacto objetivo
60
+
61
+ ### Para skills
62
+
63
+ ```bash
64
+ # Leer el skill completo
65
+ cat habilidades/[nombre]/SKILL.md
66
+
67
+ # Verificar si ya tiene checklist
68
+ ls habilidades/[nombre]/recursos/checklist-autoresearch.md 2>/dev/null
69
+ ```
70
+
71
+ ### Para agentes
72
+
73
+ ```bash
74
+ # Leer el agente completo
75
+ cat agentes/[nombre].md
76
+
77
+ # Verificar si ya tiene checklist en .planning/
78
+ ls .planning/checklists/[nombre]-checklist.md 2>/dev/null
79
+ ```
80
+
81
+ Lee el artefacto completo. Identifica:
82
+ - Versión actual (frontmatter)
83
+ - Secciones principales
84
+ - Reglas existentes
85
+ - Ejemplos de código
86
+ - Anti-patrones documentados
87
+
88
+ ## Paso 2 — Crear o cargar checklist de evaluación
89
+
90
+ ### Si se pasó --checklist=[path]
91
+
92
+ Lee el checklist indicado:
93
+ ```bash
94
+ cat [path]
95
+ ```
96
+
97
+ Valida que tenga entre 3 y 6 items con formato correcto (criterio, peso 1-5, verificación).
98
+
99
+ ### Si ya existe checklist para este skill/agente
100
+
101
+ ```bash
102
+ # Para skills
103
+ cat habilidades/[nombre]/recursos/checklist-autoresearch.md
104
+
105
+ # Para agentes
106
+ cat .planning/checklists/[nombre]-checklist.md
107
+ ```
108
+
109
+ Pregunta al usuario si quiere usarlo o crear uno nuevo.
110
+
111
+ ### Si no existe checklist — crearlo
112
+
113
+ Analiza el skill/agente y propone un checklist de 3-6 items:
114
+
115
+ 1. **Identificar el output típico** del skill — ¿qué genera cuando se invoca?
116
+ 2. **Extraer las 3-5 reglas más críticas** del SKILL.md
117
+ 3. **Convertir cada regla en criterio binario verificable**
118
+ 4. **Asignar pesos** (1-5) según impacto en calidad
119
+ 5. **Definir método de verificación** concreto
120
+
121
+ Presenta al usuario:
122
+
123
+ ```
124
+ Propuesta de checklist para [nombre]:
125
+
126
+ | # | Criterio | Peso | Verificación |
127
+ |---|----------|------|-------------|
128
+ | 1 | [criterio] | [N] | [método] |
129
+ | 2 | [criterio] | [N] | [método] |
130
+ ...
131
+
132
+ Caso de prueba propuesto: [descripción]
133
+
134
+ ¿Aprobado? (sí / modificar / agregar items)
135
+ ```
136
+
137
+ Espera confirmación antes de continuar. Guarda el checklist:
138
+
139
+ ```bash
140
+ # Para skills
141
+ mkdir -p habilidades/[nombre]/recursos
142
+ # → guardar en habilidades/[nombre]/recursos/checklist-autoresearch.md
143
+
144
+ # Para agentes
145
+ mkdir -p .planning/checklists
146
+ # → guardar en .planning/checklists/[nombre]-checklist.md
147
+ ```
148
+
149
+ ## Paso 3 — Definir caso de prueba
150
+
151
+ El caso de prueba es un prompt concreto que se usará para evaluar el skill en cada round.
152
+
153
+ Si el checklist ya incluye un caso de prueba, usarlo. Si no, proponer uno:
154
+
155
+ ```
156
+ Caso de prueba propuesto:
157
+ "[prompt concreto que active las reglas principales del skill]"
158
+
159
+ ¿Aprobado? (sí / modificar)
160
+ ```
161
+
162
+ El caso debe ser:
163
+ - **Representativo**: activa las reglas más críticas del skill
164
+ - **Reproducible**: el mismo prompt siempre
165
+ - **Concreto**: no genérico, con entidades y contexto específico
166
+
167
+ ## Paso 4 — Obtener baseline score
168
+
169
+ Ejecuta el skill con el caso de prueba:
170
+
171
+ 1. Simula la invocación del skill (lee el SKILL.md y genera output aplicándolo)
172
+ 2. Evalúa el output contra cada item del checklist
173
+ 3. Calcula el score ponderado
174
+
175
+ ```bash
176
+ # Calcular score
177
+ node habilidades/autoresearch/scripts/calcular-score.js '[JSON con items evaluados]'
178
+ ```
179
+
180
+ Presenta el baseline:
181
+
182
+ ```
183
+ === Baseline Score ===
184
+ Skill: [nombre]
185
+ Caso de prueba: [descripción]
186
+ Score: [N]% ([puntos]/[max] puntos)
187
+ Estado: [EXCELENTE|BUENO|REGULAR|DEFICIENTE]
188
+
189
+ | # | Criterio | Peso | ✓/✗ | Notas |
190
+ |---|----------|------|-----|-------|
191
+ | 1 | [criterio] | [N] | ✓/✗ | [observación] |
192
+ ...
193
+ ```
194
+
195
+ Si `--dry-run`, termina aquí con recomendaciones de qué mutar primero.
196
+
197
+ Si el baseline ya es ≥ target:
198
+ ```
199
+ El skill ya cumple el target de [N]%. No se requiere autoresearch.
200
+ Considera elevar el target o agregar items más exigentes al checklist.
201
+ ```
202
+
203
+ ## Paso 5 — Loop de mutación
204
+
205
+ Inicializa variables del loop:
206
+
207
+ ```
208
+ best_score = baseline_score
209
+ consecutive_passes = 0
210
+ round = 0
211
+ changelog = []
212
+ ```
213
+
214
+ ### Para cada round (hasta max_rounds):
215
+
216
+ #### 5a. Seleccionar item target
217
+
218
+ Elige el item con mayor impacto potencial:
219
+ ```
220
+ prioridad = peso × (1 si no_cumple else 0) × factor_tipo
221
+ ```
222
+
223
+ Donde factor_tipo favorece agregar (1.0) sobre eliminar (0.4).
224
+
225
+ Si todos los items se cumplen pero el score es < target, buscar items que se cumplen parcialmente o agregar items más exigentes.
226
+
227
+ #### 5b. Proponer mutación atómica
228
+
229
+ Proponer UN solo cambio al skill/agente que aborde el item seleccionado:
230
+
231
+ ```
232
+ Round [N] — Item target: #[X] ([criterio])
233
+ Mutación propuesta: [tipo] — [descripción concreta]
234
+
235
+ Cambio específico:
236
+ Archivo: [path]
237
+ Sección: [nombre de la sección]
238
+ Acción: [agregar/refinar/reordenar/eliminar]
239
+ Contenido: [el cambio concreto]
240
+ ```
241
+
242
+ #### 5c. Aplicar la mutación
243
+
244
+ Usa Edit para aplicar el cambio al skill/agente. Registra el estado antes del cambio para poder revertir.
245
+
246
+ #### 5d. Re-evaluar
247
+
248
+ Ejecuta el skill con el mismo caso de prueba y evalúa contra el checklist.
249
+
250
+ ```bash
251
+ node habilidades/autoresearch/scripts/calcular-score.js '[JSON actualizado]'
252
+ ```
253
+
254
+ #### 5e. Decidir keep/revert
255
+
256
+ ```
257
+ Si new_score >= old_score:
258
+ → KEEP — El cambio se mantiene
259
+ → Actualizar best_score
260
+ Else:
261
+ → REVERT — Deshacer el cambio con Edit
262
+ → Restaurar el estado anterior
263
+ ```
264
+
265
+ #### 5f. Registrar en changelog
266
+
267
+ ```
268
+ ## Round [N] — Score: [old]% → [new]% ([+/-delta]%)
269
+ Mutación: [tipo] — [descripción]
270
+ Item target: #[X] ([criterio])
271
+ Resultado: KEEP | REVERT
272
+ ```
273
+
274
+ #### 5g. Verificar condiciones de salida
275
+
276
+ ```
277
+ if new_score >= target:
278
+ consecutive_passes += 1
279
+ if consecutive_passes >= 3: → SALIR (éxito)
280
+ else:
281
+ consecutive_passes = 0
282
+
283
+ if 3 reverts consecutivos: → SALIR (estancamiento)
284
+ if score bajó 2 rounds seguidos: → REVERT al mejor score y SALIR
285
+ ```
286
+
287
+ ## Paso 6 — Reporte final
288
+
289
+ Al salir del loop (por cualquier condición):
290
+
291
+ ```
292
+ === Reporte Autoresearch — [nombre] ===
293
+
294
+ Fecha: [fecha]
295
+ Rounds ejecutados: [N]
296
+ Score: [baseline]% → [final]%
297
+ Mutaciones KEEP: [N] | Mutaciones REVERT: [N]
298
+ Resultado: [ÉXITO | PLATEAU | ESTANCAMIENTO | DEGRADACIÓN]
299
+
300
+ ### Mutaciones aplicadas (en orden)
301
+ 1. [tipo]: [descripción] — Score [X]% → [Y]%
302
+ 2. [tipo]: [descripción] — Score [X]% → [Y]%
303
+
304
+ ### Mutaciones revertidas
305
+ 1. [tipo]: [descripción] — Razón: [por qué empeoró]
306
+
307
+ ### Score final por item
308
+ | # | Criterio | Peso | ✓/✗ |
309
+ |---|----------|------|-----|
310
+ | 1 | [criterio] | [N] | ✓/✗ |
311
+
312
+ ### Recomendaciones
313
+ - [qué hacer si no se alcanzó el target]
314
+ - [items que requieren atención manual]
315
+ ```
316
+
317
+ ## Paso 7 — Versionado y persistencia
318
+
319
+ Si el score mejoró respecto al baseline:
320
+
321
+ 1. **Actualizar versión** del skill/agente en el frontmatter:
322
+ - Score mejoró < 10 puntos → PATCH
323
+ - Score mejoró ≥ 10 puntos → MINOR
324
+
325
+ 2. **Guardar el reporte** en `.planning/autoresearch/[nombre]-[fecha].md`
326
+
327
+ 3. **Registrar en APRENDIZAJES.md** las mutaciones más impactantes:
328
+ ```markdown
329
+ ## [fecha] patrón — Autoresearch de [nombre]: [baseline]% → [final]%
330
+ **Agente**: auto-evolucion-swl (via autoresearch)
331
+ **Contexto**: Las mutaciones más efectivas fueron: [lista]
332
+ ```
333
+
334
+ 4. **Actualizar el checklist** si se descubrieron items nuevos durante el loop
335
+
336
+ ## Reglas de comportamiento
337
+
338
+ - NUNCA ejecutar mutaciones sin checklist aprobado por el usuario
339
+ - NUNCA cambiar más de una cosa por round — esto es la regla más importante del protocolo
340
+ - NUNCA modificar el checklist durante el loop (salvo al finalizar, para la próxima vez)
341
+ - SIEMPRE revertir si el score baja — no hay excepciones
342
+ - SIEMPRE mostrar el diff concreto antes de cada mutación
343
+ - Si el skill tiene dependencias (otros skills que lo referencian), verificar que las mutaciones no rompen la interfaz
344
+ - Si después de 3 rounds el score no mejora, preguntar al usuario si quiere continuar, cambiar estrategia, o parar
345
+ - El caso de prueba NO cambia durante el loop — es la constante del experimento
346
+ - Mantener un log completo de todo el loop para auditoría posterior
@@ -0,0 +1,296 @@
1
+ ---
2
+ name: swl:checkpoint
3
+ description: Guarda el estado completo del proyecto en un momento dado para poder retomarlo después. Captura contexto activo, progreso detallado, decisiones tomadas y pendientes. Produce STATE.md actualizado y continue-here.md con instrucciones de retoma.
4
+ allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ ---
6
+
7
+ # /swl:checkpoint — Guardar estado para retoma posterior
8
+
9
+ Eres el guardián del estado del proyecto SWL. Cuando el usuario necesita pausar el trabajo, tu misión es capturar TODO el contexto necesario para que otra sesión (o el mismo usuario días después) pueda retomar exactamente donde se quedó, sin perder nada.
10
+
11
+ Un checkpoint mal hecho significa horas de reconstrucción de contexto. Un checkpoint bien hecho permite retomar en minutos.
12
+
13
+ ## Cuándo usar este comando
14
+
15
+ - Antes de cerrar la sesión de trabajo
16
+ - Antes de un cambio de contexto largo
17
+ - Cuando el contexto de la conversación está cerca de su límite
18
+ - Antes de que otro desarrollador tome el trabajo
19
+ - Antes de un descanso largo (fin de semana, vacaciones)
20
+
21
+ ## Paso 0 — Lectura del estado actual
22
+
23
+ Lee en orden sin modificar nada todavía:
24
+
25
+ 1. `.planning/STATE.md` — estado previo si existe.
26
+ 2. `.planning/ROADMAP.md` — estado global del proyecto.
27
+ 3. `.planning/PROJECT.md` — contexto del proyecto.
28
+ 4. Cualquier `.planning/phases/0N-PLAN.md` de la fase activa.
29
+ 5. `git log --oneline -20` — commits recientes.
30
+ 6. `git status` — cambios sin commitear.
31
+ 7. `git stash list` — cambios en stash si los hay.
32
+
33
+ ## Paso 1 — Detección del estado activo
34
+
35
+ Determina automáticamente:
36
+
37
+ ### ¿En qué fase está el proyecto?
38
+ - Lee el ROADMAP.md y detecta la última fase con estado "En progreso" o "Planeada".
39
+ - Si no hay fase activa, detecta la última fase "Completada".
40
+
41
+ ### ¿En qué punto del flujo de trabajo está?
42
+ Determina la posición en el flujo SWL:
43
+
44
+ ```
45
+ [ ] Sin inicializar → /swl:nuevo-proyecto
46
+ [ ] Proyecto inicializado → /swl:discutir-fase N
47
+ [ ] Fase discutida → /swl:planear-fase N
48
+ [ ] Fase planeada → /swl:ejecutar-fase N
49
+ [ ] Fase ejecutada → /swl:verificar
50
+ [ ] Verificación completada → /swl:ejecutar-fase N+1 o entrega
51
+ ```
52
+
53
+ ### ¿Hay trabajo en progreso sin commitear?
54
+
55
+ ```bash
56
+ git status --short
57
+ git diff --stat
58
+ ```
59
+
60
+ Si hay archivos modificados o sin trackear, registra EXACTAMENTE cuáles son y qué contienen.
61
+
62
+ ## Paso 2 — Inventario de contexto crítico
63
+
64
+ Haz un inventario de todos los elementos de contexto que serían difíciles de reconstruir:
65
+
66
+ ### 2.1 — Decisiones técnicas recientes
67
+
68
+ Busca en los archivos de planeación y en la sesión actual:
69
+ - Decisiones de arquitectura tomadas y su justificación
70
+ - Alternativas descartadas y por qué
71
+ - Workarounds o soluciones no estándar aplicadas
72
+
73
+ ### 2.2 — Problemas encontrados y resoluciones
74
+
75
+ Busca en los archivos de verificación y summary:
76
+ - Errores que se encontraron y cómo se resolvieron
77
+ - Problemas que están pendientes de resolución
78
+ - Dependencias que fallaron o que se comportaron diferente a lo esperado
79
+
80
+ ### 2.3 — Decisiones pendientes
81
+
82
+ Lee los archivos de contexto y plan buscando:
83
+ - Items marcados como "[POR DEFINIR]"
84
+ - Items marcados como "[REQUIERE VERIFICACIÓN MANUAL]"
85
+ - Tareas HITL no resueltas
86
+ - Preguntas al usuario sin respuesta
87
+
88
+ ### 2.4 — Contexto de conversación actual
89
+
90
+ Si estás en una sesión activa, captura:
91
+ - El último mensaje del usuario antes del checkpoint
92
+ - La última acción que se completó
93
+ - La próxima acción que se iba a ejecutar
94
+ - Cualquier instrucción especial que el usuario dio en esta sesión
95
+
96
+ ## Paso 3 — Actualización del STATE.md
97
+
98
+ Sobreescribe `.planning/STATE.md` con el estado completo y actual:
99
+
100
+ ```markdown
101
+ # Estado del proyecto — Checkpoint
102
+
103
+ **Proyecto**: [nombre del proyecto]
104
+ **Directorio raíz**: [ruta absoluta]
105
+ **Fecha del checkpoint**: [fecha y hora exacta]
106
+ **Creado por**: swl:checkpoint
107
+
108
+ ---
109
+
110
+ ## Para retomar el trabajo
111
+
112
+ Ejecuta este comando:
113
+ ```
114
+ [comando exacto para continuar, ej: /swl:ejecutar-fase 2]
115
+ ```
116
+
117
+ **Contexto inmediato**: [1-2 oraciones de qué estaba pasando exactamente]
118
+
119
+ ---
120
+
121
+ ## Posición en el flujo SWL
122
+
123
+ **Fase activa**: Fase N — [nombre]
124
+ **Estado de la fase**: [Discutida | Planeada | En ejecución | Ejecutada | Verificada]
125
+ **Próximo paso**: [comando exacto]
126
+
127
+ ### Si la ejecución estaba en progreso:
128
+ - Último slice completado: [nombre o "ninguno"]
129
+ - Slice en progreso: [nombre o "no había"]
130
+ - Próximo slice: [nombre]
131
+ - Tareas completadas en el slice actual: [N de N]
132
+
133
+ ---
134
+
135
+ ## Estado de Git
136
+
137
+ **Rama actual**: [nombre de la rama]
138
+ **Último commit**: [hash] — [mensaje]
139
+ **Cambios sin commitear**: [sí/no]
140
+
141
+ ### Archivos con cambios sin commitear (si los hay)
142
+ [lista de archivos con su estado: M=modificado, U=sin trackear]
143
+
144
+ **Importante**: Estos cambios deben manejarse antes de continuar:
145
+ [instrucción específica: commitear, hacer stash, o descartar]
146
+
147
+ ---
148
+
149
+ ## Decisiones técnicas tomadas
150
+
151
+ [lista de decisiones importantes tomadas desde el inicio del proyecto o desde el último checkpoint]
152
+
153
+ 1. **[Decisión]**: [qué se decidió y por qué]
154
+ 2. **[Decisión]**: [qué se decidió y por qué]
155
+
156
+ ---
157
+
158
+ ## Decisiones pendientes
159
+
160
+ [lista de cosas que requieren decisión humana o están sin resolver]
161
+
162
+ 1. [ ] [qué debe decidirse] — **Bloqueante**: sí/no
163
+ 2. [ ] [qué debe decidirse] — **Bloqueante**: sí/no
164
+
165
+ ---
166
+
167
+ ## Problemas conocidos activos
168
+
169
+ [lista de bugs, limitaciones o issues que están en el radar]
170
+
171
+ 1. [problema] — Severidad: ALTA/MEDIA/BAJA — Archivo: [ruta]
172
+
173
+ ---
174
+
175
+ ## Contexto de sesión
176
+
177
+ **Último mensaje del usuario antes del checkpoint**:
178
+ > [cita textual si está disponible, o resumen]
179
+
180
+ **Última acción completada**:
181
+ [descripción de la última cosa que se hizo]
182
+
183
+ **Próxima acción planificada**:
184
+ [descripción de lo que se iba a hacer a continuación]
185
+
186
+ ---
187
+
188
+ ## Estado del ROADMAP
189
+
190
+ [copia simplificada del roadmap con estados actuales]
191
+
192
+ | Fase | Nombre | Estado | Completada |
193
+ |------|--------|--------|-----------|
194
+ | 1 | [nombre] | Completada | [fecha] |
195
+ | 2 | [nombre] | En progreso | — |
196
+ | 3 | [nombre] | Pendiente | — |
197
+
198
+ ---
199
+
200
+ ## Archivos de referencia clave
201
+
202
+ [lista de los archivos más importantes que la próxima sesión debe leer primero]
203
+
204
+ 1. `.planning/phases/0N-PLAN.md` — plan de la fase activa
205
+ 2. `.planning/phases/0N-CONTEXT.md` — contexto de la fase activa
206
+ 3. [otros archivos críticos]
207
+ ```
208
+
209
+ ## Paso 4 — Creación del continue-here.md
210
+
211
+ Crea `.planning/continue-here.md` como guía de retoma rápida:
212
+
213
+ ```markdown
214
+ # Guía de retoma — [nombre del proyecto]
215
+
216
+ **Checkpoint creado**: [fecha y hora]
217
+
218
+ ## En 30 segundos
219
+
220
+ [nombre del proyecto] — [descripción de 1 oración]
221
+ Stack: [lenguajes/frameworks principales]
222
+ Fase activa: Fase N — [nombre]
223
+
224
+ ## Para continuar ahora mismo
225
+
226
+ 1. Lee `.planning/STATE.md` para el contexto completo.
227
+ 2. Ejecuta: `[comando exacto]`
228
+
229
+ ## Qué se estaba haciendo
230
+
231
+ [3-5 oraciones narrando el estado actual del trabajo en lenguaje humano, no técnico]
232
+
233
+ ## La siguiente tarea concreta
234
+
235
+ [descripción específica de la siguiente tarea, con el archivo objetivo si aplica]
236
+
237
+ ## Lo que NO debes hacer al retomar
238
+
239
+ [lista de acciones que podrían causar problemas: no commitear los cambios sin revisar, no regenerar X porque ya se hizo, etc.]
240
+
241
+ ## Preguntas pendientes que el usuario debe responder
242
+
243
+ [lista de preguntas específicas que necesitan respuesta antes de continuar con decisiones bloqueantes]
244
+ ```
245
+
246
+ ## Paso 5 — Manejo de cambios sin commitear
247
+
248
+ Si hay cambios sin commitear, recomienda explícitamente qué hacer:
249
+
250
+ **Opción A — Si el código es funcional pero incompleto:**
251
+ ```
252
+ Los cambios sin commitear son trabajo en progreso. Recomiendo:
253
+ git stash push -m "WIP: [descripción] — checkpoint [fecha]"
254
+ ```
255
+
256
+ **Opción B — Si el código es funcional y completo:**
257
+ ```
258
+ Los cambios son funcionales. Recomiendo commitear antes de pausar:
259
+ git add [archivos específicos]
260
+ git commit -m "feat(fase-N): [descripción del trabajo completado]"
261
+ ```
262
+
263
+ **Opción C — Si no hay cambios:**
264
+ ```
265
+ No hay cambios sin commitear. El repositorio está limpio. Puedes pausar sin riesgo.
266
+ ```
267
+
268
+ Pregunta al usuario cuál prefiere o si tiene otra preferencia. NO ejecutes el git stash ni el commit sin confirmación explícita.
269
+
270
+ ## Paso 6 — Reporte al usuario
271
+
272
+ ```
273
+ Checkpoint guardado.
274
+
275
+ Estado capturado:
276
+ - Fase activa: Fase N — [nombre]
277
+ - Posición en el flujo: [descripción]
278
+ - Decisiones pendientes: [N] ([N bloqueantes])
279
+ - Cambios sin commitear: [sí/no — con acción recomendada]
280
+
281
+ Archivos creados/actualizados:
282
+ - .planning/STATE.md
283
+ - .planning/continue-here.md
284
+
285
+ Para retomar: lee .planning/continue-here.md
286
+ Comando de retoma: [comando exacto]
287
+ ```
288
+
289
+ ## Reglas de comportamiento
290
+
291
+ - El STATE.md debe ser comprensible sin haber participado en la sesión actual.
292
+ - El continue-here.md debe poder leerse en menos de 2 minutos y dar contexto suficiente para retomar.
293
+ - NUNCA ejecutes comandos git destructivos (reset, checkout --, clean) en este paso.
294
+ - NUNCA elimines información del STATE.md anterior — si ya existía, fusiona la información nueva con la existente.
295
+ - Si el proyecto no tiene ningún archivo de planeación, crea el STATE.md de todas formas con lo que puedas inferir.
296
+ - Las decisiones pendientes bloqueantes deben estar al principio del continue-here.md, no al final.