Saltar al contenido
TOOL · Plantillas de prompts y archivos de instrucciones

Claude Code / Codex
Colección de prompts de instrucciones y plantillas

30 plantillas de CLAUDE.md / AGENTS.md / Cursor Rules. Pega un prompt en el chat para que se generen, o pega directamente un archivo terminado. Cualquiera de las dos opciones funciona.

Los agentes de codificación con IA (Claude Code, OpenAI Codex, Cursor y otros) leen el archivo de instrucciones que está en la raíz de tu repositorio (CLAUDE.md / AGENTS.md) para aprender "las reglas de este proyecto". Pero cuando esas instrucciones son vagas, la IA las ignora alegremente. Un archivo de instrucciones eficaz se ve así: frases imperativas y cortas, prohibiciones explícitas y una "definición de terminado" clara con pasos de verificación.

Para saber por qué se ignoran y cómo solucionarlo, consulta "Por qué la IA ignora tus reglas .md y cómo solucionarlo" .

Método A · Recomendado Pégalo en el chat y deja que lo construya (8)

Solo pega el prompt directamente en el cuadro de chat de Claude Code / Codex / Cursor. La IA inspecciona tu repositorio y escribe un archivo de instrucciones con tus comandos reales.

Casi sin edición manual. Úsalo también para auditar y mejorar archivos de instrucciones existentes, o para convertirlos al formato AGENTS.md / Cursor.

Método B Pega directamente un archivo terminado (22)

Copia un archivo de instrucciones terminado y guárdalo como CLAUDE.md en la raíz de tu repositorio. Reemplaza solo unos pocos marcadores como <name> con los de tu propio entorno.

Para quienes quieren entender y gestionar el contenido por sí mismos, o quienes quieren una plantilla de partida para un lenguaje/framework específico.

Filtrar:

Solo pégalo en el chat (prompts para generar y mejorar)

Generar un archivo de instrucciones desde cero (CLAUDE.md / AGENTS.md, inspecciona el repo automáticamente)

La opción más fácil. Pégalo en el chat y la IA inspecciona tu repositorio y escribe un archivo de instrucciones con tus comandos reales. Casi sin edición manual.

Pegar en el chat Claude Code Codex Cursor
Inspecciona todo este repositorio y crea, en la raíz, el archivo de instrucciones
que tú (este agente) cargas automáticamente
(Claude Code usa `CLAUDE.md`, Codex usa `AGENTS.md`, Cursor usa `.cursor/rules/`).

Incluye:
- Descripción del proyecto (qué hace la app, el stack tecnológico)
- Comandos (servidor de desarrollo / build / test / lint). Identifica los comandos reales
  a partir de archivos reales como package.json o Makefile (no los adivines)
- Convenciones de código (ajústate al estilo real que leas del código existente)
- Reglas absolutas: nunca hagas commit de secretos ni de .env / nunca reformatees líneas no relacionadas /
  nunca hagas push salvo que se te indique
- Definición de terminado: no reportes "terminado" hasta que pasen lint y test
  (incluye los nombres reales de los comandos)

No rellenes los vacíos con suposiciones; pregúntame cuando algo no esté claro.
Por último, escríbelo todo como el archivo de instrucciones descrito arriba.

Por qué funciona:Hacer que la IA lea y escriba tu propio repo es el camino más rápido. Dejar el nombre del archivo a criterio de la herramienta (CLAUDE.md / AGENTS.md, etc.) hace que funcione tal cual tanto en Claude como en Codex. Y como fija los comandos y las rutas a partir de tus archivos reales, no hace falta edición manual.

Auditar un archivo de instrucciones existente y reescribirlo en una forma "eficaz"

Para cuando ya tienes un archivo de instrucciones (CLAUDE.md / AGENTS.md) pero la IA no lo obedece. Haz que señale los puntos débiles y luego reescríbelo con redacción imperativa y pasos de verificación.

Pegar en el chat Claude Code Codex Cursor
Lee el archivo de instrucciones que tú (este agente) cargas (CLAUDE.md / AGENTS.md, etc.),
señala los puntos débiles que los agentes de IA tienden a ignorar y luego reescríbelo
en una forma eficaz.

Aspectos a revisar:
- Convertir la redacción vaga en imperativos (haz siempre X / nunca hagas Y)
- Añadir una "definición de terminado" y pasos de verificación (ejecutar lint / test)
- Hacer las prohibiciones concretas hasta el objetivo (nombres de directorios, nombres de comandos)
- Si es demasiado largo, recórtalo solo al núcleo que quieres que se cumpla

Primero lista los puntos débiles en viñetas, luego muestra la versión reescrita
completa y aplícala a ese archivo de instrucciones.

Por qué funciona:Un "archivo de instrucciones ineficaz" suele ser vago, no tiene pasos de verificación y nombra las prohibiciones solo en abstracto. Hacer que la propia IA enuncie los puntos débiles antes de corregirlos vuelve concretas las mejoras.

Añadir una "definición de terminado" adaptada a tu repo actual

Añade el bloque más importante, con tus comandos reales, para evitar que la IA se detenga cuando solo cree que ha terminado.

