Some people might have a different CLAUDE.md and AGENTS.md because they use Claude to do one thing and $other_agent to do another thing. Or because Claude does XYZ by default, and other agents do ABC, and they want to give the correct guidance to both.
This is, to me, a completely reasonable and believable use case that could break if you implement this fix without "overengineering" it.
A setting to disable what? Be specific. See? Not so simple...
if [ !-f CLAUDE.md ]; then AGENTS.md fi
you're really over thinking this, and i'm wondering if you're risking pulling something stretching like that to pick this up shilling for Anthropic.
> Read CLAUDE.md if it doesn't exist read AGENTS.md
> Some people might have a different CLAUDE.md and AGENTS.md
How exactly do these two conflict? If you have both, nothing changes.
First, GP's proposal already addresses that. If both are present, CLAUDE.md would be used. Second, that is solved with a settings toggle. Read a boolean from .claude/settings.json and disable the new behavior if it's true (or false, depending on what you want to name the setting). third, you skipped the second part of my question: "how would implementing it the way Anthropic did address that?" Implementing the same behavior through multiple layers of abstraction and an order of magnitude more code doesn't solve the issue you mentioned.
Bonus forth point: why is this critical to solve for claude code, but not for all the other harnesses which have all converged on AGENTS.md for this purpose?