# CLAUDE.md / .cursorrules · plantilla EC0744

> **Qué es este archivo.** Memoria persistente del proyecto que tu IA (Claude Code, Cursor, Copilot+) lee al inicio de cada sesión. Sin esto, la IA reinventa convenciones cada vez que la invocás y te lleva por caminos que no encajan con tu DAG. **Copialo a la raíz del repo como `CLAUDE.md` (Claude Code) o `.cursorrules` (Cursor) o `.github/copilot-instructions.md` (Copilot+).**

> **Cuándo se actualiza.** Cada vez que tomás una decisión metodológica significativa (cambio de estimador, descarte de variable, supuesto reformulado). Al final de la sesión H3 debe coincidir con la sección de declaración del PAP.

---

## 1 · Identidad del proyecto

- **Tesis:** [título corto · ej. "Efecto de 4G sobre empleo formal en Catatumbo 2018–2024"]
- **Autora/o:** [Apellido]
- **Programa:** MAE EAFIT · cohorte 2026-1
- **Curso de origen:** EC0744 · Seminario de Investigación
- **Estado:** Sprint macro C (DESIGN & DEFENSE) · H3 PAP moderado en construcción

## 2 · Pregunta H1 (de U3)

> [1 línea · estilo Hurtado: "¿Cuál es el efecto causal de X sobre Y en el contexto Z durante el período T?"]

**Tipo de hipótesis primaria (de U5):** [causal · descriptiva · comparativa · mecanística · exploratoria]

## 3 · DAG H2 (de U5)

- **Arista principal:** `D → Y` · [interpretación 1 línea]
- **Mediador(es):** `M` · [interpretación]
- **Confounders observables (en adjustment set):** `[X1, X2, X3]`
- **Confounders no observables (necesitan IV/DiD/RDD):** `[U1]`
- **Backdoor paths abiertos sin controles:** [listar]
- **Backdoor paths cerrados por el adjustment set:** [listar]
- **Imagen del DAG:** `docs/dag-h2.png`

## 4 · Estrategia de identificación (Sprint 1 · JC 6/6)

- **Patrón DAG:** [1 = randomización · 2 = sel-observables · 3 = IV · 4 = RDD · 5a = DiD 2×2 · 5b = DiD staggered · 5c = synthetic · 6 = alta dim]
- **Estrategia:** [comparación medias · conditioning · exogeneidad Z · local randomization · DiD moderno · synthetic counterfactual · ML nuisance]
- **Método primario:** [OLS · 2SLS · RDD · CS · CDH · SDID · DML · ...]
- **Cross-check (≥1):** [método secundario · razón]

## 5 · Datos

- **Fuente principal:** [DANE · MEN · Banco Mundial · encuesta propia · etc.]
- **Granularidad:** [municipal anual · individual mensual · ...]
- **Período:** [YYYY–YYYY]
- **N observaciones:** [aproximado]
- **Tratamiento:** [random · staggered · threshold · only-one-unit]
- **Variables clave:** Y = [...] · D = [...] · X = [...]
- **Misings conocidos:** [...]
- **Datos en repo:** ⛔ NO se versionan (`data/raw/*` en `.gitignore`). Path local: `[ruta]`.

## 6 · Modo AIAS por tarea

| Tarea | Modo AIAS | Justificación |
|---|---|---|
| Revisión de literatura (U4) | 2-3 | Búsqueda asistida · IA propone, yo decido |
| DAG (U5) | 3 | Yo dibujo, IA critica como compañero |
| Código analítico (Lab L4) | **4** | Pair programming · IA escribe, yo audito |
| Interpretación de resultados | 1-2 | Decisión mía indelegable |
| Escritura del paper | 2-3 | Borrador propio, IA edita |
| Defensa oral (U8) | **1** | Cero IA al frente · no negociable |

## 7 · Reglas duras del proyecto (para la IA)

**Qué la IA SÍ puede hacer:**
- Sugerir código `R` / `Python` para implementar un método ya decidido.
- Generar visualizaciones a partir de datos limpios.
- Reescribir párrafos de la discusión para claridad.
- Buscar referencias adicionales (todas verificadas con DOI antes de citar).
- Criticar el DAG, los supuestos, la especificación primaria.

**Qué la IA NO debe hacer (si lo hace, descartar el output):**
- ❌ **No usar TWFE clásico** si el tratamiento es escalonado (Goodman-Bacon 2021). Usar Callaway-Sant'Anna o de Chaisemartin-D'Haultfœuille.
- ❌ **No agregar controles "por las dudas"** (Cinelli et al. 2024). Cada control entra al modelo justificado contra el DAG.
- ❌ **No inventar citas.** Si no tiene DOI verificable, no entra.
- ❌ **No redactar la pregunta de investigación, la interpretación de hallazgos ni las conclusiones**. Ese es trabajo del autor.
- ❌ **No mover archivos** ni cambiar la estructura de carpetas sin permiso explícito.

## 8 · Convenciones de código

- **Lenguaje principal:** [R · Python · Stata]
- **Naming:** `01_clean.R`, `02_did_primario.R`, `03_did_crosscheck.R`, ...
- **Estilo:** tidyverse (R) · PEP-8 (Python).
- **Semilla fija:** `set.seed(2026)` en todo script estocástico.
- **Outputs:** todos a `output/` · regenerables con `make all`.
- **Tablas LaTeX:** `output/tab_*.tex` · figuras: `output/fig_*.pdf`.

## 9 · Audit logs activos

- `audit/L1-thread-busqueda.md` — caza de alucinaciones (U4)
- `audit/L3-dag-companero.md` — IA como crítica del DAG (U5)
- `audit/L4-pair-programming.md` — **activo hoy** · prompt + output + decisión
- `audit/decisions.md` — giros metodológicos de alto nivel
- `audit/errors-IA.md` — ≥1 error introducido por IA · detectado y documentado
- `audit/AIAS-report.md` — modo declarado por tarea

## 10 · Estado de la sesión (actualizable)

- **Última sesión:** [fecha · qué se hizo]
- **Decisión pendiente:** [si hay alguna en cola]
- **Bloqueador actual:** [si existe]
- **Próximo paso:** [1 línea]

---

> **Esta memoria NO es decoración.** La IA que invoques en la próxima sesión va a leer este archivo primero. Si dice "patrón 5b · CS" y vos le pedís TWFE, la IA debería decirte "esto contradice tu CLAUDE.md, ¿estás seguro?". Eso es **augmentación**, no automatización.