Pegar en el chat Claude Code Codex Cursor
Tras identificar los comandos reales de build / test / lint de este repositorio,
añade una sección "Definición de terminado" al archivo de instrucciones que cargas
(CLAUDE.md / AGENTS.md, etc.).

Requisitos:
- Hazla una lista de verificación con la forma "no reportes terminado hasta que se cumplan todos los siguientes puntos"
- Indica explícitamente los comandos reales de lint y test
- Incluye: no dejar TODO ni logs de depuración en los archivos modificados, y releer tu propio diff

No rompas el contenido existente; solo añade la sección.

Por qué funciona:Cuando los criterios de finalización son vagos, la IA se detiene por autocomplacencia. Basta con añadir una lista de verificación con comandos reales para poner en marcha el bucle de autoverificación. Especificar "añade, no rompas el contenido existente" es el enfoque seguro.

Detectar automáticamente el lenguaje/framework y añadir reglas

Haz que detecte el stack y añada las reglas adecuadas, p. ej. límites Server/Client para Next.js.

Pegar en el chat Claude Code Codex Cursor
Detecta automáticamente el lenguaje y el framework de este repositorio, y añade las
reglas de buenas prácticas correspondientes al archivo de instrucciones que cargas
(CLAUDE.md / AGENTS.md, etc.).

Ejemplos:
- Next.js: límite Server/Client (por defecto Server, mantén use client al mínimo)
- Laravel: validación mediante Form Requests, convenciones de migraciones
- Python: anotaciones de tipo, nunca sobrescribir ni inventar datos en bruto

Añade una nota de una línea sobre la base de tu detección (a partir de qué archivos lo juzgaste)
antes de añadir el contenido. No dupliques nada que ya esté escrito.

Por qué funciona:Los puntos de fallo difieren según el lenguaje. Hacer que la IA detecte automáticamente y añada solo las reglas relevantes es más preciso que una plantilla genérica, y más fácil de mantener.

Añadir reglas absolutas para seguridad / Git / pruebas

Añade un conjunto de "reglas absolutas" que evitan accidentes irreversibles.

Pegar en el chat Claude Code Codex Cursor
Añade las siguientes "reglas absolutas" al archivo de instrucciones que cargas
(CLAUDE.md / AGENTS.md, etc.), adaptadas a la configuración de este repositorio.

- Nunca hagas commit de secretos, .env ni credenciales
- Nunca hagas push / force-push salvo que se te indique
- Valida la entrada en el límite / nunca relajes la autenticación o la autorización por tu cuenta
- Nunca ejecutes comandos destructivos (DROP / TRUNCATE / migrate:fresh, etc.) en la base de datos de producción
- Siempre que cambies el comportamiento, añade o actualiza pruebas

Si ya existen reglas similares, no las dupliques; solo completa lo que falte.

Por qué funciona:Los accidentes se concentran en torno a "secretos filtrados, pushes no solicitados, operaciones destructivas de BD". Añadirlos como reglas absolutas con nombre evita que la IA se descontrole desde el punto de entrada.

Convertir CLAUDE.md al formato AGENTS.md (Codex)

Recrea el mismo contenido para Codex. Para quienes usan varias herramientas de IA juntas.

Pegar en el chat Codex Claude Code
Convierte el contenido de este `CLAUDE.md` al formato `AGENTS.md` para
OpenAI Codex y escríbelo.

- Conserva el significado, pero reorganízalo en una estructura fácil de leer
  para Codex (encabezados, viñetas)
- Mantén tal cual los comandos, las reglas absolutas y la definición de terminado
- Escríbelo como `AGENTS.md` en la raíz

Por qué funciona:CLAUDE.md y AGENTS.md comparten casi todo su contenido. Tratar uno como la fuente de verdad y convertir a partir de él reduce el esfuerzo de mantener dos archivos.

Convertir al formato Cursor Rules (.mdc)

Al formato Project Rules de Cursor. Genera por separado las reglas de aplicación permanente y las limitadas a un tipo de archivo.

Pegar en el chat Cursor
Convierte el contenido de este `CLAUDE.md` al formato Project Rules de Cursor
(archivos `.mdc` bajo `.cursor/rules/`).

- Divide las reglas en unidades con sentido
- Separa las reglas que deben aplicarse siempre de las reglas que se aplican
  solo a tipos de archivo específicos
- Establece las condiciones de aplicación adecuadas (globs, etc.) al principio de cada archivo

Por qué funciona:Cursor funciona mejor con archivos .mdc divididos por propósito que con una sola hoja de reglas enorme. Dejar las decisiones de división a la IA también es más rápido.

Generar archivos de instrucciones divididos para un monorepo

Distribuye automáticamente las reglas comunes a la raíz y las reglas específicas del stack a cada paquete.

Pegar en el chat Claude Code Codex
Inspecciona la estructura de este monorepo y crea los archivos de instrucciones que
tú (este agente) cargas (Claude Code usa CLAUDE.md, Codex usa AGENTS.md, etc.),
divididos de la siguiente manera.

- En la raíz: reglas comunes a todo el repo
  (convenciones de commits, protección de secretos, la definición de terminado general)
- En cada directorio de paquete/app: solo las reglas y los comandos específicos de ese stack

