# Plantillas literales de init-project / init-user

Bloques exactos que `/swl:claudemd init-project` inserta en el CLAUDE.md
generado. Este recurso es la fuente de verdad de los templates — el SKILL.md
los referencia sin duplicarlos.

---

## Bloque obligatorio SWL-tooling (init-project)

Toda generación nueva en un proyecto destino incluye esta sub-sección literal
(empareja el CLAUDE.md con la sección swl-ses del `.gitignore` — gestionada por
`scripts/lib/gitignore-manifest.js`). Sin ella, un compañero del equipo no sabe
qué archivos son del proyecto y cuáles son runtime de la herramienta:

```markdown
## SWL es tooling de desarrollo (frontera de versionado)

Este proyecto usa [swl-ses](https://www.npmjs.com/package/@saulwade/swl-ses) como
herramienta de desarrollo. Lo que SWL instala y genera **no forma parte del
proyecto** y está en `.gitignore` (sección `# [swl-ses:inicio]`): `.claude/`
(framework), `hooks/`, `instintos/`, `usage.db` y el runtime bajo `.planning/`
(APRENDIZAJES, métricas, sesiones, traces, evolution, loops, locks, feature-list,
caches del grafo, etc.).

SÍ se versionan (los edita el equipo): `CLAUDE.md`, `.claude/settings.json`, el
manifest `.swl-ses`, y las plantillas de `.planning/` — `PROYECTO.md`,
`REQUISITOS.md`, `HOJA-RUTA.md`, `ESTADO.md`, `research/`, `adrs/`, y los
`fases/0N-{CONTEXTO,PLAN,RESUMEN,VERIFICACION}.md`.

Reinstalar/actualizar el tooling: `npx -y @saulwade/swl-ses@latest install`.
```

Justificación: la lista de qué se ignora vs qué se commitea es la **fuente de
verdad** de `gitignore-manifest.js`. Replicarla en prosa en el CLAUDE.md del
proyecto cierra el gap de "el .gitignore lo sabe pero el humano que lee CLAUDE.md
no". Mantener ambas en sync: si `ENTRADAS_BASE` cambia, este bloque se actualiza.

---

## Bloque obligatorio Karpathy (init-project)

Toda generación nueva incluye esta sub-sección literal en "Reglas de
máxima prioridad":

```markdown
### Cuatro principios de implementación (Karpathy)
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`.
```

Justificación: el skill `prevencion-sobreingenieria` y su `recursos/EXAMPLES.md`
se distribuyen con cada instalación SWL, así que la referencia siempre resuelve.
La sub-sección compacta (5 líneas) ataca los gaps cognitivos más frecuentes
de cualquier proyecto sin agregar opinión específica.

---

## Check Karpathy en audit

`scripts/auditar-claudemd.js` debe verificar (search regex case-insensitive):

- `/karpathy/i`
- `/cuatro principios/i` o `/4 principios/i`
- `/prevencion-sobreingenieria/`
- `/Skill\(["'`]prevencion-sobreingenieria["'`]\)/`

Si NO encuentra ninguna AND el archivo tiene >50 LOC AND es project-level
(no `~/.claude/CLAUDE.md`): emitir hallazgo WARN con mensaje:

```
CLAUDE.md no menciona los cuatro principios Karpathy ni el skill
prevencion-sobreingenieria. Considerar agregar la sub-sección compacta
(ver /swl:claudemd init-project § Bloque obligatorio Karpathy).
```

Esta dimensión es WARN, no ERROR — guía sin imponer. CLAUDE.md user-level
(`~/.claude/`) NO se evalúa contra este check.

---

## Secciones canónicas: project-level vs user-level (init-user)

| Sección | Project-level | User-level |
|---|---|---|
| Stack | Sí — del proyecto | No (varía por proyecto) |
| Comandos | Sí — del proyecto | No |
| Code style | Sí — convenciones del equipo | Sí — preferencias personales (indent, naming favorito) |
| Conventions | Sí — del proyecto | No |
| Mi rol y stack preferido | No | Sí |
| Estilo de comunicación | No | Sí |
| Patrones que aplico siempre | No | Sí — meta-preferencias cross-project |

El template completo de user-level vive en el comando `/swl:claudemd`
sección `init-user`.
