@saulwade/swl-ses 1.6.7 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@ modeloAlterno: claude-haiku-4-5-20251001
15
15
  ventanaContexto: 200k
16
16
  permissionMode: plan
17
17
  color: white
18
- version: 1.1.0
18
+ version: 1.2.0
19
19
  nivelRiesgo: BAJO
20
20
  skillsInvocables: [compactacion-contexto, checkpoints-verificacion, aprendizaje-continuo, discutir-fase, ejecutar-fase, planear-fase, nuevo-proyecto, brainstorming, control-profundidad, prevencion-racionalizacion, estructura-proyecto-claude, workflow-claude-code, git-worktrees-paralelo, swl-dashboard, instalar-sistema, mapear-codebase, orquestacion-async, context-builder]
21
21
  skillsRestringidos: [fastapi-python, angular-component, angular-forms, postgresql-table-design]
@@ -124,6 +124,42 @@ paralelismo:
124
124
  La regla de paralelización del Nivel 3 sigue aplicando, pero ahora el
125
125
  orquestador DEBE invocarla explícitamente en el prompt del sub-agente.
126
126
 
127
+ ### 4. Tamaño máximo del prompt al sub-agente
128
+
129
+ Los sub-agentes pueden entrar en **autocompact thrashing** cuando reciben
130
+ prompts mayores a ~30k tokens. Síntoma observado (caso real SIGAF
131
+ 2026-05-22): tras 4 tool uses sin escribir un solo archivo, el sub-agente
132
+ aborta con "Autocompact is thrashing: the context refilled to the limit
133
+ within 3 turns of the previous compact, 3 times in a row".
134
+
135
+ Cota dura: **prompt al sub-agente ≤ 30k tokens** (intent + constraints +
136
+ acceptance criteria + file locations + dependencies).
137
+
138
+ | Tamaño estimado del prompt | Acción |
139
+ |----------------------------|--------|
140
+ | < 10k tokens | Delegar normalmente |
141
+ | 10k–30k tokens | Delegar pero monitorear; si el sub-agente tarda más de 3 turnos sin output, abortar y dividir |
142
+ | > 30k tokens | NO delegar — dividir en sub-tareas <10k tokens cada una, o ejecutar directamente sin delegar |
143
+
144
+ ### Cuándo hacer el trabajo directo en lugar de delegar
145
+
146
+ Cuando la spec ya está completamente clara para el orquestador, delegar
147
+ solo agrega overhead de contexto sin valor:
148
+
149
+ - **Scope < 5 archivos** con código boilerplate similar → trabajo directo.
150
+ - **Scope ≥ 5 archivos no relacionados** con lógica específica por
151
+ archivo → delegar.
152
+ - **Prompt requeriría >30k tokens** de specs/ejemplos → trabajo directo
153
+ (delegar es contraproducente).
154
+
155
+ Regla práctica: si te encuentras escribiendo specs por más de 5 minutos
156
+ para preparar la delegación, es señal de que el trabajo directo es más
157
+ eficiente que la delegación.
158
+
159
+ Origen del patrón: documentado en skill global `harness-claude-code`
160
+ gotcha "Sub-agente entra en autocompact thrashing con prompts >30k tokens"
161
+ (SIGAF 2026-05-22).
162
+
127
163
  ## Routing por fase + dominio (lookup tabular determinístico)
128
164
 
129
165
  Antes de delegar, **clasifica la petición** por dos ejes mecánicos en lugar de
@@ -2,6 +2,11 @@
2
2
  name: swl:adoptar-proyecto
3
3
  description: Incorpora un proyecto existente al sistema SWL. Analiza automáticamente el codebase (stack, arquitectura, dependencias, estado git) y combina los hallazgos con una entrevista corta al usuario para generar los 9 archivos de .planning/ con información real del proyecto — no plantillas vacías.
4
4
  allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Agent"]
5
+ evolved: true
6
+ evolved-from: "1.6.8"
7
+ evolved-at: "2026-05-22"
8
+ evolved-by: "aprender"
9
+ evolved-note: "Paso 8 — validación síncrona del auditor tras modificar CLAUDE.md (contrato cruzado con /swl:claudemd)"
5
10
  ---
