https://agent.md [redirect -> https://ampcode.com/AGENT.md] https://agent-rules.org
https://agent.md [redirect -> https://ampcode.com/AGENT.md] https://agent-rules.org
I'd rather .agents/claude or something so we can get these files out of the root directory, which, at least for typescript projects, is already a confetti-like jumble of json files for every little "simple" tool that needs its own configuration file.
I get why package.json isn't enough. But would a .config directory standard really have hurt us so much?
An agent on the other hand, one who is in that sweet spot where they're no longer ignorant, and not yet confused... It's nice to have them dump their understanding to agent_primers/subsystem_foo.md for consumption by the next agent that touches that subsystem. I don't usually even read these until I suspect a problem in one. They're just nuggets of context transfer.
Not really: our AI agents are probably smart enough to even make sense of somewhat bad instructions.
Eg if you write your instructions in a mixture of base 64, traditional Chinese, morse code and Polish, the LLM will still figure it out.
I am talking about LLMs figuring out how to build your project with some bad and incomplete instructions plus educated guessing.
e.g. maybe for CURSOR.md you just want to provide context and best practices without any tool-calling context (because you've found it doesn't do a great job of tool-calling), while for CLAUDE.md (for use with Claude Code) you might want to specify tools that are available to it (because it does a great job with tool calling).
Probably best if you have an AGENT.md that applies to all, and then the tools can also ingest their particular flavor in addition, which (if anything is in conflict) would trump the baseline AGENT file.
AGENT.md
AGENT.CLAUDE.md
They get applied AGENT first, then AGENT.CLAUDE. You are able to specify agent specific instructions in the AGENT.md: @agent-disable CLAUDE
These instructions are not parsed by claude
@agent-enable CLAUDE---
This project uses shared planning documents for collaboration with Claude Code. Please:
1. First read and understand these files:
- PLAN.md - current project roadmap and objectives
- ARCHITECTURE.md - technical decisions and system design
- TODO.md - current tasks and their status
- DECISIONS.md - decision history with rationale
- COLLABORATION.md - handoff notes from other tools
2. Before making any significant changes, check these documents for:
- Existing architectural decisions
- Current sprint priorities
- Tasks already in progress
- Previous context from Claude Code
3. After completing work, update the relevant planning documents with:
- Task completion status
- New decisions made
- Any changes to architecture or approach
- Notes for future collaboration
Always treat these files as the single source of truth for project state. @AGENTS.md
Still messy, but at least it means it's using the same content ln -s AGENTS.md CLAUDE.md # repeat for all
?And then it will promptly forget about CLAUDE.md as well (happened to me on several occasions)
I guess having links to supplementary rules files is an option, but I'm not sure which agents (if any) would work well with that.
The whole agentic coding via CLI experience could be much improved by:
- Making it easy to see what command I last issued, without having to scroll up through reams of output hunting for context - Making it easy to spin up a proper sandbox to run sessions unattended - Etc.
Maybe for code generation, what we actually need is a code generator that is itself deterministic but uses AI, instead of AI that does code generation.
Till then you can also use symlinks
there are issues opened in some repos for this
- Support "AGENT.md" spec + filename · Issue #4970 · google-gemini/gemini-cli
https://github.com/google-gemini/gemini-cli/issues/4970#issu...
Here for Claude
cat AGENT.md | claude
IIRC this saves some tokens.
they also suggest using symlinks for now
Claude Code likes to add "attribution" in commit messages, which is just pure spam.
SICP contains the famous quote: “Programs must be written for people to read, and only incidentally for machines to execute.”
How is the tool supposed to merge multiple md files?
However, if you look through the source code or network requests, you’ll see that merging just means naive “concatenation”.
Why are we purposely creating CLI dialects?
Yesterday, I was writing about a way I found to pass the same guideline documents into Claude, Gemini, and Aider CLI-coders: https://github.com/sutt/agro/blob/master/docs/case-studies/a...
> Set your own rules: Customize Cursor's work with rules, AGENTS.md, and MCP.
There's no mention of it in the docs, though. It's also interesting it's AGENTS.md on that page instead of AGENT.md, I wonder if that's a typo.
Side remark: CC is very expensive when using API billing (compared to e.g. GPT-5). Once a company adopts CC and all developers start to adapt to it at full scale, the bill will go out of the roof.