@taiizor/agents-md-cookbook-14
ACopy a battle-tested AGENTS.md into your repo, lint it in CI, and migrate your old CLAUDE.md / .cursorrules in one command.
Install
agr install @taiizor/agents-md-cookbook-14 --target codexWrites 1 file into AGENTS.md, pinned to git-493ad632.
- AGENTS.md
Document
AGENTS.md
React Native (Expo) mobile app. Replace the bracketed bits with your details.
Stack
- Expo SDK 51, React Native 0.74, TypeScript strict, Expo Router.
- Package manager: pnpm 9. Tests: Jest + React Native Testing Library.
- Lint/format: ESLint + Prettier.
Project Structure
app/— Expo Router routes (file-based navigation).components/— reusable UI components.assets/— images, fonts, and static files.app.config.ts— Expo app config;package.json— scripts & deps.ios/,android/— generated native projects (Expo prebuild).
Setup
pnpm install
cp .env.example .env # EXPO_PUBLIC_* vars only on the client; never commit .env
Commands
pnpm start # expo start (Metro bundler + dev menu)
pnpm ios # run on the iOS simulator
pnpm android # run on an Android emulator
pnpm test # jest
pnpm lint # eslint . --max-warnings=0
pnpm typecheck # tsc --noEmit
Code style
- Function components + hooks; route files live under
app/(Expo Router). - Only
EXPO_PUBLIC_*env vars are exposed to the app bundle — keep real secrets on the backend, never in the client. - Use
StyleSheet.createor the project's styling lib; avoid inline style soup.
Example — a typed screen component:
import { View, Text } from "react-native";
type Props = { name: string };
export default function Greeting({ name }: Props) {
return (
<View>
<Text>Hello, {name}</Text>
</View>
);
}
Testing
- Co-locate tests as
*.test.tsx; query by accessibility role/label. - A change is done when
pnpm lint,pnpm typecheck, andpnpm testpass. - Add a failing test first, then make it pass (TDD).
Git & PRs
- Branch from
main:git switch -c feat/<short-name>. - Conventional Commits (
feat:,fix:,chore:). - Before pushing:
pnpm lint && pnpm typecheck && pnpm test. - PR: one-line summary + the test command + which platforms you smoke-tested.
Boundaries
- Always: edit
app/**andcomponents/**, and put public config inEXPO_PUBLIC_*so secrets stay on the backend. - Always: regenerate
ios//android/via Expo prebuild instead of editing them. - Always: fix the underlying lint error rather than suppressing it.
- Always: run
pnpm lint && pnpm typecheck && pnpm testbefore opening a PR. - Ask first: before changing
app.config.ts, native modules, or EAS build config. - Ask first: before adding a dependency that requires a native rebuild.
- Never: ship an API secret in the client bundle or hand-edit native folders.
- Never: disable ESLint inline just to pass CI.
- Never commit secrets.
More
- Navigation & state conventions:
docs/architecture.md.
Repository README
Describes Taiizor/agents-md-cookbook as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.
agents-md-cookbook
The tested, tool-agnostic AGENTS.md kit.
Copy a battle-tested AGENTS.md into your repo, lint it in CI, and migrate your
old CLAUDE.md / .cursorrules in one command. Every template is short on
purpose, leads with runnable commands, and is checked by our own linter.
AGENTS.md is a single Markdown file at your repo root that tells coding agents
how to build, test, and behave in your project. It is stewarded by the Linux
Foundation's Agentic AI Foundation, lives in 60,000+ repositories, and is read
natively by 24+ tools. One file, every agent.
30-second value prop
- Tool-agnostic. One
AGENTS.mdworks across Cursor, Codex, Copilot, Windsurf, Cline, Zed, Jules, Amp, and more. See the full compatibility matrix. - Tested, not vibes. Templates follow evidence from GitHub's 2,500-repo
study, ETH Zurich's AGENTbench, and Augment's golden-PR eval — and CI lints
every template with our own
agents-md-lint. - Short by design. 60-150 lines, commands first, real code snippets, explicit boundaries. No platitudes, no architecture essays, no token bloat.
- Migrate in one command. Turn an existing
CLAUDE.md,.cursorrules, orGEMINI.mdinto a cleanAGENTS.mdwithagents-md-migrate.
Quick start
-
Copy a template for your stack into your repo root as
AGENTS.md(filename must be exactlyAGENTS.md— uppercaseAGENTS, lowercase.md):curl -fsSL \ https://raw.githubusercontent.com/Taiizor/agents-md-cookbook/main/templates/typescript-node/AGENTS.md \ -o AGENTS.mdBrowse the full template index for other stacks.
-
Already have agent instructions? Migrate them instead of starting over:
bunx agents-md-migrate # or: npx agents-md-migrateThis detects
CLAUDE.md,.cursorrules,GEMINI.md, and friends, then produces a singleAGENTS.md. (Published by theagents-md-migratepackage.) -
Lint it in CI so the file stays accurate as your project grows:
# .github/workflows/ci.yml - name: Lint AGENTS.md run: bunx agents-md-lint AGENTS.md # or: npx agents-md-lint AGENTS.mdPrefer a one-line GitHub Action? Use the bundled
action.yml:# .github/workflows/ci.yml - uses: Taiizor/agents-md-cookbook@v1 with: path: AGENTS.md
Compatibility at a glance
| Tool | Reads AGENTS.md? |
|---|---|
| Cursor | NATIVE |
| OpenAI Codex | NATIVE |
| GitHub Copilot (coding agent) | NATIVE |
| Windsurf / Cascade | NATIVE |
| Cline | NATIVE |
| Zed | NATIVE (first-match) |
| Amp | NATIVE |
| Google Jules | NATIVE |
| opencode / RooCode | NATIVE |
| Claude Code | ADAPTER (symlink / @AGENTS.md) |
| Aider | ADAPTER (--read AGENTS.md) |
| Gemini CLI | CONFIG (opt-in) |
| Copilot (VS Code chat) | CONFIG (experimental) |
Full mechanism, nesting behavior, own-file fallbacks, and sources are in COMPATIBILITY.md (with a dated last-verified line).
Templates
Each template is a complete, copy-pasteable AGENTS.md for one stack.
| Stack | Path |
|---|---|
| TypeScript + Node | templates/typescript-node/AGENTS.md |
| Python | templates/python/AGENTS.md |
| Go | templates/go/AGENTS.md |
| Rust | templates/rust/AGENTS.md |
| Java + Spring Boot | templates/java-spring/AGENTS.md |
| .NET / C# | templates/dotnet-csharp/AGENTS.md |
| Next.js | templates/nextjs/AGENTS.md |
| React + Vite | templates/react-vite/AGENTS.md |
| Django | templates/django/AGENTS.md |
| FastAPI | templates/fastapi/AGENTS.md |
| Ruby on Rails | templates/rails/AGENTS.md |
| Monorepo (root) | templates/monorepo/AGENTS.md |
| Data / ML | templates/data-ml/AGENTS.md |
| React Native / Expo | templates/react-native/AGENTS.md |
| Minimal starter | templates/minimal/AGENTS.md |
Why AGENTS.md
Coding agents auto-execute the commands you list, so a single file that is accurate, short, and command-first beats scattered per-tool config. The research is blunt about what works:
- Lead with commands and flags. GitHub's review of 2,500+ repos found the best files put build/test commands early with exact flags, prefer code examples over prose, and pair every boundary with a "do."
- Keep it short and non-inferable. ETH Zurich's AGENTbench found
auto-generated
/initfiles reduce task success ~3% and raise cost ~20-23%; agents follow files faithfully, so every wrong line is executed. Limit content to what an agent cannot infer (custom tooling, unusual builds). - Aim for 100-150 lines. Augment's golden-PR eval found a 100-150 line sweet spot, numbered workflows (+25% correctness), decision tables, and 3-10 line real-code examples (+20% reuse); gains reverse beyond ~300 lines.
Read the full handbook: anatomy · best practices · nesting & monorepos · common mistakes.
Tooling
Published to npm so you can run them with bunx or npx (no install needed):
agents-md-lint— scores anAGENTS.mdagainst the evidence-based rules and fails CI on regressions.agents-md-migrate— converts existingCLAUDE.md/.cursorrules/GEMINI.mdinto a cleanAGENTS.md.
These CLIs live under
packages/and are released by separate plans; this repo dogfoodsagents-md-linton its own templates in CI.
Contributing
Templates and matrix updates are the lifeblood of this repo. To add a stack, fix a command, or correct a tool's support status, read CONTRIBUTING.md and open an issue from one of our templates. Every PR is link-checked and content-linted automatically.
Credits & sources
- The
AGENTS.mdstandard: https://agents.md/ - GitHub Blog — How to write a great agents.md: Lessons from over 2,500 repositories (Matt Nigh, 2025-11-25).
- ETH Zurich — Evaluating AGENTS.md (arXiv:2602.11988, Feb 2026), benchmark AGENTbench.
- Augment Code — AuggieBench golden-PR evaluation.
- philschmid — practical AGENTS.md length/structure guidance.
License
MIT © 2026 Taiizor
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- passType matchnot applicable to this artifact type
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-493ad632aa142026-08-06