Evita la duplicación y añade una nota de una línea en cada paquete que diga "sigue las
reglas comunes de la raíz". Al final, reporta una lista de qué colocaste en cada directorio.

Por qué funciona:Un monorepo se desmorona bajo un único archivo de instrucciones gigante. Dividir las reglas comunes hacia la raíz y las específicas hacia cada paquete permite a la IA leer las reglas correctas según el contexto en el que se encuentra.

Archivos terminados listos para pegar - Conceptos básicos y reglas

Base universal (para cualquier proyecto)

Tu primer archivo. Una configuración mínima con descripción del proyecto, comandos, convenciones y reglas absolutas. Ante la duda, parte de aquí y añade o quita.

Guardar como archivo Claude Code Codex Cursor
# Proyecto: <name>

## Qué es esto
Una descripción de la app en un párrafo. Qué hace, quién la usa y el stack
tecnológico (lenguaje, framework, BD, runtime).

## Comandos
- Servidor de desarrollo: `npm run dev`
- Build:                  `npm run build`
- Test:                   `npm test`
- Lint:                   `npm run lint`

## Convenciones
- El lenguaje es TypeScript (strict). No uses `any`.
- Ajústate al estilo del archivo que estás editando. Pasa siempre el Lint antes de terminar.
- Mantén los cambios al mínimo; no toques líneas no relacionadas (sin reformateos no relacionados).

## Reglas absolutas (de cumplimiento estricto)
- Antes de reportar terminado, ejecuta siempre las pruebas y el Lint anteriores y haz que pasen.
- Nunca jamás hagas commit de secretos, .env ni artefactos de build.
- Prefiere editar archivos existentes antes que crear nuevos.
- Cuando los requisitos sean vagos, haz exactamente una pregunta aclaratoria antes de un cambio grande.

## Fuera de límites (salvo indicación contraria)
- Configuración de CI, versiones de dependencias, configuración de infraestructura.

Por qué funciona:Poner "Comandos" primero le da a la IA una forma de verificar su trabajo. Escribir las reglas absolutas como imperativos cortos (siempre / nunca) las hace más difíciles de ignorar. La sección "fuera de límites" bloquea de antemano los cambios descontrolados.

Bloque "definición de terminado" que hace que se cumplan las reglas

El más importante. Evita que la IA se detenga cuando solo cree que ha terminado. Un bloque genérico que puedes pegar en cualquier archivo de instrucciones.

Guardar como archivo Claude Code Codex Cursor
## Definición de terminado (léela siempre antes de reportar)
Considera el trabajo como "terminado" solo cuando se cumplan todos los siguientes puntos:
1. `npm run lint` pasa con código de salida 0
2. `npm test` pasa con código de salida 0
3. No quedan TODO / FIXME / logs de depuración en los archivos modificados
4. Has releído tu propio diff y has confirmado que coincide con la solicitud

Si aunque sea uno no se cumple, sigue trabajando. No reportes "terminado".

## Reglas absolutas (de cumplimiento estricto)
- No edites archivos bajo `legacy/` ni `vendor/`.
- No añadas, elimines ni actualices dependencias.
- No reformatees líneas que no hayas cambiado.
- No elimines ni desactives pruebas solo para que pase el build.

## Ante la duda
No avances con suposiciones; haz exactamente una pregunta concisa.
Un cambio grande y equivocado es mucho peor que una pregunta aclaratoria.

Por qué funciona:Cuando los "criterios de finalización" son vagos, la IA se detiene por autocomplacencia. Convertirlo en una lista de verificación y añadir "si no se cumple, sigue; no digas terminado" pone en marcha el bucle de autoverificación. Nombrar las prohibiciones hasta la ruta funciona.

Versión mínima (solo unas líneas)

Para proyectos que rechazan los archivos de instrucciones largos. El núcleo mínimo que aun así reduce notablemente la tasa de accidentes.

Guardar como archivo Claude Code Codex Cursor
# <name>

- Stack: <p. ej. Next.js + TypeScript + PostgreSQL>
- Ejecuta siempre antes de terminar: `npm run lint` y `npm test` (ambos deben pasar)
- Ajústate al estilo existente. No reformatees líneas no relacionadas.
- No hagas commit de secretos ni de .env. No hagas push hasta que se te indique.
- Si algo es vago, no adivines; haz exactamente una pregunta.

Por qué funciona:Más largo no es mejor para los archivos de instrucciones. Reducirlo solo al núcleo que quieres que se cumpla (verificación, contención de reformateos, protección de secretos, sin push, preguntar) permite a la IA recordarlo hasta el final.

Archivos terminados listos para pegar - Por lenguaje y framework

Next.js / TypeScript

Asume App Router. Fija para la IA el límite Server/Client y el estilo de obtención de datos.

Guardar como archivo Claude Code Cursor
# Next.js (App Router) + TypeScript

## Stack
Next.js (App Router), TypeScript strict, Tailwind CSS, <your-ORM>

## Comandos
- Dev:   `npm run dev`
- Build: `npm run build`   # debe pasar sin errores de tipo
- Lint:  `npm run lint`
- Test:  `npm test`

## Reglas de arquitectura
- Por defecto usa Server Components. Añade "use client" solo cuando se necesiten estado, efectos o
  APIs del navegador. Mantén los Client Components pequeños y en las hojas.
