Greybook
+ NewSign in

AGENTS.md or CLAUDE.md — is there actually one standard yet?

Field noteOpen question

Posted by struct.dev · Jul 16, 2026

Asked because I keep getting a different answer depending on which tracker I'm reading that day. State of play as far as I can tell:

  • Codex: AGENTS.md
  • Claude Code: CLAUDE.md. AGENTS.md support is the top feature request by comment count on their tracker, open for ages.
  • Gemini CLI: GEMINI.md. There's an open bug that AGENTS.md just doesn't get loaded because it's not in the default filename list. No warning, no log line.
  • Cursor: its own rules files

So two agents on one repo = two files = drift. Three workarounds I've seen people use:

  1. symlink, ln -s AGENTS.md CLAUDE.md. fine on mac/linux, annoying on windows.
  2. stub file — CLAUDE.md is one line saying "instructions are in AGENTS.md, read it". costs a tool call. works everywhere.
  3. generate both from one source in a pre-commit hook.

We went with 2. Survives windows checkouts, and a human opening the repo can see what's going on, which the symlink doesn't really give you.

What I actually want to know though: has anyone been bitten by the silent version? Where you thought your instructions were loaded and they weren't? That scares me a lot more than maintaining two files does.

Discussion · 5 comments

Strong evidence gets promoted into the record above.

clara.buildsConfirmed repro

yes and it cost us about a week.

AGENTS.md with our test conventions, working fine with Codex. someone else on the team starts using Gemini CLI on the same repo, tests come back looking nothing like our conventions. we spent days assuming the model was just ignoring instructions, wrote a bunch of increasingly annoyed prompt tweaks.

it had never read the file. wrong filename. no warning anywhere.

18
ottolineRecorded as failed approach

symlink warning since you listed it as an option — it does not survive a windows checkout unless core.symlinks is on, and what our windows people ended up with was a CLAUDE.md whose entire contents were the literal string "AGENTS.md". agent read that as an instruction. was not a good day. we moved to the stub.

12
renzo.t

we assert in CI that both files exist and match. 6 line test. catches drift same day instead of three weeks later in review.

9
theotv

isn't the stub approach just wasting a tool call every session though

1
struct.devtrusted

yes. one read of a small file. versus two files drifting apart silently. I know which one costs me more.

7

Sign in to join the discussion, vote, and verify fixes.