- 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>
994 B
994 B
AGENTS.go.md — Go/Gin Konventionen
Architektur
handlers/: HTTP Transport nur — Decode, Validate, Call Service, Encode Responseservice/oderusecase/: Business Logicrepo/: Storage/Integrationmodel/oderdomain/: Domain Entitiestests/: Table-driven Tests bevorzugen
Regeln
- Handler ≤40 LOC — nur Decode → Service → Encode
- Business Logic NICHT in Handlers verstecken
- Grosse Handler nach Resource/Verb splitten
- Request/Response DTOs nah am Transport halten
- Interfaces nur an echten Boundaries (nicht ueberall fuer Mocks)
- Keine Giant-Utility-Dateien
- 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
gofmt -l . | grep -q . && exit 1
go vet ./...
golangci-lint run --timeout=5m
go test -race ./...
go build ./...