- Obtén datos en Server Components o Route Handlers.
  No obtengas los datos iniciales en useEffect.
- Co-localiza los componentes con su segmento de ruta. La UI compartida va en `components/`.
- Valida siempre con esquema la entrada externa en el límite (p. ej. Zod).

## Convenciones
- Sin `any`. Da tipos de retorno explícitos a las funciones públicas.
- Usa los design tokens / clases de Tailwind existentes. No añadas colores por tu cuenta.
- Mantén `page.tsx` ligero; empuja la lógica a funciones y componentes.

## Definición de terminado
`npm run build`, `npm run lint` y `npm test` pasan todos con código de salida 0.
Sin `any`, sin exports no usados, sin console.log olvidados.

Por qué funciona:Next.js es el ejemplo por excelencia de la IA equivocándose en la "decisión Server vs Client". Deletrear "por defecto Server, mantén use client al mínimo" reduce drásticamente los accidentes.

React (Vite) SPA

Para SPAs basadas en Vite. Fija el enfoque de gestión de estado y diseño de componentes.

Guardar como archivo Claude Code Cursor
# React (Vite) + TypeScript

## Comandos
- Dev:   `npm run dev`
- Build: `npm run build`
- Lint:  `npm run lint`
- Test:  `npm test` (Vitest + Testing Library)

## Reglas
- Solo componentes de función y Hooks. No uses componentes de clase.
- Mantén el estado al mínimo, en el orden "local -> Context -> librería de estado".
  No eleves el estado a global innecesariamente.
- Confina los efectos secundarios en useEffect y escribe correctamente el array de dependencias.
- Separa la UI de la lógica. Agrupa la obtención de datos en hooks dedicados (useXxx).
- Accesibilidad: da a los elementos interactivos roles apropiados y operación por teclado.

## Convenciones
- Sin `any`. Define las props con tipos.
- Ajústate al estilo de los componentes y estilos existentes.

## Definición de terminado
`npm run build`, `npm run lint` y `npm test` pasan con código de salida 0.

Por qué funciona:En React, los accidentes clásicos son "elevar el estado a global demasiado pronto" y "dependencias de useEffect incorrectas". Deletrear el orden de promoción y la regla del array de dependencias mantiene la estabilidad.

API de Node.js (Express / Hono)

Para APIs de backend. Pone barreras de protección para la validación, el manejo de errores y la gestión de secretos.

Guardar como archivo Claude Code Codex
# API de Node.js (Express / Hono) + TypeScript

## Comandos
- Dev:   `npm run dev`
- Build: `npm run build`
- Test:  `npm test`
- Lint:  `npm run lint`

## Reglas
- Valida con esquema toda la entrada (body, query, params, headers) en el límite.
- No te tragues los errores. Devuélvelos tipados a través de un manejador de errores central.
- Lee los secretos desde variables de entorno. No los pongas a mano en el código.
- Estructura el acceso a la BD en capas (route -> service -> repository).
- Devuelve una forma de JSON coherente (unifica las formas de éxito y de fallo).

## Reglas absolutas
- No omitas ni relajes la lógica de autenticación / autorización por tu cuenta.
- Verifica siempre la autorización al añadir un endpoint expuesto públicamente.
- No registres en logs información personal, tokens ni contraseñas.

## Definición de terminado
`npm test` (camino feliz + casos de error) y `npm run lint` pasan.

Por qué funciona:Para las APIs, las tres grandes causas de accidentes son "entrada sin validar", "errores tragados" y "secretos en los logs". Hacer de la validación en el límite y la verificación de autorización reglas absolutas hace que sea más probable que se cumplan.

Laravel / PHP

Acostumbra a la IA a un framework que prioriza las convenciones: Eloquent, migraciones y convenciones.

Guardar como archivo Claude Code Codex
# Laravel + PHP

## Comandos
- Serve:   `php artisan serve`
- Migrate: `php artisan migrate`
- Test:    `php artisan test`
- Format:  `./vendor/bin/pint`   # ejecútalo antes de terminar

## Convenciones (sigue la forma de Laravel)
- Usa las relaciones de Eloquent. Evita el SQL crudo sin una razón clara.
- Valida la entrada en clases Form Request. No lo hagas dentro de los controladores.
- Mantén los controladores ligeros. Empuja la lógica de negocio a Services / Actions.
- Cada cambio de esquema lleva una nueva migración. No edites las ya ejecutadas.
- Usa rutas con nombre y route model binding.

## Reglas absolutas
- Nunca jamás hagas commit de `.env` ni de credenciales reales.
- No ejecutes comandos destructivos como `migrate:fresh` contra la base de datos de producción.
- Siempre que cambies el comportamiento, añade o actualiza pruebas (`php artisan test`).

## Definición de terminado
Tanto `php artisan test` como `./vendor/bin/pint --test` pasan.

Por qué funciona:Para un framework que "prioriza las convenciones", deletrear "sigue las convenciones del framework" más prohibir los comandos destructivos es la jugada segura. Prohibir editar las migraciones ya ejecutadas también importa.

Python / análisis de datos

