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
Primero crea una propiedad para alternar en @reactiveStorageTypes.ts.
Agrega el valor predeterminado en INIT_APPLICATION_USER_PERSISTENT_STORAGE en @reactiveStorageService.tsx.
Para funciones beta, agrega el toggle en @settingsBetaTab.tsx; de lo contrario, agrégalo en @settingsGeneralTab.tsx. Los toggles se pueden agregar como <SettingsSubSection> para checkboxes generales. Mira el resto del archivo para ver ejemplos.
<SettingsSubSection label="Nombre de la funcionalidad" description="Descripción de la funcionalidad" value={ vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty ?? false } onChange={(newVal) => { vsContext.reactiveStorageService.setApplicationUserPersistentStorage( "myNewProperty", newVal, ); }}/>Para usarla en la aplicación, importa reactiveStorageService y utiliza 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 su organización desde el panel de Cursor. Los administradores pueden configurar si cada regla es obligatoria o no para los miembros del equipo.
Las reglas del equipo funcionan junto con otros tipos de reglas y tienen prioridad para garantizar que se mantengan los estándares de la organización en todos los proyectos. Ofrecen una forma potente de garantizar estándares de codificación, prácticas y flujos de trabajo coherentes en todo tu equipo sin requerir configuración individual.
Gestión de reglas de equipo
Los administradores de equipo pueden crear y gestionar reglas directamente desde el panel de Cursor:
Una vez creadas las reglas de equipo, se aplican automáticamente a todos los miembros y son visibles en el panel:
Activación y aplicación
- Habilitar esta regla inmediatamente: Si está marcada, la regla se activa en cuanto la creas. Si no está marcada, la regla se guarda como borrador y no se aplica hasta que la habilites más adelante.
- Imponer esta regla: Cuando está habilitada, la regla es obligatoria para todos los miembros del equipo y no se puede desactivar en personalizar. Cuando no está impuesta, los miembros del equipo pueden desactivar la regla en Reglas del equipo dentro de personalizar.
De forma predeterminada, los usuarios pueden desactivar las Reglas del equipo que no están impuestas. Usa Enforce this rule para evitarlo.
Formato y cómo se aplican las Reglas del equipo
- Contenido: las Reglas del equipo son texto libre. No usan la estructura de carpetas de las reglas del proyecto.
- Patrones glob: las Reglas del equipo admiten patrones glob para aplicarlas a nivel de archivo. Cuando se configura un patrón glob (p. ej.,
**/*.py), la regla solo se aplica cuando los archivos coincidentes están en contexto. Las reglas sin un patrón glob se aplican a todas las conversaciones. - Dónde se aplican: cuando una Regla del equipo está habilitada (y no está deshabilitada por el usuario, a menos 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. Todas las reglas aplicables se combinan; las fuentes anteriores tienen prioridad cuando haya conflictos entre indicaciones.
Algunos equipos usan reglas obligatorias como parte de flujos de trabajo de cumplimiento interno. Aunque esto está permitido, la orientación de la IA no debería ser tu ú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, ya sea público o privado.
- Abre personalizar en la barra lateral
- Ve a regla y haz clic en Añadir regla
- Selecciona Remote Rule (Github)
- Pega la URL del repositorio de GitHub que contiene las reglas. Cursor buscará todos los archivos
.mdcen el repositorio. - Cursor extraerá y sincronizará las reglas con tu proyecto
Las reglas se colocarán en .cursor/rules/imported/<repoName>. Las reglas 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 simple para definir las instrucciones de los agentes. Colócalo en la raíz de tu proyecto como alternativa a .cursor/rules para casos de uso sencillos.
A diferencia de las reglas de proyecto, AGENTS.md es un archivo markdown plano, sin metadatos ni configuraciones complejas. Es perfecto para proyectos que necesitan instrucciones simples y legibles, sin la sobrecarga que implican las reglas estructuradas.
Cursor es compatible con AGENTS.md en la raíz del proyecto y en los subdirectorios.
# Project Instructions## Code Style- Use TypeScript for all new files- Prefer functional components in React- Use snake_case for database columns## Architecture- Follow the repository pattern- Keep business logic in service layersMejoras
Ahora está disponible el soporte para 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 en ese directorio o en sus subdirectorios.
Esto permite un control más granular de las instrucciones de los agentes según el área del 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 de componentes backend/ AGENTS.md # Instrucciones específicas del backendLas instrucciones de los archivos AGENTS.md anidados se combinan con las de los directorios superiores, y las instrucciones más específicas tienen prioridad.
Reglas de usuario
Las Reglas de usuario son preferencias globales configuradas en personalizar → regla que se aplican en todos los proyectos. Las utiliza Agent (Chat) y son ideales para definir el estilo de comunicación preferido o las convenciones de código:
Please reply in a concise style. Avoid unnecessary repetition or filler language.Preguntas frecuentes
Verifica el tipo de regla. Para Apply Intelligently, asegúrate de haber definido una descripción. Para Apply to Specific Files, asegúrate de que el patrón de archivo coincida con los archivos a los que se hace referencia.
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 nueva regla por ti.
No. Las reglas no afectan Cursor Tab ni otras funciones de IA.
No. Las reglas de usuario (reglas de usuario) no se aplican a Inline Edit (Cmd/Ctrl+K). Solo las usa Agent (chat).