Skip to content

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.