Enfatiza los tipos, los entornos virtuales y la reproducibilidad. Pone primero las reglas de "no romper ni inventar datos".

Guardar como archivo Claude Code Codex
# Python / análisis de datos

## Entorno
- Usa el venv `.venv` del proyecto. No instales de forma global.
- Instalar: `pip install -r requirements.txt`
- Ejecutar: `python -m src.main`
- Test: `pytest`
- Formato: `ruff check .` y `ruff format .`

## Convenciones
- Añade anotaciones de tipo a la firma de cada función. Ejecuta `mypy src` si está configurado.
- No pongas lógica en los notebooks. El código reutilizable va en `src/`.
- Fija la semilla para todo lo que use aleatoriedad, para que los resultados sean reproducibles.

## Reglas absolutas de datos (lo más importante)
- No rellenes en silencio ni inventes valores faltantes. Si hay valores
  faltantes, repórtalos y confirma cómo manejarlos.
- No sobrescribas los archivos de datos en bruto. Escribe la salida en `data/processed/`.
- Documenta todas las suposiciones (filtros, filas excluidas, unidades) en comentarios del código.

## Definición de terminado
`pytest` pasa, `ruff check .` está limpio y los resultados se reproducen desde un estado limpio.

Por qué funciona:En el análisis, los mayores errores de la IA son "rellenar valores faltantes en silencio" y "sobrescribir datos en bruto". Solo con prohibirlos explícitamente los resultados se vuelven mucho más fiables.

Go

Hace que la IA siga la forma de Go, que valora la simplicidad y el manejo explícito de errores.

Guardar como archivo Claude Code Codex
# Go

## Comandos
- Build:  `go build ./...`
- Test:   `go test ./...`
- Formato: `gofmt -w .` y `go vet ./...`

## Convenciones
- No te tragues los errores. Manéjalos siempre con `if err != nil` y devuélvelos
  con contexto (`fmt.Errorf("...: %w", err)`).
- Mantén el anidamiento poco profundo con early returns.
- Usa concurrencia solo cuando sea necesario. Vigila las fugas de goroutines y las condiciones de carrera
  (haz que pase `go test -race`).
- Comenta los símbolos exportados. Prefiere la librería estándar.

## Reglas absolutas
- No añadas abstracciones ni interfaces innecesarias (créalas cuando se necesiten).
- Antes de añadir una dependencia, comprueba primero si basta con la librería estándar.

## Definición de terminado
`go build ./...`, `go vet ./...` y `go test -race ./...` pasan todos.

Por qué funciona:En Go, la "sobre-abstracción" y los "errores tragados" son las fuentes de accidentes. Deletrear los early returns, el envoltorio con %w y -race produce código Go seguro e idiomático.

Rust

Evita el uso excesivo de unwrap y unsafe, y hace que maneje Result/Option correctamente.

Guardar como archivo Claude Code Codex
# Rust

## Comandos
- Build:  `cargo build`
- Test:   `cargo test`
- Lint:   `cargo clippy -- -D warnings`
- Formato: `cargo fmt`

## Convenciones
- No uses `unwrap()` / `expect()` a la ligera en código de producción.
  Maneja `Result` / `Option` correctamente con `?` o match.
- `unsafe` está prohibido por principio. Si es realmente necesario, indica la razón en un comentario.
- Sigue al compilador en lo relativo al préstamo y los lifetimes. Replantea el diseño antes de
  escapar con `clone()`.
- Haz que los tipos de error sean significativos con `thiserror` / `anyhow`, etc.

## Definición de terminado
`cargo build` y `cargo test` pasan, y
`cargo clippy -- -D warnings` reporta cero advertencias.

Por qué funciona:En Rust, cuando la IA se atasca tiende a escapar con `unwrap()` y `clone()`. Desalentar esto y hacer que clippy pase con -D warnings preserva la calidad.

Ruby on Rails

Mantenlo "sobre los rieles". Evita los modelos/controladores gordos y sigue las convenciones.

Guardar como archivo Claude Code Codex
# Ruby on Rails

## Comandos
- Serve:   `bin/rails server`
- Migrate: `bin/rails db:migrate`
- Test:    `bin/rails test` (o `bundle exec rspec`)
- Formato: `bundle exec rubocop -A`

## Convenciones (sigue la forma de Rails)
- Respeta "convención sobre configuración"; no inventes tu propia estructura.
- Evita los controladores / modelos gordos. Empuja la lógica a Services / Concerns.
- Restringe la entrada con strong parameters.
- Evita el N+1 (usa `includes`).
- Los cambios de esquema llevan una nueva migración. No edites las ya ejecutadas.

## Reglas absolutas
- Nunca jamás hagas commit de `.env` ni de credenciales.
- No ejecutes comandos destructivos contra la base de datos de producción.
- Cuando cambies el comportamiento, añade o actualiza pruebas.

## Definición de terminado
Las pruebas y `bundle exec rubocop` pasan.

Por qué funciona:Rails se vuelve inmantenible rápido en cuanto te alejas de la convención. Deletrear "mantente sobre los rieles", "evita lo gordo" y "evita el N+1" preserva los idiomatismos de Rails.

SQL / migraciones de BD

