agents-md-setup
Mache AGENTS.md zur einzigen Quelle der Wahrheit für Agenten-/Projektanweisungen
und verweise mit Symlink aus jeder Tool-Datei darauf. Eine Datei, von allen Agenten gelesen —
keine Duplikation, keine Abweichung.
Warum dieses Layout
AGENTS.mdist der aufkommende tool-übergreifende Standard (Cursor, Codex und andere lesen es).- Claude Code liest
CLAUDE.md. Du kannst den Harness nicht über einen Prompt oder ein Skill dazu bringen, stattdessenAGENTS.mdzu lesen – aber ein SymlinkCLAUDE.md → AGENTS.mdbewirkt, dass ClaudeCLAUDE.mdöffnet und den Inhalt vonAGENTS.mderhält. Das ist der Mechanismus; sonst ist nichts nötig. - Ergebnis: nur
AGENTS.mdbearbeiten; jeder Agent bleibt synchron.
Entscheidung: Was ist bereits vorhanden?
- Keine der beiden Dateien →
AGENTS.mdaus der Vorlage unten erstellen. - Nur
CLAUDE.md(eine echte Datei) → zur Quelle der Wahrheit machen:git mv CLAUDE.md AGENTS.md # Verlauf beibehalten (oder: mv, falls nicht versioniert) - Nur
AGENTS.md→ so belassen (gut). - Beide existieren als echte Dateien → NICHT blind überschreiben. Vergleiche sie; führe
sie in
AGENTS.mdzusammen (sie gewinnt als kanonische Datei), bestätige mit dem Benutzer, falls die Inhalte abweichen, dann entferne das eigenständigeCLAUDE.md. CLAUDE.mdist bereits ein Symlink →AGENTS.md→ bereits erledigt; Stopp.
Symlink erstellen
ln -s AGENTS.md CLAUDE.md
git add AGENTS.md CLAUDE.md # Git speichert es als echten Symlink (Modus 120000)
Überprüfen, dass es als Symlink und nicht als Kopie versioniert wurde:
git ls-files -s CLAUDE.md # Modus sollte 120000 sein
Optional andere Werkzeuge auf dieselbe Datei verweisen lassen:
ln -s AGENTS.md GEMINI.md
mkdir -p .github && ln -s ../AGENTS.md .github/copilot-instructions.md
Monorepos (Turborepo / Workspaces)
Ein AGENTS.md im Stammverzeichnis für repo-weite Konventionen (mit dem CLAUDE.md-Symlink
wie oben) behalten, dann ein bereichsspezifisches AGENTS.md in jedem Workspace hinzufügen,
das eigene Regeln benötigt — apps/<app>/AGENTS.md, packages/<pkg>/AGENTS.md — jedes mit
einem eigenen Symlink im selben Ordner, erstellt von diesem Verzeichnis aus, sodass das Ziel
relativ ist:
cd apps/web && ln -s AGENTS.md CLAUDE.md # CLAUDE.md -> ./AGENTS.md (gleicher Ordner)
- Claude Code liest das nächstgelegene
CLAUDE.mdfür die Dateien, an denen es arbeitet, daher ergänzen verschachtelte Dateien das Stammverzeichnis, anstatt es zu ersetzen. Lege repo-weite Dinge im Stamm ab; nur die paketspezifische Abweichung in jedem Workspace — das Stammverzeichnis nicht duplizieren. - Mache jeden Symlink relativ zu seinem eigenen Ordner (
ln -s AGENTS.md CLAUDE.mdwährendcdin den Workspace), niemals zurück zum Stamm zeigend — relative Symlinks im selben Ordner überleben Checkouts/Verschiebungen. - Turborepo selbst liest diese Dateien nicht (sie sind für Agenten), daher ist keine
Änderung an
turbo.jsonnötig. Falls du sie sichtbar machen möchtest, kannst du die Konvention trotzdem imAGENTS.mddes Stamms vermerken.
README
Falls es keine README.md gibt, erstelle eine minimale (Projektname, einzeilige
Beschreibung, Setup-/Ausführungsbefehle). Halte menschenorientierte Dokumentation in README.md
und Agentenanweisungen in AGENTS.md – vermische die beiden nicht.
Windows-/CI-Hinweis (wichtig)
Git-Symlinks benötigen core.symlinks=true und können auf Windows-Checkouts oder
manchen CI-Runnern brechen (der Symlink landet als Textdatei mit dem Inhalt AGENTS.md).
Falls das Projekt Windows unterstützt, verwende bevorzugt den Fallback: eine winzige echte
CLAUDE.md, deren gesamter Inhalt ein Verweis ist —
Siehe [AGENTS.md](./AGENTS.md) für Projekt- und Agentenanweisungen.
— in dem Wissen, dass es manuell synchron gehalten werden muss (oder über eine Prüfung). Symlink ist überall dort besser, wo Symlinks zuverlässig sind.
Später nicht rückgängig machen
Wenn du siehst, dass CLAUDE.md ein Symlink auf AGENTS.md ist, ist das beabsichtigt —
editiere AGENTS.md, ersetze den Symlink niemals durch eine Kopie.
AGENTS.md-Vorlage
# AGENTS.md
Anweisungen für KI-Agenten und Menschen, die in diesem Repository arbeiten.
`CLAUDE.md` ist ein Symlink auf diese Datei; diese Datei ist die Quelle der Wahrheit.
## Projektübersicht
<was dies ist, in 1–3 Sätzen>
## Befehle
- installieren: `…`
- entwickeln: `…`
- bauen: `…`
- testen / linten / formatieren: `…`
## Konventionen
- <Codestil, Sprache/Runtime, Formatierung>
- Commit-Nachrichten: <z. B. Conventional Commits>
- <alles, was ein Agent nicht tun darf oder immer tun muss>
## Layout
<wichtige Verzeichnisse und was wo liegt>