Reglas
Las reglas proporcionan instrucciones a nivel de sistema al Agent. Agrupan instrucciones, scripts y otros elementos, lo que facilita gestionar y compartir flujos de trabajo en todo el equipo.
Cursor admite cuatro tipos de reglas:
Reglas del proyecto
Se almacenan en .cursor/rules, están controladas por versiones y se aplican a tu base de código.
Reglas de usuario
Son globales para tu entorno de Cursor. Las usa el Agent (Chat).
Reglas del equipo
Reglas para todo el equipo gestionadas desde el Panel de control. Disponibles en los planes Team y Enterprise.
AGENTS.md
Instrucciones para el Agent en formato markdown. Una alternativa sencilla a
.cursor/rules.
Cómo funcionan las reglas
Los modelos de lenguaje de gran tamaño no conservan memoria entre respuestas. Las reglas proporcionan contexto persistente y reutilizable a nivel de prompt.
Cuando se aplican, el contenido de las reglas se incluye al inicio del contexto del modelo. Esto le da a la IA una guía coherente para generar código, interpretar ediciones o ayudar con los flujos de trabajo.
Reglas del proyecto
Las reglas del proyecto se encuentran en .cursor/rules como archivos .mdc y están bajo control de versiones. Se aplican mediante patrones de ruta, se invocan manualmente o se incluyen según su relevancia.
Usa las reglas del proyecto para:
- Codificar conocimiento específico del dominio sobre tu base de código
- Automatizar flujos de trabajo o plantillas específicos del proyecto
- Estandarizar decisiones de estilo o arquitectura
Estructura del archivo de reglas
Cada regla es un archivo .mdc al que puedes poner el nombre que quieras. Las reglas del proyecto deben usar la extensión .mdc. El sistema de reglas ignora cualquier archivo .md simple en .cursor/rules porque no tiene frontmatter para especificar description, globs y alwaysApply. Si prefieres usar markdown simple, usa AGENTS.md en su lugar.
.cursor/rules/ react-patterns.mdc # Reconocido como una regla de proyecto api-guidelines.md # Ignorado (extensión incorrecta) frontend/ # Organiza las reglas en carpetas components.mdcAnatomía de una regla
Cada regla es un archivo Markdown con metadatos de frontmatter y contenido. Controla cómo se aplican las reglas desde el menú desplegable de tipo, que modifica las propiedades description, globs, alwaysApply.
| Tipo de regla | Descripción |
|---|---|
Always Apply | Se aplica a cada sesión de chat |
Apply Intelligently | Cuando Agent decide que es relevante según la descripción |
Apply to Specific Files | Cuando un archivo coincide con un patrón especificado |
Apply Manually | Cuando se menciona con @ en el chat (p. ej., @my-rule) |
Internamente, los tres campos de frontmatter interactúan para determinar cuándo se incluye una regla:
alwaysApply | description | globs | Comportamiento |
|---|---|---|---|
true | — | — | Siempre se incluye. Se ignoran globs y la descripción. |
false | — | proporcionado | Se adjunta automáticamente cuando hay un archivo coincidente en el contexto. |
false | proporcionado | omitido | Agent lee la descripción e incluye la regla cuando es relevante. |
false | omitido | omitido | Solo se incluye cuando mencionas la regla con @ en el chat. |
---alwaysApply: true---- Todos los archivos fuente deben incluir el encabezado de derechos de autor de la empresa- Cuando no estés seguro sobre los detalles de implementación, lee los archivos fuente relevantes antes de proponer cambios- Nunca modifiques los archivos generados en los directorios `dist/` o `build/`---globs: src/components/**/*.tsxalwaysApply: false---- Use named exports, not default exports- Co-locate styles in a module CSS file next to the component- Keep components under 200 lines. Extract subcomponents into the same directory when a file grows beyond that- Prefer composition over prop drilling. Pass children or render props instead of threading data through multiple layers---description: RPC service conventions and patterns for the backendalwaysApply: false---- Define cada servicio en su propio archivo bajo `src/services/`- Siempre valida las entradas en el límite del servicio antes de pasar los datos a las funciones internas- Devuelve objetos de error estructurados con un campo `code` y `message`, nunca lances cadenas de texto sin procesar- Agrega un archivo de referencia `@service-template.ts` al crear un nuevo servicio para el código base estándar---alwaysApply: false---- Toda migración de base de datos debe tener las funciones `up` y `down` para que pueda revertirse por completo- Nunca modifiques el tipo de una columna en el lugar. Añade una nueva columna, rellena los datos, y luego elimina la antigua en una migración separada- Haz referencia a la plantilla para la estructura de archivos esperada@migration-template.sqlEjemplos de patrones glob
Usa globs para limitar una regla a archivos o directorios específicos. Separa varios patrones con comas.
| Patrón | Coincidencias |
|---|---|
* | Cualquier segmento individual del nombre de archivo |
** | Cualquier número de directorios (recursivo) |
*.ts | Todos los archivos .ts en la raíz |
**/*.ts | Todos los archivos .ts en cualquier directorio |
src/** | Todos los archivos en cualquier subdirectorio de src/ |
src/**/*.tsx | Todos los archivos .tsx en cualquier subdirectorio de src/ |
docs/**/*.md, docs/**/*.mdx | Archivos .md y .mdx en docs/ (separados por comas) |
tailwind.config.* | tailwind.config con cualquier extensión |
Crear una regla
Hay dos formas de crear reglas:
/create-ruleen el chat: Escribe/create-ruleen Agent y describe lo que quieres hacer. Agent genera el archivo de regla con el frontmatter adecuado y lo guarda en.cursor/rules.- Desde Personalizar: Abre personalizar en la barra lateral, ve a Reglas y haz clic en Añadir regla. Esto crea un nuevo archivo de regla en
.cursor/rules. Desde Personalizar puedes ver todas las reglas y su estado.
Mejores prácticas
Las buenas reglas son concretas, aplicables y bien delimitadas.
- Mantén las reglas con menos de 500 líneas
- Divide las reglas grandes en varias reglas componibles
- Proporciona ejemplos concretos o archivos de referencia
- Evita las indicaciones vagas. Escribe las reglas como documentación interna clara
- Reutiliza reglas cuando repitas indicaciones en el chat
- Haz referencia a archivos en lugar de copiar su contenido; así las reglas se mantienen breves y no quedan obsoletas a medida que el código cambia
Qué evitar en las reglas
- Copiar guías de estilo completas: Usa un linter en su lugar. Agent ya conoce las convenciones de estilo comunes.
- Documentar todos los comandos posibles: Agent conoce herramientas comunes como npm, git y pytest.
- Agregar instrucciones para casos límite que rara vez aplican: Mantén las reglas enfocadas en patrones que uses con frecuencia.
- Duplicar lo que ya existe en tu base de código: Señala ejemplos canónicos en lugar de copiar código.
Empieza de forma sencilla. Agrega reglas solo cuando notes que Agent comete el mismo error repetidamente. No sobreoptimices antes de entender tus propios patrones.
Haz commit de tus reglas en git para que todo tu equipo se beneficie. Cuando veas que Agent comete un error, actualiza la regla. Incluso puedes etiquetar a @cursor en un issue o PR de GitHub para que Agent actualice la regla por ti.
Formato del archivo de reglas
Cada regla es un archivo Markdown con metadatos de frontmatter y contenido. Los metadatos de frontmatter se utilizan para controlar cómo se aplica la regla. El contenido es la propia regla.
---description: "Esta regla establece estándares para componentes frontend y validación de API"alwaysApply: false---...rest of the rule contentSi alwaysApply es true, la regla se aplicará en cada sesión de chat. De lo contrario, la descripción de la regla se presentará a Cursor Agent, que decidirá si debe aplicarse.
Ejemplos
Esta regla define estándares para los componentes de frontend:
Al trabajar en el directorio components:
- Usa siempre Tailwind para los estilos
- Usa Framer Motion para las animaciones
- Sigue las convenciones de nombres de componentes
Esta regla establece la validación para los endpoints de la API:
En el directorio API:
- Usa zod para toda la validación
- Define los tipos de retorno con esquemas de zod
- Exporta los tipos generados a partir de los esquemas
Esta regla proporciona una plantilla para servicios de Express:
Usa esta plantilla al crear un servicio de Express:
- Sigue los principios RESTful
- Incluye middleware de manejo de errores
- Configura un sistema de logging adecuado
@express-service-template.ts
Esta regla define la estructura de los componentes de React:
Los componentes de React deben seguir esta estructura:
- Interfaz de props al inicio
- Componente como exportación nombrada
- Estilos al final
@component-template.tsx
Esta regla automatiza el análisis de la aplicación:
Cuando se pida analizar la aplicación:
- Ejecuta el servidor de desarrollo con
npm run dev - Obtén los logs de la consola
- Sugiere mejoras de rendimiento
Esta regla ayuda a generar documentación:
Ayuda a redactar documentación:
- Extrayendo comentarios del código
- Analizando README.md
- Generando documentación en Markdown