trubidata
IA y agentes·10 min

#claude-code #cursor #agents

6 documentos (.md) para darle contexto a tus agentes

Lucas Trubiano

Lucas Trubiano

13 de julio de 2026

En esta guía (12)

Cómo documentar un proyecto para que Claude Code, Cursor u otro agente no trabaje a ciegas.

Si le das contexto vago, se inventa la estructura, rehace decisiones ya cerradas y tropieza dos veces con el mismo error. La solución no es un README gigante: son 6 docs especializados (uno por tipo de trabajo) y, si querés, un prompt que los genera leyendo el repo.

Basado en el pack de contexto para Claude Code de PabloInPublic, adaptado a nombres en inglés y a la separación AGENTS.md / CLAUDE.md que uso en mis repos.

Cuándo usar esta guía

  • Arrancás un repo nuevo y querés dejar el contexto listo para agentes.
  • Alguien pregunta "¿cómo documentamos esto para la IA?".
  • Un agente repite errores ya resueltos o "corrige" decisiones intencionales.
  • Necesitás regenerar o actualizar un doc concreto sin reescribir todo.

La estructura

code
AGENTS.md                 ← instrucciones genéricas (cualquier agente)
CLAUDE.md                 ← índice: importa AGENTS.md + los 6 docs
docs/
├── ARCHITECTURE.md
├── CONVENTIONS.md
├── DECISIONS.md
├── GLOSSARY.md
├── WORKFLOW.md
└── TROUBLESHOOTING.md

CLAUDE.md no repite contenido: actúa como índice con @ruta/al/archivo.md (Claude Code lo carga al arrancar):

markdown
## Contexto del proyecto

- Arquitectura → @docs/ARCHITECTURE.md
- Convenciones → @docs/CONVENTIONS.md
- Decisiones → @docs/DECISIONS.md
- Glosario → @docs/GLOSSARY.md
- Flujo de trabajo → @docs/WORKFLOW.md
- Troubleshooting → @docs/TROUBLESHOOTING.md

Un doc por eje: el agente carga solo lo que necesita y vos actualizás solo lo que cambió.

AGENTS.md vs CLAUDE.md

ArchivoPara qué
AGENTS.mdCómo correr, lintear y buildear el proyecto; gotchas de setup. Agnóstico de herramienta (Cursor, Claude Code, etc.).
CLAUDE.mdÍndice específico de Claude Code: apunta a AGENTS.md + los 6 docs de contexto.

No mezcles "cómo hacer npm install" con "por qué no usamos ORM".

Esto cambió hace poco (septiembre 2026). AGENTS.md ya es el estándar común: lo leen Cursor, Codex, Gemini CLI, GitHub Copilot, Windsurf y la mayoría de los agentes (lista en agents.md). Claude Code era la excepción, pero desde la versión 2.1.277 (18/9/2026) también lo usa cuando una carpeta no tiene CLAUDE.md (The Register). Si existen los dos, Claude Code se queda con CLAUDE.md. Por eso conviene que CLAUDE.md sea solo un índice que importa AGENTS.md: cualquier agente encuentra lo mismo.


1 · ARCHITECTURE.md

Para que no se invente la estructura del proyecto.

markdown
# Arquitectura

## En una frase
[Qué es el proyecto y qué hace, sin marketing.]

## Stack
- Lenguaje / runtime: [...]
- Framework principal: [...]
- Base de datos: [...]
- Servicios externos: [...]

## Mapa de carpetas
- `src/[...]` → [qué vive aquí]
- `src/[...]` → [qué vive aquí]
- `[...]` → [qué vive aquí]

## Flujo de datos
[De dónde entra una petición, por dónde pasa, dónde acaba. 3-5 líneas.]

## Lo que NO existe (y no hay que crear)
- [Ej: no hay capa de cache, no usamos ORM, etc.]

2 · CONVENTIONS.md

Para que escriba código como vos, no como la media de internet.

markdown
# Convenciones de código

## Estilo
- Formato: [Prettier / gofmt / Black / ...]
- Naming: [camelCase para variables, kebab-case para archivos, ...]
- Imports: [orden, alias, absolutos vs relativos]

## Patrones que SÍ usamos
- [Ej: server actions en vez de API routes]
- [Ej: errores como valores, no excepciones]

## Patrones PROHIBIDOS
- [Ej: nada de `any` en TS]
- [Ej: nada de lógica de negocio en componentes]

## Tests
- Dónde van: [...]
- Qué se testea sí o sí: [...]

## Commits
- Formato: [conventional commits / ...]

3 · DECISIONS.md

Para que no rehaga lo ya cerrado ni reabra debates muertos.

