Regeln
Legen Sie benutzerdefinierte Anweisungen fur opencode fest.
Sie konnen benutzerdefinierte Anweisungen fur opencode bereitstellen, indem Sie eine AGENTS.md-Datei erstellen. Dies ist ahnlich wie CLAUDE.md oder die Regeln von Cursor. Sie enthalt Anweisungen, die in den Kontext des LLM aufgenommen werden, um sein Verhalten fur Ihr spezifisches Projekt anzupassen.
Initialisieren
Um eine neue AGENTS.md-Datei zu erstellen, konnen Sie den Befehl /init in opencode ausfuhren.
Dies wird Ihr Projekt und seinen gesamten Inhalt scannen, um zu verstehen, worum es sich bei dem Projekt handelt, und eine AGENTS.md-Datei damit generieren. Dies hilft opencode, besser durch das Projekt zu navigieren.
Wenn Sie bereits eine AGENTS.md-Datei haben, wird versucht, sie hinzuzufugen.
Beispiel
Sie konnen diese Datei auch manuell erstellen. Hier ist ein Beispiel fur einige Dinge, die Sie in eine AGENTS.md-Datei einfugen konnen.
# SST v3 Monorepo-Projekt
Dies ist ein SST v3 Monorepo mit TypeScript. Das Projekt verwendet Bun Workspaces fur die Paketverwaltung.
## Projektstruktur
- `packages/` - Enthalt alle Workspace-Pakete (functions, core, web, etc.)- `infra/` - Infrastrukturdefinitionen nach Dienst aufgeteilt (storage.ts, api.ts, web.ts)- `sst.config.ts` - Haupt-SST-Konfiguration mit dynamischen Importen
## Codestandards
- Verwenden Sie TypeScript mit aktiviertem striktem Modus- Gemeinsamer Code geht in `packages/core/` mit ordnungsgemaber Exportkonfiguration- Funktionen gehen in `packages/functions/`- Infrastruktur sollte in logische Dateien in `infra/` aufgeteilt werden
## Monorepo-Konventionen
- Importieren Sie gemeinsame Module mithilfe von Workspace-Namen: `@my-app/core/example`Wir fugen hier projektspezifische Anweisungen hinzu und diese werden uber Ihr Team geteilt.
Typen
opencode unterstutzt auch das Lesen der AGENTS.md-Datei aus mehreren Orten. Dies dient verschiedenen Zwecken.
Projekt
Die wir oben gesehen haben, bei denen die AGENTS.md im Projektstammverzeichnis platziert wird, sind projektspezifische Regeln. Diese gelten nur, wenn Sie in diesem Verzeichnis oder seinen Unterverzeichnissen arbeiten.
Global
Sie konnen auch globale Regeln in einer Datei ~/.config/opencode/AGENTS.md haben. Diese wird uber alle opencode-Sessions hinweg angewendet.
Da dies nicht in Git committet oder mit Ihrem Team geteilt wird, empfehlen wir, dies zu verwenden, um alle personlichen Regeln anzugeben, die der LLM befolgen soll.
Prioritat
Wenn opencode startet, sucht es nach :
- Lokalen Dateien durch aufwarts navigieren ab dem aktuellen Verzeichnis
- Globalen Dateien durch Uberprufen von
~/.config/opencode/AGENTS.md
Wenn Sie sowohl globale als auch projektspezifische Regeln haben, wird opencode diese kombinieren.
Benutzerdefinierte Anweisungen
Sie konnen benutzerdefinierte Anweisungsdateien in Ihrer opencode.json oder der globalen ~/.config/opencode/opencode.json angeben. Dies erlaubt Ihnen und Ihrem Team, vorhandene Regeln wiederzuverwenden, anstatt sie in AGENTS.md zu duplizieren.
Beispiel:
{ "$schema": "https://opencode.ai/config.json", "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]}Sie konnen auch Remote-URLs verwenden, um Anweisungen aus dem Web zu laden.
{ "$schema": "https://opencode.ai/config.json", "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]}Remote-Anweisungen werden mit einem Timeout von 5 Sekunden abgerufen.
Alle Anweisungsdateien werden mit Ihren AGENTS.md-Dateien kombiniert.
Referenzierung externer Dateien
Wahrend opencode Dateireferenzen in AGENTS.md nicht automatisch analysiert, konnen Sie eine ahnliche Funktionalitat auf zwei Arten erreichen:
Verwendung von opencode.json
Der empfohlene Ansatz besteht darin, das Feld instructions in opencode.json zu verwenden:
{ "$schema": "https://opencode.ai/config.json", "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]}Manuelle Anweisungen in AGENTS.md
Sie konnen opencode beibringen, externe Dateien zu lesen, indem Sie explizite Anweisungen in Ihrer AGENTS.md bereitstellen. Hier ist ein praktisches Beispiel:
# TypeScript-Projektregeln
## Externes Dateiladen
KRITISCH: Wenn Sie auf eine Dateireferenz stoben (z. B. @rules/general.md), verwenden Sie Ihr Read-Tool, um sie bei Bedarf zu laden. Sie sind relevant fur die SPEZIFISCHE Aufgabe zur Hand.
Anweisungen:
- Laden Sie NICHT alle Referenzen im Voraus - verwenden Sie Lazy Loading basierend auf dem tatsachlichen Bedarf- Nach dem Laden behandeln Sie den Inhalt als obligatorische Anweisungen, die Standardwerte uberschreiben- Folgen Sie bei Bedarf Referenzen rekursiv
## Entwicklungsrichtlinien
Fur TypeScript-Codestil und Best Practices: @docs/typescript-guidelines.mdFur React-Komponentenarchitektur und Hooks-Muster: @docs/react-patterns.mdFur REST-API-Design und Fehlerbehandlung: @docs/api-standards.mdFur Teststrategien und Abdeckungsanforderungen: @test/testing-guidelines.md
## Allgemeine Richtlinien
Lesen Sie die folgende Datei sofort, da sie fur alle Workflows relevant ist: @rules/general-guidelines.md.Dieser Ansatz erlaubt es Ihnen:
- Modulare, wiederverwendbare Regeldateien zu erstellen
- Regeln uber Projekte hinweg uber Symlinks oder Git-Submodule zu teilen
- AGENTS.md pragnant zu halten, wahrend detaillierte Richtlinien referenziert werden
- Sicherzustellen, dass opencode Dateien nur bei Bedarf fur die spezifische Aufgabe laadt