Add source-constrained joint planning and scoped dependency-aware recovery

This commit is contained in:
Nico committed 2026-10-20 00:43:27 +02:00
1 parent d280f001fc
commit 83ef9e6d6c
23 files changed
+913 -42

No files matched your search

+99
View File
@@ -0,0 +1,99 @@
# Gemeinsame Planung v2: Quellen, Teilkorrekturen und Abhängigkeiten
Neue Revisionen mit `trial run --planning-mode joint` verwenden `case_plan_v2`.
Der Kontext speichert `joint_generation.version=2`. Bereits eingefrorene v1-Kontexte
und Requests bleiben unverändert und über den bisherigen Pfad wiederaufnehmbar.
Der getrennte Modus, Investigation-Loop, Tools, Budgets und Diagnose bleiben unverändert.
`docs/architecture.md` wurde nicht geändert. Syntaxreparaturen sind ein separater Ausbau.
## Quellenklassen und ausdrückliche Testerannahmen
Die dynamischen Interpretationsverträge beschränken source_ids je Aussagekategorie
auf tatsächlich vorhandene IDs der zulässigen Quellentypen. Dies gilt im Prompt und
in der fachlichen Annahme, nicht nur im Transport. Leere Quellmengen erlauben nur
leere entsprechende Aussagearrays. Testerannahmen sind in v2 ausschließlich aus
explizit typisierten tester_assumption-Quellen zugelassen. Kommentare/Beobachtungen
werden nicht allein durch ihre Verfügbarkeit zu Annahmen. Ohne solche Quellen bleibt
tester_assumptions leer. Die LLM darf eigene Schlussfolgerungen nicht dem Tester zuschreiben.
## Explizite Voraussetzungen
Jeder v2-Wire-Vorschlag enthält premises mit kind=grounded oder unverified, knappem
Text, source_ids und interpretation_paths. Grounded benötigt mindestens einen
Verweis und darf keine ungelesenen Referenzen als gelesenen Beleg ausgeben. Referenzen
müssen im Kontext und in den eigenen deklarierten Vorschlagsreferenzen existieren.
Hypothesen bleiben spekulativ; eine Voraussetzung ist keine Bestätigung des Mechanismus.
Die vollständigen Voraussetzungen und Reviews bleiben im unveränderlichen Originalcall.
Die kanonischen Vorschläge behalten den bisherigen Vertrag und erhalten nach Prüfung
nur deterministisch aufgelöste I-IDs. Übernahme/Replays prüfen den Original-Wire-Vertrag erneut.
## Lokale Beanstandungen und begrenzte Patches
Ablehnungen speichern validation_issues mit Aussage-/Feldpfad, Fehlerkategorien und
Quell-/Schemahinweisen. Korrigierbare Stellen werden aus der tatsächlichen Antwort
ermittelt: Quellenklassen, unbekannte Quellen, Schemafehler, Entity-Provenienz,
fehlende Erwartungs-Vollständigkeit und Lookup-Ungewissheit. Unbekannte/globale
Fehler und zu viele Stellen erhalten keinen frei geratenen Patchbereich.
case_plan_statement_repair_v2 verlangt nur Patches für genau die beanstandeten Stellen.
Ein Patch ersetzt eine ganze Aussage bzw. ein nötiges oberes Feld. Null darf eine
beanstandete Arrayaussage entfernen; Löschungen werden absteigend angewandt, damit
sich Indizes nicht während der Zusammensetzung verschieben. Andere Stellen können
nicht überschrieben werden. Ein fehlender oder zusätzlicher Pfad wird abgelehnt.
Es gibt keine stille Entfernung unzulässiger Quellen oder Testerbehauptungen.
Der Request enthält beanstandete Aussagen, nötige verfügbare Quellen, die vorhandenen
Hypothesen samt Voraussetzungen und deren deklarierten Interpretationsaussagen.
Er enthält keinen weiteren vollständigen Case. Kontextkomprimierung/Konsolidierung
bleiben aktiv. Source-Call und Hash binden die unveränderte Ausgangsantwort außerhalb
der Komprimierung. Danach wird die vollständig zusammengesetzte Interpretation geprüft.
Ist keine sichere Lokalisierung möglich, bleibt der bisherige begrenzte Ersatzpfad verfügbar.
## Individuelle Hypothesenprüfung
Der Korrekturaufruf muss jede Hypothese auf direkte UND implizite Abhängigkeit von
korrigierten Aussagen prüfen, auch ohne direkten Verweis auf diese Stellen. Er meldet:
- retain: begründet unabhängig, keine neue Vorschlagsfassung.
- replace: gezielt ein Ersatzvorschlag im vollständigen v2-Vertrag.
- uncertain: keine ungeprüfte Übernahme.
Der Controller lässt retain nur zu, wenn zusätzlich ALLE deklarierten Inputs exakt
unverändert sind. Bei Löschungen wird der Inhalt am Pointer verglichen, nicht nur
dessen Fortbestehen. Geänderte direkte Grundlagen erfordern Ersatz oder weitere Prüfung.
Der Controller kann versteckte Bedeutungsabhängigkeiten nicht beweisen; die semantische
Review bleibt eine fehlbare LLM-Bewertung. Fehlende Referenzen allein gelten niemals
als Nachweis von Unabhängigkeit. Alle zusammengesetzten Vorschläge durchlaufen erneut
Quellen-, Fokus-, Diversitäts-, Count- und Registry-Prüfungen.
Auch ein fehlender oder falsch geformter Review-Block verwirft einen gültigen Interpretationspatch nicht. Seine Hypothesen werden dann nicht ungeprüft übernommen.
Ist die Interpretation gültig, aber ein Kandidat noch unklar, bleibt die Interpretation
angenommen. Explizit geprüfte unabhängige Vorschläge werden in joint_retained des
kanonischen Hypothesenkontexts festgehalten. Folgeaufrufe dürfen nur die anderen Positionen
neu bearbeiten. Position/Anzahl und erhaltene Objekte sind durch Schema-const/prefixItems
UND phasenseitige Gleichheitsprüfung gesperrt. Die volle Registry wird erst nach gültigem
Gesamtergebnis veröffentlicht. Fehlt eine auswertbare Review, wird keine Unabhängigkeit
unterstellt; dann bleibt der konservative Ersatzpfad nötig.
## Persistenz und Grenzen
Original, Patch und Reviews bleiben getrennte echte Calls mit echten Usage-Werten.
Es gibt keine künstlichen LLM-Runden oder doppelte Kostenbuchung. Die Interpretation
wird deterministisch aus Original und zulässigen Patches rekonstruiert. Beim Wiederlesen
werden Quellenhash, Requesthash, Identität, Phase, Konfiguration, erlaubte Pfade und
Zusammensetzung geprüft. Die Kette ist begrenzt; direkte Selbstreferenzen und zu tiefe
Ketten werden abgelehnt. Gespeicherte Reparaturcalls werden nach einem Abbruch wiederbenutzt.
Der bestehende Korrekturversuchszähler begrenzt weiterhin Modellversuche. Transport-Retries
bleiben getrennt. Ein formaler Validierungserfolg beweist weiterhin nicht die Wahrheit
jedes Freitextsatzes. Die Begrenzung dieser Unsicherheit ist ausdrücklich Teil der Policy.
## Offline-Prüfung
Die Tests decken Quellen-Enums, fehlende Annahmenquellen, Voraussetzungscitations,
gezielte Patches, direkte Abhängigkeiten, explizite Ersatzvorschläge, unklare Reviews,
Sperren erhaltener Vorschläge, falsch geformte Modellfelder, Abbruch/Wiederaufnahme und
Import in einen neuen Workspace ab. Ein Fall des unveränderten kuratierten Fehlerkorpus
prüft die Lokalisierung der tatsächlich beobachteten Fehler. Kein bezahlter API-Test
wurde ausgeführt; Kosten und semantische Qualität sind im nächsten Realtest zu messen.
+3
View File
@@ -1,5 +1,8 @@
# Gemeinsame Interpretation und Hypothesengenerierung
Diese Seite dokumentiert das erhaltene v1-Protokoll. Neue gemeinsame Revisionen verwenden
[v2 mit Quellenbeschränkungen und gezielten Abhängigkeitsprüfungen](joint-case-planning-v2.md).
## Modus und Grenze
`trial run --planning-mode joint` aktiviert für eine neue, noch nicht interpretierte