Files
jetson-ai-ollama/manifests/requirements.md
Tarik Moussa accd61625c docs(reconciliation): sync planning repo to ansible-eulernest reality
Plan ↔ reality abgleich nach tatsächlicher Implementierung in ansible-eulernest:

- CONVENTIONS.md: 4 Profile (+ coder), Registry-Pull statt GGUF/DVC,
  SoT-Pointer auf ansible-eulernest, JP7.2 Source-Build-Note
- STATE.md: W2–W4 done (via ansible-eulernest), W1/W5/W6 dropped,
  N1–N3 (GPU-metric, benchmarks, smoke-tests) als nächste Schritte
- ROADMAP.md: Abgeschlossene Items referenzieren ansible-eulernest-Rollen;
  neue Items N1–N3 für verbleibende Arbeit
- manifests/requirements.md: R-03–R-06 done, R-02/R-07/R-08 drift
- docs/adr/0003: Registry-Pull > GGUF; ansible-eulernest als Impl-SoT
- sessions/2026-06-14-reconciliation.md: Session-Log

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 14:45:40 +02:00

3.0 KiB

Requirements-Manifest (kalt verifizierbar)

Eine Zeile je Erfolgskriterium — der kalt lesbare Review (siehe REVIEW.md). Der Reviewer prüft Spalte für Spalte; done-Zeilen müssen ihren Prüfbefehl bestehen.

Wichtig: done-Items mit Pfad ansible-eulernest/... sind in der Implementierung (~/Desktop/ansible-eulernest) verifizierbar, nicht in diesem Repo.

ID Anforderung Datei(en) Test/Prüfbefehl Status
R-01 Vertrag zuerst: CONVENTIONS + disjunkte Ownership CONVENTIONS.md, STATE.md grep -q qwen-light CONVENTIONS.md done
R-02 Vier Profile über Ansible-Vars (light/gemma/heavy/coder) ansible-eulernest/group_vars/jetson/vars.yml grep -q coder ansible-eulernest/group_vars/jetson/vars.yml drift
R-03 q8_0-KV + Flash Attention + MAX_LOADED_MODELS=1 ansible-eulernest/roles/ollama/templates/ollama-override.conf.j2 grep -q q8_0 ansible-eulernest/roles/ollama/templates/ollama-override.conf.j2 done
R-04 num_ctx je Profil explizit (light/gemma/coder 16384, heavy 8192) ansible-eulernest/group_vars/jetson/vars.yml grep -q num_ctx ansible-eulernest/group_vars/jetson/vars.yml done
R-05 GPU-Nutzung verifiziert (GPU-Gate); Ollama nur LAN + Firewall ansible-eulernest/roles/ollama/tasks/main.yml grep -q size_vram ansible-eulernest/roles/ollama/tasks/main.yml done
R-06 Metrik-Endpoint über Exporter (:8000/metrics) ansible-eulernest/roles/ollama_exporter/files/ollama_exporter.py ls ansible-eulernest/roles/ollama_exporter/files/ollama_exporter.py done
R-07 Keine Secrets im Klartext; Secrets im Vault ansible-eulernest/group_vars/jetson/vault.yml ansible-vault view ansible-eulernest/group_vars/jetson/vault.yml --vault-password-file ansible-eulernest/.vault_pass drift
R-08 Modell-Source-of-Truth reproduzierbar ansible-eulernest/group_vars/jetson/vars.yml grep -q ollama_profiles ansible-eulernest/group_vars/jetson/vars.yml drift
R-09 Smoke-Tests: alle 5 Endpoints von außen verifiziert scripts/smoke-test.sh (→ N3 ROADMAP) bash scripts/smoke-test.sh todo
R-10 Kalt verifizierbar; Tests kodieren Kriterien REVIEW.md, scripts/smoke-test.sh bash -n scripts/smoke-test.sh todo

Status: todo · in_progress · done · drift (Implementierung abweichend von ursprünglicher Planung, aber funktional korrekt).

Drift-Erklärungen

R-02 drift: Ursprünglich drei Modelfiles (GGUF-basiert). Implementiert als vier Ollama-Profile via Ansible-Vars + Registry-Pull. Funktional äquivalent; Datei-Pfade anders. Siehe ADR-0003.

R-07 drift: .env.example nie erstellt. Secrets leben in Ansible-Vault — sicherer als Platzhalter-File. Keine offene Lücke.

R-08 drift: DVC nie implementiert. Ansible-Vars (ollama_profiles[].base) sind die SoT für Modell-Identität. Registry-Pulls statt GGUFs. Versionspinning fehlt (unpinned risk). Mitigation: Digest-Check im Pre-Demo-Checklist. Siehe ADR-0003.