{
  "id": "agents-md-nextjs-saas",
  "type": "rules",
  "category": "rules",
  "locale": "de",
  "url": "/de/rules/agents-md-nextjs-saas",
  "title": "AGENTS.md-Regeln für eine Next.js SaaS-App",
  "description": "Ein einsatzbereites AGENTS.md, das KI-Codierungsagenten im Stack und im Einklang mit den Konventionen einer Next.js SaaS-Codebasis hält.",
  "tools": [
    "Cursor",
    "Claude Code",
    "Codex"
  ],
  "stack": [
    "Next.js",
    "TypeScript",
    "Tailwind"
  ],
  "tags": [
    "agents-md",
    "nextjs",
    "conventions"
  ],
  "difficulty": null,
  "updated": "2026-06-08",
  "markdown": "Fügen Sie dies als `AGENTS.md` in Ihr Repository-Root ein. Die meisten Agenten (Codex, Cursor, Claude Code) lesen es automatisch und behandeln es als Projektregeln.\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## Warum diese Regeln\n\n- **\"Server Components als Standard\"** ist der größte Hebel für die Qualität in App Router-Projekten — siehe das zugehörige Fehlermuster bei Server-in-Client-Code.\n- **Zentrale Umgebungsvariablenvalidierung** verhindert die häufigste Klasse von KI-Fehlern: das stille Auslesen eines undefinierten `process.env`-Werts.\n\n## Geeignet für\n\n- Mittelgroße Next.js SaaS-Apps mit einem etablierten Konventionsset.\n\n## Nicht geeignet\n\n- Greenfield-Prototypen, bei denen der Agent schnell und locker agieren soll."
}