Documentación
10 min

Documentación para agentes: plantillas y buenas prácticas

Trubi

Lucas Trubiano

13 de julio de 2026

Documentación para agentes: plantillas y buenas prácticas

Guía para recurrir cuando haya que explicar 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 usamos en este repo.

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".


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 nombras.

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 han mordido. 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.