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 la memoria entre completions. Las reglas proporcionan contexto persistente y reutilizable a nivel de instrucción.
Cuando se aplican, el contenido de las reglas se incluye al inicio del contexto del modelo. Esto proporciona a la IA una guía coherente para generar código, interpretar ediciones o ayudar con flujos de trabajo.
Reglas del proyecto
Las reglas del proyecto se almacenan en .cursor/rules como archivos .mdc y están bajo control de versiones. Se aplican según patrones de ruta, se invocan manualmente o se incluyen en función de 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 de los archivos de reglas
Cada regla es un archivo .mdc al que puedes ponerle el nombre que quieras. Las reglas del proyecto deben usar la extensión .mdc. El sistema de reglas ignora los archivos .md simples en .cursor/rules porque no tienen frontmatter para especificar description, globs y alwaysApply. Si prefieres usar markdown simple, usa AGENTS.md.
.cursor/rules/ react-patterns.mdc # Se reconoce como regla de proyecto api-guidelines.md # Se ignora (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 y alwaysApply.
| Tipo de regla | Descripción |
|---|---|
Aplicar siempre | Se aplica a todas las sesiones de chat |
Aplicar de forma inteligente | Cuando el Agent decide que es relevante según la descripción |
Aplicar a archivos específicos | Cuando un archivo coincide con un patrón especificado |
Aplicar manualmente | 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 los globs y la descripción. |
false | — | proporcionado | Se adjunta automáticamente cuando hay un archivo coincidente en el contexto. |
false | proporcionado | omitido | El Agent lee la descripción e incluye la regla cuando es relevante. |
false | omitido | omitido | Se incluye solo cuando mencionas la regla con @ en el chat. |
---alwaysApply: true---- Todos los archivos fuente deben incluir el aviso de derechos de autor de la empresa- Si tienes dudas sobre los detalles de implementación, lee los archivos fuente pertinentes antes de proponer cambios- Nunca modifiques archivos generados en los directorios `dist/` o `build/`---globs: src/components/**/*.tsxalwaysApply: false---- Use exportaciones con nombre, no exportaciones predeterminadas- Ubique los estilos en un archivo de módulo CSS junto al componente- Mantenga los componentes por debajo de 200 líneas. Extraiga los subcomponentes al mismo directorio cuando un archivo supere ese límite- Prefiera la composición frente al prop drilling. Pase children o render props en lugar de pasar datos a través de varias capas---description: RPC service conventions and patterns for the backendalwaysApply: false---- Define each service in its own file under `src/services/`- Always validate inputs at the service boundary before passing data to internal functions- Return structured error objects with a `code` and `message` field, never throw raw strings- Add a `@service-template.ts` reference file when creating a new service for the standard boilerplate---alwaysApply: false---- Toda migración de base de datos debe tener funciones `up` y `down` para poder revertirse por completo- Nunca modifiques el tipo de una columna in situ. Añade una columna nueva, haz la carga retroactiva y luego elimina la antigua en una migración aparte- Consulta la plantilla para conocer la estructura de archivos esperada@migration-template.sqlEjemplos de patrones glob
Usa globs para aplicar una regla a archivos o directorios específicos. Separa varios patrones con comas.
| Patrón | Coincide con |
|---|---|
* | Cualquier segmento de 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 dentro de src/ |
src/**/*.tsx | Todos los archivos .tsx dentro 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. 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. Se creará 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 específicas, prácticas y tienen un alcance definido.
- Mantén las reglas por debajo de 500 líneas
- Divide las reglas extensas en varias reglas componibles
- Incluye ejemplos concretos o archivos de referencia
- Evita indicaciones imprecisas. Escribe las reglas como documentación interna clara
- Reutiliza las reglas al repetir instrucciones en el chat
- Haz referencia a archivos en lugar de copiar su contenido; así las reglas se mantienen cortas y no quedan desactualizadas a medida que cambia el código
Qué evitar en las reglas
- Copiar guías de estilo completas: Usa un linter. Agent ya conoce las convenciones de estilo habituales.
- Documentar todos los comandos posibles: Agent conoce herramientas comunes como npm, git y pytest.
- Añadir instrucciones para casos límite que rara vez se dan: Mantén las reglas centradas en los patrones que usas con frecuencia.
- Duplicar lo que ya está en tu base de código: Remite a ejemplos canónicos en lugar de copiar código.
Empieza de forma sencilla. Añade reglas solo cuando veas que Agent comete el mismo error repetidamente. No optimices en exceso antes de entender tus patrones.
Guarda tus reglas en git para que todo el equipo se beneficie. Cuando veas que Agent comete un error, actualiza la regla. Incluso puedes mencionar a @cursor en un problema o una PR de GitHub para que Agent actualice la regla por ti.
Formato de los archivos de reglas
Cada regla es un archivo markdown con metadatos en el frontmatter y contenido. Los metadatos del frontmatter se usan para controlar cómo se aplica la regla. El contenido es la regla propiamente dicha.
---description: "This rule provides standards for frontend components and API validation"alwaysApply: false---...rest of the rule contentSi alwaysApply es true, la regla se aplicará a cada sesión de chat. De lo contrario, se presentará la descripción de la regla al Cursor Agent para que decida si debe aplicarla.
Ejemplos
Esta regla establece estándares para los componentes de frontend:
Al trabajar en el directorio de componentes:
- Usa siempre Tailwind para los estilos
- Usa Framer Motion para las animaciones
- Sigue las convenciones de nomenclatura de los componentes
Esta regla exige la validación de los endpoints de la API:
En el directorio de la API:
- Usa zod para todas las validaciones
- Define los tipos de retorno con esquemas de zod
- Exporta los tipos generados a partir de los esquemas
Esta regla proporciona una plantilla para los servicios de Express:
Usa esta plantilla al crear un servicio de Express:
- Sigue los principios RESTful
- Incluye middleware de gestión de errores
- Configura el registro correctamente
@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 en la parte superior
- Componente como exportación con nombre
- Estilos en la parte inferior
@component-template.tsx
Esta regla automatiza el análisis de la aplicación:
Cuando se solicite analizar la aplicación:
- Ejecuta el servidor de desarrollo con
npm run dev - Obtén los registros de la consola
- Sugiere mejoras de rendimiento
Esta regla ayuda a generar documentación:
Ayuda a redactar documentación mediante:
- Extraer comentarios del código
- Analizar README.md
- Generar documentación en markdown
Primero, crea una propiedad que se pueda activar o desactivar en @reactiveStorageTypes.ts.
Añade un valor predeterminado a INIT_APPLICATION_USER_PERSISTENT_STORAGE en @reactiveStorageService.tsx.
Para las funciones beta, añade un interruptor en @settingsBetaTab.tsx; de lo contrario, añádelo en @settingsGeneralTab.tsx. Puedes añadir interruptores como <SettingsSubSection> para casillas de verificación generales. Consulta el resto del archivo para ver ejemplos.
<SettingsSubSection label="Your feature name" description="Your feature description" value={ vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty ?? false } onChange={(newVal) => { vsContext.reactiveStorageService.setApplicationUserPersistentStorage( "myNewProperty", newVal, ); }}/>Para usarla en la aplicación, importa reactiveStorageService y usa la propiedad:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty;Hay ejemplos disponibles de proveedores y frameworks. Las reglas aportadas por la comunidad se encuentran en colecciones y repositorios colaborativos en línea.
Reglas del equipo
Los planes Team y Enterprise pueden crear y aplicar reglas en toda la organización desde el panel de control de Cursor. Los admins pueden configurar si cada regla es obligatoria para los miembros del equipo.
Las reglas del equipo funcionan junto con otros tipos de reglas y tienen prioridad para garantizar el cumplimiento de los estándares de la organización en todos los proyectos. Permiten mantener estándares de programación, prácticas y flujos de trabajo coherentes en todo el equipo sin necesidad de configuración individual.
Gestión de reglas del equipo
Los administradores del equipo pueden crear y gestionar reglas directamente desde el panel de control de Cursor:
Una vez creadas, las reglas del equipo se aplican automáticamente a todos los miembros del equipo y aparecen en el panel de control:
Activación y cumplimiento
- Activar esta regla inmediatamente: Al marcar esta opción, la regla se activa en cuanto la creas. Al desmarcarla, la regla se guarda como borrador y no se aplica hasta que la actives más adelante.
- Forzar esta regla: Al activarla, la regla es obligatoria para todos los miembros del equipo y no se puede desactivar en Personalizar. Si no se fuerza, los miembros del equipo pueden desactivarla en Reglas del equipo, dentro de Personalizar.
De forma predeterminada, los usuarios pueden desactivar las Reglas del equipo que no se fuerzan. Usa Forzar esta regla para evitarlo.
Formato y aplicación de las Reglas del equipo
- Contenido: Las Reglas del equipo son texto de formato libre. No usan la estructura de carpetas de las reglas del proyecto.
- Patrones glob: Las Reglas del equipo admiten patrones glob para aplicarse a archivos específicos. Cuando se establece un patrón glob (p. ej.,
**/*.py), la regla solo se aplica cuando hay archivos coincidentes en el contexto. Las reglas sin un patrón glob se aplican a todas las conversaciones. - Dónde se aplican: Cuando una regla del equipo está activada (y el usuario no la ha desactivado, salvo que sea obligatoria), se incluye en el contexto del modelo para Agent (Chat) en todos los repositorios y proyectos de ese equipo.
- Precedencia: Las reglas se aplican en este orden: Reglas del equipo → Reglas del proyecto → Reglas de usuario. Se combinan todas las reglas aplicables; las fuentes anteriores tienen precedencia cuando las instrucciones entran en conflicto.
Algunos equipos usan reglas obligatorias como parte de flujos de trabajo internos de cumplimiento. Aunque esta opción es compatible, las indicaciones para IA no deben ser su único control de seguridad.
Importar reglas
Puedes importar reglas desde fuentes externas para reutilizar configuraciones existentes o incorporar reglas de otras herramientas.
Reglas remotas (a través de GitHub)
Importa reglas directamente desde cualquier repositorio de GitHub al que tengas acceso, público o privado.
- Abre Personalizar en la barra lateral
- Ve a Reglas y haz clic en Añadir regla
- Selecciona Regla remota (GitHub)
- Pega la URL del repositorio de GitHub que contiene las reglas. Cursor buscará todos los archivos
.mdcdel repositorio. - Cursor descargará y sincronizará las reglas con tu proyecto
Las reglas se guardarán en .cursor/rules/imported/<repoName>. También conservarán sus rutas relativas, por lo que dir/rule.mdc se importará como .cursor/rule/imported/<repoName>/dir/rule.mdc.
AGENTS.md
AGENTS.md es un archivo Markdown sencillo para definir instrucciones para el agente. Colócalo en la raíz de tu proyecto como alternativa a .cursor/rules para casos de uso simples.
A diferencia de las reglas del proyecto, AGENTS.md es un archivo Markdown sin metadatos ni configuraciones complejas. Es ideal para proyectos que necesitan instrucciones simples y fáciles de leer sin la sobrecarga de las reglas estructuradas.
Cursor es compatible con AGENTS.md en la raíz del proyecto y en los subdirectorios.
# Instrucciones del proyecto## Estilo de código- Usa TypeScript para todos los archivos nuevos- Prefiere componentes funcionales en React- Usa snake_case para las columnas de la base de datos## Arquitectura- Sigue el patrón de repositorio- Mantén la lógica de negocio en las capas de servicioMejoras
Ya está disponible la compatibilidad con archivos AGENTS.md anidados en subdirectorios. Puedes colocar archivos AGENTS.md en cualquier subdirectorio de tu proyecto y se aplicarán automáticamente al trabajar con archivos de ese directorio o de sus subdirectorios.
Esto permite un control más granular de las instrucciones del agente según el área de la base de código en la que estés trabajando:
project/ AGENTS.md # Instrucciones globales frontend/ AGENTS.md # Instrucciones específicas del frontend components/ AGENTS.md # Instrucciones específicas del componente backend/ AGENTS.md # Instrucciones específicas del backendLas instrucciones de los archivos AGENTS.md anidados se combinan con las de los directorios principales, y las más específicas tienen prioridad.
Reglas de usuario
Las reglas de usuario son preferencias globales definidas en Personalizar → Reglas que se aplican a todos los proyectos. Agent (Chat) las utiliza y son ideales para establecer el estilo de comunicación o las convenciones de código preferidas:
Responde de forma concisa. Evita repeticiones innecesarias o lenguaje de relleno.Preguntas frecuentes
Comprueba el tipo de regla. En Aplicar inteligentemente, asegúrate de definir una descripción. En Aplicar a archivos específicos, asegúrate de que el patrón de archivo coincida con los archivos referenciados.
Sí. Usa @filename.ts para incluir archivos en el contexto de tu regla. También puedes mencionar reglas con @ en el chat para aplicarlas manualmente.
Sí, puedes pedirle al agente que cree una regla nueva.
No. Las reglas no afectan a Cursor Tab ni a otras funciones de IA.
No. Las reglas de usuario no se aplican a Inline Edit (Cmd/Ctrl+K). Solo las usa Agent (Chat).