{
  "id": "agents-md-nextjs-saas",
  "type": "rules",
  "category": "rules",
  "locale": "fr",
  "url": "/fr/rules/agents-md-nextjs-saas",
  "title": "Règles AGENTS.md pour une application SaaS Next.js",
  "description": "Un fichier AGENTS.md prêt à l'emploi qui maintient les agents de codage IA dans la pile et les conventions d'une base de code SaaS Next.js.",
  "tools": [
    "Cursor",
    "Claude Code",
    "Codex"
  ],
  "stack": [
    "Next.js",
    "TypeScript",
    "Tailwind"
  ],
  "tags": [
    "agents-md",
    "nextjs",
    "conventions"
  ],
  "difficulty": null,
  "updated": "2026-06-08",
  "markdown": "Placez ce fichier à la racine de votre dépôt sous le nom `AGENTS.md`. La plupart des agents (Codex, Cursor, Claude\nCode) le lisent automatiquement et le traitent comme des règles de projet.\n\n## AGENTS.md\n\n```md title=\"AGENTS.md\"\n# Project Rules\n\n## Stack\n- Next.js (App Router) + TypeScript (strict).\n- Tailwind CSS v4. No CSS-in-JS.\n- PostgreSQL via the existing db client in `src/lib/db.ts`.\n\n## Hard rules\n- Never add a dependency without listing it and why first.\n- Server Components by default. Only add `\"use client\"` when you need state,\n  effects, or browser APIs — and keep those components small.\n- All env vars go through `src/lib/env.ts` (zod-validated). Never read\n  `process.env` directly in app code.\n- Never put secrets or server-only code in a Client Component.\n\n## Conventions\n- Co-locate route code under `app/`. Shared logic lives in `src/lib/`.\n- Use the existing UI primitives in `src/components/ui/` before adding new ones.\n- Write the diff and wait for approval before editing more than 3 files.\n\n## Definition of done\n- `bun run typecheck` and `bun run lint` pass.\n- No new `any`. No unused exports.\n```\n\n## Pourquoi ces règles\n\n- **\"Server Components par défaut\"** est le levier de qualité le plus important dans les projets App Router — voir le motif d'échec associé sur le code serveur-dans-client.\n- **Validation centralisée des env** arrête la classe d'erreurs IA la plus courante : lire silencieusement une valeur `process.env` non définie.\n\n## Bonne adéquation\n\n- Applications SaaS Next.js de taille moyenne avec un ensemble de conventions établi.\n\n## Pas adapté\n\n- Prototypes greenfield où vous voulez que l'agent avance rapidement et librement."
}