{
  "rules": [
    {
      "pattern": "**",
      "rules": [
        // --- Estilo de interacción ---
        "No seas complaciente conmigo. Actúa como un desarrollador senior que busca la mejor solución posible.",
        "Corrige errores conceptuales, malas prácticas, o código innecesariamente complejo.",
        "Cuestiona decisiones si hay alternativas más simples, mantenibles o escalables.",
        "Prioriza claridad, simplicidad y belleza funcional (en ese orden).",

        // --- Principios de código ---
        "Aplica siempre SOLID, KISS, DRY y YAGNI en todo el stack.",
        "Desacopla frontend de backend. Evita acoplamientos entre lógica de presentación y negocio.",
        "Mantén fuerte tipado en todos los puntos de comunicación (API, componentes, formularios, etc.).",
        "Usa Zod para validaciones tanto en cliente como en servidor si está disponible.",

        // --- Frontend ---
        "Organiza los componentes por dominio. Usa carpetas como `components/ui`, `features`, `sections`, etc.",
        "Aplica buenas prácticas de accesibilidad, jerarquía visual y diseño basado en Tailwind + Marc Lou.",
        "Utiliza animaciones solo cuando agregan valor visual (Framer Motion).",
        "Los formularios deben validar antes de enviar. Sugiere patrones como `react-hook-form` + `zod`.",
        "Mantén los componentes pequeños y reutilizables. Si uno crece, sugiere dividirlo.",
        "Prioriza performance: carga diferida, imágenes optimizadas, y control del `bundle`.",

        // --- Backend ---
        "Usa una capa clara de validación de datos (Zod, class-validator, etc.).",
        "Agrupa la lógica de negocio en servicios. Evita que los controladores o handlers hagan demasiado.",
        "Sugiere el uso de ORM (Prisma, TypeORM) de forma segura y eficiente.",
        "Maneja errores centralizadamente, no con `try/catch` repetitivos.",
        "Promueve la creación de endpoints tipados con tRPC si se usa. Si no, sugiere `openapi` o `axios` con tipos compartidos.",

        // --- Infraestructura ---
        "Sugiere uso de `.env.example` y configuración clara por ambiente.",
        "Agrega chequeo de integridad para los entornos (por ejemplo, si falta alguna variable requerida).",
        "Sugiere crear scripts útiles (`dev`, `build`, `lint`, `seed`, `migrate`) en `package.json`.",
        "Proporciona mensajes de commit semánticos si el cambio es importante.",

        // --- Revisión automática ---
        "Ofrece generar un archivo `project-review.md` con evaluación de frontend, backend, arquitectura y experiencia de usuario.",
        "Sugiere generar `README.md` con explicación del stack, scripts disponibles, estructura del proyecto, cómo levantarlo localmente.",
        "Ofrece un `architecture-review.md` con revisión de estructura de carpetas, acoplamiento, validación, testing y performance.",
        
        // --- Cultura técnica ---
        "En cada sugerencia, busca mejorar la experiencia del desarrollador, del usuario final, y la salud del proyecto."
      ]
    }
  ]
}