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.
- package/CLAUDE.md +425 -0
- package/_userland/agentes/.gitkeep +0 -0
- package/_userland/habilidades/.gitkeep +0 -0
- package/agentes/accesibilidad-wcag-swl.md +683 -0
- package/agentes/arquitecto-swl.md +210 -0
- package/agentes/auto-evolucion-swl.md +408 -0
- package/agentes/backend-api-swl.md +442 -0
- package/agentes/backend-node-swl.md +439 -0
- package/agentes/backend-python-swl.md +469 -0
- package/agentes/backend-workers-swl.md +444 -0
- package/agentes/cloud-infra-swl.md +466 -0
- package/agentes/consolidador-swl.md +487 -0
- package/agentes/datos-swl.md +568 -0
- package/agentes/depurador-swl.md +301 -0
- package/agentes/devops-ci-swl.md +352 -0
- package/agentes/disenador-ui-swl.md +546 -0
- package/agentes/documentador-swl.md +323 -0
- package/agentes/frontend-angular-swl.md +603 -0
- package/agentes/frontend-css-swl.md +700 -0
- package/agentes/frontend-react-swl.md +672 -0
- package/agentes/frontend-swl.md +483 -0
- package/agentes/frontend-tailwind-swl.md +808 -0
- package/agentes/implementador-swl.md +235 -0
- package/agentes/investigador-swl.md +274 -0
- package/agentes/investigador-ux-swl.md +482 -0
- package/agentes/migrador-swl.md +389 -0
- package/agentes/mobile-android-swl.md +473 -0
- package/agentes/mobile-cross-swl.md +501 -0
- package/agentes/mobile-ios-swl.md +464 -0
- package/agentes/notificador-swl.md +886 -0
- package/agentes/observabilidad-swl.md +408 -0
- package/agentes/orquestador-swl.md +490 -0
- package/agentes/planificador-swl.md +222 -0
- package/agentes/producto-prd-swl.md +565 -0
- package/agentes/release-manager-swl.md +545 -0
- package/agentes/rendimiento-swl.md +691 -0
- package/agentes/revisor-codigo-swl.md +254 -0
- package/agentes/revisor-seguridad-swl.md +316 -0
- package/agentes/tdd-qa-swl.md +323 -0
- package/agentes/ux-disenador-swl.md +498 -0
- package/bin/swl-ses.js +119 -0
- package/comandos/swl/actualizar.md +117 -0
- package/comandos/swl/aprender.md +348 -0
- package/comandos/swl/auditar-deps.md +390 -0
- package/comandos/swl/autoresearch.md +346 -0
- package/comandos/swl/checkpoint.md +296 -0
- package/comandos/swl/compactar.md +283 -0
- package/comandos/swl/crear-skill.md +609 -0
- package/comandos/swl/discutir-fase.md +230 -0
- package/comandos/swl/ejecutar-fase.md +302 -0
- package/comandos/swl/evolucionar.md +377 -0
- package/comandos/swl/instalar.md +220 -0
- package/comandos/swl/mapear-codebase.md +205 -0
- package/comandos/swl/nuevo-proyecto.md +154 -0
- package/comandos/swl/planear-fase.md +221 -0
- package/comandos/swl/release.md +405 -0
- package/comandos/swl/salud.md +382 -0
- package/comandos/swl/verificar.md +292 -0
- package/habilidades/accesibilidad-a11y/SKILL.md +584 -0
- package/habilidades/angular-avanzado/SKILL.md +491 -0
- package/habilidades/angular-moderno/SKILL.md +326 -0
- package/habilidades/api-rest-diseno/SKILL.md +302 -0
- package/habilidades/api-rest-diseno/recursos/openapi-template.yaml +506 -0
- package/habilidades/aprendizaje-continuo/SKILL.md +369 -0
- package/habilidades/async-python/SKILL.md +474 -0
- package/habilidades/auth-patrones/SKILL.md +488 -0
- package/habilidades/auto-evolucion-protocolo/SKILL.md +376 -0
- package/habilidades/autoresearch/SKILL.md +248 -0
- package/habilidades/autoresearch/recursos/checklist-template.md +191 -0
- package/habilidades/autoresearch/scripts/calcular-score.js +88 -0
- package/habilidades/checklist-calidad/SKILL.md +247 -0
- package/habilidades/checklist-calidad/recursos/quality-report-template.md +148 -0
- package/habilidades/checklist-seguridad/SKILL.md +224 -0
- package/habilidades/checkpoints-verificacion/SKILL.md +309 -0
- package/habilidades/checkpoints-verificacion/recursos/checkpoint-templates.md +360 -0
- package/habilidades/ci-cd-pipelines/SKILL.md +583 -0
- package/habilidades/ci-cd-pipelines/recursos/github-actions-template.yaml +403 -0
- package/habilidades/cloud-aws/SKILL.md +497 -0
- package/habilidades/compactacion-contexto/SKILL.md +201 -0
- package/habilidades/contenedores-docker/SKILL.md +453 -0
- package/habilidades/contenedores-docker/recursos/dockerfile-template.dockerfile +160 -0
- package/habilidades/css-moderno/SKILL.md +463 -0
- package/habilidades/datos-etl/SKILL.md +486 -0
- package/habilidades/dependencias-auditoria/SKILL.md +293 -0
- package/habilidades/deprecacion-migracion/SKILL.md +485 -0
- package/habilidades/design-tokens/SKILL.md +519 -0
- package/habilidades/discutir-fase/SKILL.md +167 -0
- package/habilidades/diseno-responsivo/SKILL.md +326 -0
- package/habilidades/django-experto/SKILL.md +395 -0
- package/habilidades/doc-sync/SKILL.md +259 -0
- package/habilidades/ejecutar-fase/SKILL.md +199 -0
- package/habilidades/estructura-proyecto-claude/SKILL.md +459 -0
- package/habilidades/estructura-proyecto-claude/recursos/claude-md-template.md +261 -0
- package/habilidades/estructura-proyecto-claude/recursos/frontmatter-y-hooks-referencia.md +213 -0
- package/habilidades/estructura-proyecto-claude/recursos/mcp-json-template.json +77 -0
- package/habilidades/estructura-proyecto-claude/recursos/variantes-por-stack.md +177 -0
- package/habilidades/event-driven/SKILL.md +580 -0
- package/habilidades/extractor-de-aprendizajes/SKILL.md +234 -0
- package/habilidades/fastapi-experto/SKILL.md +368 -0
- package/habilidades/frontend-avanzado/SKILL.md +555 -0
- package/habilidades/git-worktrees-paralelo/SKILL.md +246 -0
- package/habilidades/iam-secretos/SKILL.md +511 -0
- package/habilidades/instalar-sistema/SKILL.md +140 -0
- package/habilidades/kubernetes-orquestacion/SKILL.md +549 -0
- package/habilidades/manejo-errores/SKILL.md +512 -0
- package/habilidades/mapear-codebase/SKILL.md +199 -0
- package/habilidades/microservicios/SKILL.md +473 -0
- package/habilidades/mobile-flutter/SKILL.md +566 -0
- package/habilidades/mobile-react-native/SKILL.md +493 -0
- package/habilidades/monitoring-alertas/SKILL.md +447 -0
- package/habilidades/node-experto/SKILL.md +521 -0
- package/habilidades/notificaciones-multicanal/SKILL.md +448 -0
- package/habilidades/notificaciones-multicanal/recursos/config-template.json +115 -0
- package/habilidades/nuevo-proyecto/SKILL.md +183 -0
- package/habilidades/patrones-python/SKILL.md +381 -0
- package/habilidades/performance-baseline/SKILL.md +243 -0
- package/habilidades/planear-fase/SKILL.md +184 -0
- package/habilidades/postgresql-experto/SKILL.md +379 -0
- package/habilidades/react-experto/SKILL.md +434 -0
- package/habilidades/react-optimizacion/SKILL.md +328 -0
- package/habilidades/release-semver/SKILL.md +226 -0
- package/habilidades/release-semver/scripts/generar-changelog.sh +238 -0
- package/habilidades/sql-optimizacion/SKILL.md +314 -0
- package/habilidades/tailwind-experto/SKILL.md +412 -0
- package/habilidades/tdd-workflow/SKILL.md +267 -0
- package/habilidades/testing-python/SKILL.md +350 -0
- package/habilidades/threat-model-lite/SKILL.md +218 -0
- package/habilidades/typescript-avanzado/SKILL.md +454 -0
- package/habilidades/ux-diseno/SKILL.md +488 -0
- package/habilidades/validacion-ci-sistema/SKILL.md +543 -0
- package/habilidades/validacion-ci-sistema/scripts/validar-sistema.sh +286 -0
- package/habilidades/verificar-trabajo/SKILL.md +208 -0
- package/habilidades/wireframes-flujos/SKILL.md +396 -0
- package/habilidades/workflow-claude-code/SKILL.md +359 -0
- package/hooks/calidad-pre-commit.js +578 -0
- package/hooks/escaneo-secretos.js +302 -0
- package/hooks/extraccion-aprendizajes.js +550 -0
- package/hooks/linea-estado.js +249 -0
- package/hooks/monitor-contexto.js +230 -0
- package/hooks/proteccion-rutas.js +249 -0
- package/manifiestos/hooks-config.json +41 -0
- package/manifiestos/modulos.json +318 -0
- package/manifiestos/perfiles.json +189 -0
- package/package.json +45 -0
- package/plantillas/PROJECT.md +122 -0
- package/plantillas/REQUIREMENTS.md +132 -0
- package/plantillas/ROADMAP.md +143 -0
- package/plantillas/STATE.md +109 -0
- package/plantillas/research/ARCHITECTURE.md +220 -0
- package/plantillas/research/FEATURES.md +175 -0
- package/plantillas/research/PITFALLS.md +299 -0
- package/plantillas/research/STACK.md +233 -0
- package/plantillas/research/SUMMARY.md +165 -0
- package/plugin.json +144 -0
- package/reglas/accesibilidad.md +269 -0
- package/reglas/api-diseno.md +400 -0
- package/reglas/arquitectura.md +183 -0
- package/reglas/cloud-infra.md +247 -0
- package/reglas/docs.md +245 -0
- package/reglas/estilo-codigo.md +179 -0
- package/reglas/git-workflow.md +186 -0
- package/reglas/performance.md +195 -0
- package/reglas/pruebas.md +159 -0
- package/reglas/seguridad.md +151 -0
- package/reglas/skills-estandar.md +473 -0
- package/scripts/actualizar.js +51 -0
- package/scripts/desinstalar.js +86 -0
- package/scripts/doctor.js +222 -0
- package/scripts/inicializar.js +89 -0
- package/scripts/instalador.js +333 -0
- package/scripts/lib/detectar-runtime.js +177 -0
- package/scripts/lib/estado.js +112 -0
- package/scripts/lib/hooks-settings.js +283 -0
- package/scripts/lib/manifiestos.js +138 -0
- package/scripts/lib/seguridad.js +160 -0
- package/scripts/publicar.js +209 -0
- 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.
|