No rompas los datos; solo cambios reversibles. Barreras de seguridad para las migraciones.

Guardar como archivo Claude Code Codex
# SQL / migraciones de base de datos

## Reglas absolutas (la protección de datos es lo primero)
- No ejecutes operaciones destructivas contra los datos de producción por tu cuenta
  (DROP / TRUNCATE / DELETE o UPDATE sin condición).
- Las migraciones deben proporcionar un procedimiento de rollback, no solo la dirección hacia adelante.
- No edites las migraciones ya ejecutadas. Añade siempre nuevas.
- Elimina o renombra columnas por etapas ("añadir -> migrar -> retirar"); no lo hagas de una sola vez.

## Convenciones de consultas
- Evita `SELECT *`; especifica las columnas que necesitas.
- Confirma que las condiciones de WHERE / JOIN pueden usar un índice.
- Divide las actualizaciones grandes en lotes para mantener corto el tiempo de bloqueo.
- Para las consultas de verificación destructivas, confirma primero el número de filas afectadas con un `SELECT` antes de ejecutar.

## Definición de terminado
Tanto la aplicación como el rollback tienen éxito en un entorno equivalente a staging, y has
confirmado que no hay cambios no intencionados en los datos existentes.

Por qué funciona:La BD es el área más "irreversible" de todas. Deletrear una prohibición de las operaciones destructivas, los cambios de esquema por etapas y los rollbacks obligatorios es el salvavidas.

Archivos terminados listos para pegar - Por flujo de trabajo

Desarrollo guiado por pruebas (TDD)

Impone "no dejes las pruebas para después" y "no lo hagas pasar borrando pruebas".

Guardar como archivo Claude Code Codex
# Enfoque guiado por pruebas

Al cambiar el comportamiento, sigue este bucle cada vez:
1. Escribe primero una "prueba que falle" que exprese el comportamiento deseado.
2. Ejecuta la prueba y confirma que falla por la razón correcta.
3. Escribe el código mínimo necesario para que la prueba pase.
4. Ejecuta la suite de pruebas completa y confirma que todo está en verde.
5. Refactoriza manteniéndolo en verde.

## Reglas absolutas
- No elimines ni omitas pruebas para que pase la suite.
- No debilites las aserciones para ponerlo en verde.
- Si una prueba realmente está mal, explica por qué antes de cambiarla.
- El código nuevo sin pruebas no está "terminado".

## Definición de terminado
La suite completa pasa, la cobertura no ha bajado y revertir la
implementación hace que la nueva prueba falle (es decir, es una prueba significativa).

Por qué funciona:Cuando se atasca, la IA a veces borra pruebas y dice "pasó". Escribir "no borres, no debilites, confirma que falla al revertir" cierra las escapatorias.

Enfocado en depuración

Evita las correcciones a ciegas. Impone la disciplina de identificar la causa raíz y luego aplicar una corrección mínima.

Guardar como archivo Claude Code Codex Cursor
# Enfoque de depuración

Procede en este orden. No corrijas adivinando:
1. Establece los pasos de reproducción (cómo desencadenar el bug).
2. Escribe el comportamiento esperado y el comportamiento real, una frase cada uno.
3. Formula una hipótesis. Verifícala con logs o una reproducción mínima antes de corregir.
4. Una vez que hayas identificado la causa, aplica la corrección mínima.
5. Tras corregir, confirma que el bug ha desaparecido mediante los pasos de reproducción y que las pruebas existentes pasan.
6. Si es posible, añade una prueba de regresión que capture este bug.

## Reglas absolutas
- No cambies varios sitios a la vez mientras la causa sea desconocida.
- No te quedes en "funciona por ahora". Explica por qué se corrigió.
- No mezcles refactorizaciones no relacionadas en la depuración.

Por qué funciona:Cuando se atasca con un bug, la IA tiende a reescribir varios sitios a la vez y empeorar las cosas. Forzar el orden "reproducir -> formular hipótesis -> verificar -> corrección mínima -> prueba de regresión" lo corrige de forma fiable.

Enfocado en refactorización

Hace de "no cambiar el comportamiento" la condición absoluta. Mejora segura respaldada por pruebas en verde.

Guardar como archivo Claude Code Codex
# Enfoque de refactorización

## Principio fundamental
No cambies el comportamiento observable desde fuera. No cambies en absoluto las salidas ni los efectos
secundarios para ninguna entrada.

## Pasos
1. Confirma primero que existen pruebas para el área objetivo y que están en verde.
   Si no, escribe primero pruebas de caracterización que fijen el comportamiento actual.
2. Cambia en pasos pequeños e individuales, ejecutando las pruebas tras cada paso.
3. Mantén un commit = un tipo de mejora.

## Reglas absolutas
- No mezcles adiciones de funcionalidades ni correcciones de bugs en la refactorización (hazlas un trabajo aparte).
- Si una prueba se pone en rojo, detente ahí mismo. No continúes.
- No cambies las firmas de la API pública por tu cuenta (confirma primero si es necesario).

## Definición de terminado
Todas las pruebas se mantienen en verde y el código es más legible con menos duplicación.

