Files
VianoBugAnalysis/docs/investigation-contract-v2.md

6.4 KiB

Begrenzte Untersuchungsdarstellung v2

Die bestehende begrenzte Untersuchung bleibt bei einem Richtwert von 10.000 und höchstens 20.000 Zeichen für den vollständigen logischen Provider-Input, inklusive Systemtext, Cache-Präfix und gegebenenfalls transportiertem Antwortschema. Dies sind Kontextregeln der Untersuchung, keine Paketformatgrenzen.

Antwortformat und Identitäten

prompt_window_version = 2 ersetzt verschachtelte Schema-Dokumentation mit choices/const durch kompakte textuelle Signaturen und bei Rechercheentscheidungen ein ausdrücklich als Formbeispiel bezeichnetes, wörtliches JSON-Objekt. Beispielwerte sind Platzhalter, keine Recherchevorgabe. Das vollständige kanonische JSON-Schema bleibt der ausführbare Validator. Gemini erhält im Textpräfix kein zusätzliches Duplikat dieses Schemas; native Schemaübertragung und lokale Prüfung bleiben erhalten.

input.entities enthält die unveränderten kanonischen N-Referenzen mit typisierten IDs, Namen und Rollen aus case_sources. Gleiche numerische IDs verschiedener Entitätstypen werden nicht zusammengeführt. Eine beobachtete oder primäre Entität ist nicht automatisch der Fehlergegenstand. Frühere Interpretation wird als solche gekennzeichnet. Unbekannte N-Referenzen dürfen keinen Toolauftrag auslösen.

Fehlerbehandlung

Schemafehler werden mit Feldpfad, Pflichtfeldern und knapper Handlungsanweisung zurückgemeldet, auch wenn die äußere Providerprüfung bereits abgelehnt hat. Fehlerhinweise enthalten keine ungeprüften Nutzdaten.

Bei aktivierter Antwortreparatur wird ausschließlich die eindeutige Hülle next.arguments = {"choices": [<ein einzelnes Query-Objekt>]} entfernt, wenn die Aktion bereits wörtlich tool/project.query und der Query-Kind vorhanden ist. Andere Felder, IDs und Beobachtungen bleiben unverändert; Original und Reparaturregel werden im LLM-Aufruf protokolliert. Vor Budgetreservierung und Ausführung gelten weiterhin sämtliche Schema-, Beleg-, Identitäts- und semantischen Prüfungen. Mehrere Alternativen, zusätzliche Geschwisterfelder, unbekannte Aktionen, fehlende Pflichtwerte oder rohe IDs anstelle von N-Referenzen werden nicht geraten. Insbesondere ergänzt die Reparatur keinen fehlenden Offset oder Query-Kind.

Aktivierung und Nachweis

config/investigation.bounded.toml aktiviert Version 2 für neue Untersuchungen. Eine vorhandene Case-Akte behält ihre eingefrorene Policy; sie wird nicht migriert. Version 1 bleibt für historische Request-Rekonstruktion unverändert verfügbar. Ein neuer Test benötigt daher einen frischen Fall beziehungsweise eine neue Analyse-Revision mit dieser Konfiguration.

Die Offline-Gegenprobe im Bericht test-results/token-usage/investigation-contract-v2-offline-20261020.json rekonstruiert alle sieben gespeicherten Startup-Anfragen aus dem letzten begrenzten Test mit identischen Messages, Schema und Prompt-Version. Mit v2 liegen dieselben Kontexte einschließlich Cache-Präfix bei 8.460 bis 14.817 Zeichen. Zwei ältere Folgeschritte ergeben 9.331 und 12.064 Zeichen. Der Richtwert wird damit nicht überall erreicht; die harte Grenze bleibt gewahrt. Es wurden keine API-Aufrufe getätigt. Dies belegt Darstellung und Grenzen, noch keine bessere LLM-Antwortqualität.

Lokale Tests prüfen die echten kuratierten Ablehnungen, sichere und verweigerte Reparaturen, unveränderte IDs, fehlende Budgetnebenwirkungen, Wiederaufnahme nach Unterbrechung, gemeinsame Startbewertung, Checkpoints bis zum Abschluss sowie Cache-Aufteilung und frühe Diagnose-Routingentscheidung.

Validierung am 20.10.2026: 307 lokale Tests bestanden (171,87 Sekunden), git diff --check ohne Befund. Keine kostenpflichtigen LLM-Tests ausgeführt.

Quellenraum und gezielte Korrekturen (20.10.2026)

Neue v2-Kontexte speichern research_guidance_version=1. Ein kleiner, im stabilen Fallkontext cachebarer Quellenkatalog unterscheidet konfigurierte Git-Recherche (project.query) von den deklarierten Dateien im Paket (source.*). Höchstens drei Paketpfade mit zusammen höchstens 700 Zeichen werden aufgeführt; weitere Referenzen werden als ausgelassen gezählt. Historische Kontexte und ihre Requests bleiben unverändert rekonstruierbar. Die vollständige Eingabe unterliegt weiterhin der bestehenden 20.000-Zeichen-Grenze und dem 10.000-Zeichen-Richtwert.

Fehlender Query-Kind, unvollständige source.search-Argumente und falscher Quellenraum erhalten kurze, feldbezogene Hinweise. Es werden weder fehlende Argumente erfunden noch Repository-Pfade automatisch in Paketquellen umgedeutet. Die Hinweise passen in das bestehende Limit von 160 Zeichen.

Die Antwortreparatur entfernt bei einem bekannten, einzelnen recall lediglich die eindeutige arguments-Hülle. Beleg-ID, optionale Seitennummer, Beobachtung und Bewertung bleiben erhalten. Mehrdeutige Hüllen, unbekannte IDs, mehrere Belege, negative oder nicht ganzzahlige Seiten und unbekannte Aktionen werden nicht repariert. Anschließend gelten unverändert Schema-, Provenienz-, Seiten- und Budgetprüfungen; Originalantwort und Reparaturregel werden protokolliert.

Die neue allgemeine Untersuchungsanweisung verlangt bei vermeintlich fehlenden Hooks auch Aufrufer, Overrides, indirekte Übergaben und Registrierung zu prüfen. Vorhandener Implementierungscode allein ist kein Beleg für einen Defekt. Das ändert keine gespeicherten Confidence-Werte und erzwingt keine Bug17-spezifische Schlussfolgerung. Ob diese Anleitung die fachliche Qualität verbessert, muss ein späterer LLM-Lauf zeigen.

Der blockierte Bug17-Lauf wurde ohne API-Aufruf von Generation 204 über einen protokollierten manuellen technischen Retry auf Generation 206 vorbereitet. 806 vorhandene Archiveinträge bleiben erhalten; Budget, Hypothesenstände und Versuchsnummer bleiben unverändert. Der neue Kontext ergänzt ausschließlich die versionierten Quellenhinweise und den fehlenden Korrekturhinweis. Die vollständige logische Anfrage misst 13.849 Zeichen einschließlich Cache-Kontext. Der portable Paketvalidator akzeptiert die Ausgabe. Details: test-results/token-usage/bug17-source-contract-repair-20261020.json.

Validierung der Quellenkorrekturen: 269 lokale Regressionstests bestanden in 192,85 Sekunden. Darunter 18 gezielte Tests für die kuratierten Suchfehler, eindeutige und verweigerte Recall-Reparaturen, vollständige Controller-Prüfung, Budgetneutralität, Cache-Aufteilung und die Zeichenobergrenze. git diff --check ohne Befund; keine kostenpflichtigen Aufrufe.