# 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 ./... ```