- scripts/check-loc.sh: LOC budget checker (500 LOC hard cap) - .claude/rules/architecture.md: split triggers, patterns per language - .claude/rules/loc-exceptions.txt: documented escape hatches - AGENTS.python.md: FastAPI conventions (routes thin, service layer) - AGENTS.go.md: Go/Gin conventions (handler ≤40 LOC) - AGENTS.typescript.md: Next.js conventions (page.tsx ≤250 LOC, colocation) - CLAUDE.md extended with guardrail section + commit markers 273 files currently exceed 500 LOC — to be addressed phase by phase. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
994 B
Markdown
37 lines
994 B
Markdown
# AGENTS.go.md — Go/Gin Konventionen
|
|
|
|
## Architektur
|
|
|
|
- `handlers/`: HTTP Transport nur — Decode, Validate, Call Service, Encode Response
|
|
- `service/` oder `usecase/`: Business Logic
|
|
- `repo/`: Storage/Integration
|
|
- `model/` oder `domain/`: Domain Entities
|
|
- `tests/`: Table-driven Tests bevorzugen
|
|
|
|
## Regeln
|
|
|
|
1. Handler ≤40 LOC — nur Decode → Service → Encode
|
|
2. Business Logic NICHT in Handlers verstecken
|
|
3. Grosse Handler nach Resource/Verb splitten
|
|
4. Request/Response DTOs nah am Transport halten
|
|
5. Interfaces nur an echten Boundaries (nicht ueberall fuer Mocks)
|
|
6. Keine Giant-Utility-Dateien
|
|
7. Generated Files nicht manuell editieren
|
|
|
|
## Split-Trigger
|
|
|
|
- Handler-Datei ueberschreitet 400-500 LOC
|
|
- Unrelated Endpoints zusammengruppiert
|
|
- Encoding/Decoding dominiert die Handler-Datei
|
|
- Service-Logik und Transport-Logik gemischt
|
|
|
|
## Verifikation
|
|
|
|
```bash
|
|
gofmt -l . | grep -q . && exit 1
|
|
go vet ./...
|
|
golangci-lint run --timeout=5m
|
|
go test -race ./...
|
|
go build ./...
|
|
```
|