Buenas prácticas de Claude Code: la versión corta

Según la documentación de Anthropic, en la mayoría de los casos tu primera petición normal en una sesión nueva ya hace lo correcto. Preparar cosas compensa cuando tu proyecto tiene algo que Claude no puede ver solo con el código: un proceso de despliegue que está en la cabeza de alguien, un archivo que nunca debe leer, una comprobación que tiene que pasar, un presupuesto. Esta página es la versión corta, con enlaces a las guías largas.

Cuando una sesión sale mal, casi siempre es una de cuatro cosas

  1. Claude construyó algo distinto de lo que tenías en mente, o redescubre el mismo dato en cada sesión. Le falta información que no puede sacar del repositorio.
  2. Dijo que había terminado y no era verdad, normalmente porque no tenía forma de comprobar su propio trabajo.
  3. Hizo algo que nunca debe pasar, o se saltó un paso que siempre debe darse. Una petición sola no garantiza ninguna de las dos cosas.
  4. Lo hizo bien, pero costó más tiempo, tokens o avisos de permisos de lo que valía la tarea.

Dos tipos de instrucción

Todo lo que le dices a Claude Code es de uno de dos tipos. Decide Claude: tu petición, CLAUDE.md, una skill. Suele seguirlas, pero nada lo garantiza. Lo hace cumplir Claude Code: un hook, una regla de denegación, un ajuste gestionado. Se aplican siempre, decida lo que decida el modelo. Casi siempre quieres que decida Claude. Deja el tipo obligatorio para reglas sin excepciones. Si sigues añadiendo énfasis a una línea de CLAUDE.md y Claude la sigue saltando, según la documentación esa línea probablemente es un hook. Y al revés: un hook que solo impone una preferencia sobra.

1. Dile a Claude lo que no puede ver

Claude lee bien tu código, así que escribe solo lo que no puede encontrar, o lo que perdería tiempo en redescubrir en cada sesión. Una prueba antes de escribir nada: ¿lo encontraría leyendo el código y de verdad iría a mirar? Si las dos respuestas son sí, déjalo fuera.

# Commands
- Run one test file: npm test -- path/to/file.test.js
- Typecheck: npx tsc --noEmit

# Gotchas
- src/legacy/ is still live, but do not copy its patterns into new code
- Integration tests need DATABASE_URL, see .env.example

Mira la guía de memoria y cómo escribir una skill.

2. Dale a Claude una comprobación que ejecutar

Claude para cuando el trabajo parece terminado. Si no tiene nada que ejecutar que responda «pasa» o «falla», «parece terminado» es lo único que tiene, y el test eres tú. Dale un archivo de tests, el código de salida de una compilación, un linter, o un script que compare la salida con un archivo esperado, y podrá hacer un cambio, ejecutar la comprobación, leer lo que falló y arreglarlo. Si tu repositorio ya tiene una, la línea más útil de CLAUDE.md es el comando que la ejecuta.

Tú eliges lo estricto que quieres ser:

Elijas lo que elijas, pide pruebas: el comando que ejecutó y su salida. «Todos los tests pasan» a secas dice poco.

{
  "hooks": {
    "Stop": [
      { "hooks": [ { "type": "command", "command": "npx tsc --noEmit 1>&2 || exit 2" } ] }
    ]
  }
}

Eso va en .claude/settings.json. La salida del compilador se redirige a stderr porque es lo que recibe Claude como motivo de que aún no puede terminar. Más en tres hooks para pegar.

3. Haz cumplir las reglas que no admiten excepciones

«Nunca leas .env», «ejecuta siempre el formateador», «no toques la carpeta de migraciones»: Claude las seguirá casi siempre. Cuando «casi» no basta, sácalas de CLAUDE.md y llévalas a una configuración que aplique Claude Code por sí mismo.

Dónde vive una regla decide a quién se aplica: .claude/settings.local.json y ~/.claude/settings.json son solo tuyos, .claude/settings.json del repositorio se aplica a todos los que trabajan ahí (sus reglas de permitir y sus hooks esperan a que cada persona acepte la carpeta), y los ajustes gestionados pertenecen a una organización. Mantén pequeño el conjunto obligatorio; cada hook y regla de denegación saltará alguna vez cuando no debe, y alguien tiene que mantenerlo. Mira un archivo de permisos de partida, los modos de permisos y qué archivo de ajustes manda.

4. Dirige la sesión y controla el gasto

Mira deshacer cambios y gastar menos cuota.

Antes de dejar una ejecución sin supervisión

Repasa cinco preguntas para esa tarea concreta: ¿sabe cómo se ve «terminado»?; ¿puede comprobar su propio trabajo?; ¿qué puede tocar?; ¿qué lo para (un tope de turnos o de gasto)?; y ¿adónde va el resultado y quién lo aprueba? Claude llevará una tarea larga hasta el final por sí solo. Lo que sigue siendo tuyo es arrancarla, decidir qué significa «terminado» esta vez y aprobar la fusión. Mira ejecutar desde un script y sesiones en paralelo con worktrees.

Lo que ya puedes dejar de hacer

Para ver cómo encajan las piezas, mira cómo funciona Claude Code. Si algo no se comporta, depura la configuración. Todas las guías están en el índice de guías.

Esta página sigue la documentación de buenas prácticas de Anthropic tal como la leemos en octubre de 2026. No tenemos relación con Anthropic. La escribimos a partir de la documentación y no hemos probado todos los casos. Los comandos, los valores por defecto y el modo de permisos con el que empieza una sesión cambian entre versiones, y donde esta página y la documentación no coincidan, manda la documentación.

Mira también: Flujos de cada día.

La skill gratis loop-stop da a las tareas largas un límite y una regla de parada. Si quieres una segunda mirada a tu CLAUDE.md y a tus ajustes, el Tune-Up Kit es una lista de comprobación para eso (la ficha está en inglés).