feat: bootstrap jetson-ai-ollama from agent-swarm template
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>
This commit is contained in:
2026-06-03 06:55:39 +02:00
commit efee259d01
43 changed files with 1563 additions and 0 deletions

46
README.md Normal file
View File

@@ -0,0 +1,46 @@
# Jetson AI / Ollama (MLOps)
Lokal laufendes **Single-User-AI-System** auf einem **Jetson Orin Nano Super (8 GB)**:
Ollama-Daemon serviert drei Modell-Profile (OpenAI-kompatibel), ein schlanker
Exporter-Sidecar exponiert `/metrics`. Modellwechsel passiert **nativ über den
Modellnamen** — kein eigener Swapper, kein Gateway (siehe `docs/adr/0002-ollama-native.md`).
- **Profile:** `qwen-light` (Daily-Driver) · `gemma` (Creative/Chat, multimodal) ·
`qwen-heavy` (harte Reasoning-Fälle). `OLLAMA_MAX_LOADED_MODELS=1` hält genau ein
Modell resident → drei Profile sind quasi gratis.
- **Optimierung:** `q8_0`-KV-Cache + Flash Attention, `num_ctx` je Profil explizit.
- **Daten:** DVC ist Modell-Source-of-Truth; Ollamas Blob-Store nur Laufzeit-Cache.
> **Scope:** Dieses Repo deckt **nur den Jetson** ab. nginx (TLS + OAuth) und
> Prometheus/Grafana laufen off-box. Ollama hat keine eigene Auth → nur ans LAN
> binden, Firewall auf den Proxy. Voller Vertrag: [`CONVENTIONS.md`](CONVENTIONS.md).
---
## Arbeitsmodell (agent-swarm)
Dieses Repo wurde aus dem **agent-swarm-Template** gebootstrapt: ein Leader/Worker-
Agentensystem, dessen Stand komplett auf Disk lebt — kalt lesbar ohne Vorkontext.
Methodik: [`docs/methodology.md`](docs/methodology.md) · Herkunft:
[`docs/about-template.md`](docs/about-template.md).
| Wo | Datei |
|---|---|
| Stand & nächster Schritt | [`STATE.md`](STATE.md) |
| Plan / Board / Ready-Set (DAG) | [`ROADMAP.md`](ROADMAP.md) |
| Gemeinsamer Vertrag | [`CONVENTIONS.md`](CONVENTIONS.md) |
| Kalt-Review-Einstieg | [`REVIEW.md`](REVIEW.md) |
| Dispatch-fertige Worker-Prompts | [`session-prompts/`](session-prompts/) |
## Sofort bauen
Die Planung ist fertig (W1W6 im Board). So baust du es:
1. **W1 zuerst** — frische Session öffnen, Modell **Sonnet**, Inhalt von
[`session-prompts/W1.md`](session-prompts/W1.md) einfügen → legt das Grundgerüst an.
2. **Review-Gate** (Opus, kalt) → mergen → W1 im Board auf `✅`.
3. **W2W5 parallel** — je eigene Session (`session-prompts/W2.md``W5.md`),
disjunkte Datei-Ownership, laufen unabhängig.
4. **W6 zuletzt** — Docs, integriert die Realität der anderen Pakete.
Jeder Worker-Prompt ist self-contained (Modell, Branch, Dateien, Akzeptanzkriterien,
Abschluss-Gates). Die Gates (`scripts/gate-*.sh`) sind aktiv und prüfen Ownership,
Hygiene und Doku-Drift bei jedem Schritt.