6
11
 
7
12
  # /swl:adoptar-proyecto — Incorporar un proyecto existente al sistema SWL
@@ -187,6 +192,29 @@ Verificar el estado de `CLAUDE.md` en la raíz del proyecto:
187
192
  Esta referencia carga la matriz operacional del sistema SWL al inicio de cada
188
193
  sesión y es el contrato base de uso del sistema para el proyecto adoptado.
189
194
 
195
+ ### Validación síncrona post-modificación (contrato cruzado con /swl:claudemd)
196
+
197
+ Tras generar o modificar `CLAUDE.md` en este paso, ejecutar el auditor
198
+ síncrono para verificar que respeta el contrato canónico:
199
+
200
+ ```bash
201
+ node scripts/auditar-claudemd.js --json
202
+ # Fallback si el script no está en el proyecto destino:
203
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json
204
+ ```
205
+
206
+ Evaluar `veredicto`:
207
+
208
+ - `OK` → continuar al Paso 9.
209
+ - `WARN tamano-total` → el CLAUDE.md preexistente más la modificación
210
+ excedió el umbral. Reportar al usuario y proponer extracción a
211
+ `@docs/lessons-<tema>.md` antes de cerrar.
212
+ - `WARN bullet-gigante` → revisar y condensar el bullet detectado.
213
+ - `WARN` otras reglas → reportar al usuario pero permitir continuar.
214
+ - `ERROR placeholders` → **DETENER**, revertir la modificación y reportar.
215
+
216
+ Detalle del contrato cruzado en `@docs/contrato-aprender-claudemd.md`.
217
+
190
218
  ## Paso 9 — Reporte final
191
219
 
