# Finale Verdikte — nicht neu aufrollen ohne neuen, belegten Anlass

_Kuratiert 10.07.2026 aus dem Claude-Projektgedächtnis. Jedes Verdikt trägt sein Warum und
(wo sinnvoll) die Wiedervorlage-Bedingung. Wer eines kippen will, braucht eine MESSUNG oder
einen User-Entscheid — kein „Best Practice sagt aber…" (siehe ARBEITSWEISE.md)._

## Richtung & Architektur

- **MC3-Neubau VERWORFEN (03.07.), „MC2 Final" ERSETZT durch „MC2 lebt" (10.07.).**
  Kein Basisstation-Neubau; seit dem Ablösungs-Entscheid wird MC2 über die
  Queue→Karte→Klick-Pipeline weiterentwickelt statt eingefroren. Siehe [ZIELBILD.md](ZIELBILD.md).
- **Agent-Runtime: Hermes bleibt.** ZeroClaw-PoC gebaut + abgerissen (01.07.) — der echte
  Latenz-Fix war das Hirn (gemma→Qwen3.6), nicht die Runtime. (ZeroClaw-Messwerte für den
  Fall „Hermes-Latenz wird wieder Thema": `docs/ZEROCLAW_POC_RESULTS.md`.)
- **Memory-Layer: Mem0 bleibt.** Zep/Letta/Hindsight benchen höher, sind aber schwerer/teils
  closed; Mem0 = beste Framework-Integration + v3-Algorithmus + läuft deployt.
- **Telegram bleibt DER Mobil-Kanal; WhatsApp VERWORFEN (09.07.).** Baileys-Bridge = Meta-ToS-
  Verstoß mit Bann-Risiko auf der Privatnummer + fragiler Dauerprozess; Alarmkette/Crons sind
  simple Bot-API-Calls. Neu bewerten nur bei offizieller Personal-Bot-API.
- **Multi-Profil Lucy/Werkstatt auf der Box: NICHT nötig (09.07.).** `tui_gateway` lädt hart den
  `cli`-Bucket, Lucy läuft über `api_server` — die Trennung existiert auf Platform-Ebene.
  (Das PC-Profil des Hermes Desktop ist ein ANDERER Fall: eigene Maschine.)
- **MoA-Preset NICHT adoptiert.** Lädt mehrere Modell-Slots parallel — RAM ist der Engpass.
  Das sequenzielle Zwei-Kritiker-Gate (Coder-Next + GLM) ist E2E-bewährt und RAM-schonend.
- **worker.sh bleibt; natives `delegate_task` nur für interaktive Arbeit (10.07.).**
  delegate_task kann KEINE Modellwahl pro Aufruf und läuft top-level IMMER background
  (stirbt in der `-z`-Lane mit dem Prozess). `delegation.model: coder` ist live —
  Fan-out funktioniert E2E in langlebigen Sessions (Desktop/Telegram/Chat).
- **Kein heavy/gpt-oss im heißen Pfad.** heavy läuft mit 32k (< Hermes-Floor 64k) und 60 GB
  Kaltladen. Als Ein-Schuss-Completion (Chef-Gutachter, Radar-Analyst, Orchestrator-Planung)
  ok — als delegate_task-Ziel oder Pro-Schritt-Worker nie.

## Engine & Modelle (Box, gfx1151)

- **Vulkan/RADV schlägt ROCm** (+12–22 % tg, Cutover 27.06., mehrfach bestätigt; Recheck-Stand
  09.07.: hält weiter, einziger ROCm-Vorteil = Langkontext-Prefill auf gpt-oss).
  **Wiedervorlage: ROCm-Recheck 20.–25.07.2026** (Box-Reminder gesetzt) — falls dann Bedarf:
  NUR Hybrid für heavy/coder erwägen, **das Hirn bleibt in jedem Szenario auf Vulkan.**
- **Lucys Hirn: Qwen3.6-35B-A3B mit DFlash-Spec-Draft (seit 22.07.)** — löste draft-mtp ab:
  A/B/C prod-gleich gemessen 61,7 (ohne) / 81–83 (MTP) / 86–90 t/s (DFlash), live eingependelt
  89–94. Draft: `giocom-…-DFlash-Q8_0.gguf` (Mainline-kompatibel; abhinand-Konvertierung ist es
  NICHT — fehlendes `target_layers`-Metadatum). Rollback-Backup `config.yaml.bak-dflash-*`.
  KV **q8_0** (Entscheid 07.07.: Qualität > ein paar GB; der q4_k-Commit lief nie live).
  `--parallel 2` = bewusster Trade (Mem0-Lernen blockiert nie den nächsten Voice-Turn).
- **DFlash je Rolle (gemessen 22.07., nicht neu aufrollen):** coder NEIN — 44–50 t/s mit Draft
  (Q8 wie BF16) vs. 59–60 ohne, trotz 68–76 % Akzeptanz: 3B-aktiv-Decode ist billiger als das
  Draften. heavy WARTET — gpt-oss-120b-Draft konvertiert (liegt in `/srv/models/DFlash-drafts/`),
  aber Engine b10087 lädt die Arch nicht („expected 123, got 91“ = Extra-Tensoren unbekannt);
  nach Engine-Update erneut probieren. vision/scout: keine Drafts veröffentlicht.
  Eigenbau-Rezept: z-lab-safetensors + `convert_hf_to_gguf.py --target-model-dir <Ziel-Tokenizer>`;
  ⚠️ `llama-quantize` verwirft DFlash-Sondertensoren bei Nicht-Standard-Archs.
- **coder-Lane: Qwen3-Coder-Next, FINAL** („bleiben bei dem was wir haben, nachweislich
  besser"). Qwen3.6-27B dense gebencht + verworfen (tg 12,7 t/s = 4–7× langsamer).
|- **hipEngine + strix-halo-toolboxes/TheRock: beobachten, nicht adoptieren.** hipEngine
  (natives HIP, nur Qwen3.6, >2× Prefill) ist jung; kyuz0-Toolboxes lösen ein Problem, das
  die Box nicht hat. Radar/Reminder wachen; Adoption nur nach eigenem brain-bench.
|- **Vision-Rolle: GLM-4.6V-Flash bleibt Amtsinhaber.** Qwen-AgentWorld-35B geprüft (Prüfstand
  t_9daf088f, Speed: tg 26,8 t/s / pp 339,1, Vision: 0/1 korrekt). Qualität deutlich unter
  GLM-4.6V-Flash, kein Aufsteiger — **abgelehnt**. Wiedervorlage nur bei neuer Version mit
  nachweislich > 50 % Vision-Rate.
|- **dist/ im Git ist ABSICHT.** Box hat kein Node; Deploy = `git reset --hard` + committetes
  `frontend/dist`. NICHT gitignoren.

## Lucy (Voice-App)

- **Shell: Electron, nicht Tauri.** Alle harten Features (Klick-Durchlass-Overlay, Capture,
  Loopback, Tray, TTS-Spawn) existieren in Electron; Tauri fehlt Region-Klick-Durchlass.
- **Stimme: pocket-tts bleibt Default, bis die Mini-Lucy (Kokoro-Finetune) den Live-Test
  gewinnt.** Qwen3-TTS-1.7B (RTF ~14), Chatterbox („zu delayed"), F5 (nicht streamfähig) —
  alle verworfen. Mini-Lucy v1 gewann alles Messbare (TTFB 0,45 s vs 1,72 s), scheiterte aber
  am Live-K.o. „nicht multilingual" → v2-Training läuft (Stand 10.07.). Umschalter in der App.
- **STT läuft auf der BOX** (Parakeet-TDT v3, 0,3–0,8 s, praktisch fehlerfreies Deutsch),
  lokaler Whisper nur als Lazy-Fallback. Gemini hatte das 07.07. still auf PC-CPU umgebaut —
  zurückgedreht, Messung gewann.
- **Kein Multi-Agent in der Voice-Lane** (3× Latenz-Falle). Multi-Agent JA für Radar
  (Fan-out) und Werkstatt (Worker/Reviewer).

## Hermes-Betrieb

- **Hermes-Quellcode NIE forken/patchen; interne Prompts bleiben ENGLISCH.** Deutsch kommt
  aus SOUL.md (verifiziert); alles User-Sichtbare (Meldungen, Skills, Summaries) = deutsch.
- **Tool Search NICHT auf `on`** (steht auf `auto`, schläft de facto). Es optimiert
  Cloud-Token-Kosten; wir optimieren lokale Latenz mit Prompt-Caching — `on` war gemessen
  LANGSAMER (15,1 s statt 5–7 s).
- **Zed ACP / Hermes-im-Editor: NICHT machen.** Editor-Agent + Box-coder-Modell + AGENTS.md
  ist der Sweet Spot; Hermes dazwischen = 70-KB-Prompt-Overhead. (Zed selbst ist inzwischen
  vom PC entfernt — Hermes Desktop übernahm.)
- **`approvals.cron_mode: deny` bleibt** (Autonomie-Härtung 1c, User wählte Option A):
  Gefahr-Befehle + execute_code sind im Cron-/Autonom-Kontext geblockt, interaktiv `smart`.
- **Fremd-Kritik via `fremdblick.sh`** (Ein-Schuss an leichtes Fremdmodell), NIE via
  delegate_task→heavy (64k-Floor + Lade-Tod). Raster: prose=GLM-4.7-Flash (kritiker),
  code=Coder-Next. Harte Regel: **REPRODUZIERT-ODER-ABGELEHNT** — Freispruch nur mit
  belegtem Vorher/Nachher.
- **Erinnerungen/Wecker laufen deterministisch in UNSERER Schicht** (services/reminders.py),
  bewusst ohne Hermes-cron.

## Sonstiges

- **LobeChat/WebUI-Ersatz verworfen** (Multi-User-Fehlpassung — Lehre: Scope challengen).
- **Smart Turn v3:** Audio LINKS padden; Output ist empirisch **P(unfertig)** — Doku behauptet
  das Gegenteil. Läuft im Voice-Sidecar (/turn, ~110 ms).
- **Lokaler GPU-Klon (9070 XT):** Stack = llama.cpp-Vulkan + llama-swap, NICHT Lemonade
  (deprecated Python, Server blockiert, Hybrid unsupported). Zweck/Umfang offen.
- **Aussortiert (tot):** Kyutai-Streaming-STT (nur EN/FR) · Unmute-Voll-Stack · LXC 105 (alt) ·
  WebUI-Update-Checks · openWakeWord (Wake-Gate ist STT-basiert).

## Prüfstand 24.07.2026 — Coder-Backend + Modell (ROCm-Recheck erledigt)

Gemessen mit llama-bench (Vulkan/RADV, Q4_K_M, -fa on) auf der Box (Ryzen AI Max+ 395):

| Test           | Coder-Next 80B-A3B | Devstral Small 2 24B dense |
| -------------- | ------------------ | -------------------------- |
| pp2048 @ 0     | 702 t/s            | 468 t/s                    |
| tg64   @ 0     | 59 t/s             | 15 t/s                     |
| pp2048 @ 8192  | 638 t/s            | 315 t/s                    |
| tg64   @ 8192  | 55 t/s             | 14 t/s                     |
| pp2048 @ 32768 | 488 t/s            | 63 t/s (7,7x langsamer)    |
| tg64   @ 32768 | 47 t/s             | 11 t/s (4,2x langsamer)    |

- **Backend bleibt Vulkan (ROCm-Recheck 24.07. erledigt).** Vulkan-Prefill haelt bei 32K
  noch 488 t/s — der einzige ROCm-Vorteil (Langkontext-Prefill) ist auf dieser Box kein
  Engpass. Der Autor des fuehrenden ROCm/Strix-Halo-Rezepts ist im Juli 2026 selbst zu
  Vulkan zurueckgekehrt (+28% Decode). Kein ROCm-Bau — Produktiv-Risiko fuer null Gewinn.
  Wiedervorlage nur bei neuem Engine-Langkontext-Support oder einem reinen HIP-Modell.
- **Coder bleibt Qwen3-Coder-Next — jetzt gemessen bestaetigt.** Devstral Small 2 (einziger
  neuer agentisch trainierter Dense-Kandidat) ist 4x langsamer bei Generierung und bricht
  beim 32K-Prefill auf 63 t/s ein (~9 min um einen 32K-Kontext zu lesen). Fuer agentisches
  Coden auf dieser Box disqualifiziert — Reliabilitaet war nicht einmal noetig als Argument.
- **Der Coder ist nicht langsam (59 t/s).** Das Fassaden-/Halluzinations-Problem ist kein
  Speed- und kein Backend-Problem und wird weder durch Modelltausch noch ROCm geloest. Es
  ist Reliabilitaet = Modellklasse + Harness. Naechster Hebel: Post-Edit-Verify-Hook,
  kleine Etappen/frische Threads, Eskalation der harten 20% an Frontier.
- **Devstral Small 2 ist der KRITIKER, nicht der Coder — mit hartem 16k-Deckel (25.07.).**
  Das Verdikt „als Coder disqualifiziert" (24.07.) bleibt unveraendert richtig. Neu ist nur die
  ENGE Rolle: Gegenlesen einer Etappe. Gemessen am 25.07. auf der Box: Generierung 15,0 t/s
  (Coder 51,5), Prefill 265-318 t/s (Coder 754). Der Prefill bricht mit der Kontextlaenge ein
  (32k -> 63 t/s = ~9 min nur zum Lesen), deshalb ist der Kritiker in llama-swap UND in beiden
  opencode.json auf **16384** gedeckelt: schlimmster Fall je Review bleibt unter einer Minute.
  Der Nutzen liegt nicht im Tempo, sondern in der FREMDEN Modellfamilie — ein Mistral-Modell hat
  andere blinde Flecken als der Qwen-Coder. Alternative GLM-4.7-Flash (MoE, schnellerer Prefill)
  bleibt eine Zeile Config entfernt, kostet aber ~9 Punkte SWE-bench (59,2 vs. 68,0).
- **llama-swap haelt nur EINE Gruppe resident, und `persistent: true` ist gefaehrlich (25.07.).**
  Zwei ko-residente Gruppen verdraengen sich gegenseitig — alles, was gleichzeitig warm sein muss,
  gehoert in DIESELBE Gruppe (`brains`). `persistent: true` hindert llama-swap daran, vor einem
  grossen On-Demand-Modell abzuraeumen: mit 107 GB Warm-Set + Vision (20 GB) folgte ein
  **Kernel-OOM** (llama-server abgeschossen). Regel: `Warm-Set + groesstes On-Demand-Modell
  <= ~115 GB` UND `persistent: false`. Danach lud vision in 10 s statt 117 s + Absturz.
  Kontext-Halbierung spart bei Qwen3-Next uebrigens **0 GB** (Hybrid-Attention, winziger KV).
