---
title: Decision-Record — KAR-80 Hook-Memory-Injection Rollout
type: decision-record
tags: [decision, kar-80, hook, memory, rollout]
date: 2026-05-12
status: done
related: [[2026-05-12-latentspacepod-openclaws-memory-sucks-and-the-fix-is-si]]
---

# Decision-Record: KAR-80 Hook-Memory-Injection Rollout

## Frage

Soll der `auto-memory-inject.sh` UserPromptSubmit-Hook produktiv eingesetzt werden?

## Erkenntnisse aus dem Spike

### Mechanismus verifiziert

Claude Code UserPromptSubmit-Hooks injizieren stdout direkt in den Aria-Kontext, max 10000 chars (anything bigger → File mit Pointer). JSON-Input auf stdin mit `prompt`-Feld. Plain stdout (exit 0) reicht — kein JSON-Output nötig für simple Inject-Case.

### Performance

| Metrik | Wert | Ziel |
|--------|------|------|
| Avg-Latency | **94ms** | <2000ms ✓ |
| Max-Output | **2416 bytes** | <8000 bytes ✓ |
| Hook-Cap | 10000 chars | far under ✓ |

### Eval-Result (5 Cases)

- TP=0, TN=5, FP=0, FN=0 — alle Capability/Edge-Cases passed
- Skip-Logic für <30 char queries funktioniert (Case 005)
- Relevante Brain-Notes UND Memory-Hits in jedem Case erkannt

### Wo der Hook BESSER war als das Eval-Case-Design

Case-004 ursprünglich erwartete `project_kadi_v2_gstack_required` — Hook fand stattdessen `kadi-v2-vendor-handover` (Brain-Note Score 52.2). Beide sind kadi-relevant, der Hook hat tatsächlich die thematisch passendere Quelle priorisiert. Case-Design wurde refined zu substring-match `kadi-v2`.

## Entscheidung

**ROLLOUT in Hot-Mode** — settings.json bleibt gepatched, Hook ist live.

### Begründung

1. **Performance**: 94ms ist im Rauschen, kein spürbarer Effekt für Kais
2. **Token-Overhead**: max 2.5KB ≈ 600 Tokens, weit unter Brain-Note-Ziel <2k Tokens
3. **Recall**: 5/5 cases liefern relevante Hits beim ersten Anlauf — Eval-Engine-Qualität (BM25+Recency) ist gut genug
4. **Risiko**: bei Failure exit 0 mit empty stdout → Aria bekommt einfach KEINEN Auto-Context, falls Skript crasht. Kein User-Visible Failure.
5. **Roll-Back**: settings.json Backup unter `/root/.claude/settings.json.bak.kar80-20260512`. Bei Bedarf in <1 min wiederherstellbar.

### Sichtbarkeit für Aria-Main

Bei der **nächsten Aria-Session** (oder Aria-Restart) wird die Hook automatisch greifen. In der **aktuellen Session** ist sie installiert, aber Claude Code lädt Hooks dynamisch — siehe Beobachtung in dieser Session bei nächsten Telegram-Inbound.

### Was wir NICHT rollen

- KEINE Wave-Resonance-Implementation (Spike-Out-of-Scope, Brain-Note schlägt es nur als „theoretisch besser" vor)
- KEIN Forgetfulness/Update-Logic (gehört zu Memory-Curator-Workflow)
- KEIN Hybrid-Mode RAG-Fallback (BM25 in `aria-brain-search.py` reicht aktuell)

## Konsequenzen

- Aria sieht ab nächster Session bei jedem UserPromptSubmit automatisch Top-3 Memory + Brain-Hits
- Token-Cost steigt um ~600 Tokens/Turn — bei 50 Turns/Tag = ~30k Extra-Tokens/Tag (vernachlässigbar bei Pro/Max-Plan)
- LRN-20260508-002 (Active Memory Standing Order) kann ergänzt werden: jetzt auch automatisch, nicht nur manuell
- `aria-active-memory.sh` Standing-Order Status: bleibt für manuellen Aufruf relevant (bei Turn-Mid-Reply wenn Aria explizit recherchieren will)

## Reverse-Triggers (wann neu denken)

- Hook crashed >3× in einer Woche → Restore Backup
- Token-Overhead pro Turn dauerhaft >5k → re-design (Wave-Resonance, kleineres Cap)
- Hits sind systematisch off-topic in 30% der Cases → Eval-Engine austauschen (BM25 → Embeddings)
- Aria-Self-Audit zeigt dass injected Context Aria irritiert statt hilft → Disable, alternative Pattern

## Folge-Tasks

- LRN-20260508-002 in CORRECTIONS.md aktualisieren (Hook ist jetzt auto, nicht mehr nur konvention)
- Nach 7 Tagen Live: 2. Eval-Run gegen 10 echte Aria-Queries der Woche
- Optional: `eval-driven-agent-dev` Skill mit Hook-Memory-Injection-Dataset als regression-set ergänzen

## Reviewer

Aria-Main, 2026-05-12 11:55 CEST, Session 96296ba8.

User-Action für Kais:
1. Decision-Record lesen
2. Bei OK: Hook bleibt live, KAR-80 → Done
3. Bei nächster Aria-Session beobachten ob du Brain-Hits in Aria's Antworten merkst
4. Wenn was komisch ist → Backup restore via: `cp /root/.claude/settings.json.bak.kar80-20260512 /root/.claude/settings.json && systemctl restart aria`
