Maintaining AGENTS.md
Goal: concise, actionable agent instructions. Target under 60 lines; never exceed 100.
Workflow
- Inspect before writing:
- package manager: lock files and manifests
- commands:
package.json, Makefile, task runners, CI workflows
- docs/specs/policies:
README.md, CONTRIBUTING.md, docs/, specs/, policies/, SECURITY.md, .github/
- conventions: current code patterns, test layout, generated files, legacy areas to avoid
- Choose scope:
- root
AGENTS.md: repo-wide defaults
- nested
AGENTS.md: only when a subtree has different commands or rules
- closest instruction file wins; keep narrower files shorter than root files
- Write the smallest useful file.
- Verify exact paths and commands exist.
File Setup
- Create
AGENTS.md at the repository root.
- If a Claude-compatible entrypoint is required, symlink
CLAUDE.md to AGENTS.md.
- Do not maintain divergent
AGENTS.md and CLAUDE.md copies.
Default Sections
Use only sections that add non-obvious value.
# Agent Instructions
## Package Manager
- Use **pnpm**: `pnpm install`
## Commands
| Task | Command |
|------|---------|
| Test file | `pnpm vitest run path/to/file.test.ts` |
| Lint file | `pnpm eslint path/to/file.ts` |
## External References
| Need | File |
|------|------|
| Setup | `CONTRIBUTING.md` |
| Architecture | `docs/architecture.md` |
| Security policy | `SECURITY.md` |
## Key Conventions
- Generated files: update with `pnpm generate`; do not edit by hand.
## Commit Attribution
AI commits MUST include:
```
Co-Authored-By: (the agent's name and attribution byline)
```
Writing Rules
- Use headings, bullets, and tables; avoid paragraphs.
- Use repo-relative paths; avoid vague references like "see docs".
- Reference existing docs/specs/policies instead of copying them.
- List exact external files for setup, architecture, API specs, security, release, and policy docs when they exist.
- Prefer file-scoped test/lint/typecheck commands; include full builds only when no narrower command exists.
- Put commands in tables when there is more than one.
- Keep one rule per bullet.
- Keep rationale out unless it prevents a likely mistake.
- Do not restate linter, formatter, or typechecker config.
- Do not list installed skills or plugins.
- Do not include generic quality slogans.
External Reference Rules
Good:
## External References
| Need | File |
|------|------|
| API contract | `docs/api.md` |
| Release process | `docs/releasing.md` |
Anti-Patterns
- welcome text, intros, conclusions, or pleasantries
- long prose explaining why instructions matter
- duplicated content from
README.md, CONTRIBUTING.md, or policy docs
- project-wide commands when file-scoped commands are available
- nested
AGENTS.md files that repeat root instructions
1---2name: agents-md3description: Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files for AI coding agents, keeping them under 60 lines and referencing existing documentation.4---56# Maintaining AGENTS.md78Goal: concise, actionable agent instructions. Target under 60 lines; never exceed 100.910## Workflow11121. Inspect before writing:13 - package manager: lock files and manifests14 - commands: `package.json`, `Makefile`, task runners, CI workflows15 - docs/specs/policies: `README.md`, `CONTRIBUTING.md`, `docs/`, `specs/`, `policies/`, `SECURITY.md`, `.github/`16 - conventions: current code patterns, test layout, generated files, legacy areas to avoid172. Choose scope:18 - root `AGENTS.md`: repo-wide defaults19 - nested `AGENTS.md`: only when a subtree has different commands or rules20 - closest instruction file wins; keep narrower files shorter than root files213. Write the smallest useful file.224. Verify exact paths and commands exist.2324## File Setup2526- Create `AGENTS.md` at the repository root.27- If a Claude-compatible entrypoint is required, symlink `CLAUDE.md` to `AGENTS.md`.28- Do not maintain divergent `AGENTS.md` and `CLAUDE.md` copies.2930## Default Sections3132Use only sections that add non-obvious value.3334````markdown35# Agent Instructions3637## Package Manager38- Use **pnpm**: `pnpm install`3940## Commands41| Task | Command |42|------|---------|43| Test file | `pnpm vitest run path/to/file.test.ts` |44| Lint file | `pnpm eslint path/to/file.ts` |4546## External References47| Need | File |48|------|------|49| Setup | `CONTRIBUTING.md` |50| Architecture | `docs/architecture.md` |51| Security policy | `SECURITY.md` |5253## Key Conventions54- Generated files: update with `pnpm generate`; do not edit by hand.5556## Commit Attribution57AI commits MUST include:58```59Co-Authored-By: (the agent's name and attribution byline)60```61````6263## Writing Rules6465- Use headings, bullets, and tables; avoid paragraphs.66- Use repo-relative paths; avoid vague references like "see docs".67- Reference existing docs/specs/policies instead of copying them.68- List exact external files for setup, architecture, API specs, security, release, and policy docs when they exist.69- Prefer file-scoped test/lint/typecheck commands; include full builds only when no narrower command exists.70- Put commands in tables when there is more than one.71- Keep one rule per bullet.72- Keep rationale out unless it prevents a likely mistake.73- Do not restate linter, formatter, or typechecker config.74- Do not list installed skills or plugins.75- Do not include generic quality slogans.7677## External Reference Rules7879Good:8081```markdown82## External References83| Need | File |84|------|------|85| API contract | `docs/api.md` |86| Release process | `docs/releasing.md` |87```8889## Anti-Patterns9091- welcome text, intros, conclusions, or pleasantries92- long prose explaining why instructions matter93- duplicated content from `README.md`, `CONTRIBUTING.md`, or policy docs94- project-wide commands when file-scoped commands are available95- nested `AGENTS.md` files that repeat root instructions