Baupläne #5 / #6 / #7 (Stand 2026-08-06)¶
Konkrete, umsetzbare Pläne für die großen Architektur-Punkte, die im Nacht-Eval-Budget bewusst NICHT als Code gebaut wurden (Marco: „#4 voll, Rest als Plan" — keine hohlen flag-off-Gerüste). Jeder Plan ist doktrin-treu (additiv, flag-gesichert, deterministisch wo möglich, Diode/Evidenz erhalten).
#5 — Golden-Set-Gate (aus Bild 2: Evidenz-Pipeline)¶
Ziel: Ein Regressions-Tor, das Änderungen am Antwort-/Promotion-Pfad gegen einen kuratierten Goldstandard prüft, BEVOR sie wirksam werden. Härtet „Proof = Gewicht".
Konkret (in Lenny's Realität, nicht 1:1 aus dem Bild):
1. core/golden_set.py + Datei core/golden_qa.jsonl: kuratierte Einträge
{frage, erwartete_eigenschaft} — z. B. {"q":"Ist ein Delfin ein Fisch?",
"must_not_contain":["Ja","ist ein Fisch"], "must_contain":["nicht belegt"]}.
Anfangs ~30–50 Einträge aus echten Abnahme-Fragen.
2. run_golden_gate(answer_fn): schickt jede Frage durch den vollen Antwortpfad
(read-only Kopie/Shadow), prüft must_contain/must_not_contain, gibt Pass-Rate
+ Fehlerliste.
3. Als CI-artiges Tor: vor jedem Deploy (deploy.sh-Hook, optional) laufen
lassen; Pass-Rate < Schwelle → Deploy warnt/blockt. KEIN Runtime-Overhead.
4. Später Ausbau zum echten Promotion-Gate (Bild 2): ein gelernter Artefakt
(Ranker) wird erst promoted, wenn er die golden_qa nicht verschlechtert.
Aufwand: mittel. Flag: braucht keins (Test/CI-Tor). Files: core/golden_set.py, core/golden_qa.jsonl, optional deploy.sh-Hook. Doktrin-Fit: hoch.
#6 — Temporal Edge-Log (aus Bild 1: Kanten mit Gültigkeitsintervallen)¶
Ziel: Fakten sind revidierbar OHNE Löschen — „was galt wann". Ein Fakt kann abgelöst werden, die Historie bleibt.
Konkret:
1. Schema additiv: neue Spalten auf fragment_relations (oder ein paralleles
relation_validity-Log): valid_from TEXT, valid_to TEXT (NULL = aktuell
gültig), superseded_by TEXT. _migrate_to_lai erweitern (idempotent, ALTER
ADD COLUMN wie brain-Spalte).
2. Schreibseite: beim Aufnehmen einer widersprechenden Kante (gleiches
Subjekt+Relation, anderes Objekt, das die alte ersetzt) NICHT löschen, sondern
alte Kante valid_to=now, superseded_by=neu setzen, neue mit valid_from=now.
Nur bei explizitem Ersetzungs-Signal (kein stilles Überschreiben).
3. Leseseite: der Antwort-Renderer bevorzugt Kanten mit valid_to IS NULL
(aktuell gültig); abgelaufene nur auf „was galt früher"-Fragen.
4. Flag LENNY_ENABLE_TEMPORAL_EDGES (Default aus), damit going-forward testbar.
Aufwand: mittel. Files: core/fragment_store.py (Schema+Write), core/fragment_bound_surface_generation.py (Lesepräferenz). Doktrin-Fit: hoch („revidierbar" wird erststufig, nichts geht verloren).
#7 — Signal-Mixer + Realizer-Spine (das Zielbild)¶
Ziel: Logic+Creative erzeugen GEMEINSAM ein Signal über einen Mixer L+C+T=1.0; ein externer, austauschbarer Realizer übersetzt NUR das Signal. Ersetzt langfristig das General-LLM-Interim (llm_assistant).
Warum groß/riskant: Ersetzt den kompletten Ausgabe-Spine. Ein hohler Mixer ohne echten Realizer wäre ein Konzeptpapier. Deshalb bewusst mehrstufig, jede Stufe für sich nutzbar:
Stufe 1 — Signal read-only sichtbar machen (nicht antwortwirksam):
- core/signal_mixer.py: aus den schon vorhandenen Größen einen L-, C-, T-Wert
je Antwort berechnen — L aus Truth-Evidenz (pressure_stake/external_verification),
C aus Creative-Reichweite, T aus dem Wahrnehmungsfeld (Aktivierung/Resonanz).
Normieren auf L+C+T=1.0. NUR ins route_trace loggen, Ausgabe unverändert.
→ sofort nützlich als Diagnose, null Risiko.
Stufe 2 — Deterministischer Signal→Satz-Realizer:
- Der vorhandene fragment_bound_surface_generation-Pfad IST schon ein
deterministischer Realizer für das L-dominante Signal. Erweitern: bei hohem
C-Wert Creative-Assoziationen gelabelt beimischen; Mischverhältnis aus dem
Mixer. Kein General-LLM.
Stufe 3 — externer/austauschbarer Realizer (Robotik-Ziel): - Realizer hinter ein stabiles Signal-Interface legen (JSON-Signal rein, Modalität raus), sodass Sprache gegen Bild/Ton/Bewegung tauschbar wird. Erst wenn Stufe 1+2 stehen.
Aufwand: sehr groß (mehrere Sessions). Empfehlung: mit Stufe 1 anfangen
(read-only Signal-Werte) — echter Nutzen, null Risiko, macht das Zielbild messbar.
Flag: LENNY_OUTPUT_MODE=signal_mixer (neben deterministic/llm/llm_assistant),
Default bleibt aktuelles Verhalten. Doktrin-Fit: IST das Zielbild.
Reihenfolge-Empfehlung nach diesen Plänen: #6 (Temporal, mittel, hoher Fit) →
5 (Golden-Gate, härtet alles) → #7 Stufe 1 (Signal read-only sichtbar). Die¶
großen Stufen von #7 danach in eigenen Sessions.