AGENTS.md
Lege deine Coding-Konventionen in AGENTS.md ab. HeyDeer prüft Pull Requests anhand dieser Konventionen, und Coding-Agenten, die das offene Format AGENTS.md unterstützen, befolgen sie beim Schreiben von Code.
Was hineingehört
Schreibe die Konventionen auf, die ein neues Teammitglied kennen müsste: wie der Code organisiert ist, wie benannt wird, welche Hilfsfunktionen und Bibliotheken zum Einsatz kommen und wie Fehler und Tests gehandhabt werden.
- Lass weg, was jedes erfahrene Teammitglied ohnehin weiß, etwa „Schreib lesbaren Code“. HeyDeer und Coding-Agenten folgen gängiger Praxis bereits.
- Schreibe eine Konvention pro Aufzählungspunkt, gegliedert unter wenigen Überschriften.
- Nenne die Pfade, Funktionen und Bibliotheken, um die es in der jeweiligen Konvention geht.
- Nenne die Begründung, wenn sie nicht offensichtlich ist, damit HeyDeer auch Fälle beurteilen kann, die die Konvention nicht ausdrücklich regelt.
- Hinweise, die nur für die Prüfung gelten, etwa was HeyDeer außen vor lassen soll, gehören in REVIEW.md oder die Prüfanweisungen. Eine Anforderung, die HeyDeer in jedem passenden Pull Request verifizieren muss, gehört in eine Repository-Prüfung.
AGENTS.md
# Conventions
## Structure
- API handlers live in src/api/, one file per resource.
- Background jobs live in src/jobs/ and are idempotent, because
the queue can run a job twice.
## Helpers
- Retries use retry() from src/lib/retry.ts, which adds backoff.
- Read the current time through now() from src/lib/clock.ts, so
tests can set it.
## Errors and tests
- Return client errors through AppError with a stable code, such
as new AppError('INVOICE_NOT_FOUND', 404).
- Each new API handler has a test in tests/api/ that runs against
a real database.Dateien im Stammverzeichnis und in Unterverzeichnissen
Lege AGENTS.md im Stammverzeichnis des Repositorys an. Ein Verzeichnis, das eigene Konventionen braucht, kann eine eigene Datei haben, etwa src/payments/AGENTS.md.
Für jede Datei, die HeyDeer liest, gelten die AGENTS.md-Dateien vom Stammverzeichnis des Repositorys bis zum Verzeichnis dieser Datei. Eine tiefer liegende Datei ergänzt die darüberliegenden und hat bei Widersprüchen Vorrang.
| Geänderte Datei | Geltende Dateien, der Reihe nach |
|---|---|
src/api/invoices.ts | AGENTS.md |
src/payments/refund.ts | AGENTS.md, src/payments/AGENTS.md |
src/payments/AGENTS.md
# Payments
- Every call to chargeCard() passes an idempotency key derived
from the order ID, so a retried request can't charge twice.
- Amounts are integers in cents. Never use floating point for money.HeyDeer liest diese Dateien aus dem Pull Request, sodass ein Pull Request, der sie bearbeitet, mit seiner eigenen Version geprüft wird. Siehe Was ein Pull Request ändern kann.
CLAUDE.md verwenden
In einem Verzeichnis ohne AGENTS.md liest HeyDeer stattdessen CLAUDE.md. Enthält ein Verzeichnis beide Dateien, liest HeyDeer nur AGENTS.md.
Grenzen
- HeyDeer liest bis zu 32 KiB dieser Dateien, vom Stammverzeichnis bis zur tiefsten geltenden Datei. Eine Datei, die das Limit überschreitet, wird abgeschnitten, und tiefer liegende Dateien bleiben unberücksichtigt.
- HeyDeer folgt keinen Importen wie
@docs/testing.mdin CLAUDE.md. Schreibe die Konventionen direkt in die Datei.