192
220
  ```
@@ -3,10 +3,10 @@ name: swl:aprender
3
3
  description: Extrae aprendizajes de la sesión de trabajo actual. Analiza patrones de errores, decisiones y soluciones para generar nuevas reglas y habilidades que mejoran el sistema. Actualiza CLAUDE.md del proyecto y propone nuevas habilidades al sistema SWL.
4
4
  allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
5
  evolved: true
6
- evolved-from: "5.12.3"
7
- evolved-at: "2026-04-25"
6
+ evolved-from: "1.6.9"
7
+ evolved-at: "2026-05-22"
8
8
  evolved-by: "aprender"
9
- evolved-note: "Paso 2 filtro crítico obligatorio sobre reportes de sub-agentes Explore para evitar sobre-ingeniería al analizar papers académicos"
9
+ evolved-note: "Paso 6.5 § Protocolo 4.5 detección de duplicación de reglas globales tras Tipo A (regla sin-duplicacion-reglas-globales.md, v1.7.0)"
10
10
  ---
11
11
 
12
12
  # /swl:aprender — Extracción de aprendizajes y mejora del sistema
@@ -392,6 +392,145 @@ Resultado: 0/2 OK, 2 con fallos
392
392
 
393
393
  Si el verificador reporta fallo, corregir el archivo puntual (agregar bump o ejecutar `markAsEvolved()`), NO saltarse la verificación. El gap que esta verificación cierra es exactamente el que el usuario detectó al auditar la sesión de aprender del 2026-04-20: `markAsEvolved` ejecutado sin bump de `version` → cambio invisible al resto del sistema pese a que el archivo quedó protegido contra reinstalación.
394
394
 
395
+ ## Paso 6.5 — Validación de CLAUDE.md tras aplicar Tipo A (auditor síncrono)
396
+
397
+ > Este paso es **OBLIGATORIO** si en Paso 6 se aplicó al menos un aprendizaje
398
+ > Tipo A (regla agregada a `CLAUDE.md` del proyecto). El hook
399
+ > `claudemd-bloat-detector.js` ya emite nudge async cuando se modifica
400
+ > `CLAUDE.md`, pero el nudge llega DESPUÉS del Paso 7 — y el comando
401
+ > habría seguido sin saber que el contrato canónico se rompió.
402
+ >
403
+ > Este Paso 6.5 invoca el auditor SÍNCRONAMENTE, antes de pasar a Paso 7.
404
+
405
+ ### Por qué existe este paso
406
+
407
+ `/swl:aprender` y `/swl:claudemd` operan sobre el mismo archivo desde
408
+ ángulos distintos: aprender **muta**, claudemd **prescribe contrato**. Sin
409
+ validación cruzada, una sesión de aprender puede agregar 25 líneas inline
410
+ a un CLAUDE.md que estaba en 195 LOC → resultado 220 LOC, WARN líneas,
411
+ contrato roto silenciosamente.
412
+
413
+ Origen del gap: detectado en sesión 2026-05-22 al evaluar el flujo
414
+ SIGAF→swl-ses (CLAUDE.md SIGAF recibió ~25 líneas inline de
415
+ "Triangulación schema cross-stack" sin validación post-mutación).
416
+
417
+ ### Procedimiento
418
+
419
+ Solo si en Paso 6 se aplicó al menos un Tipo A:
420
+
421
+ 1. **Ejecutar el auditor síncrono**:
422
+
423
+ ```bash
424
+ node scripts/auditar-claudemd.js --json
425
+ ```
426
+
427
+ Si el script no está disponible en el proyecto destino (instalación
428
+ global vía npm), invocar:
429
+
430
+ ```bash
431
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json
432
+ ```
433
+
434
+ 2. **Leer el JSON de respuesta** y evaluar `veredicto`:
435
+
436
+ | Veredicto | Acción |
437
+ |-----------|--------|
438
+ | `OK` | Continuar a Paso 7. El Tipo A se aplicó respetando el contrato. |
439
+ | `WARN` con regla `tamano-total` (líneas > umbral) | Aplicar protocolo de extracción (sub-paso 3) |
440
+ | `WARN` con regla `bullet-gigante` | Aplicar protocolo de condensación (sub-paso 4) |
441
+ | `WARN` con regla `duplicacion-reglas-globales` | **DETENER y reformular** — el Tipo A duplica regla global. Aplicar protocolo de duplicación (sub-paso 4.5) |
442
+ | `WARN` con otra regla (secciones, @references, karpathy) | Reportar al usuario pero permitir continuar |
443
+ | `ERROR` con regla `placeholders` | **DETENER** — revertir Tipo A y reportar al usuario |
444
+
445
+ 3. **Protocolo de extracción** (WARN líneas excedidas):
446
+
447
+ ```
448
+ El Tipo A aplicado dejó CLAUDE.md en [N] líneas (umbral: 200).
449
+
450
+ Opciones:
451
+ [A] Condensar la regla agregada a ≤3 líneas y re-escribir en CLAUDE.md
452
+ [B] Extraer el cuerpo a @docs/lessons-<tema-kebab>.md y dejar 1 línea
453
+ en CLAUDE.md: "- **<título>**: [resumen 1 línea]. Detalle en
454
+ @docs/lessons-<tema>.md"
455
+ [C] Aceptar el WARN y continuar (ajustar SWL_CLAUDEMD_MAX_LINES en
456
+ caso de que el límite real del proyecto sea mayor)
457
+
458
+ ¿Qué prefieres?
459
+ ```
460
+
461
+ Por defecto, recomendar **[B] Extraer** cuando el aprendizaje requiere
462
+ más de 5 líneas o incluye ejemplos de código. Recomendar **[A] Condensar**
463
+ cuando el aprendizaje cabe en 1-3 líneas sin perder accionabilidad.
464
+
465
+ 4. **Protocolo de condensación** (WARN bullet-gigante):
466
+
467
+ Un bullet/párrafo >1000 chars es ilegible. Convertir a tabla, lista
468
+ jerárquica o extraer a `@docs/`. NO dejar el bullet gigante aunque el
469
+ usuario lo apruebe — viola el contrato canónico de CLAUDE.md.
470
+
471
+ 4.5. **Protocolo de duplicación de reglas globales** (WARN `duplicacion-reglas-globales`):
472
+
473
+ Esto significa que el Tipo A aplicado **parafrasea una regla que ya
474
+ vive en `~/.claude/rules/`** y se carga globalmente. Duplicarla
475
+ inline en CLAUDE.md de proyecto viola la regla
476
+ `reglas/sin-duplicacion-reglas-globales.md`.
477
+
478
+ El auditor reporta cuál regla global se duplica y la línea
479
+ aproximada. Ejemplo de hallazgo:
480
+
481
+ ```
482
+ [WARN] Bloque duplica regla global `~/.claude/rules/brevedad-output.md`
483
+ (línea ~14)
484
+ ```
485
+
486
+ Acción obligatoria:
487
+
488
+ ```
489
+ El Tipo A que se acaba de agregar parafrasea la regla global
490
+ `~/.claude/rules/<archivo>.md` § <sección> (línea ~N).
491
+
492
+ Opciones:
493
+ [A] Eliminar el bloque local — la regla global YA aplica
494
+ automáticamente en cada sesión SWL.
495
+ [B] Reescribir el bloque como matiz local (≤3 líneas) que
496
+ nombra explícitamente la regla global:
497
+ "Convenciones locales del proyecto: <matiz>.
498
+ Ver @~/.claude/rules/<archivo>.md."
499
+ [C] Documentar override explícito con justificación:
500
+ "Override de ~/.claude/rules/<archivo>.md por <razón>."
501
+
502
+ ¿Qué prefieres?
503
+ ```
504
+
505
+ Por defecto, **recomendar [A] Eliminar** salvo que el bloque agregue
506
+ matiz local genuino del proyecto. NUNCA aceptar el WARN sin
507
+ resolución — eso convierte el comando en cómplice de la duplicación
508
+ que la regla prohíbe.
509
+
510
+ 5. **Re-ejecutar el auditor** tras la corrección hasta veredicto OK o
511
+ WARN consultivo aceptable (con confirmación explícita del usuario para
512
+ los WARN no resueltos).
513
+
514
+ ### Reglas duras
515
+
516
+ - NUNCA pasar al Paso 7 con veredicto `ERROR placeholders`. Revertir el Tipo
517
+ A primero.
518
+ - NUNCA aceptar `WARN tamano-total` o `WARN bullet-gigante` sin proponer al
519
+ menos una de las opciones [A]/[B]. El usuario debe decidir conscientemente
520
+ si vivir con el WARN.
521
+ - Si el aprendizaje Tipo A genera 2+ secciones nuevas, evaluar si el
522
+ contenido pertenece a un archivo `@docs/lessons-<tema>.md` desde el inicio
523
+ en lugar de inline.
524
+
525
+ ### Anti-patrón explícito
526
+
527
+ ❌ Aplicar Tipo A inline sin Paso 6.5 → CLAUDE.md crece descontroladamente →
528
+ contrato canónico violado silenciosamente → próxima ejecución de
529
+ `/swl:claudemd audit` reporta WARN, pero el daño ya está en el commit.
530
+
531
+ ✅ Aplicar Tipo A → ejecutar auditor sync en Paso 6.5 → si hay drift,
532
+ condensar o extraer → CLAUDE.md permanece dentro del contrato.
533
+
395
534
  ## Paso 7 — APRENDIZAJES.md y reporte
396
535
 
397
536
  Crea o actualiza `.planning/APRENDIZAJES.md` con registro de la sesión: título, categoría, contexto, aprendizaje, acción tomada, métricas.
@@ -2,6 +2,11 @@
2
2
  name: swl:claudemd
3
3
  description: Audita, refactoriza, valida o inicializa archivos CLAUDE.md según best practices Anthropic (ADR-0016). Subcomandos audit (analiza calidad), refactor (sugiere extracciones), check (verifica secciones canónicas), init-user (crea ~/.claude/CLAUDE.md template), init-project (genera CLAUDE.md raíz del proyecto).
4
4
  allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ evolved: true
6
+ evolved-from: "1.6.9"
7
+ evolved-at: "2026-05-22"
8
+ evolved-by: "aprender"
9
+ evolved-note: "Audit dimensión 7 — duplicación de reglas globales (cataloga 6 reglas de ~/.claude/rules/ que NO deben duplicarse inline). Refactor propone reemplazo canónico. Aplica regla nueva sin-duplicacion-reglas-globales.md."
5
10
  ---
6
11
 
7
12
  # /swl:claudemd — Tratamiento profesional de CLAUDE.md
@@ -128,6 +133,14 @@ y genera `./CLAUDE.md` mínimo con:
128
133
  operacional de uso del sistema SWL al inicio de cada sesión. Si el proyecto
129
134
  tiene otras reglas locales (`@reglas/seguridad.md`, `@reglas/arquitectura.md`,
130
135
  etc.), agregarlas debajo.
136
+ - Sección **Reglas de máxima prioridad** con sub-sección obligatoria
137
+ **Cuatro principios de implementación (Karpathy)**:
138
+ ```markdown
139
+ ### Cuatro principios de implementación (Karpathy)
140
+ Antes de implementar, refactorizar o corregir bugs: (1) **pensar antes de codificar** (no asumir en silencio), (2) **simplicidad primero** (sin abstracciones especulativas), (3) **cambios quirúrgicos** (leer archivo completo antes de editar, no refactor de oportunidad), (4) **ejecución orientada a metas** (criterios verificables, test que reproduce bugs antes del fix). Detalle + 9 ejemplos MAL→BIEN: `Skill("prevencion-sobreingenieria")` + `recursos/EXAMPLES.md`.
141
+ ```
142
+ Esta sub-sección es estándar SWL y cubre los gaps cognitivos más
143
+ frecuentes del agente sin agregar reglas específicas del proyecto.
131
144
  - Sección **Stack** poblada (lenguaje, framework, ORM, package manager)
132
145
  - Sección **Comandos** poblada (npm scripts detectados o comandos típicos)
133
146
  - Sección **Code style** vacía con placeholders
@@ -137,9 +150,76 @@ y genera `./CLAUDE.md` mínimo con:
137
150
 
138
151
  Si CLAUDE.md ya existe, **NO lo sobreescribe**. Sugiere correr
139
152
  `/swl:claudemd refactor` para mejorar el actual. Si detecta que el CLAUDE.md
140
- existente NO incluye `@reglas/usar-sistema-swl.md`, emitir hallazgo WARN
153
+ existente NO incluye `@reglas/usar-sistema-swl.md` o NO menciona los cuatro
154
+ principios Karpathy (o `prevencion-sobreingenieria`), emitir hallazgo WARN
141
155
  recomendando agregarlo manualmente.
142
156
 
157
+ ### Validación síncrona post-generación
158
+
159
+ Tras `init-project` generar el archivo nuevo, ejecutar inmediatamente
160
+ `audit` sobre el resultado:
161
+
162
+ ```bash
163
+ node scripts/auditar-claudemd.js --json
164
+ ```
165
+
166
+ Veredicto esperado: `OK` (el template debe respetar el contrato por
167
+ construcción). Cualquier WARN/ERROR es bug del template — reportar al
168
+ usuario y abrir issue para corrección. Este check es parte del contrato
169
+ cruzado con `/swl:aprender` documentado en `@docs/contrato-aprender-claudemd.md`.
170
+
171
+ ### audit — checks específicos sobre Karpathy
172
+
173
+ El subcomando `audit` verifica además de las dimensiones estándar:
174
+
175
+ - ¿El CLAUDE.md menciona los cuatro principios Karpathy (texto literal
176
+ "Karpathy" o nombres de los 4 principios) o referencia
177
+ `prevencion-sobreingenieria` con `Skill(...)` o `@reglas/`?
178
+
179
+ Si NO los menciona y el archivo tiene >50 líneas: emitir hallazgo WARN
180
+ recomendando agregar la sub-sección compacta (4 líneas) como guía de
181
+ implementación. NO emite WARN para CLAUDE.md mínimos (<50 LOC) ni para
182
+ archivos `~/.claude/CLAUDE.md` user-level (esos siguen otro contrato).
183
+
184
+ ### audit — checks específicos sobre duplicación de reglas globales
185
+
186
+ El subcomando `audit` también detecta (dimensión 7) si CLAUDE.md duplica
187
+ reglas que ya viven en `~/.claude/rules/` y se cargan globalmente.
188
+ Consume el catálogo declarativo
189
+ `scripts/lib/reglas-globales-conocidas.json` que cataloga 6 reglas
190
+ conocidas:
191
+
192
+ - `brevedad-output.md` § Idioma obligatorio: español de México
193
+ - `brevedad-output.md` § Brevedad y eficiencia de output
194
+ - `git-coauthor.md` § Sin co-autores en commits
195
+ - `arreglar-al-detectar.md` § Detectar → Informar → Arreglar
196
+ - `debatir-antes-de-aceptar.md`
197
+ - `usar-context7.md`
198
+
199
+ Si detecta duplicación: emite hallazgo `duplicacion-reglas-globales`
200
+ severidad WARN con línea aproximada y remediación específica. NO bloquea
201
+ el comando — sirve como nudge para limpiar el CLAUDE.md.
202
+
203
+ NO aplica a `~/.claude/CLAUDE.md` user-level (ahí sí pueden declararse
204
+ preferencias personales que parafrasean reglas globales).
205
+
206
+ Aplica regla `reglas/sin-duplicacion-reglas-globales.md`.
207
+
208
+ ### refactor — propuestas para duplicaciones de reglas globales
209
+
210
+ Cuando `audit` detecta duplicaciones, el subcomando `refactor` propone
211
+ el reemplazo concreto usando `construirSugerenciaRefactor()` del
212
+ detector. Cada propuesta incluye:
213
+
214
+ - **Bloque a eliminar** (línea aproximada en CLAUDE.md)
215
+ - **Regla global afectada** (archivo + sección canónica)
216
+ - **Reemplazo sugerido** (3 opciones):
217
+ 1. Eliminar el bloque — la regla global YA aplica automáticamente
218
+ 2. Reescribir como matiz local en ≤3 líneas referenciando la regla
219
+ 3. Documentar override explícito con justificación
220
+
221
+ El refactor SOLO imprime el diff propuesto. El usuario decide aplicar.
222
+
143
223
  ## Variables de entorno
144
224
 
145
225
  Ver `@docs/variables-entorno.md` sección "Calidad de CLAUDE.md":
@@ -2,6 +2,11 @@
2
2
  name: swl:ejecutar-fase
3
3
  description: Recibe el número de una fase y la implementa siguiendo el PLAN.md. Delega al agente implementador-swl, hace commits atómicos por slice, produce RESUMEN.md y actualiza ESTADO.md y HOJA-RUTA.md al terminar.
4
4
  allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ evolved: true
6
+ evolved-from: "1.6.8"
7
+ evolved-at: "2026-05-22"
8
+ evolved-by: "aprender"
9
+ evolved-note: "Paso 4.2 — cota dura 30k tokens al prompt del sub-agente para prevenir autocompact thrashing (origen SIGAF 2026-05-22)"
5
10
  ---
6
11
 
7
12
  # /swl:ejecutar-fase <n> [--iterative] — Ejecutar implementación de una fase
@@ -109,6 +114,15 @@ Anuncia inicio del slice (nombre, tipo AFK/HITL, número de tareas). Si es HITL
109
114
  ### 4.2 — Delegación al implementador-swl
110
115
  Delega con instrucción precisa: contexto a leer (PROYECTO.md, PLAN.md, CONTEXTO.md, CLAUDE.md), tareas del slice, criterio de verificación. El skill define las reglas de commit atómico y formato.
111
116
 
117
+ **Cota dura del prompt al sub-agente**: ≤30k tokens (intent + constraints + acceptance criteria + file locations). Por encima de esa cifra el sub-agente puede entrar en autocompact thrashing y abortar sin escribir archivos (caso real SIGAF 2026-05-22). Si el prompt necesario excede 30k tokens:
118
+
119
+ - Dividir el slice en sub-slices más pequeños (<10k tokens de spec cada uno).
120
+ - O ejecutar directamente sin delegar si la spec está clara para ti (scope <5 archivos boilerplate similar).
121
+
122
+ Indicador para optar por trabajo directo: si pasas más de 5 minutos escribiendo specs para preparar la delegación, el costo de delegar supera el ahorro.
123
+
124
+ Detalle del patrón anti-thrashing en `agentes/orquestador-swl.md` sección "4. Tamaño máximo del prompt al sub-agente".
125
+
112
126
  ### 4.3 — Verificación del slice
113
127
  Ejecuta comandos de verificación del PLAN.md, verifica archivos, revisa commits (`git log --oneline -5`), corre tests. Si falla: máximo 2 reintentos antes de escalar al usuario.
114
128
 
@@ -2,6 +2,11 @@
2
2
  name: swl:nuevo-proyecto
3
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
4
  allowed_tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
5
+ evolved: true
6
+ evolved-from: "1.6.8"
7
+ evolved-at: "2026-05-22"
8
+ evolved-by: "aprender"
9
+ evolved-note: "Paso 6 — validación síncrona del auditor tras generar CLAUDE.md inicial (contrato cruzado con /swl:claudemd)"
5
10
  ---
6
11
 
7
12
  # /swl:nuevo-proyecto — Inicializar proyecto nuevo
@@ -156,6 +161,30 @@ Si ya existe `CLAUDE.md` (verificado en Paso 1), revisar que incluya
156
161
  `@reglas/usar-sistema-swl.md` en la sección de reglas obligatorias. Si NO
157
162
  lo incluye, agregarlo en este paso preservando el resto del contenido.
158
163
 
164
+ ### Validación síncrona post-generación (contrato cruzado con /swl:claudemd)
165
+
166
+ Tras generar el `CLAUDE.md` inicial, ejecutar el auditor síncrono para
167
+ verificar el contrato canónico desde el primer commit:
168
+
169
+ ```bash
170
+ node scripts/auditar-claudemd.js --json
171
+ # Fallback:
172
+ npx -y @saulwade/swl-ses@latest audit-claudemd --json
173
+ ```
174
+
175
+ Veredicto esperado en proyecto nuevo: `OK` (el template generado debe
176
+ respetar el contrato por construcción). Si reporta WARN o ERROR:
177
+
178
+ - `WARN secciones-canonicas` ausentes → bug del template, abrir issue.
179
+ - `ERROR placeholders` → bug del template, reemplazar `[ej.]` con
180
+ ejemplos reales o HTML comments.
181
+
182
+ Cualquier otro WARN/ERROR es señal de que el template necesita ajuste —
183
+ reportar al usuario y considerar invocar `/swl:claudemd refactor` antes
184
+ de continuar.
185
+
186
+ Detalle del contrato cruzado en `@docs/contrato-aprender-claudemd.md`.
187
+
159
188
  ## Paso 7 — Reporte al usuario
160
189
 
161
190
  Al terminar, reporta:
@@ -7,12 +7,12 @@ description: >
7
7
  implementar features, refactorizar código o resolver bugs — especialmente
8
8
  cuando el agente tiende a agregar abstracciones especulativas o tocar código
9
9
  fuera del alcance solicitado.
10
- version: "1.1.0"
10
+ version: "1.2.0"
11
11
  evolved: true
12
- evolved-from: "1.0.0"
13
- evolved-at: "2026-04-24"
14
- evolved-by: "aprender"
15
- evolved-note: "Sección nueva: variables residuales post-refactor son code smell (F841 con ruff)"
12
+ evolved-from: "1.1.0"
13
+ evolved-at: "2026-05-22"
14
+ evolved-by: "absorcion-temp-karpathy"
15
+ evolved-note: "Recurso nuevo: recursos/EXAMPLES.md con 9 ejemplos MAL→BIEN adaptados del repo andrej-karpathy-skills (MIT). Cierra gap de regla skills-estandar.md § Convención EXAMPLES.md."
16
16
  herramientasPermitidas: [Read, Grep]
17
17
  toolsRequeridos: Read, Grep, Glob
18
18
  exclusiones:
@@ -27,6 +27,10 @@ evolvable: true # default para skill estandar
27
27
  Skill derivado de los principios de Andrej Karpathy sobre errores comunes de LLMs
28
28
  al generar código, adaptado al ecosistema SWL.
29
29
 
30
+ > **Para 9 ejemplos MAL→BIEN lado a lado con código real**, ver
31
+ > [recursos/EXAMPLES.md](recursos/EXAMPLES.md). Cada ejemplo está mapeado a un
32
+ > escenario operativo concreto de SWL (qué agente debe citarlo, en qué flujo).
33
+
30
34
  ## Cuándo cargar
31
35
 
32
36
  - Antes de implementar cualquier feature nueva con `implementador-swl` o `backend-*-swl`