# Prompt: Pair programming aumentado (Lab L4) · modo AIAS 4 (auditado)

> Copilot/Claude/ChatGPT escribe boilerplate. **Vos auditás línea por línea.**
> Korinek 2023: "Trat al LLM como graduate student junior — útil pero requiere supervisión."
> Lab L4: ≥1 error introducido por IA debe ser **detectado y corregido por vos**.

---

## Workflow recomendado (3 fases)

### Fase 1 — Briefing del compañero

```
Sos mi pair programmer en R/Stata para un análisis DiD staggered.
Mi setup:
- Datos: panel de [N] unidades observadas [T] periodos
- Tratamiento staggered (cohorts de adopción en años distintos)
- Outcome: [Y]
- Quiero estimadores: TWFE (referencia), Callaway-Sant'Anna, Sun-Abraham

Reglas:
1. Escribí código COMENTADO línea por línea
2. Cuando hagas un supuesto sobre mis datos, MARCALO así: # ⚠️ SUPUESTO: ...
3. Si hay riesgo de error común (TWFE en staggered, cluster wrong, etc.), ADVERTÍ
4. NO uses paquetes obsoletos (eg. evite plm para DiD moderno; usar fixest/did)
5. Si una función tiene defaults peligrosos, decímelo explícito
```

### Fase 2 — Código + audit

Pegá lo que la IA produjo. Para cada línea o bloque:

| Línea/bloque | ¿Lo entiendo 100%? | Problema potencial | Mi cambio |
|---|---|---|---|
| `feols(y ~ post \| id + t, cluster=~id)` | Sí | TWFE en staggered = problema (G-Bacon) | Sustituir por `att_gt()` |
| ... | | | |

### Fase 3 — Test adversarial

Pedile a la IA que **busque sus propios errores**:

```
Revisá el código que acabás de generar y respondé:
1. ¿Qué errores comunes podrían colarse?
2. ¿Hay supuestos sobre mis datos que no podés verificar?
3. ¿Qué tests adicionales debería correr para validar?
4. Si vos fueras el revisor de un paper, ¿qué le criticarías a este código?
```

---

## Errores comunes que la IA introduce (lista de control)

- [ ] **TWFE en staggered DiD** sin advertencia de Goodman-Bacon
- [ ] **Cluster errors** en la dimensión incorrecta
- [ ] **Variables omitidas** del fixed effects spec
- [ ] **Función obsoleta** (`plm::pdata.frame` cuando hay `fixest`)
- [ ] **Defaults peligrosos** (`na.rm = TRUE` sin documentar cuántas obs se pierden)
- [ ] **NA handling silencioso**
- [ ] **Loop ineficiente** que podría ser vectorizado (no error, pero detectable)
- [ ] **Path absoluto** del usuario que no funciona en otra máquina
- [ ] **Versión-dependiente** de un paquete sin declarar

---

## Audit log obligatorio (L4 entregable)

| Métrica | Valor |
|---|---|
| Modelo IA usado (versión) | |
| N líneas generadas | |
| N líneas que entendí 100% | |
| **N errores detectados** (mínimo 1) | |
| **N errores corregidos por mí** | |
| **N errores aceptados a propósito** (con justificación) | 0 idealmente |
| Tiempo total | |

**Reflexión 5 líneas:** ¿La IA me hizo más rápido O más sloppy?

---

## Pregunta IA² de cierre

> *"Si mañana este código falla en un peer review, ¿puedo defender cada línea?"*
>
> Si la respuesta es "depende de lo que la IA escribió", **no es tu código** y **no es tu paper**.
