@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.
- package/CLAUDE.md +196 -196
- package/README.md +578 -578
- package/agentes/orquestador-swl.md +37 -1
- package/comandos/swl/adoptar-proyecto.md +28 -0
- package/comandos/swl/aprender.md +142 -3
- package/comandos/swl/claudemd.md +81 -1
- package/comandos/swl/ejecutar-fase.md +14 -0
- package/comandos/swl/nuevo-proyecto.md +29 -0
- package/habilidades/prevencion-sobreingenieria/SKILL.md +9 -5
- package/habilidades/prevencion-sobreingenieria/recursos/EXAMPLES.md +580 -0
- package/habilidades/swl-claudemd/SKILL.md +224 -2
- package/hooks/claudemd-duplicacion-detector.js +170 -0
- package/manifiestos/hooks-config.json +9 -0
- package/manifiestos/modulos.json +6 -1
- package/manifiestos/skills-lock.json +8 -8
- package/package.json +92 -92
- package/plugin.json +371 -371
- package/reglas/sin-duplicacion-reglas-globales.md +182 -0
- package/reglas/verificar-citas-temporales.md +139 -0
- package/scripts/auditar-claudemd.js +107 -1
- package/scripts/lib/detector-reglas-duplicadas.js +220 -0
- package/scripts/lib/reglas-globales-conocidas.json +112 -0
|
@@ -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.
|
|
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
|
```
|
package/comandos/swl/aprender.md
CHANGED
|
@@ -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: "
|
|
7
|
-
evolved-at: "2026-
|
|
6
|
+
evolved-from: "1.6.9"
|
|
7
|
+
evolved-at: "2026-05-22"
|
|
8
8
|
evolved-by: "aprender"
|
|
9
|
-
evolved-note: "Paso
|
|
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.
|
package/comandos/swl/claudemd.md
CHANGED
|
@@ -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
|
|
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.
|
|
10
|
+
version: "1.2.0"
|
|
11
11
|
evolved: true
|
|
12
|
-
evolved-from: "1.
|
|
13
|
-
evolved-at: "2026-
|
|
14
|
-
evolved-by: "
|
|
15
|
-
evolved-note: "
|
|
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`
|