Claude Code liest jetzt AGENTS.md, und der Standard ist ein Fallback
Anthropic hat wieder das Laden gelöst und die Rangfolge gelassen, wo sie war. Welche Projektdatei der Standard lädt, hängt davon ab, was zufällig auf der Platte liegt. Die geladene Datei fehlt in den Übersichten, mit denen du sie prüfen würdest, und der alte Einzeiler-Import bleibt das Setup, das sich über Provider und Versionen hinweg gleich verhält.
Claude Code v2.1.277 kam am 18. September mit genau der Zeile heraus, um die der AGENTS.md-Feature-Request (#6235) gebeten hatte:
Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads
AGENTS.md instead; change it under "Project instructions" in /config
(not yet on Bedrock, Vertex or Foundry)Ein Repository, das für andere Coding-Agents eingerichtet ist, funktioniert jetzt in Claude Code ohne CLAUDE.md, ohne Import und ohne Hook. Was die Changelog-Zeile nicht sagt: was passiert, wenn beide Dateien existieren, und welche Sessions das Feature überhaupt nie bekommen.
Was genau hat Anthropic ausgeliefert?
Eine Einstellung mit vier Werten und einen Standard, der eine Datei wählt, nicht beide. Unter claude-md-or-agents-md (dem Standard) liest Claude deine CLAUDE.md-Dateien, oder deine AGENTS.md-Dateien, falls es im Arbeitsverzeichnis oder darüber keine CLAUDE.md, .claude/CLAUDE.md oder CLAUDE.local.md gibt. claude-md-and-agents-md liest beide, pro Verzeichnis zuerst die CLAUDE.md. claude-md stellt das alte Verhalten wieder her, und managed-only lädt beim Start nur die verwaltete Datei der Organisation und das Auto-Memory.
Deine ~/.claude/CLAUDE.md, die verwaltete CLAUDE.md und .claude/rules/ zählen bei der Prüfung nicht mit. Sie laden also weiterhin neben AGENTS.md. Und in Projekt- und lokalen Settings-Dateien wird die Einstellung ignoriert; sie lebt in den User-Settings, in einer --settings-Datei oder in einer Managed Policy. Ein geklontes Repository kann sich nicht selbst in den Modus mit beiden Dateien schalten.
Ist der Standard ein Merge oder ein Fallback?
Ein Fallback. Im August habe ich argumentiert, dass Instruktionsdateien Adressierung sind, keine Fragmentierung: Ein Import setzt Schichten zusammen, ein Fallback liest eine Datei und lässt die andere fallen. Der Standard macht genau das auf der Projektebene. Die Operator-Ebene bleibt erhalten, und das ist richtig so, aber zwischen CLAUDE.md und AGENTS.md entscheidet, was auf der Platte liegt.
Das hat eine scharfe Kante, auf die die Doku selbst hinweist. CLAUDE.local.md zählt mit. Wer in einem AGENTS.md-Projekt eine CLAUDE.local.md anlegt, um persönliche, nicht committete Notizen abzulegen, sorgt dafür, dass Claude die AGENTS.md des Teams nicht mehr liest. Nur für diese Person, ohne Fehlermeldung. Das Projekt hat sich nicht verändert, nur eine per gitignore ausgeschlossene Datei eines Entwicklers, und die Anweisungen des Teams sind an diesem einen Arbeitsplatz verschwunden.
Der Modus mit beiden Dateien löst das auch nicht. Er hängt zusammen, CLAUDE.md vor AGENTS.md, und die Doku sagt an anderer Stelle offen, was bei Konflikten passiert: Widersprechen sich zwei Regeln, nimmt Claude womöglich irgendeine davon. Reihenfolge im Kontextfenster ist keine Rangfolge. Im August habe ich einer zusammengeführten Datei eine Regel zugestanden, die Reihenfolge im Dokument. Laut Doku gilt nicht einmal diese Regel. Die Frage, die mein August-Text offen gelassen hat, welche Datei gewinnt und warum, ist jetzt eine Ebene tiefer offen: zwischen zwei Projektdateien statt zwischen Projekt und Operator.
Wo funktioniert es stillschweigend nicht?
In jeder Session, die keine Feature-Flags von Anthropic abruft. Das betrifft Amazon Bedrock, andere Drittanbieter und Sessions mit abgeschalteter Telemetrie. Außerdem die erste Session nach der Installation oder dem Upgrade auf die Version, die das Feature bringt, Setups mit disableAllHooks oder allowManagedHooksOnly und jede Session, in der das eingebaute Plugin agents-md deaktiviert ist. In all diesen Fällen liest Claude nur CLAUDE.md, und die Einstellung taucht in /config gar nicht erst auf.
Dasselbe Repository kann zwei Teammitgliedern also unterschiedliche Projektanweisungen geben, je nach Provider, Telemetrie-Einstellung oder danach, ob es ihre erste Session mit der neuen Version ist. Für ein Team ist das der wichtigere Satz im Changelog, und er steht nicht im Changelog.
Reißt das eine neue Vertrauenslücke auf?
Kaum. Ein Repository konnte schon immer eine CLAUDE.md mitbringen, also verschafft AGENTS.md dem Modell keine neue Autorität. Externe @path-Importe in einer AGENTS.md lösen nicht einmal den Bestätigungsdialog aus; sie laden nur, wenn du externe Importe für dieses Projekt schon freigegeben hast.
Was sich ändert, ist die Sichtbarkeit. Der Standard zeigt in einer interaktiven Session einen einzeiligen Hinweis, wenn er AGENTS.md lädt, aber die Datei erscheint weder in /memory noch in der Liste Memory files in /context, und InstructionsLoaded-Hooks feuern für sie nicht. Wenn dein Instruktions-Audit auf diesen Hook baut, taucht dieser Ladeweg nie im Log auf. Der Hook beobachtet ohnehin nur und kann das Laden nicht blockieren. Das ist der Unterschied zwischen Log und Gate, den ich gezogen habe, als ich schrieb, dass ein Prompt keine Invariante ist. Ein Repo, das für einen anderen Agent geschrieben wurde, erreicht Claude jetzt über genau den Weg, den dein Audit nicht beobachtet. Eines meiner eigenen Repos ist genau so: eine AGENTS.md mit der Überschrift "Codex Instructions" und keine CLAUDE.md, womit es in jeder unterstützten Session für den Fallback infrage kommt.
Was sollte ein Team mit mehreren Tools tun?
Beim Einzeiler-Import bleiben. Eine CLAUDE.md mit
@AGENTS.md
## Claude Code
(Claude-specific lines go here)lädt AGENTS.md überall dort, wo Projektanweisungen geladen werden, auch auf Bedrock und in Sessions ohne Telemetrie, erscheint in /context, löst InstructionsLoaded aus, wenn deine Hooks aktiv sind, und lässt Platz für Zeilen, die nur für Claude gedacht sind. Die Doku bestätigt, dass Claude AGENTS.md mit diesem Import unter keiner Einstellung doppelt liest. Eine Grenze gibt es: Ein Import holt nur die Datei, die er nennt. Sobald eine CLAUDE.md existiert, findet der Standard auch keine AGENTS.md-Dateien in Unterverzeichnissen mehr. Eine verschachtelte AGENTS.md braucht also einen eigenen CLAUDE.md-Import daneben, oder die Einstellung mit beiden Dateien. Der native Fallback ist ein guter Standard für jemanden, der dein Repo einmal öffnet. Für die Leute, die jeden Tag darin arbeiten, schlägt ein expliziter Verweis immer noch eine Regel, die davon abhängt, welche Dateien gerade herumliegen.