# CONVENTIONS.md — gemeinsamer Vertrag Verbindlich für **alle** Aktoren. Änderungen nur per ADR. ## Ownership - **Kein Paket editiert Dateien eines anderen.** Integration & Konfliktlösung ausschließlich durch den Leader. - Jede Datei hat genau ein zuständiges Worker-Paket (siehe `STATE.md`). ## Git & Commits - Branch je Paket: `feat/`, `audit/`, `fix/`. - **Conventional Commits:** `feat:`, `fix:`, `docs:`, `test:`, `refactor:`, `chore:`. Der Git-Log ist Teil der Dokumentation. - **Model-Attribution:** jeder Commit eines Agenten enthält einen Trailer: `Co-Authored-By: Claude ` Tier = Capability-Bezeichnung des eingesetzten Modells, z. B. „Sonnet 4.6" für mittlere Kapazität oder „Opus 4.8" für maximale — nicht der interne Modell-Name. Gilt für das zum Commit-Zeitpunkt eingesetzte Modell. Ermöglicht nachträgliche Rückverfolgung welche Kapazitätsstufe was entschieden hat. ## Review-Gate - **Jede Implement-Session wird von einer separaten high-capacity-Session reviewed** (aktuell: Opus-Tier). Der Review läuft kalt (eigene Session, kein Vorkontext), prüft den Diff, und gibt APPROVE oder CHANGES-REQUESTED zurück. - Implement-Kapazitätsstufe ≠ Review-Kapazitätsstufe: ein Modell, das sich selbst reviewed, findet systematisch weniger als ein unabhängiger Pass auf höchster Stufe. - Konkrete Tier-Zuordnungen: `docs/roles/model-routing.md`. - Review-Gate-Checkliste: `docs/roles/reviewer.md`. ## Dokumentation - **Single Source of Truth** je Information — keine Duplikate über Docs hinweg. - Doku ist knapp: ein Dokument, das man nicht mehr liest, driftet. Größenbudget pro Doc beachten (Faustregel < 200 Zeilen). - Jede Code-Änderung passt das passende Doc + Manifest **in derselben Session** an. ## Definition of Done 1. Manifest-Eintrag (`manifests/requirements.md`) mit Test + Status `done`. 2. Tests grün. 3. Docs aktuell. 4. `STATE.md` aktualisiert. 5. Session-Log geschrieben. 6. Quality-Gate `PASS`. ## Projekt: tg-bot-jetson (projektspezifisch — Änderungen per ADR) - **Sprache / Runtime:** Python 3.11+ - **Paketmanagement:** `uv` + `pyproject.toml`; Lock-Datei `uv.lock` committen. - **Bot-Framework:** `python-telegram-bot` v21 (asyncio) — ADR-0002. - **HTTP-Client:** `httpx` (async) für Modell-Connector. - **Test-Befehl:** `uv run pytest tests/ -v` - **Lint:** `uv run ruff check src/ tests/` - **Config-Konvention:** Alle Secrets/Einstellungen via Umgebungsvariablen; `.env.example` committen, `.env` in `.gitignore` — ADR-0003. - **Spike-Branch:** `spike/` (z. B. `spike/model-api`), wird nach GO/NO-GO verworfen.