| name | discover-loop-next-exp |
| description | Analysiert den aktuellen Stand der Discovery-Schleife (Leaderboard, frageweises Fehlerbild, Learnings) gegen das destillierte Wissen in RAG-KNOW-HOW.md und schlaegt die 3-5 wertvollsten naechsten Experimente vor - mit Hypothese, Basis, Prognose und erwartetem Gewinn. Aufrufen zwischen Laeufen oder wenn die Schleife stagniert. |
discover-loop-next-exp
Du berätst den Menschen (und indirekt den nächsten Planer), welche
Experimente als Nächstes den größten Erwartungswert haben. Du misst nichts
und schreibst keinen Plan — du lieferst begründete Kandidaten.
1. Wissen laden
RAG-KNOW-HOW.md — VOLLSTÄNDIG lesen. Die entscheidenden Teile:
§6 (was schon lief, was TOT ist), §7 (Mathematik der Auswahl),
§8 (Spielzüge: Fehlerbild → Experiment).
state/LEADERBOARD.md, state/NEXT.md, tail -80 state/JOURNAL.md,
state/OFFENE-HINWEISE.md, state/FRAGEN-AN-DEN-MENSCHEN.md (offene Punkte).
cat learnings-exp/*.md — kurz und teuer erarbeitet.
2. Fehlerbild erheben (frageweise, ohne den Katalog zu lesen)
lib/questions.yaml bleibt zu. Alles Nötige steht in den scores.json
des Champions (und der letzten Arme):
uv run python - <<'PY'
import json, collections
d = json.load(open("runs/<champion-slug>/scores.json"))
r0 = [q["id"] for q in d["fragen"] if q.get("recall") == 0]
fam = collections.Counter(i.split("-")[0].rstrip("0123456789") or i[:3] for i in r0)
print("recall=0:", len(r0)); print("nach Familie:", dict(fam)); print(sorted(r0))
PY
Familien am id-Präfix ablesen (z.B. ty=Tippfehler, h/c=cross,
r=Paraphrase — projektabhängig; das Muster steht meist im Journal).
Optional Rangsonde (RAG-KNOW-HOW §8): recall@20 vs. recall@5 messen, ohne
Gold zu kennen — zeigt, ob ein Reranker überhaupt Substanz hätte.
3. Kandidaten bilden
Für jede Fehlerfamilie den Spielzug aus §8 ziehen. Dann filtern:
- Tot-Liste prüfen (§6): Was dort falsifiziert wurde, kommt nur mit
NEUER Basis-Begründung wieder („lag es an der Idee oder an der damaligen
Basis?").
- Erwartungswert (§7):
Δ ≈ P(wahr) × geheilte Fragen × 0,6/N_prüfung.
Ein Kandidat, der keine benannte recall=0-Frage adressiert, fliegt raus.
- Informationswert: mindestens EIN Kandidat mit bewusst unsicherer
Prognose („wovon erwarte ich am wenigsten?") — die Durchbrüche kamen
bisher genau daher (§6: A2-008, A2-015).
- Eine Variable je Experiment, Basis als git-Ref mit Begründung
(Champion / Ablation / alter Verlierer neu / Merge).
4. Liefern
Eine Tabelle mit 3–5 Kandidaten, sortiert nach Erwartungswert:
| # | Hypothese (falsifizierbar, 1 Satz) | Basis (git-Ref + warum) | Variable | Prognose (Band!) | adressierte Fragen (ids) | erwarteter Δ | Know-how-Ref |
Danach:
- Empfehlung in 2–3 Sätzen: was zuerst, was parallel, was der Mensch
vorher entscheiden muss (Messgerät-Fragen wie k, Katalog-Härtung).
- Frage an den Menschen: „Soll ich die Kandidaten als Hinweise in
HINTS-WHILE-RUNNING.md eintragen?" — nur nach Zustimmung eintragen
(eine - -Zeile je Kandidat, kompakt). state/PLAN.json schreibst du
NIE — das ist Planer-Territorium.
Grenzen
- Nichts behaupten, was nicht in Know-how, state/ oder scores.json steht.
- Keine Messungen starten (das tun Experimente), keine Katalog-Änderungen
(Messgerät = Mensch).
- Wenn das Fehlerbild leer ist (Prüfung = 1,0): einziger valider Vorschlag
ist Katalog-Härtung (§8, letzte Zeile) — sag das klar statt Experimente
zu erfinden.