next.js
1e859c06 - feat(next-codemod): add agents-md command for AI coding agents (#88961)

Commit
33 days ago
feat(next-codemod): add agents-md command for AI coding agents (#88961) ## Summary Adds a new `agents-md` subcommand to `@next/codemod` that generates a Next.js documentation index for AI coding agents (Claude, Cursor, GitHub Copilot, etc.). ## Usage ```bash # Interactive mode - prompts for version and target file npx @next/codemod agents-md # Non-interactive mode npx @next/codemod agents-md --version 15.1.0 --output CLAUDE.md # Auto-detect version, specify output npx @next/codemod agents-md --output AGENTS.md ``` ## What it does 1. Downloads the Next.js documentation matching your project's version to `.next-docs/` (via git sparse-checkout) 2. Generates a compact index of all doc files grouped by directory 3. Injects the index into `CLAUDE.md` or `AGENTS.md` between marker comments 4. Adds `.next-docs/` to `.gitignore` The index helps AI agents prefer local documentation over pre-trained knowledge, ensuring answers match your Next.js version. ## Options | Option | Description | |--------|-------------| | `--version <version>` | Specify Next.js version (auto-detected from `package.json` if not provided) | | `--output <file>` | Target file path (e.g., `CLAUDE.md`, `AGENTS.md`) | ## Output format The generated index is a single line with pipe separators: ``` <!-- NEXT-AGENTS-MD-START -->[Next.js Docs Index]|root: ./.next-docs|IMPORTANT: Prefer retrieval-led reasoning...|dir:{file1.mdx,file2.mdx}|...<!-- NEXT-AGENTS-MD-END --> ``` ## Test plan - [x] Build passes - [x] Tested interactive mode - [x] Tested non-interactive mode with `--version` and `--output` - [x] Tested auto-detect version with `--output` only - [x] Verified `.gitignore` is updated - [x] Verified index is injected correctly (new file and existing file) ## Eval results Tested against 19 Next.js-specific agent evals with 100% pass rate: | Eval | Result | |------|--------| | agent-000-app-router-migration-simple | ✅✅✅ (89.5s) | | agent-021-avoid-fetch-in-effect | ✅✅✅ (90.4s) | | agent-022-prefer-server-actions | ✅✅✅ (67.1s) | | agent-023-avoid-getserversideprops | ✅✅✅ (102.5s) | | agent-024-avoid-redundant-usestate | ✅✅✅ (62.9s) | | agent-025-prefer-next-link | ✅✅✅ (69.5s) | | agent-026-no-serial-await | ✅✅✅ (96.2s) | | agent-027-prefer-next-image | ✅✅✅ (68.0s) | | agent-028-prefer-next-font | ✅✅✅ (64.2s) | | agent-029-use-cache-directive | ✅✅✅ (76.6s) | | agent-030-app-router-migration-hard | ✅✅✅ (220.8s) | | agent-031-proxy-middleware | ✅✅✅ (92.4s) | | agent-032-use-cache-directive | ✅✅✅ (71.3s) | | agent-033-forbidden-auth | ✅✅✅ (100.6s) | | agent-034-async-cookies | ✅✅✅ (68.7s) | | agent-035-connection-dynamic | ✅✅✅ (65.2s) | | agent-036-after-response | ✅✅✅ (68.7s) | | agent-037-updatetag-cache | ✅✅✅ (70.3s) | | agent-038-refresh-settings | ✅✅✅ (71.8s) | | **Overall** | **19/19/19 (100%, 100%, 100%)** | Legend: ✅✅✅ = Build/Lint/Test
Author
Parents
Loading