Some checks failed
gates / quality (push) Has been cancelled
Leader-Bootstrap (Planung) aus Template + Jetson-Meta-Prompt:
- ROADMAP-Board W1-W6 als Abhaengigkeits-DAG (Ready-Set = {W1})
- STATE mit disjunkter Datei-Ownership W2-W6
- CONVENTIONS Projekt-Vertrag (Profile, Pfade, Ports, Daemon-Env, num_ctx, DVC, Scope)
- manifests/requirements.md = kalt verifizierbares Review-Manifest (R-01..R-10)
- REVIEW.md Kalt-Review-Einstieg; ADR 0002 (Ollama-nativ, kein Swapper/Gateway)
- session-prompts/W1..W6 dispatch-fertig; .gitignore um Jetson-Ignores erweitert
- examples/walkthrough entfernt (Projekt hat eigenes gefuelltes Board)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
65 lines
3.4 KiB
Markdown
65 lines
3.4 KiB
Markdown
# 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/<paket>`, `audit/<scope>`, `fix/<scope>`.
|
|
- **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> <noreply@anthropic.com>`
|
|
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-Vertrag: Jetson AI / Ollama
|
|
Verbindlich für alle Worker — Single Source of Truth dieser Werte. Änderungen nur per ADR.
|
|
|
|
- **Hardware:** Jetson Orin Nano Super 8 GB (~7,4 GB nutzbar). Single-User → latenz-,
|
|
nicht durchsatzgebunden. Kein Batching, keine Inferenz-Skalierung.
|
|
- **Profilnamen (Ollama-Modellnamen):** `qwen-light`, `gemma`, `qwen-heavy`.
|
|
- **Pfade:** GGUF unter `/opt/jetson-ai/models/<name>.gguf`; Ollama-Store
|
|
`/opt/ollama/models` (nur Laufzeit-Cache).
|
|
- **Ports / Endpoints:** Ollama `11434` (OpenAI `/v1/chat/completions`, Status
|
|
`/api/ps`); Exporter `/metrics` auf Port `8000`.
|
|
- **Daemon-Env (in `ollama/systemd/ollama.service.d/override.conf`):**
|
|
`OLLAMA_FLASH_ATTENTION=1`, `OLLAMA_KV_CACHE_TYPE=q8_0`,
|
|
`OLLAMA_MAX_LOADED_MODELS=1` (genau ein Modell resident, 8-GB-Schutz),
|
|
`OLLAMA_KEEP_ALIVE=30s`, `OLLAMA_MODELS=/opt/ollama/models`,
|
|
`OLLAMA_HOST=0.0.0.0:11434` (nur LAN, Firewall auf den Proxy beschränken).
|
|
- **`num_ctx` je Modelfile explizit** (Ollama kürzt sonst still): light/gemma 16384,
|
|
heavy 8192.
|
|
- **Env-Variablen Single Source:** `.env.example` — nur Platzhalter, **nie Secrets**.
|
|
- **DVC = Modell-Source-of-Truth.** `build-models.sh` baut alle drei Profile
|
|
reproduzierbar aus den DVC-getrackten GGUFs.
|
|
- **Scope-Grenze (out of repo):** nginx-Reverse-Proxy (TLS + OAuth) und
|
|
Prometheus/Grafana laufen **off-box**. Ollama hat **keine eigene Auth** → nie
|
|
direkt ins Internet binden.
|
|
- **Code:** Type Hints, Docstrings.
|