markdown
# Decisiones tomadas

> Una entrada por decisión. Lo importante es el "por qué" y el "qué descartamos".

## [Fecha] · [Título de la decisión]
- **Decisión:** [qué se eligió]
- **Por qué:** [razón]
- **Descartado:** [alternativas que NO usamos y por qué]
- **Estado:** [vigente / revisar en X / obsoleta]

## [Fecha] · [Otra decisión]
- **Decisión:** [...]
- **Por qué:** [...]
- **Descartado:** [...]
- **Estado:** [...]

4 · GLOSSARY.md

Para que sepa qué es cada cosa tuya cuando la nombrás.

markdown
# Glosario y entidades

## Términos del dominio
- **[Término]** → [qué significa en ESTE proyecto, no en general]
- **[Término]** → [...]

## Entidades principales
- **[Entidad]** → [qué representa, campos clave, con qué se relaciona]
- **[Entidad]** → [...]

## Siglas y nombres internos
- **[Sigla / nombre de módulo]** → [a qué se refiere]

5 · WORKFLOW.md

Para que no se salte pasos al hacer cambios.

markdown
# Flujo de trabajo

## Antes de tocar nada
1. [Ej: leer DECISIONS.md y TROUBLESHOOTING.md]
2. [Ej: crear rama desde main]

## Para hacer un cambio
1. [Ej: implementar]
2. [Ej: pasar linter y typecheck]
3. [Ej: verificar en el browser]

## Antes de dar algo por terminado
- [ ] [Ej: `npm run build` pasa]
- [ ] [Ej: tests verdes]
- [ ] [Ej: no quedan `console.log`]

## Deploy
[Cómo se publica: comando, rama, automatismo. 2-3 líneas.]

6 · TROUBLESHOOTING.md

Para que no tropiece dos veces con el mismo agujero.

markdown
# Troubleshooting

> Las trampas que ya te mordieron. Cada una ahorra una hora de agente (y tuya).

## [El síntoma raro]
- **Pasa cuando:** [...]
- **Causa real:** [...]
- **Solución:** [...]

## [Otra trampa]
- **Pasa cuando:** [...]
- **Causa real:** [...]
- **Solución:** [...]

## Cosas que parecen rotas pero son a propósito
- [Ej: el warning X es esperado, no lo "arregles"]

Prompt para generar los 6 docs

Prompt original de PabloInPublic, adaptado a los nombres de archivo de esta guía.

En vez de rellenarlos a mano, pegá esto en Claude Code / Cursor dentro del proyecto. Inspecciona el repo y deja los archivos rellenados:

code
Lee mi proyecto entero (estructura de carpetas, dependencias,
código, tests, README y commits recientes) y genera 6 documentos
de contexto en docs/, uno por archivo:

1. ARCHITECTURE.md — stack, mapa de carpetas, flujo de datos, qué NO existe.
2. CONVENTIONS.md — estilo, naming, patrones que usamos y los prohibidos, tests, commits.
3. DECISIONS.md — decisiones técnicas que detectes en el código/commits, con su porqué y lo descartado.
4. GLOSSARY.md — términos del dominio, entidades principales y siglas internas.
5. WORKFLOW.md — pasos para hacer un cambio, checklist de "terminado" y deploy.
6. TROUBLESHOOTING.md — gotchas que se intuyan del código, tests y comentarios.

Reglas:
- Básate SOLO en lo que veas en el repo. No inventes.
- Donde no haya información suficiente, deja un hueco marcado [PENDIENTE: ...]
  en vez de rellenar a ciegas.
- Sé concreto y breve: cada doc se lee en menos de 2 minutos.

Después referencialos desde CLAUDE.md (sección de arriba) y el agente los carga solo.

Cómo mantenerlos

  1. Claude propone, vos validás. Sobre todo DECISIONS.md y TROUBLESHOOTING.md: ahí va conocimiento que está en tu cabeza, no siempre en el código. Rellená los [PENDIENTE] a mano.
  2. Actualizá solo el eje que cambió. Si cambió el deploy, tocá WORKFLOW.md / TROUBLESHOOTING.md, no reescribas los seis.
  3. Un doc desactualizado miente con más confianza que uno que no existe. Si algo quedó obsoleto, marcá el estado o borrá la entrada.

La regla de oro

El mejor contexto no es el que más escribís: es el que no tenés que volver a escribir. Generá una vez, corregí, y actualizá solo el doc del eje que cambió.

Documentá lo que no es obvio leyendo el código: el porqué de una decisión, un error ya resuelto, o una convención que existe porque algo salió mal sin ella.