Generate AGENTS.md
Extract operational content from CLAUDE.md to create a universal AGENTS.md file for cross-tool compatibility with Cursor, Codex, Copilot, and other AI agents.
Overview
This workflow extracts the Operations and Boundaries sections from CLAUDE.md to generate a minimal, universal AGENTS.md file that works across 20+ AI coding tools.
Why generate instead of symlink?
- •Symlinks may not work on all systems (Windows)
- •AGENTS.md can be customized without affecting CLAUDE.md
- •Some teams prefer explicit files over symlinks
- •Allows for tool-specific adjustments
When to Use
✅ Use this workflow when:
- •Team uses multiple AI tools (Cursor + Claude Code, Codex + Claude)
- •Deploying to systems where symlinks don't work well
- •Want a standalone AGENTS.md for open-source projects
- •Need to customize AGENTS.md separately from CLAUDE.md
❌ Use symlink instead when:
- •Only team uses Claude Code and one other tool
- •System supports symlinks reliably
- •Want single source of truth with no drift
Symlink command: ln -s CLAUDE.md AGENTS.md
Process
Step 1: Analyze CLAUDE.md
AI reads CLAUDE.md and identifies:
- •Operations section - Setup, Testing, Build, Code Style commands
- •Boundaries section - Protected files, never commit, ask before
- •Project-specific customizations (if any)
Step 2: Generate AGENTS.md
Create AGENTS.md with AGENTS.md standard structure:
# AGENTS.md > Auto-generated from CLAUDE.md. For full methodology, see CLAUDE.md. > Last generated: [DATE] ## Project Overview [Brief description - AI extracts from README or project.md if available] ## Setup Commands [Extracted from CLAUDE.md Operations section] ## Testing [Extracted from CLAUDE.md Operations section] ## Build & Deploy [Extracted from CLAUDE.md Operations section] ## Code Style [Extracted from CLAUDE.md Operations section] ## Boundaries [Extracted from CLAUDE.md Boundaries section] --- *For detailed guardrails, 4D methodology, and workflows, see [CLAUDE.md](./CLAUDE.md)*
Step 3: Verify and Save
- •AI presents generated AGENTS.md for review
- •User approves or requests changes
- •Save to project root:
./AGENTS.md
AGENTS.md Template
# AGENTS.md > Auto-generated from CLAUDE.md | Last updated: YYYY-MM-DD > Full documentation: [CLAUDE.md](./CLAUDE.md) ## Project Overview [PROJECT_NAME] - [BRIEF_DESCRIPTION] **Tech Stack**: [PRIMARY_TECHNOLOGIES] **Language**: [PRIMARY_LANGUAGE] ## Setup Commands ```bash # Install dependencies [INSTALL_COMMAND] # Start development server [DEV_COMMAND] # Environment setup cp .env.example .env
Testing
# Run all tests [TEST_COMMAND] # Run with coverage (target: >80% business logic) [COVERAGE_COMMAND] # Watch mode [WATCH_COMMAND]
Build & Deploy
# Production build [BUILD_COMMAND] # Type check [TYPECHECK_COMMAND] # Lint [LINT_COMMAND]
Code Style
# Format code [FORMAT_COMMAND] # Lint and fix [LINT_FIX_COMMAND]
Conventions:
- •[STYLE_RULE_1]
- •[STYLE_RULE_2]
- •[STYLE_RULE_3]
Boundaries
Do Not Modify
- •Lock files (
package-lock.json,yarn.lock,Cargo.lock) - •Environment files (
.env,.env.local) - •CI/CD configurations (
.github/workflows/) - •Applied database migrations
Never Commit
- •Secrets, API keys, credentials
- •
.envfiles (use.env.example) - •Build artifacts,
node_modules/,target/
Ask Before Changing
- •Authentication/authorization logic
- •Database schemas
- •Public API contracts
- •Major dependencies
Additional Context
For detailed development guidelines, see:
- •Full Methodology: CLAUDE.md
- •Skills: .claude/skills/
This file follows the AGENTS.md standard.
--- ## Customization Guide ### Project-Specific Adjustments When generating AGENTS.md, AI should: 1. **Detect tech stack** from: - `package.json` (Node.js) - `requirements.txt` / `pyproject.toml` (Python) - `go.mod` (Go) - `Cargo.toml` (Rust) 2. **Extract actual commands** from: - `package.json` scripts - `Makefile` - `justfile` - CI/CD workflows 3. **Include project-specific boundaries** from: - `CLAUDE.md` (if exists) - Existing `.gitignore` patterns ### Monorepo Support For monorepos, generate nested AGENTS.md files:
project/ ├── AGENTS.md # Root-level (general) ├── CLAUDE.md # Full methodology ├── packages/ │ ├── api/ │ │ └── AGENTS.md # API-specific commands │ └── web/ │ └── AGENTS.md # Web-specific commands
Each nested AGENTS.md should: - Focus on that package's commands - Reference root AGENTS.md for general guidelines - Include package-specific boundaries --- ## Maintenance ### When to Regenerate Regenerate AGENTS.md when: - CLAUDE.md Operations section changes - New build/test commands added - Project structure changes significantly - Tech stack updated ### Keeping in Sync **Option A: Manual regeneration** ```bash # Load this skill periodically when CLAUDE.md changes .claude/skills/generate-agents-md/SKILL.md
Option B: Pre-commit hook
# .husky/pre-commit or similar # Check if CLAUDE.md changed, regenerate AGENTS.md
Option C: CI/CD check
# .github/workflows/check-agents-md.yml
- name: Verify AGENTS.md is up to date
run: |
# Compare timestamps or checksums
Example Usage
Request
Generate AGENTS.md for this project using the generate-agents-md skill
AI Response
I'll analyze your project and generate an AGENTS.md file. **Detected:** - Tech stack: TypeScript, React, Node.js - Package manager: npm - Test framework: Vitest - Linter: ESLint + Prettier **Generated AGENTS.md:** [Shows preview] **Save to:** ./AGENTS.md Approve? [Yes/No/Edit]
Integration with CLAUDE.md
How They Work Together
| File | Purpose | Audience |
|---|---|---|
CLAUDE.md | Full methodology + guardrails | Claude Code |
AGENTS.md | Operational commands | All AI tools |
Reading Priority (Claude Code)
- •Claude Code reads
CLAUDE.md(primary) - •If
CLAUDE.mdnot found, readsAGENTS.md(fallback) - •Both can coexist (different purposes)
For Other Tools
Most tools (Cursor, Codex, Copilot) read:
- •
AGENTS.md(primary) - •May also read
CLAUDE.mdif present
Troubleshooting
Issue: AGENTS.md and CLAUDE.md out of sync
Solution: Regenerate AGENTS.md or set up sync mechanism
Issue: Other tools not reading AGENTS.md
Solution: Ensure file is in project root, named exactly AGENTS.md
Issue: Symlink not working
Solution: Use this skill to generate actual file instead
Issue: Need different commands for different tools
Solution: Generate AGENTS.md with common subset, add tool-specific comments
Remember: AGENTS.md is for operational commands. Keep it minimal and actionable. Full methodology stays in CLAUDE.md.