{
  "id": "agents-md-nextjs-saas",
  "type": "rules",
  "category": "rules",
  "locale": "pt",
  "url": "/pt/rules/agents-md-nextjs-saas",
  "title": "Regras do AGENTS.md para um aplicativo SaaS Next.js",
  "description": "Um AGENTS.md pronto para uso que mantém os agentes de codificação de IA no stack e na convenção em uma base de código 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": "Coloque este arquivo na raiz do seu repositório como `AGENTS.md`. A maioria dos agentes (Codex, Cursor, Claude\nCode) o lê automaticamente e o trata como regras do projeto.\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## Por que essas regras\n\n- **\"Server Components por padrão\"** é a maior alavanca de qualidade em projetos App Router — veja o padrão de falha relacionado no código servidor-dentro-cliente.\n- **Validação centralizada de env** impede a classe mais comum de erros de IA: ler silenciosamente um valor `process.env` indefinido.\n\n## Boa adequação\n\n- Aplicativos SaaS Next.js de médio porte com um conjunto de convenções estabelecido.\n\n## Não é adequado\n\n- Protótipos greenfield onde você quer que o agente seja rápido e flexível."
}