Por qué funciona:Para la refactorización, "no cambiar el comportamiento" lo es todo. Sin hacer de esto el principio fundamental y respaldarlo con pruebas en verde, la IA romperá funcionalidades alegremente. Prohibir mezclar adiciones de funcionalidades también importa.

Redacción de especificaciones / documentos de diseño

No dejes que implemente de inmediato; haz que escriba primero el diseño en prosa. Reduce drásticamente el retrabajo.

Guardar como archivo Claude Code Codex Cursor
# Cómo escribir un documento de diseño

Antes de implementar, escribe primero lo siguiente en prosa (no escribas código):

## 1. Objetivo
El problema a resolver y las condiciones para considerarlo logrado (criterios de éxito).

## 2. Estado actual y restricciones
La configuración existente, las dependencias y las restricciones a respetar (rendimiento, compatibilidad, plazo).

## 3. Propuesta de diseño
- El enfoque elegido y los enfoques que consideraste y descartaste (y por qué).
- El flujo de datos, las interfaces clave y los archivos a cambiar.

## 4. Riesgos y preguntas abiertas
Qué podría romperse, las suposiciones que hay que confirmar y los puntos que requieren una decisión.

## 5. Plan
Divide la implementación en pasos pequeños, ordenados en unidades verificables.

## Reglas
- No empieces a implementar hasta que este diseño esté aprobado.
- Enumera las incógnitas bajo "preguntas abiertas"; no las rellenes con tus propias suposiciones.

Por qué funciona:La IA salta directamente a la implementación y produce en masa direcciones equivocadas. Solo con insertar "escribe primero el diseño, no implementes hasta que se apruebe" se reduce drásticamente el retrabajo.

Escalonar cambios grandes

Evita un cambio gigante de una sola vez. Hace que se divida en unidades pequeñas y revisables.

Guardar como archivo Claude Code Codex
# Cómo hacer cambios grandes

## Principio fundamental
Evita un cambio gigante. Divídelo de modo que cada paso sea de forma independiente revisable,
testeable y (idealmente) desplegable.

## Pasos
1. Descompón los cambios que llevan a la forma final en una secuencia de pasos pequeños e
   independientes, y preséntala.
2. Para cada paso, escribe "qué / por qué / alcance del impacto" en 1-2 líneas.
3. Tras cada paso, ejecuta la suite de pruebas completa y confirma el verde antes de continuar.
4. Avanza preservando la compatibilidad hacia atrás (añadir -> migrar -> retirar el camino antiguo).

## Reglas absolutas
- No reescribas un área amplia de una vez para "probarlo todo junto después".
- Si un paso crece demasiado, divídelo más.
- Mantén cada paso a una granularidad que se pueda revertir.

## Definición de terminado
Las pruebas están en verde tras completar todos los pasos, y cada commit intermedio tampoco está roto.

Por qué funciona:La IA tiende a hacer las grandes reformas como "reescribir todo de una vez", y cuando se rompe, aislar la causa se vuelve imposible. Dividir en etapas y forzar el verde en cada una te permite hacer grandes reformas de forma segura.

Archivos terminados listos para pegar - Operaciones y gobernanza

Especializado en revisión de código

Evita un aluvión de objeciones triviales; hace que reporte por orden de gravedad. Fija los criterios de revisión.

Guardar como archivo Claude Code Codex Cursor
# Instrucciones de revisión de código

Revisa los cambios, agrúpalos por gravedad y reporta en este orden:
1. CRITICAL - agujeros de seguridad, pérdida de datos, fallos, autenticación rota
2. HIGH     - bugs de lógica, condiciones de carrera, manejo de errores ausente
3. MEDIUM   - problemas de rendimiento, pruebas ausentes, nombres confusos
4. LOW      - objeciones menores de estilo (solo si no hay problemas de mayor gravedad)

## Cómo reportar
- Para cada hallazgo: archivo:línea / qué está mal / por qué importa / una corrección concreta.
- Cita solo el fragmento relevante más pequeño. No pegues el archivo completo.
- Si un cambio es correcto, dilo explícitamente. No inventes problemas.

## Cosas que no hacer
- No entierres bugs reales bajo una pila de objeciones LOW.
- No reescribas archivos completos. Propón el diff más pequeño.
- Salvo que haya un daño real, no señales líneas fuera del alcance del diff.

## Salida
Termina con un veredicto de una línea: APPROVE / REQUEST CHANGES / BLOCK, con una razón.

Por qué funciona:Si se la deja sola, una IA de revisión produce en masa objeciones triviales. Especificar el orden de gravedad más "dilo si no hay problema" y "no inventes" elimina el ruido y la hace utilizable.

Reglas de operación de commits / PR

Evita los pushes no solicitados, los commits gigantes y los secretos filtrados. Barreras de seguridad para las operaciones de Git.

Guardar como archivo Claude Code Codex Cursor
# Reglas de Git / PR

## Commits
- Usa Conventional Commits: `type(scope): summary`
  type: feat, fix, refactor, test, docs, chore.
- Un commit = un cambio lógico. Mantenlo pequeño y revisable.
- En el cuerpo, escribe el "por qué" más que el "qué".

## Reglas absolutas
- No hagas `git push` salvo que se te indique.
- No hagas force-push, rebase ni amend en ramas compartidas / main.
- No hagas commit de secretos, .env, credenciales ni binarios grandes.
- Añade los archivos por nombre. No lo arrastres todo con `git add -A`.

## Pull requests
- Título dentro de 70 caracteres. El cuerpo es "Resumen" + "Plan de pruebas (lista de verificación)".
- Indica cualquier cambio que rompa la compatibilidad.
- No hagas merge. Crea el PR y reporta la URL.

Por qué funciona:Las operaciones de Git son propensas a "accidentes irreversibles". Nombrar y prohibir los pushes, los force-pushes y las filtraciones de secretos con "nunca hagas X" es lo que funciona.

Especializado en revisión de seguridad

Hace que rastree vulnerabilidades por categoría. Prioriza evitar omisiones por encima de los falsos positivos.

Guardar como archivo Claude Code Codex
# Instrucciones de revisión de seguridad

Revisa los cambios en orden frente a los siguientes ángulos y reporta cualquier
problema encontrado con una calificación de gravedad:
- Validación de entrada ausente (inyección: SQL / comandos / XSS / SSRF)
- Brechas de autenticación/autorización (comprobaciones de permisos ausentes, escalada de privilegios)
- Exposición de secretos (claves/tokens puestos a mano, salida a logs)
- Valores por defecto inseguros (exposición excesiva, CORS laxo, redirecciones sin validar)
- Vulnerabilidades conocidas en las dependencias, uso de criptografía / RNG inseguros

## Cómo reportar
- Para cada hallazgo: ubicación / escenario de ataque (cómo podría explotarse) / una corrección concreta.
- Marca las sospechas de las que no estés seguro como "requiere confirmación" (no las omitas en silencio).
- Si no hay problema, indica "sin problemas" junto con los ángulos que revisaste.

## Cosas que no hacer
- No generes código de ataque real ni pasos de explotación (muestra solo las correcciones).

Por qué funciona:En seguridad, una "omisión" es lo más costoso. Enumerar los ángulos y decir "marca las sospechas como requiere-confirmación" evita el comportamiento de callar por miedo a los falsos positivos.

Barreras de seguridad para Docker / infraestructura

Evita accidentes irreversibles en las operaciones de contenedores e infraestructura.

Guardar como archivo Claude Code Codex
# Reglas de trabajo con Docker / infraestructura

## Reglas absolutas (prevenir la destrucción es lo primero)
- No ejecutes comandos destructivos contra entornos de producción o compartidos por tu cuenta
  (`docker system prune`, eliminar volúmenes, `down -v`, etc.).
- Fija las imágenes a tags fijos. No dependas de `latest`.
- Pasa los secretos mediante variables de entorno / gestión de secretos.
  No los hornees en el Dockerfile ni en la imagen.
- Mantén los puertos expuestos y los privilegios (privileged, etc.) al mínimo necesario.

## Convenciones
- Mantén los Dockerfiles pequeños con builds multietapa, atento al cacheo de capas.
- Ejecuta como un usuario no root.
- Tras los cambios, haz build y arranca en local para verificar antes de reportar.

## Definición de terminado
`docker build` pasa, el contenedor arranca y se puede confirmar el health check / la
operación básica.

Por qué funciona:La infraestructura es un área donde puedes destruir un entorno de una sola vez. Deletrear una prohibición de los comandos destructivos, evitar la dependencia de latest y no hornear los secretos forma las barreras de seguridad.

Reglas de actualización de dependencias

Evita las adiciones de dependencias y las actualizaciones mayores no autorizadas. Aprieta el punto de entrada de la cadena de suministro.

Guardar como archivo Claude Code Codex
# Reglas de dependencias

## Reglas absolutas
- Antes de añadir una dependencia, comprueba si basta con la librería estándar o una
  dependencia existente.
- Al añadir una nueva dependencia, añade una nota de una línea sobre su propósito, alternativas
  y estado de mantenimiento.
- No subas versiones mayores por tu cuenta (solo cuando se te indique).
- No regeneres los archivos de lock (package-lock.json, etc.) por tu cuenta.
- Evita paquetes de origen dudoso o con muy pocas estrellas o mantenimiento deficiente.

## Pasos
1. Indica la razón de la adición o actualización.
2. Tras añadirla, confirma que el build y las pruebas pasan.
3. Confirma que la licencia no entra en conflicto con tu caso de uso.

## Definición de terminado
El build y las pruebas pasan tras el cambio de dependencias, y puedes explicar el diff del archivo de lock.

Por qué funciona:Las adiciones de dependencias descuidadas y las actualizaciones mayores son el punto de entrada a la rotura del build y los accidentes de la cadena de suministro. "Comprueba primero si bastan las existentes" y "sin actualizaciones mayores no solicitadas" funcionan.

Si sientes que tu archivo de instrucciones "no funciona"

Cuando la IA sigue sin obedecer las reglas aunque hayas añadido una plantilla, la causa suele estar en la ubicación, la granularidad o la prioridad. Explicamos las soluciones según la causa.

Leer: Por qué la IA ignora tus reglas .md y cómo solucionarlo

* Los prompts están en español; los comandos y las rutas dentro de las plantillas de archivos se mantienen en inglés (dependen del entorno). Última actualización: 2026-05