From d280f001fc1d179585fefd6e6f58b334ce6235ca Mon Sep 17 00:00:00 2001 From: Nitsu45 Date: Mon, 19 Oct 2026 23:33:57 +0200 Subject: [PATCH] Preserve corpus bytes across Git checkouts --- tests/fixtures/llm_rejections/.gitattributes | 1 + .../llm_rejections/20261019/README.md | 62 +- .../llm_rejections/20261019/analysis.md | 242 ++-- .../llm_rejections/20261019/files.sha256 | 84 +- .../llm_rejections/20261019/index.json | 492 +++---- .../analysis.md | 14 +- .../analysis.md | 14 +- ...case-interpretation-context-v1.schema.json | 276 ++-- .../case-interpretation-output-v1.schema.json | 308 ++-- ...terpretation-quality-output-v1.schema.json | 460 +++--- .../change-request-output-v2.schema.json | 546 +++---- .../schemas/hypotheses-output-v1.schema.json | 208 +-- .../schemas/hypothesis-context-v1.schema.json | 552 +++---- .../20261019/schemas/llm-call-v1.schema.json | 1278 ++++++++--------- .../analysis.md | 14 +- .../analysis.md | 14 +- .../analysis.md | 14 +- 17 files changed, 2290 insertions(+), 2289 deletions(-) create mode 100644 tests/fixtures/llm_rejections/.gitattributes diff --git a/tests/fixtures/llm_rejections/.gitattributes b/tests/fixtures/llm_rejections/.gitattributes new file mode 100644 index 0000000..165c758 --- /dev/null +++ b/tests/fixtures/llm_rejections/.gitattributes @@ -0,0 +1 @@ +** -text diff --git a/tests/fixtures/llm_rejections/20261019/README.md b/tests/fixtures/llm_rejections/20261019/README.md index c80c511..d6b2914 100644 --- a/tests/fixtures/llm_rejections/20261019/README.md +++ b/tests/fixtures/llm_rejections/20261019/README.md @@ -1,31 +1,31 @@ -# Kuratiertes Korpus abgelehnter LLM-Antworten - -Diese fünf gezielt ausgewählten Beispiele sind auf ausdrücklichen Nutzerwunsch -langfristig und unabhängig von den vollständigen Testläufen erhalten. Sie liegen -außerhalb von service-data/trials und dessen Bereinigung. Keine vollständigen -Paketgenerationen, Datenbankdumps, Zugangsschlüssel oder Provider-HTTP-Header. - -Start: [Fehleranalyse](analysis.md), dann [Fallindex](index.json). -Jedes Beispiel enthält die unveränderte vollständige Kandidatenantwort answer.txt, -den Originalcall samt Metadaten, den ursprünglichen Request, den fachlichen -Validierungskontext, die Ablehnungsnachweise und eine eigene Kurzbewertung. -Bei parsebaren Antworten liegt zusätzlich eine lesbare Darstellung vor; -maßgeblich bleiben answer.txt und call.json. Private Denkinhalte wurden nicht erfasst. - -Der Kontext enthält bewusst auch Quellenverzeichnisse, Schema- und Provenienzdaten, -damit sich die bestehenden lokalen Prüfungen später nachvollziehen lassen. Nicht -alle darin genannten Rohdateien liegen bei: Dies ist keine ausführbare vollständige -Fallakte und keine portable Weiterverarbeitung des Cases. Für die beschriebenen -Parser-/Quellenklassen-/Referenzprüfungen sind die ausgewählten Kontexte vorhanden. -Der vollständige Schemastand der verwendeten Requests liegt in request.json; -zusätzliche fachliche Schema-Snapshots liegen unter schemas/. - -Die Offline-Gegenproben im Bericht sind menschlich ausgewählte Experimente, keine -bereits implementierten oder als allgemein sicher freigegebenen Reparaturregeln. -Die Originalantworten wurden NICHT durch die experimentell korrigierten Versionen ersetzt. -Die bestehende Validierung bestätigt keine vollständige semantische Wahrheit. - -files.sha256 bindet alle Korpusdateien mit ihren relativen Pfaden. index.json enthält -zusätzlich die Herkunft und Hashes der extrahierten Originale. Die Quellpakete werden -zum Lesen des Korpus nicht benötigt. Keine API-Anfrage und kein Tool-/SQL-Aufruf -ist zum Untersuchen dieser Beispiele erforderlich. +# Kuratiertes Korpus abgelehnter LLM-Antworten + +Diese fünf gezielt ausgewählten Beispiele sind auf ausdrücklichen Nutzerwunsch +langfristig und unabhängig von den vollständigen Testläufen erhalten. Sie liegen +außerhalb von service-data/trials und dessen Bereinigung. Keine vollständigen +Paketgenerationen, Datenbankdumps, Zugangsschlüssel oder Provider-HTTP-Header. + +Start: [Fehleranalyse](analysis.md), dann [Fallindex](index.json). +Jedes Beispiel enthält die unveränderte vollständige Kandidatenantwort answer.txt, +den Originalcall samt Metadaten, den ursprünglichen Request, den fachlichen +Validierungskontext, die Ablehnungsnachweise und eine eigene Kurzbewertung. +Bei parsebaren Antworten liegt zusätzlich eine lesbare Darstellung vor; +maßgeblich bleiben answer.txt und call.json. Private Denkinhalte wurden nicht erfasst. + +Der Kontext enthält bewusst auch Quellenverzeichnisse, Schema- und Provenienzdaten, +damit sich die bestehenden lokalen Prüfungen später nachvollziehen lassen. Nicht +alle darin genannten Rohdateien liegen bei: Dies ist keine ausführbare vollständige +Fallakte und keine portable Weiterverarbeitung des Cases. Für die beschriebenen +Parser-/Quellenklassen-/Referenzprüfungen sind die ausgewählten Kontexte vorhanden. +Der vollständige Schemastand der verwendeten Requests liegt in request.json; +zusätzliche fachliche Schema-Snapshots liegen unter schemas/. + +Die Offline-Gegenproben im Bericht sind menschlich ausgewählte Experimente, keine +bereits implementierten oder als allgemein sicher freigegebenen Reparaturregeln. +Die Originalantworten wurden NICHT durch die experimentell korrigierten Versionen ersetzt. +Die bestehende Validierung bestätigt keine vollständige semantische Wahrheit. + +files.sha256 bindet alle Korpusdateien mit ihren relativen Pfaden. index.json enthält +zusätzlich die Herkunft und Hashes der extrahierten Originale. Die Quellpakete werden +zum Lesen des Korpus nicht benötigt. Keine API-Anfrage und kein Tool-/SQL-Aufruf +ist zum Untersuchen dieser Beispiele erforderlich. diff --git a/tests/fixtures/llm_rejections/20261019/analysis.md b/tests/fixtures/llm_rejections/20261019/analysis.md index 6b8060e..a22702f 100644 --- a/tests/fixtures/llm_rejections/20261019/analysis.md +++ b/tests/fixtures/llm_rejections/20261019/analysis.md @@ -1,121 +1,121 @@ -# Untersuchung verworfener Antworten – 2026-10-19 - -Offline-Untersuchung von BUG20 joint-planning (Generation 97) und shared-recovery -(Generation 100). Originale und Programmcode unverändert; keine API-Anfragen, -keine Recherchetools/SQL ausgeführt, keine Kandidaten in einen Case übernommen. -`index.json` enthält Call-Referenzen und Hashes; die Call-Dateien enthalten Usage zur Nachvollziehbarkeit. - -## 1. Gemeinsame Interpretation: zwei beanstandete Stellen - -### observed_behavior/2 - -Aussage: Reproduktion bestätige, dass Wolpertinger am Testort in Dun Morogh nicht -spawnen. Quellen: F0001 und O0003. F0001 ist ein strukturierter Reproduktionsfakt -`result = reproduced`, O0003 die Beobachtung „Wolpertinger spawnen tatsächlich nicht“. -Die Quelle F0001 ist in dieser Ausgabekategorie nicht zugelassen. Die Aussage hat -jedoch bereits eine passende Beobachtungsquelle. Das ist wesentlich näher an einer -redundanten, falsch einsortierten Quellenangabe als an erfundener Beobachtung. -Ein Fact-Kind allein rechtfertigt weder das Verwerfen der Aussage noch das automatische -Entfernen der Quelle: Aussage, Provenienz und verbleibende Belege müssen erhalten bleiben. -Die Ortsangabe muss im Gesamtkontext bewertet werden; O0003 nennt allein keinen Ort. - -### tester_assumptions/0 - -Die Antwort schreibt dem Tester die Annahme zu, die Brille sei die *alleinige* -Sichtbarkeitsvoraussetzung. O0002 sagt lediglich, dass trotz getragener notwendiger -Brille keine Wolpertinger erscheinen und der Horde-Fall funktioniere. Eine explizite -Behauptung „alleinige Voraussetzung“ steht dort nicht. Das ist eine semantische -Überinterpretation, nicht nur eine falsch etikettierte Quellen-ID. Die Kategorie ist -zusätzlich formal nur für tester_assumption/tester_comment zugelassen, nicht observation. -Diese Passage darf nicht durch bloßes Umetikettieren zu einer Beobachtung werden. - -### Offline-Gegenprobe - -Nur im Arbeitsspeicher F0001 aus observed_behavior/2 entfernt und den unbelegten -Testerannahmen-Eintrag entfernt: Die bestehende vollständige Interpretationsvalidierung -besteht danach. Dies ist eine menschlich gewählte Gegenprobe, keine automatisch -bewiesene Reparaturregel oder semantische Vollfreigabe der Antwort. - -Die drei ursprünglichen Hypothesen verweisen ausschließlich auf unveränderte Stellen: -H1 observed_behavior/1; H2 zusätzlich confirmed_technical_facts/7; H3 zusätzlich -confirmed_technical_facts/6. Keine deklarierten Verweise betreffen die beiden -beanstandeten Stellen. Nach der Gegenprobe lassen sich alle Pointer erneut auflösen -und alle drei Vorschläge bestehen die vorhandene Hypothesenvalidierung. -Das rechtfertigt die Prüfung einer abhängigkeitssensitiven Wiederverwertung statt -pauschaler Neugenerierung. Deklarierte Referenzen beweisen aber nicht, dass jede -implizite inhaltliche Abhängigkeit ausgeschlossen ist. - -### Weitere qualitative Schwächen trotz formal gültiger Gegenprobe - -- Eine Untersuchungsrichtung bezeichnet 32907 als Netz und 32906 als gefangenes Item, - obwohl die Entity-Einträge selbst ihre Namen/Funktion ausdrücklich als ungeprüft - ausweisen. Die zitierten Questfelder belegen die numerischen Relationen, nicht - diese Namens-/Funktionszuordnung. Das ist eine interne Inkonsistenz. -- H2 nennt für unit_flags 512 eine symbolische Bedeutung, die im bereitgestellten - Case-Kontext nicht belegt ist. Sie vermischt Nicht-Auswählbarkeit und Unsichtbarkeit. - Der allgemeine Sichtbarkeitsverdacht ist sinnvoll; die technische Zuordnung ist - so keine bestätigte Grundlage. Ein Item-Erzeugungsspell ist zudem kein Nachweis - einer bereits verifizierten Detektionsaura. -- H3 formuliert die vermutete Quest-/Phasenabhängigkeit stellenweise zu sehr als - gegebenen Mechanismus. Als ausdrücklich zu prüfende Alternative ist sie zulässig. - -Die bestehenden Validatoren prüfen Struktur, Quellenklassen und Referenzen, können -aber nicht die Wahrheit oder vollständige Ableitbarkeit jedes Freitextsatzes beweisen. - -## 2. Syntaxfehler der Auftragsproduktion im gemeinsamen Lauf - -Eine Human-Dev-Objektklammer endet nach expected_results mit `]` statt `}`. -Eine einzige Ersetzung dieser schließenden Klammer macht die gesamte Antwort -parsebar. Danach besteht sie unverändert die bestehende vollständige -Change-Request-Validierung einschließlich des archivierten Kontexts. -Das ist der klarste Kandidat für eine lokale, durch String-/Containerzustand -abgesicherte Klammerkorrektur. Aktuell wird eine falsche schließende Klammer -noch nicht vom allgemeinen Normalisierer ersetzt. - -## 3. Zwei beschädigte Hypothesenantworten im vorigen Lauf - -Erster Versuch endet nach dem dritten vollständigen Vorschlag mit `}缸`. -Probeweise ausschließlich das terminale Fremdzeichen durch `]}` ersetzt: -parsebar, und vollständige bestehende Hypothesenvalidierung bestanden. -Der Inhalt der drei Vorschläge bleibt bei dieser Gegenprobe unverändert. -Aktuell ist das bewusst ausgeschlossen: Es müssten fehlende Endklammern ergänzt -werden, was auch eine abgeschnittene Antwort verdecken könnte. STOP/complete, -vollständige Vorschläge, Stackzustand und genau eine zulässige Reparatur wären -notwendige Zulassungskriterien; keine freie Ergänzung beliebiger Fragmente. - -Zweiter Versuch endet mit `} syndromes]}`. Probeweise nur das unquotierte Wort -zwischen vollständigem Vorschlag und vorhandenen Endklammern entfernt: -parsebar, vollständige bestehende Hypothesenvalidierung bestanden. -Alle Strings, Werte, Vorschläge und vorhandenen Klammern bleiben dabei erhalten. -Dies spricht für eine eng begrenzte Prüfung von Fremdtext außerhalb von Strings -an Containergrenzen. Es rechtfertigt kein pauschales Entfernen unbekannter Wörter -oder ein Übernehmen beliebig aus Text herausgeschnittener JSON-Teilobjekte. - -## 4. Ungültiger Untersuchungsauftrag im vorigen Lauf - -Filter: ["!#flatten", "name", "contains", "Glodrak"]. Das Tool erwartet Filterobjekte -mit column/operator/value. Für diese Liste samt Marker ist kein Eingabeformat definiert. -Ein Mensch kann eine Namenssuche vermuten; die vorhandene Software hat aber keinen -Vertrag, der diese Interpretation garantiert. Nicht stillschweigend ausführen. -Zusätzlich erklärt dieselbe Antwort statische Horde-Spawns zu einem Gegenbeweis -gegen dynamisches Spawning allgemein. Das folgt daraus nicht. Es ist somit kein -rein kosmetischer Fehler, bei dem alle Zustandsänderungen ungeprüft erhalten bleiben -sollten. Ein gezielter Korrekturauftrag müsste die Filterstruktur und die gekoppelte -Evidenz-/Confidence-Bewertung berücksichtigen. - -## Bewertung und Reihenfolge - -1. Beim gemeinsamen Modus bleiben: Quellenkategorien eindeutig rahmen, falsche - Annahmenzuschreibungen gezielt korrigieren und unveränderte Hypothesen nach - erklärter Abhängigkeitsprüfung erneut validieren. Änderungen an Quellen nicht - allein anhand des ID-Präfixes vornehmen. Typ/Provenienz kommt aus dem Kontext. -2. Den eindeutigeren Klammerfehler lokal abfangen, mit Protokoll der exakten Änderung, - unveränderten Literalen, begrenzter Kandidatenzahl und voller anschließender Prüfung. -3. Terminale Fremdtokens/fehlende Abschlussklammern getrennt behandeln. Diese sind - engere, ausdrücklich zu spezifizierende Ausnahmen zur bisherigen Sicherheitsregel. -4. Den Filterlistenfall nicht mit einer pauschalen Formatheuristik retten. - -Kein automatischer Reparaturalgorithmus wurde in dieser Untersuchung implementiert. -Eine formal gerettete Antwort ist noch kein Nachweis einwandfreier Analysequalität. -Wirtschaftlich relevant sind die vermiedenen Folgeaufrufe: Die ursprüngliche Antwort -wurde bereits bezahlt; ihre Offline-Reparatur macht diese Tokens nicht rückwirkend kostenlos. +# Untersuchung verworfener Antworten – 2026-10-19 + +Offline-Untersuchung von BUG20 joint-planning (Generation 97) und shared-recovery +(Generation 100). Originale und Programmcode unverändert; keine API-Anfragen, +keine Recherchetools/SQL ausgeführt, keine Kandidaten in einen Case übernommen. +`index.json` enthält Call-Referenzen und Hashes; die Call-Dateien enthalten Usage zur Nachvollziehbarkeit. + +## 1. Gemeinsame Interpretation: zwei beanstandete Stellen + +### observed_behavior/2 + +Aussage: Reproduktion bestätige, dass Wolpertinger am Testort in Dun Morogh nicht +spawnen. Quellen: F0001 und O0003. F0001 ist ein strukturierter Reproduktionsfakt +`result = reproduced`, O0003 die Beobachtung „Wolpertinger spawnen tatsächlich nicht“. +Die Quelle F0001 ist in dieser Ausgabekategorie nicht zugelassen. Die Aussage hat +jedoch bereits eine passende Beobachtungsquelle. Das ist wesentlich näher an einer +redundanten, falsch einsortierten Quellenangabe als an erfundener Beobachtung. +Ein Fact-Kind allein rechtfertigt weder das Verwerfen der Aussage noch das automatische +Entfernen der Quelle: Aussage, Provenienz und verbleibende Belege müssen erhalten bleiben. +Die Ortsangabe muss im Gesamtkontext bewertet werden; O0003 nennt allein keinen Ort. + +### tester_assumptions/0 + +Die Antwort schreibt dem Tester die Annahme zu, die Brille sei die *alleinige* +Sichtbarkeitsvoraussetzung. O0002 sagt lediglich, dass trotz getragener notwendiger +Brille keine Wolpertinger erscheinen und der Horde-Fall funktioniere. Eine explizite +Behauptung „alleinige Voraussetzung“ steht dort nicht. Das ist eine semantische +Überinterpretation, nicht nur eine falsch etikettierte Quellen-ID. Die Kategorie ist +zusätzlich formal nur für tester_assumption/tester_comment zugelassen, nicht observation. +Diese Passage darf nicht durch bloßes Umetikettieren zu einer Beobachtung werden. + +### Offline-Gegenprobe + +Nur im Arbeitsspeicher F0001 aus observed_behavior/2 entfernt und den unbelegten +Testerannahmen-Eintrag entfernt: Die bestehende vollständige Interpretationsvalidierung +besteht danach. Dies ist eine menschlich gewählte Gegenprobe, keine automatisch +bewiesene Reparaturregel oder semantische Vollfreigabe der Antwort. + +Die drei ursprünglichen Hypothesen verweisen ausschließlich auf unveränderte Stellen: +H1 observed_behavior/1; H2 zusätzlich confirmed_technical_facts/7; H3 zusätzlich +confirmed_technical_facts/6. Keine deklarierten Verweise betreffen die beiden +beanstandeten Stellen. Nach der Gegenprobe lassen sich alle Pointer erneut auflösen +und alle drei Vorschläge bestehen die vorhandene Hypothesenvalidierung. +Das rechtfertigt die Prüfung einer abhängigkeitssensitiven Wiederverwertung statt +pauschaler Neugenerierung. Deklarierte Referenzen beweisen aber nicht, dass jede +implizite inhaltliche Abhängigkeit ausgeschlossen ist. + +### Weitere qualitative Schwächen trotz formal gültiger Gegenprobe + +- Eine Untersuchungsrichtung bezeichnet 32907 als Netz und 32906 als gefangenes Item, + obwohl die Entity-Einträge selbst ihre Namen/Funktion ausdrücklich als ungeprüft + ausweisen. Die zitierten Questfelder belegen die numerischen Relationen, nicht + diese Namens-/Funktionszuordnung. Das ist eine interne Inkonsistenz. +- H2 nennt für unit_flags 512 eine symbolische Bedeutung, die im bereitgestellten + Case-Kontext nicht belegt ist. Sie vermischt Nicht-Auswählbarkeit und Unsichtbarkeit. + Der allgemeine Sichtbarkeitsverdacht ist sinnvoll; die technische Zuordnung ist + so keine bestätigte Grundlage. Ein Item-Erzeugungsspell ist zudem kein Nachweis + einer bereits verifizierten Detektionsaura. +- H3 formuliert die vermutete Quest-/Phasenabhängigkeit stellenweise zu sehr als + gegebenen Mechanismus. Als ausdrücklich zu prüfende Alternative ist sie zulässig. + +Die bestehenden Validatoren prüfen Struktur, Quellenklassen und Referenzen, können +aber nicht die Wahrheit oder vollständige Ableitbarkeit jedes Freitextsatzes beweisen. + +## 2. Syntaxfehler der Auftragsproduktion im gemeinsamen Lauf + +Eine Human-Dev-Objektklammer endet nach expected_results mit `]` statt `}`. +Eine einzige Ersetzung dieser schließenden Klammer macht die gesamte Antwort +parsebar. Danach besteht sie unverändert die bestehende vollständige +Change-Request-Validierung einschließlich des archivierten Kontexts. +Das ist der klarste Kandidat für eine lokale, durch String-/Containerzustand +abgesicherte Klammerkorrektur. Aktuell wird eine falsche schließende Klammer +noch nicht vom allgemeinen Normalisierer ersetzt. + +## 3. Zwei beschädigte Hypothesenantworten im vorigen Lauf + +Erster Versuch endet nach dem dritten vollständigen Vorschlag mit `}缸`. +Probeweise ausschließlich das terminale Fremdzeichen durch `]}` ersetzt: +parsebar, und vollständige bestehende Hypothesenvalidierung bestanden. +Der Inhalt der drei Vorschläge bleibt bei dieser Gegenprobe unverändert. +Aktuell ist das bewusst ausgeschlossen: Es müssten fehlende Endklammern ergänzt +werden, was auch eine abgeschnittene Antwort verdecken könnte. STOP/complete, +vollständige Vorschläge, Stackzustand und genau eine zulässige Reparatur wären +notwendige Zulassungskriterien; keine freie Ergänzung beliebiger Fragmente. + +Zweiter Versuch endet mit `} syndromes]}`. Probeweise nur das unquotierte Wort +zwischen vollständigem Vorschlag und vorhandenen Endklammern entfernt: +parsebar, vollständige bestehende Hypothesenvalidierung bestanden. +Alle Strings, Werte, Vorschläge und vorhandenen Klammern bleiben dabei erhalten. +Dies spricht für eine eng begrenzte Prüfung von Fremdtext außerhalb von Strings +an Containergrenzen. Es rechtfertigt kein pauschales Entfernen unbekannter Wörter +oder ein Übernehmen beliebig aus Text herausgeschnittener JSON-Teilobjekte. + +## 4. Ungültiger Untersuchungsauftrag im vorigen Lauf + +Filter: ["!#flatten", "name", "contains", "Glodrak"]. Das Tool erwartet Filterobjekte +mit column/operator/value. Für diese Liste samt Marker ist kein Eingabeformat definiert. +Ein Mensch kann eine Namenssuche vermuten; die vorhandene Software hat aber keinen +Vertrag, der diese Interpretation garantiert. Nicht stillschweigend ausführen. +Zusätzlich erklärt dieselbe Antwort statische Horde-Spawns zu einem Gegenbeweis +gegen dynamisches Spawning allgemein. Das folgt daraus nicht. Es ist somit kein +rein kosmetischer Fehler, bei dem alle Zustandsänderungen ungeprüft erhalten bleiben +sollten. Ein gezielter Korrekturauftrag müsste die Filterstruktur und die gekoppelte +Evidenz-/Confidence-Bewertung berücksichtigen. + +## Bewertung und Reihenfolge + +1. Beim gemeinsamen Modus bleiben: Quellenkategorien eindeutig rahmen, falsche + Annahmenzuschreibungen gezielt korrigieren und unveränderte Hypothesen nach + erklärter Abhängigkeitsprüfung erneut validieren. Änderungen an Quellen nicht + allein anhand des ID-Präfixes vornehmen. Typ/Provenienz kommt aus dem Kontext. +2. Den eindeutigeren Klammerfehler lokal abfangen, mit Protokoll der exakten Änderung, + unveränderten Literalen, begrenzter Kandidatenzahl und voller anschließender Prüfung. +3. Terminale Fremdtokens/fehlende Abschlussklammern getrennt behandeln. Diese sind + engere, ausdrücklich zu spezifizierende Ausnahmen zur bisherigen Sicherheitsregel. +4. Den Filterlistenfall nicht mit einer pauschalen Formatheuristik retten. + +Kein automatischer Reparaturalgorithmus wurde in dieser Untersuchung implementiert. +Eine formal gerettete Antwort ist noch kein Nachweis einwandfreier Analysequalität. +Wirtschaftlich relevant sind die vermiedenen Folgeaufrufe: Die ursprüngliche Antwort +wurde bereits bezahlt; ihre Offline-Reparatur macht diese Tokens nicht rückwirkend kostenlos. diff --git a/tests/fixtures/llm_rejections/20261019/files.sha256 b/tests/fixtures/llm_rejections/20261019/files.sha256 index bbd7f96..b77e63f 100644 --- a/tests/fixtures/llm_rejections/20261019/files.sha256 +++ b/tests/fixtures/llm_rejections/20261019/files.sha256 @@ -1,42 +1,42 @@ -3abdd01f69ca35dd910346c2978cff95c7909b51ed438d4352de8f3d489bbc9e analysis.md -83595a3f84e3975143ae08f3d29454f4c506004ac87789c13f0b7458409897e1 index.json -f122451af078546799ecd23ecb0da1ab28af20e1f1b6b902e732b7dafb7754e4 joint-change-request-closing-bracket/analysis.md -61e732ecd61b5a04790bcef1d2049cf75fb36075df6a4a5c12a63756f1f9d716 joint-change-request-closing-bracket/answer.txt -267554a74192630ddabdcd221cf78e62067b58abce18bf5403e9fcf061bfe74d joint-change-request-closing-bracket/call.json -34536a46d16f0fefe08e370433a36fe1c2a7c82bc32635b40e94781039460d13 joint-change-request-closing-bracket/rejection-records.json -102a8dfbae42f36a98a1397f9b8325e7007761dd043d436b5ed105891937ae41 joint-change-request-closing-bracket/request.json -48d4ec5a7671f42eac599fd3f186a52733bbed9f7aa1a090f228764798547ca4 joint-change-request-closing-bracket/validation-context.json -8e320306d5ef6f4ab740730c6be5341f9ab5456fe4d2ea6401cf3bf217e3b989 joint-interpretation-source-kinds/analysis.md -0f477bb21271863135a96b1628fd4e5b90e629476876bd79921d22a625273c89 joint-interpretation-source-kinds/answer.txt -81b5649c121cf83dc049bac836a5fd607aed4031bf1626f6c0768e1ff19f2fa5 joint-interpretation-source-kinds/call.json -3aff74a41ef50ac6187356a9e4fa01873226aa99e0abdfe7f10c6fd65f80fc34 joint-interpretation-source-kinds/parsed-answer.json -4c0378f533f38ed16cf34dd1aa04a3e82e9ef25dfcc4236a674d257e7cf22792 joint-interpretation-source-kinds/rejection-records.json -8edbe2caf7edc8a7bd70ddc442e94d3bbb776852a6f70415e08fd749e689020d joint-interpretation-source-kinds/request.json -565e3369d71e182f79c7267a7c75ed4e065292e9d33005155ffd4fb0e461f804 joint-interpretation-source-kinds/validation-context.json -1cc600fd998f2a76fef7b579f35e5e3a47a0f9fc14404ece2431242d373cf1a4 README.md -98d31c7606baab28173073588c747e95503f372bb2e8d58adc873ad83245c97b schemas/case-interpretation-context-v1.schema.json -b0b7c630e1ab85d3924fbe17bf909d8644e5256507f0eada5941b54902f23d90 schemas/case-interpretation-output-v1.schema.json -5b91b1b2df3f50554f34659cd254070462e452b28f3658a52cdf73cb182fa408 schemas/case-interpretation-quality-output-v1.schema.json -6dfb2ce19e8694db929fed8e6ca9a2266902095f43ad553ddea0915fb24923e9 schemas/change-request-output-v2.schema.json -78c0642f92bb91335777db7dc9109afe2db4115be702820cf6adf14b4b348ea4 schemas/hypotheses-output-v1.schema.json -c820bd600af6e906c37663cd3e380d1565b165a8739ba5813db3003b256674f2 schemas/hypothesis-context-v1.schema.json -a4388d0f2138c506cff7555c16b42f3a8cb34bb9e53693bfd6cf41f9c993de27 schemas/llm-call-v1.schema.json -cc7bb34d3051ccc4f830605f1262fee04199de9365bd2f630860bcf308d47436 separate-hypotheses-stray-token/analysis.md -bc041ff5810c56a62b28ca95877d404c9d5759fcab708d8187b3d49499378c12 separate-hypotheses-stray-token/answer.txt -5fd4b4625d59cfa6409ffe8bd69d3dbb19a2fcc48dd0ffd08a2c2db08718b781 separate-hypotheses-stray-token/call.json -6848c99604c6cde8679b2cfc6d6eec805650cefd82b4ac6f43267700583e55cd separate-hypotheses-stray-token/rejection-records.json -7805fb5cb286733c015e25fda71ad63fa74109faeb7ee036441cc4299153c1ae separate-hypotheses-stray-token/request.json -2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f separate-hypotheses-stray-token/validation-context.json -10b7afafb5496b68ac0dbba2bdcb37369ab768978f9696ce6d875174925225af separate-hypotheses-terminal-character/analysis.md -b1f8453566dc2f0ed38d48478a4db57906f6cd96ba2e40757887950678317d6a separate-hypotheses-terminal-character/answer.txt -bc380985aadade22f74e06b73d0bac5a5bded15078f9fd44884625971fb98d57 separate-hypotheses-terminal-character/call.json -8c5fd3b22a44deffe99b5f3c600818768b32f39910c3493e7cba2a6630697989 separate-hypotheses-terminal-character/rejection-records.json -2d0c1c94f68b686d0837c7c1f1137e88363b62e3d26f89781b46c9e9881fc900 separate-hypotheses-terminal-character/request.json -2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f separate-hypotheses-terminal-character/validation-context.json -a2eae8053047eaff92d1edd3c9cbfe3dc4153dae272ddb40c4d2871704c12856 separate-investigation-filter-list/analysis.md -0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31 separate-investigation-filter-list/answer.txt -a6a08a0d40b10272895171f82bcd4f28dccf9b6f46cead9e34894f64fa57747a separate-investigation-filter-list/call.json -0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31 separate-investigation-filter-list/parsed-answer.json -aaa0462cf3ce158c307280e4ef9c339222209f97dc58a0451a625a5dcc3a4133 separate-investigation-filter-list/rejection-records.json -f4fe5aca4a013ea1a030e75cb9e3a5d3d024c4ea68a8795fd5178f6557acf52e separate-investigation-filter-list/request.json -e205dcc34b1be5efa05de33ccb8a9984c6867f5d220d68dc0dda1a37696e9956 separate-investigation-filter-list/validation-context.json +3abdd01f69ca35dd910346c2978cff95c7909b51ed438d4352de8f3d489bbc9e analysis.md +83595a3f84e3975143ae08f3d29454f4c506004ac87789c13f0b7458409897e1 index.json +f122451af078546799ecd23ecb0da1ab28af20e1f1b6b902e732b7dafb7754e4 joint-change-request-closing-bracket/analysis.md +61e732ecd61b5a04790bcef1d2049cf75fb36075df6a4a5c12a63756f1f9d716 joint-change-request-closing-bracket/answer.txt +267554a74192630ddabdcd221cf78e62067b58abce18bf5403e9fcf061bfe74d joint-change-request-closing-bracket/call.json +34536a46d16f0fefe08e370433a36fe1c2a7c82bc32635b40e94781039460d13 joint-change-request-closing-bracket/rejection-records.json +102a8dfbae42f36a98a1397f9b8325e7007761dd043d436b5ed105891937ae41 joint-change-request-closing-bracket/request.json +48d4ec5a7671f42eac599fd3f186a52733bbed9f7aa1a090f228764798547ca4 joint-change-request-closing-bracket/validation-context.json +8e320306d5ef6f4ab740730c6be5341f9ab5456fe4d2ea6401cf3bf217e3b989 joint-interpretation-source-kinds/analysis.md +0f477bb21271863135a96b1628fd4e5b90e629476876bd79921d22a625273c89 joint-interpretation-source-kinds/answer.txt +81b5649c121cf83dc049bac836a5fd607aed4031bf1626f6c0768e1ff19f2fa5 joint-interpretation-source-kinds/call.json +3aff74a41ef50ac6187356a9e4fa01873226aa99e0abdfe7f10c6fd65f80fc34 joint-interpretation-source-kinds/parsed-answer.json +4c0378f533f38ed16cf34dd1aa04a3e82e9ef25dfcc4236a674d257e7cf22792 joint-interpretation-source-kinds/rejection-records.json +8edbe2caf7edc8a7bd70ddc442e94d3bbb776852a6f70415e08fd749e689020d joint-interpretation-source-kinds/request.json +565e3369d71e182f79c7267a7c75ed4e065292e9d33005155ffd4fb0e461f804 joint-interpretation-source-kinds/validation-context.json +1cc600fd998f2a76fef7b579f35e5e3a47a0f9fc14404ece2431242d373cf1a4 README.md +98d31c7606baab28173073588c747e95503f372bb2e8d58adc873ad83245c97b schemas/case-interpretation-context-v1.schema.json +b0b7c630e1ab85d3924fbe17bf909d8644e5256507f0eada5941b54902f23d90 schemas/case-interpretation-output-v1.schema.json +5b91b1b2df3f50554f34659cd254070462e452b28f3658a52cdf73cb182fa408 schemas/case-interpretation-quality-output-v1.schema.json +6dfb2ce19e8694db929fed8e6ca9a2266902095f43ad553ddea0915fb24923e9 schemas/change-request-output-v2.schema.json +78c0642f92bb91335777db7dc9109afe2db4115be702820cf6adf14b4b348ea4 schemas/hypotheses-output-v1.schema.json +c820bd600af6e906c37663cd3e380d1565b165a8739ba5813db3003b256674f2 schemas/hypothesis-context-v1.schema.json +a4388d0f2138c506cff7555c16b42f3a8cb34bb9e53693bfd6cf41f9c993de27 schemas/llm-call-v1.schema.json +cc7bb34d3051ccc4f830605f1262fee04199de9365bd2f630860bcf308d47436 separate-hypotheses-stray-token/analysis.md +bc041ff5810c56a62b28ca95877d404c9d5759fcab708d8187b3d49499378c12 separate-hypotheses-stray-token/answer.txt +5fd4b4625d59cfa6409ffe8bd69d3dbb19a2fcc48dd0ffd08a2c2db08718b781 separate-hypotheses-stray-token/call.json +6848c99604c6cde8679b2cfc6d6eec805650cefd82b4ac6f43267700583e55cd separate-hypotheses-stray-token/rejection-records.json +7805fb5cb286733c015e25fda71ad63fa74109faeb7ee036441cc4299153c1ae separate-hypotheses-stray-token/request.json +2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f separate-hypotheses-stray-token/validation-context.json +10b7afafb5496b68ac0dbba2bdcb37369ab768978f9696ce6d875174925225af separate-hypotheses-terminal-character/analysis.md +b1f8453566dc2f0ed38d48478a4db57906f6cd96ba2e40757887950678317d6a separate-hypotheses-terminal-character/answer.txt +bc380985aadade22f74e06b73d0bac5a5bded15078f9fd44884625971fb98d57 separate-hypotheses-terminal-character/call.json +8c5fd3b22a44deffe99b5f3c600818768b32f39910c3493e7cba2a6630697989 separate-hypotheses-terminal-character/rejection-records.json +2d0c1c94f68b686d0837c7c1f1137e88363b62e3d26f89781b46c9e9881fc900 separate-hypotheses-terminal-character/request.json +2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f separate-hypotheses-terminal-character/validation-context.json +a2eae8053047eaff92d1edd3c9cbfe3dc4153dae272ddb40c4d2871704c12856 separate-investigation-filter-list/analysis.md +0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31 separate-investigation-filter-list/answer.txt +a6a08a0d40b10272895171f82bcd4f28dccf9b6f46cead9e34894f64fa57747a separate-investigation-filter-list/call.json +0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31 separate-investigation-filter-list/parsed-answer.json +aaa0462cf3ce158c307280e4ef9c339222209f97dc58a0451a625a5dcc3a4133 separate-investigation-filter-list/rejection-records.json +f4fe5aca4a013ea1a030e75cb9e3a5d3d024c4ea68a8795fd5178f6557acf52e separate-investigation-filter-list/request.json +e205dcc34b1be5efa05de33ccb8a9984c6867f5d220d68dc0dda1a37696e9956 separate-investigation-filter-list/validation-context.json diff --git a/tests/fixtures/llm_rejections/20261019/index.json b/tests/fixtures/llm_rejections/20261019/index.json index 9e1d8a7..9165aec 100644 --- a/tests/fixtures/llm_rejections/20261019/index.json +++ b/tests/fixtures/llm_rejections/20261019/index.json @@ -1,246 +1,246 @@ -{ - "format": "viano-rejected-response-corpus", - "format_version": 1, - "created_on": "2026-10-19", - "code_commit": "f979258", - "purpose": "Curated standalone examples explicitly retained at user request; not a full trial archive.", - "entries": [ - { - "id": "joint-interpretation-source-kinds", - "trial": "bug20-joint-planning-20261019", - "case_id": "BUG-000020", - "package_id": "trial-joint-planning-BUG-000020-20261019", - "analysis_revision": 1, - "source_generation": 97, - "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-60d94dc476555860dafbb6b852fa5a4d763ea432e1f62723280817bafa379d35-r0001-g00000097.zip", - "original_call_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json", - "rejection_code": "INTERPRETATION_SOURCE_KIND", - "protocol_status": "SUCCESS", - "reason": "Two source-category errors: observed_behavior/2 cites a fact in addition to a valid observation; tester_assumptions/0 overstates the tester report as an exclusive prerequisite. Further unverified item labels and a flag-symbol mapping are qualitative findings, not emitted validation codes.", - "files": [ - { - "file": "call.json", - "sha256": "81b5649c121cf83dc049bac836a5fd607aed4031bf1626f6c0768e1ff19f2fa5", - "bytes": 24390, - "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json" - }, - { - "file": "request.json", - "sha256": "8edbe2caf7edc8a7bd70ddc442e94d3bbb776852a6f70415e08fd749e689020d", - "bytes": 42493, - "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/request.json" - }, - { - "file": "answer.txt", - "sha256": "0f477bb21271863135a96b1628fd4e5b90e629476876bd79921d22a625273c89", - "bytes": 11841, - "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json#/outcome/response_capture/text" - }, - { - "file": "parsed-answer.json", - "sha256": "3aff74a41ef50ac6187356a9e4fa01873226aa99e0abdfe7f10c6fd65f80fc34", - "bytes": 12921, - "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json#/outcome/document" - }, - { - "file": "validation-context.json", - "sha256": "565e3369d71e182f79c7267a7c75ed4e065292e9d33005155ffd4fb0e461f804", - "bytes": 141003, - "original_ref": "analysis/interpretations/0001/context.json" - }, - { - "file": "rejection-records.json", - "sha256": "4c0378f533f38ed16cf34dd1aa04a3e82e9ef25dfcc4236a674d257e7cf22792", - "bytes": 3009, - "original_ref": null - } - ] - }, - { - "id": "joint-change-request-closing-bracket", - "trial": "bug20-joint-planning-20261019", - "case_id": "BUG-000020", - "package_id": "trial-joint-planning-BUG-000020-20261019", - "analysis_revision": 1, - "source_generation": 97, - "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-60d94dc476555860dafbb6b852fa5a4d763ea432e1f62723280817bafa379d35-r0001-g00000097.zip", - "original_call_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/round-0001.json", - "rejection_code": "LLM_RESPONSE", - "protocol_status": "ERROR", - "reason": "The human_dev object ends with ] instead of }. Replacing that single closing bracket in memory made the full output pass the existing change-request validator. No original content was accepted or modified.", - "files": [ - { - "file": "call.json", - "sha256": "267554a74192630ddabdcd221cf78e62067b58abce18bf5403e9fcf061bfe74d", - "bytes": 7005, - "original_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/round-0001.json" - }, - { - "file": "request.json", - "sha256": "102a8dfbae42f36a98a1397f9b8325e7007761dd043d436b5ed105891937ae41", - "bytes": 46720, - "original_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/request.json" - }, - { - "file": "answer.txt", - "sha256": "61e732ecd61b5a04790bcef1d2049cf75fb36075df6a4a5c12a63756f1f9d716", - "bytes": 4652, - "original_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/round-0001.json#/outcome/response_capture/text" - }, - { - "file": "validation-context.json", - "sha256": "48d4ec5a7671f42eac599fd3f186a52733bbed9f7aa1a090f228764798547ca4", - "bytes": 324098, - "original_ref": "analysis/change-requests/0001/context.json" - }, - { - "file": "rejection-records.json", - "sha256": "34536a46d16f0fefe08e370433a36fe1c2a7c82bc32635b40e94781039460d13", - "bytes": 257, - "original_ref": null - } - ] - }, - { - "id": "separate-hypotheses-terminal-character", - "trial": "bug20-shared-recovery-20261019", - "case_id": "BUG-000020", - "package_id": "trial-shared-recovery-BUG-000020-20261019", - "analysis_revision": 1, - "source_generation": 100, - "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-49c833d7194c687b04596c9b9a4bd0f4f021f54171839fb8336fc85296f98ed6-r0001-g00000100.zip", - "original_call_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/round-0001.json", - "rejection_code": "LLM_RESPONSE", - "protocol_status": "ERROR", - "reason": "The response ends after three complete proposal objects with an extraneous character and missing outer closers. Replacing the terminal character with ]} in memory passed the existing hypothesis validator. This is NOT an approved generic repair: completing containers can conceal truncation.", - "files": [ - { - "file": "call.json", - "sha256": "bc380985aadade22f74e06b73d0bac5a5bded15078f9fd44884625971fb98d57", - "bytes": 8324, - "original_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/round-0001.json" - }, - { - "file": "request.json", - "sha256": "2d0c1c94f68b686d0837c7c1f1137e88363b62e3d26f89781b46c9e9881fc900", - "bytes": 47383, - "original_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/request.json" - }, - { - "file": "answer.txt", - "sha256": "b1f8453566dc2f0ed38d48478a4db57906f6cd96ba2e40757887950678317d6a", - "bytes": 6015, - "original_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/round-0001.json#/outcome/response_capture/text" - }, - { - "file": "validation-context.json", - "sha256": "2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f", - "bytes": 149529, - "original_ref": "analysis/hypotheses/0001/context.json" - }, - { - "file": "rejection-records.json", - "sha256": "8c5fd3b22a44deffe99b5f3c600818768b32f39910c3493e7cba2a6630697989", - "bytes": 2118, - "original_ref": null - } - ] - }, - { - "id": "separate-hypotheses-stray-token", - "trial": "bug20-shared-recovery-20261019", - "case_id": "BUG-000020", - "package_id": "trial-shared-recovery-BUG-000020-20261019", - "analysis_revision": 1, - "source_generation": 100, - "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-49c833d7194c687b04596c9b9a4bd0f4f021f54171839fb8336fc85296f98ed6-r0001-g00000100.zip", - "original_call_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/round-0001.json", - "rejection_code": "LLM_RESPONSE", - "protocol_status": "ERROR", - "reason": "An unquoted stray word syndromes occurs between the final proposal object and existing ]}. Deleting only this token in memory passed the existing hypothesis validator. A future rule must preserve all literals and reject ambiguous deletions.", - "files": [ - { - "file": "call.json", - "sha256": "5fd4b4625d59cfa6409ffe8bd69d3dbb19a2fcc48dd0ffd08a2c2db08718b781", - "bytes": 8302, - "original_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/round-0001.json" - }, - { - "file": "request.json", - "sha256": "7805fb5cb286733c015e25fda71ad63fa74109faeb7ee036441cc4299153c1ae", - "bytes": 48375, - "original_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/request.json" - }, - { - "file": "answer.txt", - "sha256": "bc041ff5810c56a62b28ca95877d404c9d5759fcab708d8187b3d49499378c12", - "bytes": 6004, - "original_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/round-0001.json#/outcome/response_capture/text" - }, - { - "file": "validation-context.json", - "sha256": "2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f", - "bytes": 149529, - "original_ref": "analysis/hypotheses/0001/context.json" - }, - { - "file": "rejection-records.json", - "sha256": "6848c99604c6cde8679b2cfc6d6eec805650cefd82b4ac6f43267700583e55cd", - "bytes": 2118, - "original_ref": null - } - ] - }, - { - "id": "separate-investigation-filter-list", - "trial": "bug20-shared-recovery-20261019", - "case_id": "BUG-000020", - "package_id": "trial-shared-recovery-BUG-000020-20261019", - "analysis_revision": 1, - "source_generation": 100, - "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-49c833d7194c687b04596c9b9a4bd0f4f021f54171839fb8336fc85296f98ed6-r0001-g00000100.zip", - "original_call_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json", - "rejection_code": "INVESTIGATION_OUTPUT", - "protocol_status": "SUCCESS", - "reason": "The tool query uses an undocumented flat filter array with !#flatten instead of column/operator/value objects. The same response also overstates static Horde spawns as disproof of dynamic spawning. Do not repair only the filter and blindly execute coupled confidence/evidence updates.", - "files": [ - { - "file": "call.json", - "sha256": "a6a08a0d40b10272895171f82bcd4f28dccf9b6f46cead9e34894f64fa57747a", - "bytes": 5346, - "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json" - }, - { - "file": "request.json", - "sha256": "f4fe5aca4a013ea1a030e75cb9e3a5d3d024c4ea68a8795fd5178f6557acf52e", - "bytes": 51406, - "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/request.json" - }, - { - "file": "answer.txt", - "sha256": "0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31", - "bytes": 1941, - "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json#/outcome/response_capture/text" - }, - { - "file": "parsed-answer.json", - "sha256": "0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31", - "bytes": 1941, - "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json#/outcome/document" - }, - { - "file": "validation-context.json", - "sha256": "e205dcc34b1be5efa05de33ccb8a9984c6867f5d220d68dc0dda1a37696e9956", - "bytes": 393837, - "original_ref": "analysis/investigation/0001/contexts/H3-0001-attempt-0001.json" - }, - { - "file": "rejection-records.json", - "sha256": "aaa0462cf3ce158c307280e4ef9c339222209f97dc58a0451a625a5dcc3a4133", - "bytes": 317, - "original_ref": null - } - ] - } - ] -} +{ + "format": "viano-rejected-response-corpus", + "format_version": 1, + "created_on": "2026-10-19", + "code_commit": "f979258", + "purpose": "Curated standalone examples explicitly retained at user request; not a full trial archive.", + "entries": [ + { + "id": "joint-interpretation-source-kinds", + "trial": "bug20-joint-planning-20261019", + "case_id": "BUG-000020", + "package_id": "trial-joint-planning-BUG-000020-20261019", + "analysis_revision": 1, + "source_generation": 97, + "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-60d94dc476555860dafbb6b852fa5a4d763ea432e1f62723280817bafa379d35-r0001-g00000097.zip", + "original_call_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json", + "rejection_code": "INTERPRETATION_SOURCE_KIND", + "protocol_status": "SUCCESS", + "reason": "Two source-category errors: observed_behavior/2 cites a fact in addition to a valid observation; tester_assumptions/0 overstates the tester report as an exclusive prerequisite. Further unverified item labels and a flag-symbol mapping are qualitative findings, not emitted validation codes.", + "files": [ + { + "file": "call.json", + "sha256": "81b5649c121cf83dc049bac836a5fd607aed4031bf1626f6c0768e1ff19f2fa5", + "bytes": 24390, + "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json" + }, + { + "file": "request.json", + "sha256": "8edbe2caf7edc8a7bd70ddc442e94d3bbb776852a6f70415e08fd749e689020d", + "bytes": 42493, + "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/request.json" + }, + { + "file": "answer.txt", + "sha256": "0f477bb21271863135a96b1628fd4e5b90e629476876bd79921d22a625273c89", + "bytes": 11841, + "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json#/outcome/response_capture/text" + }, + { + "file": "parsed-answer.json", + "sha256": "3aff74a41ef50ac6187356a9e4fa01873226aa99e0abdfe7f10c6fd65f80fc34", + "bytes": 12921, + "original_ref": "llm/operations/572afccbd4034d9c5485045cb4bb28b61fdd40e48dc8a3fab67cfc17e997cd65/round-0001.json#/outcome/document" + }, + { + "file": "validation-context.json", + "sha256": "565e3369d71e182f79c7267a7c75ed4e065292e9d33005155ffd4fb0e461f804", + "bytes": 141003, + "original_ref": "analysis/interpretations/0001/context.json" + }, + { + "file": "rejection-records.json", + "sha256": "4c0378f533f38ed16cf34dd1aa04a3e82e9ef25dfcc4236a674d257e7cf22792", + "bytes": 3009, + "original_ref": null + } + ] + }, + { + "id": "joint-change-request-closing-bracket", + "trial": "bug20-joint-planning-20261019", + "case_id": "BUG-000020", + "package_id": "trial-joint-planning-BUG-000020-20261019", + "analysis_revision": 1, + "source_generation": 97, + "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-60d94dc476555860dafbb6b852fa5a4d763ea432e1f62723280817bafa379d35-r0001-g00000097.zip", + "original_call_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/round-0001.json", + "rejection_code": "LLM_RESPONSE", + "protocol_status": "ERROR", + "reason": "The human_dev object ends with ] instead of }. Replacing that single closing bracket in memory made the full output pass the existing change-request validator. No original content was accepted or modified.", + "files": [ + { + "file": "call.json", + "sha256": "267554a74192630ddabdcd221cf78e62067b58abce18bf5403e9fcf061bfe74d", + "bytes": 7005, + "original_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/round-0001.json" + }, + { + "file": "request.json", + "sha256": "102a8dfbae42f36a98a1397f9b8325e7007761dd043d436b5ed105891937ae41", + "bytes": 46720, + "original_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/request.json" + }, + { + "file": "answer.txt", + "sha256": "61e732ecd61b5a04790bcef1d2049cf75fb36075df6a4a5c12a63756f1f9d716", + "bytes": 4652, + "original_ref": "llm/operations/17917402a4c04bd20ae3b0a2f256a39daa4c026a0afff5f80f408478611d4e03/round-0001.json#/outcome/response_capture/text" + }, + { + "file": "validation-context.json", + "sha256": "48d4ec5a7671f42eac599fd3f186a52733bbed9f7aa1a090f228764798547ca4", + "bytes": 324098, + "original_ref": "analysis/change-requests/0001/context.json" + }, + { + "file": "rejection-records.json", + "sha256": "34536a46d16f0fefe08e370433a36fe1c2a7c82bc32635b40e94781039460d13", + "bytes": 257, + "original_ref": null + } + ] + }, + { + "id": "separate-hypotheses-terminal-character", + "trial": "bug20-shared-recovery-20261019", + "case_id": "BUG-000020", + "package_id": "trial-shared-recovery-BUG-000020-20261019", + "analysis_revision": 1, + "source_generation": 100, + "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-49c833d7194c687b04596c9b9a4bd0f4f021f54171839fb8336fc85296f98ed6-r0001-g00000100.zip", + "original_call_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/round-0001.json", + "rejection_code": "LLM_RESPONSE", + "protocol_status": "ERROR", + "reason": "The response ends after three complete proposal objects with an extraneous character and missing outer closers. Replacing the terminal character with ]} in memory passed the existing hypothesis validator. This is NOT an approved generic repair: completing containers can conceal truncation.", + "files": [ + { + "file": "call.json", + "sha256": "bc380985aadade22f74e06b73d0bac5a5bded15078f9fd44884625971fb98d57", + "bytes": 8324, + "original_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/round-0001.json" + }, + { + "file": "request.json", + "sha256": "2d0c1c94f68b686d0837c7c1f1137e88363b62e3d26f89781b46c9e9881fc900", + "bytes": 47383, + "original_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/request.json" + }, + { + "file": "answer.txt", + "sha256": "b1f8453566dc2f0ed38d48478a4db57906f6cd96ba2e40757887950678317d6a", + "bytes": 6015, + "original_ref": "llm/operations/5fa06d3e4f4063a74b5818fdba690a7e1cd8b145506fb7c1d2a5deefc421ef98/round-0001.json#/outcome/response_capture/text" + }, + { + "file": "validation-context.json", + "sha256": "2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f", + "bytes": 149529, + "original_ref": "analysis/hypotheses/0001/context.json" + }, + { + "file": "rejection-records.json", + "sha256": "8c5fd3b22a44deffe99b5f3c600818768b32f39910c3493e7cba2a6630697989", + "bytes": 2118, + "original_ref": null + } + ] + }, + { + "id": "separate-hypotheses-stray-token", + "trial": "bug20-shared-recovery-20261019", + "case_id": "BUG-000020", + "package_id": "trial-shared-recovery-BUG-000020-20261019", + "analysis_revision": 1, + "source_generation": 100, + "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-49c833d7194c687b04596c9b9a4bd0f4f021f54171839fb8336fc85296f98ed6-r0001-g00000100.zip", + "original_call_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/round-0001.json", + "rejection_code": "LLM_RESPONSE", + "protocol_status": "ERROR", + "reason": "An unquoted stray word syndromes occurs between the final proposal object and existing ]}. Deleting only this token in memory passed the existing hypothesis validator. A future rule must preserve all literals and reject ambiguous deletions.", + "files": [ + { + "file": "call.json", + "sha256": "5fd4b4625d59cfa6409ffe8bd69d3dbb19a2fcc48dd0ffd08a2c2db08718b781", + "bytes": 8302, + "original_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/round-0001.json" + }, + { + "file": "request.json", + "sha256": "7805fb5cb286733c015e25fda71ad63fa74109faeb7ee036441cc4299153c1ae", + "bytes": 48375, + "original_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/request.json" + }, + { + "file": "answer.txt", + "sha256": "bc041ff5810c56a62b28ca95877d404c9d5759fcab708d8187b3d49499378c12", + "bytes": 6004, + "original_ref": "llm/operations/b58ae687fdde681ed31f46a21147298ced592a1fb391d86a3f346bfd3e648096/round-0001.json#/outcome/response_capture/text" + }, + { + "file": "validation-context.json", + "sha256": "2b979744cf039d037887ac9abd4f0154ef1682918959c0139969d2f32867524f", + "bytes": 149529, + "original_ref": "analysis/hypotheses/0001/context.json" + }, + { + "file": "rejection-records.json", + "sha256": "6848c99604c6cde8679b2cfc6d6eec805650cefd82b4ac6f43267700583e55cd", + "bytes": 2118, + "original_ref": null + } + ] + }, + { + "id": "separate-investigation-filter-list", + "trial": "bug20-shared-recovery-20261019", + "case_id": "BUG-000020", + "package_id": "trial-shared-recovery-BUG-000020-20261019", + "analysis_revision": 1, + "source_generation": 100, + "original_package_filename": "897a914b67a02e6109a6b567e377e43c72b90ab216bfb9d2dc24485a5a55db8d-49c833d7194c687b04596c9b9a4bd0f4f021f54171839fb8336fc85296f98ed6-r0001-g00000100.zip", + "original_call_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json", + "rejection_code": "INVESTIGATION_OUTPUT", + "protocol_status": "SUCCESS", + "reason": "The tool query uses an undocumented flat filter array with !#flatten instead of column/operator/value objects. The same response also overstates static Horde spawns as disproof of dynamic spawning. Do not repair only the filter and blindly execute coupled confidence/evidence updates.", + "files": [ + { + "file": "call.json", + "sha256": "a6a08a0d40b10272895171f82bcd4f28dccf9b6f46cead9e34894f64fa57747a", + "bytes": 5346, + "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json" + }, + { + "file": "request.json", + "sha256": "f4fe5aca4a013ea1a030e75cb9e3a5d3d024c4ea68a8795fd5178f6557acf52e", + "bytes": 51406, + "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/request.json" + }, + { + "file": "answer.txt", + "sha256": "0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31", + "bytes": 1941, + "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json#/outcome/response_capture/text" + }, + { + "file": "parsed-answer.json", + "sha256": "0def03fad919def538aa1d72ce1d97333364029fcd2ae95e8bad31d9fc550e31", + "bytes": 1941, + "original_ref": "llm/operations/71fd77c20b2af9bb2d842927c7a39cc8e1cf3e15541f387a26054fdb1047b6e4/round-0001.json#/outcome/document" + }, + { + "file": "validation-context.json", + "sha256": "e205dcc34b1be5efa05de33ccb8a9984c6867f5d220d68dc0dda1a37696e9956", + "bytes": 393837, + "original_ref": "analysis/investigation/0001/contexts/H3-0001-attempt-0001.json" + }, + { + "file": "rejection-records.json", + "sha256": "aaa0462cf3ce158c307280e4ef9c339222209f97dc58a0451a625a5dcc3a4133", + "bytes": 317, + "original_ref": null + } + ] + } + ] +} diff --git a/tests/fixtures/llm_rejections/20261019/joint-change-request-closing-bracket/analysis.md b/tests/fixtures/llm_rejections/20261019/joint-change-request-closing-bracket/analysis.md index 7cc6b00..fdf5937 100644 --- a/tests/fixtures/llm_rejections/20261019/joint-change-request-closing-bracket/analysis.md +++ b/tests/fixtures/llm_rejections/20261019/joint-change-request-closing-bracket/analysis.md @@ -1,7 +1,7 @@ -# joint-change-request-closing-bracket - -Rejection: `LLM_RESPONSE`. Protocol status: `ERROR` (a successful protocol response may still fail its owning phase). - -The human_dev object ends with ] instead of }. Replacing that single closing bracket in memory made the full output pass the existing change-request validator. No original content was accepted or modified. - -See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. +# joint-change-request-closing-bracket + +Rejection: `LLM_RESPONSE`. Protocol status: `ERROR` (a successful protocol response may still fail its owning phase). + +The human_dev object ends with ] instead of }. Replacing that single closing bracket in memory made the full output pass the existing change-request validator. No original content was accepted or modified. + +See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. diff --git a/tests/fixtures/llm_rejections/20261019/joint-interpretation-source-kinds/analysis.md b/tests/fixtures/llm_rejections/20261019/joint-interpretation-source-kinds/analysis.md index e1041f8..80979d4 100644 --- a/tests/fixtures/llm_rejections/20261019/joint-interpretation-source-kinds/analysis.md +++ b/tests/fixtures/llm_rejections/20261019/joint-interpretation-source-kinds/analysis.md @@ -1,7 +1,7 @@ -# joint-interpretation-source-kinds - -Rejection: `INTERPRETATION_SOURCE_KIND`. Protocol status: `SUCCESS` (a successful protocol response may still fail its owning phase). - -Two source-category errors: observed_behavior/2 cites a fact in addition to a valid observation; tester_assumptions/0 overstates the tester report as an exclusive prerequisite. Further unverified item labels and a flag-symbol mapping are qualitative findings, not emitted validation codes. - -See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. +# joint-interpretation-source-kinds + +Rejection: `INTERPRETATION_SOURCE_KIND`. Protocol status: `SUCCESS` (a successful protocol response may still fail its owning phase). + +Two source-category errors: observed_behavior/2 cites a fact in addition to a valid observation; tester_assumptions/0 overstates the tester report as an exclusive prerequisite. Further unverified item labels and a flag-symbol mapping are qualitative findings, not emitted validation codes. + +See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. diff --git a/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-context-v1.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-context-v1.schema.json index 24addf3..7e9faa5 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-context-v1.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-context-v1.schema.json @@ -1,138 +1,138 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "format": { - "const": "viano-case-interpretation-context" - }, - "format_version": { - "type": "integer", - "const": 1 - }, - "case_ref": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "case_sha256": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "case": { - "type": "object", - "required": [ - "case_id", - "package_id", - "analysis_revision" - ], - "properties": { - "case_id": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "package_id": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "analysis_revision": { - "type": "integer", - "minimum": 1 - } - } - }, - "expected_behavior_completeness": { - "enum": [ - "missing", - "unspecified", - "reported_complete", - "reported_partial", - "conflicting", - "researched_complete", - "researched_partial" - ] - }, - "expected_behavior_provenance": { - "enum": [ - "tester", - "none", - "external_research", - "combined" - ] - }, - "sources": { - "type": "object", - "propertyNames": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - }, - "additionalProperties": { - "type": "object", - "required": [ - "kind", - "case_pointer", - "data" - ], - "properties": { - "kind": { - "enum": [ - "report", - "observation", - "tester_comment", - "tester_assumption", - "expectation", - "fact", - "fact_reference", - "reproduction", - "step", - "entity", - "data_quality", - "unread_reference", - "expectation_state" - ] - }, - "case_pointer": { - "type": "string", - "pattern": "^/" - }, - "data": {} - }, - "additionalProperties": false - } - }, - "model_encoding": { - "const": "shared_json_v1" - }, - "context_selection": { - "const": "phase_selection_v1" - }, - "joint_generation": { - "type": "object", - "properties": { - "policy": { - "type": "object" - }, - "prior_generations": { - "type": "array" - } - }, - "required": [ - "policy", - "prior_generations" - ], - "additionalProperties": false - } - }, - "required": [ - "format", - "format_version", - "case_ref", - "case_sha256", - "case", - "expected_behavior_completeness", - "expected_behavior_provenance", - "sources" - ], - "additionalProperties": false -} +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "format": { + "const": "viano-case-interpretation-context" + }, + "format_version": { + "type": "integer", + "const": 1 + }, + "case_ref": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "case_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "case": { + "type": "object", + "required": [ + "case_id", + "package_id", + "analysis_revision" + ], + "properties": { + "case_id": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "package_id": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "analysis_revision": { + "type": "integer", + "minimum": 1 + } + } + }, + "expected_behavior_completeness": { + "enum": [ + "missing", + "unspecified", + "reported_complete", + "reported_partial", + "conflicting", + "researched_complete", + "researched_partial" + ] + }, + "expected_behavior_provenance": { + "enum": [ + "tester", + "none", + "external_research", + "combined" + ] + }, + "sources": { + "type": "object", + "propertyNames": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + }, + "additionalProperties": { + "type": "object", + "required": [ + "kind", + "case_pointer", + "data" + ], + "properties": { + "kind": { + "enum": [ + "report", + "observation", + "tester_comment", + "tester_assumption", + "expectation", + "fact", + "fact_reference", + "reproduction", + "step", + "entity", + "data_quality", + "unread_reference", + "expectation_state" + ] + }, + "case_pointer": { + "type": "string", + "pattern": "^/" + }, + "data": {} + }, + "additionalProperties": false + } + }, + "model_encoding": { + "const": "shared_json_v1" + }, + "context_selection": { + "const": "phase_selection_v1" + }, + "joint_generation": { + "type": "object", + "properties": { + "policy": { + "type": "object" + }, + "prior_generations": { + "type": "array" + } + }, + "required": [ + "policy", + "prior_generations" + ], + "additionalProperties": false + } + }, + "required": [ + "format", + "format_version", + "case_ref", + "case_sha256", + "case", + "expected_behavior_completeness", + "expected_behavior_provenance", + "sources" + ], + "additionalProperties": false +} diff --git a/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-output-v1.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-output-v1.schema.json index b9aaa20..b1f194d 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-output-v1.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-output-v1.schema.json @@ -1,154 +1,154 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "observed_behavior": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "expected_behavior": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "tester_assumptions": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "confirmed_technical_facts": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "contradictions": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "unknowns": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "investigation_direction": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "behavior_gap": { - "anyOf": [ - { - "$ref": "#/$defs/statement" - }, - { - "type": "null" - } - ] - }, - "first_known_divergence": { - "anyOf": [ - { - "$ref": "#/$defs/statement" - }, - { - "type": "null" - } - ] - }, - "failure_stage": { - "anyOf": [ - { - "$ref": "#/$defs/statement" - }, - { - "type": "null" - } - ] - }, - "relevant_entities": { - "type": "array", - "items": { - "type": "object", - "required": [ - "entity_id", - "reason", - "source_ids" - ], - "properties": { - "entity_id": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - }, - "reason": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - } - }, - "additionalProperties": false - } - }, - "interpretation_summary": { - "$ref": "#/$defs/statement" - } - }, - "required": [ - "observed_behavior", - "expected_behavior", - "tester_assumptions", - "confirmed_technical_facts", - "contradictions", - "unknowns", - "investigation_direction", - "behavior_gap", - "first_known_divergence", - "failure_stage", - "relevant_entities", - "interpretation_summary" - ], - "additionalProperties": false, - "$defs": { - "statement": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - } - }, - "required": [ - "text", - "source_ids" - ], - "additionalProperties": false - } - } -} +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "observed_behavior": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "expected_behavior": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "tester_assumptions": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "confirmed_technical_facts": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "contradictions": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "unknowns": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "investigation_direction": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "behavior_gap": { + "anyOf": [ + { + "$ref": "#/$defs/statement" + }, + { + "type": "null" + } + ] + }, + "first_known_divergence": { + "anyOf": [ + { + "$ref": "#/$defs/statement" + }, + { + "type": "null" + } + ] + }, + "failure_stage": { + "anyOf": [ + { + "$ref": "#/$defs/statement" + }, + { + "type": "null" + } + ] + }, + "relevant_entities": { + "type": "array", + "items": { + "type": "object", + "required": [ + "entity_id", + "reason", + "source_ids" + ], + "properties": { + "entity_id": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + }, + "reason": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + } + }, + "additionalProperties": false + } + }, + "interpretation_summary": { + "$ref": "#/$defs/statement" + } + }, + "required": [ + "observed_behavior", + "expected_behavior", + "tester_assumptions", + "confirmed_technical_facts", + "contradictions", + "unknowns", + "investigation_direction", + "behavior_gap", + "first_known_divergence", + "failure_stage", + "relevant_entities", + "interpretation_summary" + ], + "additionalProperties": false, + "$defs": { + "statement": { + "type": "object", + "properties": { + "text": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + } + }, + "required": [ + "text", + "source_ids" + ], + "additionalProperties": false + } + } +} diff --git a/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-quality-output-v1.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-quality-output-v1.schema.json index 2a5349d..0392a54 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-quality-output-v1.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/case-interpretation-quality-output-v1.schema.json @@ -1,230 +1,230 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "observed_behavior": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "expected_behavior": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "tester_assumptions": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "confirmed_technical_facts": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "contradictions": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "unknowns": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "investigation_direction": { - "type": "array", - "items": { - "$ref": "#/$defs/statement" - } - }, - "behavior_gap": { - "anyOf": [ - { - "$ref": "#/$defs/statement" - }, - { - "type": "null" - } - ] - }, - "first_known_divergence": { - "anyOf": [ - { - "$ref": "#/$defs/statement" - }, - { - "type": "null" - } - ] - }, - "failure_stage": { - "anyOf": [ - { - "$ref": "#/$defs/statement" - }, - { - "type": "null" - } - ] - }, - "relevant_entities": { - "type": "array", - "items": { - "type": "object", - "required": [ - "entity_id", - "reason", - "source_ids" - ], - "properties": { - "entity_id": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - }, - "reason": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - } - }, - "additionalProperties": false - } - }, - "interpretation_summary": { - "$ref": "#/$defs/statement" - }, - "described_behavior": { - "type": "array", - "items": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - }, - "basis": { - "const": "local_description" - }, - "verification": { - "const": "not_independently_verified" - } - }, - "required": [ - "text", - "source_ids", - "basis", - "verification" - ], - "additionalProperties": false - } - }, - "provisional_behavior_gap": { - "anyOf": [ - { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - }, - "basis": { - "const": "local_description" - }, - "status": { - "const": "provisional" - } - }, - "required": [ - "text", - "source_ids", - "basis", - "status" - ], - "additionalProperties": false - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "observed_behavior", - "expected_behavior", - "tester_assumptions", - "confirmed_technical_facts", - "contradictions", - "unknowns", - "investigation_direction", - "behavior_gap", - "first_known_divergence", - "failure_stage", - "relevant_entities", - "interpretation_summary", - "described_behavior", - "provisional_behavior_gap" - ], - "additionalProperties": false, - "$defs": { - "statement": { - "type": "object", - "properties": { - "text": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - } - }, - "required": [ - "text", - "source_ids" - ], - "additionalProperties": false - } - } -} +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "observed_behavior": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "expected_behavior": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "tester_assumptions": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "confirmed_technical_facts": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "contradictions": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "unknowns": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "investigation_direction": { + "type": "array", + "items": { + "$ref": "#/$defs/statement" + } + }, + "behavior_gap": { + "anyOf": [ + { + "$ref": "#/$defs/statement" + }, + { + "type": "null" + } + ] + }, + "first_known_divergence": { + "anyOf": [ + { + "$ref": "#/$defs/statement" + }, + { + "type": "null" + } + ] + }, + "failure_stage": { + "anyOf": [ + { + "$ref": "#/$defs/statement" + }, + { + "type": "null" + } + ] + }, + "relevant_entities": { + "type": "array", + "items": { + "type": "object", + "required": [ + "entity_id", + "reason", + "source_ids" + ], + "properties": { + "entity_id": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + }, + "reason": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + } + }, + "additionalProperties": false + } + }, + "interpretation_summary": { + "$ref": "#/$defs/statement" + }, + "described_behavior": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + }, + "basis": { + "const": "local_description" + }, + "verification": { + "const": "not_independently_verified" + } + }, + "required": [ + "text", + "source_ids", + "basis", + "verification" + ], + "additionalProperties": false + } + }, + "provisional_behavior_gap": { + "anyOf": [ + { + "type": "object", + "properties": { + "text": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + }, + "basis": { + "const": "local_description" + }, + "status": { + "const": "provisional" + } + }, + "required": [ + "text", + "source_ids", + "basis", + "status" + ], + "additionalProperties": false + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "observed_behavior", + "expected_behavior", + "tester_assumptions", + "confirmed_technical_facts", + "contradictions", + "unknowns", + "investigation_direction", + "behavior_gap", + "first_known_divergence", + "failure_stage", + "relevant_entities", + "interpretation_summary", + "described_behavior", + "provisional_behavior_gap" + ], + "additionalProperties": false, + "$defs": { + "statement": { + "type": "object", + "properties": { + "text": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + } + }, + "required": [ + "text", + "source_ids" + ], + "additionalProperties": false + } + } +} diff --git a/tests/fixtures/llm_rejections/20261019/schemas/change-request-output-v2.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/change-request-output-v2.schema.json index abada14..499c28c 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/change-request-output-v2.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/change-request-output-v2.schema.json @@ -1,273 +1,273 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "additionalProperties": false, - "required": [ - "status", - "problem_summary", - "affected_scope", - "required_change", - "implementation_intent", - "implementation_guidance", - "constraints", - "preserve", - "forbidden_changes", - "do_not_fix_by", - "validation_requirements", - "missing_information", - "reason", - "human_dev", - "placeholders" - ], - "properties": { - "status": { - "enum": [ - "ready", - "template", - "none" - ] - }, - "problem_summary": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "affected_scope": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": [ - "kind", - "source_ref", - "evidence_refs" - ], - "properties": { - "kind": { - "enum": [ - "source", - "database" - ] - }, - "source_ref": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "evidence_refs": { - "type": "array", - "items": { - "type": "string", - "pattern": "^E[0-9]{6,}$" - }, - "minItems": 1, - "maxItems": 100, - "uniqueItems": true - } - } - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "required_change": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "implementation_intent": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "implementation_guidance": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "constraints": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "preserve": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "forbidden_changes": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "do_not_fix_by": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "validation_requirements": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "required": [ - "description", - "evidence_refs" - ], - "properties": { - "description": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "evidence_refs": { - "type": "array", - "items": { - "type": "string", - "pattern": "^E[0-9]{6,}$" - }, - "minItems": 1, - "maxItems": 100, - "uniqueItems": true - } - } - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "missing_information": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "minItems": 0, - "maxItems": 100, - "uniqueItems": true - }, - "reason": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "human_dev": { - "type": "object", - "additionalProperties": false, - "required": [ - "status", - "title", - "reason", - "instructions", - "expected_results" - ], - "properties": { - "status": { - "enum": [ - "assigned", - "none" - ] - }, - "title": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "reason": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - }, - "instructions": { - "type": "array", - "maxItems": 100, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - } - }, - "expected_results": { - "type": "array", - "maxItems": 100, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - } - } - } - }, - "placeholders": { - "type": "array", - "maxItems": 100, - "items": { - "type": "object", - "additionalProperties": false, - "required": [ - "token", - "description" - ], - "properties": { - "token": { - "type": "string", - "pattern": "^\\{\\{[A-Z][A-Z0-9_]*\\}\\}$" - }, - "description": { - "type": "string", - "minLength": 1, - "maxLength": 8000, - "pattern": "\\S" - } - } - } - } - } -} +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "additionalProperties": false, + "required": [ + "status", + "problem_summary", + "affected_scope", + "required_change", + "implementation_intent", + "implementation_guidance", + "constraints", + "preserve", + "forbidden_changes", + "do_not_fix_by", + "validation_requirements", + "missing_information", + "reason", + "human_dev", + "placeholders" + ], + "properties": { + "status": { + "enum": [ + "ready", + "template", + "none" + ] + }, + "problem_summary": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "affected_scope": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "kind", + "source_ref", + "evidence_refs" + ], + "properties": { + "kind": { + "enum": [ + "source", + "database" + ] + }, + "source_ref": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "evidence_refs": { + "type": "array", + "items": { + "type": "string", + "pattern": "^E[0-9]{6,}$" + }, + "minItems": 1, + "maxItems": 100, + "uniqueItems": true + } + } + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "required_change": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "implementation_intent": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "implementation_guidance": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "preserve": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "forbidden_changes": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "do_not_fix_by": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "validation_requirements": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "description", + "evidence_refs" + ], + "properties": { + "description": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "evidence_refs": { + "type": "array", + "items": { + "type": "string", + "pattern": "^E[0-9]{6,}$" + }, + "minItems": 1, + "maxItems": 100, + "uniqueItems": true + } + } + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "missing_information": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "minItems": 0, + "maxItems": 100, + "uniqueItems": true + }, + "reason": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "human_dev": { + "type": "object", + "additionalProperties": false, + "required": [ + "status", + "title", + "reason", + "instructions", + "expected_results" + ], + "properties": { + "status": { + "enum": [ + "assigned", + "none" + ] + }, + "title": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "reason": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + }, + "instructions": { + "type": "array", + "maxItems": 100, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + } + }, + "expected_results": { + "type": "array", + "maxItems": 100, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + } + } + } + }, + "placeholders": { + "type": "array", + "maxItems": 100, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "token", + "description" + ], + "properties": { + "token": { + "type": "string", + "pattern": "^\\{\\{[A-Z][A-Z0-9_]*\\}\\}$" + }, + "description": { + "type": "string", + "minLength": 1, + "maxLength": 8000, + "pattern": "\\S" + } + } + } + } + } +} diff --git a/tests/fixtures/llm_rejections/20261019/schemas/hypotheses-output-v1.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/hypotheses-output-v1.schema.json index 1989c28..c4bf09a 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/hypotheses-output-v1.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/hypotheses-output-v1.schema.json @@ -1,104 +1,104 @@ -{ - "type": "object", - "properties": { - "hypotheses": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/$defs/proposal" - } - } - }, - "required": [ - "hypotheses" - ], - "additionalProperties": false, - "$defs": { - "proposal": { - "type": "object", - "properties": { - "title": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "mechanism": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "rationale": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "distinction": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "source_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - } - }, - "interpretation_ids": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "pattern": "^I[0-9]{4,}$" - } - }, - "expected_evidence": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - } - }, - "falsifying_evidence": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - } - }, - "open_questions": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - } - } - }, - "required": [ - "title", - "mechanism", - "rationale", - "distinction", - "source_ids", - "interpretation_ids", - "expected_evidence", - "falsifying_evidence", - "open_questions" - ], - "additionalProperties": false - } - }, - "$schema": "https://json-schema.org/draft/2020-12/schema" -} +{ + "type": "object", + "properties": { + "hypotheses": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/proposal" + } + } + }, + "required": [ + "hypotheses" + ], + "additionalProperties": false, + "$defs": { + "proposal": { + "type": "object", + "properties": { + "title": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "mechanism": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "rationale": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "distinction": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "source_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + } + }, + "interpretation_ids": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "pattern": "^I[0-9]{4,}$" + } + }, + "expected_evidence": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + } + }, + "falsifying_evidence": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + } + }, + "open_questions": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + } + } + }, + "required": [ + "title", + "mechanism", + "rationale", + "distinction", + "source_ids", + "interpretation_ids", + "expected_evidence", + "falsifying_evidence", + "open_questions" + ], + "additionalProperties": false + } + }, + "$schema": "https://json-schema.org/draft/2020-12/schema" +} diff --git a/tests/fixtures/llm_rejections/20261019/schemas/hypothesis-context-v1.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/hypothesis-context-v1.schema.json index 0275f36..09a65c9 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/hypothesis-context-v1.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/hypothesis-context-v1.schema.json @@ -1,276 +1,276 @@ -{ - "type": "object", - "properties": { - "format": { - "const": "viano-hypothesis-context" - }, - "format_version": { - "type": "integer", - "const": 1 - }, - "case_context": { - "type": "object", - "properties": { - "format": { - "const": "viano-case-interpretation-context" - }, - "format_version": { - "type": "integer", - "const": 1 - }, - "case_ref": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "case_sha256": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "case": { - "type": "object", - "required": [ - "case_id", - "package_id", - "analysis_revision" - ], - "properties": { - "case_id": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "package_id": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "analysis_revision": { - "type": "integer", - "minimum": 1 - } - } - }, - "expected_behavior_completeness": { - "enum": [ - "missing", - "unspecified", - "reported_complete", - "reported_partial", - "conflicting", - "researched_complete", - "researched_partial" - ] - }, - "expected_behavior_provenance": { - "enum": [ - "tester", - "none", - "external_research", - "combined" - ] - }, - "sources": { - "type": "object", - "propertyNames": { - "type": "string", - "pattern": "^[A-Z][0-9]{4,}$" - }, - "additionalProperties": { - "type": "object", - "required": [ - "kind", - "case_pointer", - "data" - ], - "properties": { - "kind": { - "enum": [ - "report", - "observation", - "tester_comment", - "tester_assumption", - "expectation", - "fact", - "fact_reference", - "reproduction", - "step", - "entity", - "data_quality", - "unread_reference", - "expectation_state" - ] - }, - "case_pointer": { - "type": "string", - "pattern": "^/" - }, - "data": {} - }, - "additionalProperties": false - } - }, - "model_encoding": { - "const": "shared_json_v1" - }, - "context_selection": { - "const": "phase_selection_v1" - }, - "joint_generation": { - "type": "object", - "properties": { - "policy": { - "type": "object" - }, - "prior_generations": { - "type": "array" - } - }, - "required": [ - "policy", - "prior_generations" - ], - "additionalProperties": false - } - }, - "required": [ - "format", - "format_version", - "case_ref", - "case_sha256", - "case", - "expected_behavior_completeness", - "expected_behavior_provenance", - "sources" - ], - "additionalProperties": false - }, - "interpretation_ref": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "interpretation_sha256": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "interpretation_sources": { - "type": "object", - "propertyNames": { - "type": "string", - "pattern": "^I[0-9]{4,}$" - }, - "additionalProperties": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "interpretation_pointer": { - "type": "string", - "pattern": "^/interpretation/" - }, - "data": {} - }, - "required": [ - "kind", - "interpretation_pointer", - "data" - ], - "additionalProperties": false - } - }, - "policy": { - "type": "object", - "properties": { - "format": { - "const": "viano-hypothesis-policy" - }, - "format_version": { - "type": "integer", - "const": 1 - }, - "min_hypotheses": { - "type": "integer", - "minimum": 1 - }, - "max_hypotheses": { - "type": "integer", - "minimum": 1 - }, - "initial_budget": { - "type": "integer", - "minimum": 1 - }, - "budget_unit": { - "const": "investigation_units" - } - }, - "required": [ - "format", - "format_version", - "min_hypotheses", - "max_hypotheses", - "initial_budget", - "budget_unit" - ], - "additionalProperties": false, - "$schema": "https://json-schema.org/draft/2020-12/schema" - }, - "prior_generations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "analysis_revision": { - "type": "integer", - "minimum": 1 - }, - "hypotheses_ref": { - "type": "string", - "minLength": 1, - "pattern": "\\S" - }, - "hypotheses_sha256": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "initial_proposals": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "required": [ - "analysis_revision", - "hypotheses_ref", - "hypotheses_sha256", - "initial_proposals" - ], - "additionalProperties": false - } - }, - "prompt_version": { - "enum": [ - "hypotheses_v2", - "hypotheses_v3", - "hypotheses_v4" - ] - } - }, - "required": [ - "format", - "format_version", - "case_context", - "interpretation_ref", - "interpretation_sha256", - "interpretation_sources", - "policy", - "prior_generations" - ], - "additionalProperties": false, - "$schema": "https://json-schema.org/draft/2020-12/schema" -} +{ + "type": "object", + "properties": { + "format": { + "const": "viano-hypothesis-context" + }, + "format_version": { + "type": "integer", + "const": 1 + }, + "case_context": { + "type": "object", + "properties": { + "format": { + "const": "viano-case-interpretation-context" + }, + "format_version": { + "type": "integer", + "const": 1 + }, + "case_ref": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "case_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "case": { + "type": "object", + "required": [ + "case_id", + "package_id", + "analysis_revision" + ], + "properties": { + "case_id": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "package_id": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "analysis_revision": { + "type": "integer", + "minimum": 1 + } + } + }, + "expected_behavior_completeness": { + "enum": [ + "missing", + "unspecified", + "reported_complete", + "reported_partial", + "conflicting", + "researched_complete", + "researched_partial" + ] + }, + "expected_behavior_provenance": { + "enum": [ + "tester", + "none", + "external_research", + "combined" + ] + }, + "sources": { + "type": "object", + "propertyNames": { + "type": "string", + "pattern": "^[A-Z][0-9]{4,}$" + }, + "additionalProperties": { + "type": "object", + "required": [ + "kind", + "case_pointer", + "data" + ], + "properties": { + "kind": { + "enum": [ + "report", + "observation", + "tester_comment", + "tester_assumption", + "expectation", + "fact", + "fact_reference", + "reproduction", + "step", + "entity", + "data_quality", + "unread_reference", + "expectation_state" + ] + }, + "case_pointer": { + "type": "string", + "pattern": "^/" + }, + "data": {} + }, + "additionalProperties": false + } + }, + "model_encoding": { + "const": "shared_json_v1" + }, + "context_selection": { + "const": "phase_selection_v1" + }, + "joint_generation": { + "type": "object", + "properties": { + "policy": { + "type": "object" + }, + "prior_generations": { + "type": "array" + } + }, + "required": [ + "policy", + "prior_generations" + ], + "additionalProperties": false + } + }, + "required": [ + "format", + "format_version", + "case_ref", + "case_sha256", + "case", + "expected_behavior_completeness", + "expected_behavior_provenance", + "sources" + ], + "additionalProperties": false + }, + "interpretation_ref": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "interpretation_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "interpretation_sources": { + "type": "object", + "propertyNames": { + "type": "string", + "pattern": "^I[0-9]{4,}$" + }, + "additionalProperties": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "interpretation_pointer": { + "type": "string", + "pattern": "^/interpretation/" + }, + "data": {} + }, + "required": [ + "kind", + "interpretation_pointer", + "data" + ], + "additionalProperties": false + } + }, + "policy": { + "type": "object", + "properties": { + "format": { + "const": "viano-hypothesis-policy" + }, + "format_version": { + "type": "integer", + "const": 1 + }, + "min_hypotheses": { + "type": "integer", + "minimum": 1 + }, + "max_hypotheses": { + "type": "integer", + "minimum": 1 + }, + "initial_budget": { + "type": "integer", + "minimum": 1 + }, + "budget_unit": { + "const": "investigation_units" + } + }, + "required": [ + "format", + "format_version", + "min_hypotheses", + "max_hypotheses", + "initial_budget", + "budget_unit" + ], + "additionalProperties": false, + "$schema": "https://json-schema.org/draft/2020-12/schema" + }, + "prior_generations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "analysis_revision": { + "type": "integer", + "minimum": 1 + }, + "hypotheses_ref": { + "type": "string", + "minLength": 1, + "pattern": "\\S" + }, + "hypotheses_sha256": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "initial_proposals": { + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "analysis_revision", + "hypotheses_ref", + "hypotheses_sha256", + "initial_proposals" + ], + "additionalProperties": false + } + }, + "prompt_version": { + "enum": [ + "hypotheses_v2", + "hypotheses_v3", + "hypotheses_v4" + ] + } + }, + "required": [ + "format", + "format_version", + "case_context", + "interpretation_ref", + "interpretation_sha256", + "interpretation_sources", + "policy", + "prior_generations" + ], + "additionalProperties": false, + "$schema": "https://json-schema.org/draft/2020-12/schema" +} diff --git a/tests/fixtures/llm_rejections/20261019/schemas/llm-call-v1.schema.json b/tests/fixtures/llm_rejections/20261019/schemas/llm-call-v1.schema.json index 275a633..4b70d24 100644 --- a/tests/fixtures/llm_rejections/20261019/schemas/llm-call-v1.schema.json +++ b/tests/fixtures/llm_rejections/20261019/schemas/llm-call-v1.schema.json @@ -1,639 +1,639 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "operation": { - "const": "llm-round" - }, - "operation_key": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "input_request_hash": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "config_hash": { - "type": "string", - "pattern": "^[0-9a-f]{64}$" - }, - "phase": { - "enum": [ - "BUILDING_CASE", - "BUILDING_DIAGNOSIS", - "GENERATING_HYPOTHESES", - "INTERPRETING_CASE", - "INVESTIGATING_HYPOTHESES", - "REOPENED", - "VALIDATED" - ] - }, - "rounds": { - "type": "integer", - "minimum": 1 - }, - "request_ref": { - "type": "string", - "minLength": 1 - }, - "result_ref": { - "type": "string", - "minLength": 1 - }, - "retry_not_before": { - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "code": { - "type": [ - "string", - "null" - ] - }, - "status": { - "enum": [ - "SUCCESS", - "ERROR", - "RETRY_PENDING", - "BLOCKED" - ] - }, - "automatic_retry": { - "type": "boolean" - }, - "format": { - "const": "viano-llm-call" - }, - "format_version": { - "const": 1 - }, - "case_id": { - "type": "string", - "minLength": 1 - }, - "package_id": { - "type": "string", - "minLength": 1 - }, - "analysis_revision": { - "type": "integer", - "minimum": 0 - }, - "outcome": { - "type": "object", - "properties": { - "http_status": { - "type": "integer", - "minimum": 100, - "maximum": 599 - }, - "attempts": { - "type": "array", - "items": { - "$ref": "#/$defs/http_attempt" - } - }, - "metadata": { - "type": "object", - "properties": { - "attempts": { - "type": "array", - "items": { - "$ref": "#/$defs/http_attempt" - } - }, - "reasoning_profile": { - "const": "investigation_review" - }, - "reasoning_effort": { - "enum": [ - "none", - "minimal", - "low", - "medium", - "high" - ] - } - } - }, - "diagnostics": { - "type": "object", - "properties": { - "input_tokens": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "max_output_tokens": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "output_characters": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "output_tokens": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "reasoning_tokens": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "response_bytes": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "finish_reason": { - "enum": [ - "MAX_TOKENS", - "OTHER", - "SAFETY", - "STOP", - "content_filter", - "function_call", - "length", - "missing", - "stop", - "tool_calls", - "unknown" - ] - }, - "has_refusal": { - "type": "boolean" - }, - "has_tool_calls": { - "type": "boolean" - }, - "validation_keyword": { - "enum": [ - "additionalProperties", - "anyOf", - "const", - "enum", - "maxItems", - "maximum", - "minItems", - "minimum", - "oneOf", - "pattern", - "required", - "type", - "minLength", - "maxLength" - ] - }, - "cached_input_tokens": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "cache_created_tokens": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "cache_ttl_seconds": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "cache_status": { - "enum": [ - "disabled", - "below_minimum", - "created", - "reused", - "fallback" - ] - }, - "validation_path": { - "type": "string", - "maxLength": 240 - }, - "validation_fields": { - "type": "array", - "maxItems": 8, - "items": { - "type": "string", - "maxLength": 64 - } - }, - "response_stage": { - "enum": [ - "http_envelope", - "candidate", - "output_json" - ] - }, - "response_error": { - "enum": [ - "invalid_json", - "json_policy", - "invalid_structure", - "root_not_object" - ] - }, - "parse_line": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "parse_column": { - "type": [ - "integer", - "null" - ], - "minimum": 0, - "maximum": 1000000000000 - }, - "expected_types": { - "type": "array", - "maxItems": 7, - "items": { - "enum": [ - "object", - "array", - "string", - "integer", - "number", - "boolean", - "null" - ] - } - }, - "actual_type": { - "enum": [ - "object", - "array", - "string", - "integer", - "number", - "boolean", - "null" - ] - }, - "json_error_kind": { - "enum": [ - "missing_delimiter", - "missing_key", - "unterminated_string", - "invalid_escape", - "extra_data", - "unexpected_value", - "other" - ] - }, - "json_error_at_end": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "rejected_document": { - "type": "object" - }, - "normalization": { - "type": "object", - "additionalProperties": false, - "required": [ - "version", - "original_document", - "rules" - ], - "properties": { - "version": { - "const": 1 - }, - "original_document": { - "type": "object" - }, - "original_text": { - "type": "string", - "maxLength": 65536 - }, - "rules": { - "type": "array", - "maxItems": 16, - "items": { - "type": "string", - "maxLength": 160 - } - } - } - }, - "repair": { - "type": "object", - "additionalProperties": false, - "required": [ - "version", - "patch" - ], - "properties": { - "version": { - "const": 1 - }, - "patch": { - "type": "object" - } - } - }, - "rejected_repair": { - "type": "object", - "additionalProperties": false, - "required": [ - "version", - "reason", - "sha256" - ], - "properties": { - "version": { - "const": 1 - }, - "reason": { - "type": "string", - "maxLength": 64, - "pattern": "^[A-Z][A-Z0-9_]*$" - }, - "patch": { - "type": "object" - }, - "sha256": { - "type": "string", - "pattern": "^[a-f0-9]{64}$" - }, - "original_text": { - "type": "string", - "maxLength": 65536 - } - }, - "oneOf": [ - { - "required": [ - "patch" - ] - }, - { - "required": [ - "original_text" - ] - } - ] - }, - "response_capture": { - "type": "object", - "additionalProperties": false, - "required": [ - "version", - "sha256", - "bytes", - "complete", - "retained" - ], - "properties": { - "version": { - "const": 1 - }, - "sha256": { - "type": "string", - "pattern": "^[a-f0-9]{64}$" - }, - "bytes": { - "type": "integer", - "minimum": 0 - }, - "complete": { - "type": "boolean" - }, - "retained": { - "type": "boolean" - }, - "text": { - "type": "string", - "maxLength": 65536 - } - }, - "allOf": [ - { - "if": { - "properties": { - "retained": { - "const": true - } - } - }, - "then": { - "required": [ - "text" - ] - }, - "else": { - "not": { - "required": [ - "text" - ] - } - } - } - ] - }, - "response_recovery": { - "type": "object", - "additionalProperties": false, - "required": [ - "version", - "source_ref", - "source_sha256", - "patch_ref", - "patch_sha256", - "semantic_code", - "failure_code" - ], - "properties": { - "version": { - "const": 1 - }, - "source_ref": { - "type": "string", - "maxLength": 8000 - }, - "patch_ref": { - "type": "string", - "maxLength": 8000 - }, - "source_sha256": { - "type": "string", - "pattern": "^[a-f0-9]{64}$" - }, - "patch_sha256": { - "type": "string", - "pattern": "^[a-f0-9]{64}$" - }, - "semantic_code": { - "enum": [ - null, - "HYPOTHESIS_DUPLICATE" - ] - }, - "failure_code": { - "type": [ - "string", - "null" - ], - "maxLength": 80 - } - } - }, - "response_assessment": { - "type": "object", - "additionalProperties": false, - "required": [ - "version", - "decision", - "raw_retained", - "document_retained" - ], - "properties": { - "version": { - "const": 1 - }, - "decision": { - "enum": [ - "protocol_valid", - "normalized_protocol_valid", - "rejected_incomplete", - "rejected_syntax", - "schema_field_candidate", - "rejected_other_schema", - "no_candidate" - ] - }, - "raw_retained": { - "type": "boolean" - }, - "document_retained": { - "type": "boolean" - } - } - } - } - }, - "derived": { - "type": "boolean" - } - }, - "$defs": { - "http_attempt": { - "type": "object", - "properties": { - "http_status": { - "type": "integer", - "minimum": 100, - "maximum": 599 - } - } - } - }, - "required": [ - "operation", - "operation_key", - "input_request_hash", - "config_hash", - "phase", - "rounds", - "request_ref", - "result_ref", - "retry_not_before", - "code", - "status", - "format", - "format_version", - "case_id", - "package_id", - "analysis_revision", - "outcome" - ], - "additionalProperties": false, - "allOf": [ - { - "if": { - "required": [ - "derived" - ], - "properties": { - "derived": { - "const": true - } - } - }, - "then": { - "properties": { - "outcome": { - "required": [ - "response_recovery" - ] - } - } - } - }, - { - "if": { - "properties": { - "outcome": { - "required": [ - "response_recovery" - ] - } - } - }, - "then": { - "required": [ - "derived" - ], - "properties": { - "derived": { - "const": true - } - } - } - } - ] -} +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "operation": { + "const": "llm-round" + }, + "operation_key": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "input_request_hash": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "config_hash": { + "type": "string", + "pattern": "^[0-9a-f]{64}$" + }, + "phase": { + "enum": [ + "BUILDING_CASE", + "BUILDING_DIAGNOSIS", + "GENERATING_HYPOTHESES", + "INTERPRETING_CASE", + "INVESTIGATING_HYPOTHESES", + "REOPENED", + "VALIDATED" + ] + }, + "rounds": { + "type": "integer", + "minimum": 1 + }, + "request_ref": { + "type": "string", + "minLength": 1 + }, + "result_ref": { + "type": "string", + "minLength": 1 + }, + "retry_not_before": { + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "code": { + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "SUCCESS", + "ERROR", + "RETRY_PENDING", + "BLOCKED" + ] + }, + "automatic_retry": { + "type": "boolean" + }, + "format": { + "const": "viano-llm-call" + }, + "format_version": { + "const": 1 + }, + "case_id": { + "type": "string", + "minLength": 1 + }, + "package_id": { + "type": "string", + "minLength": 1 + }, + "analysis_revision": { + "type": "integer", + "minimum": 0 + }, + "outcome": { + "type": "object", + "properties": { + "http_status": { + "type": "integer", + "minimum": 100, + "maximum": 599 + }, + "attempts": { + "type": "array", + "items": { + "$ref": "#/$defs/http_attempt" + } + }, + "metadata": { + "type": "object", + "properties": { + "attempts": { + "type": "array", + "items": { + "$ref": "#/$defs/http_attempt" + } + }, + "reasoning_profile": { + "const": "investigation_review" + }, + "reasoning_effort": { + "enum": [ + "none", + "minimal", + "low", + "medium", + "high" + ] + } + } + }, + "diagnostics": { + "type": "object", + "properties": { + "input_tokens": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "max_output_tokens": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "output_characters": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "output_tokens": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "reasoning_tokens": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "response_bytes": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "finish_reason": { + "enum": [ + "MAX_TOKENS", + "OTHER", + "SAFETY", + "STOP", + "content_filter", + "function_call", + "length", + "missing", + "stop", + "tool_calls", + "unknown" + ] + }, + "has_refusal": { + "type": "boolean" + }, + "has_tool_calls": { + "type": "boolean" + }, + "validation_keyword": { + "enum": [ + "additionalProperties", + "anyOf", + "const", + "enum", + "maxItems", + "maximum", + "minItems", + "minimum", + "oneOf", + "pattern", + "required", + "type", + "minLength", + "maxLength" + ] + }, + "cached_input_tokens": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "cache_created_tokens": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "cache_ttl_seconds": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "cache_status": { + "enum": [ + "disabled", + "below_minimum", + "created", + "reused", + "fallback" + ] + }, + "validation_path": { + "type": "string", + "maxLength": 240 + }, + "validation_fields": { + "type": "array", + "maxItems": 8, + "items": { + "type": "string", + "maxLength": 64 + } + }, + "response_stage": { + "enum": [ + "http_envelope", + "candidate", + "output_json" + ] + }, + "response_error": { + "enum": [ + "invalid_json", + "json_policy", + "invalid_structure", + "root_not_object" + ] + }, + "parse_line": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "parse_column": { + "type": [ + "integer", + "null" + ], + "minimum": 0, + "maximum": 1000000000000 + }, + "expected_types": { + "type": "array", + "maxItems": 7, + "items": { + "enum": [ + "object", + "array", + "string", + "integer", + "number", + "boolean", + "null" + ] + } + }, + "actual_type": { + "enum": [ + "object", + "array", + "string", + "integer", + "number", + "boolean", + "null" + ] + }, + "json_error_kind": { + "enum": [ + "missing_delimiter", + "missing_key", + "unterminated_string", + "invalid_escape", + "extra_data", + "unexpected_value", + "other" + ] + }, + "json_error_at_end": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "rejected_document": { + "type": "object" + }, + "normalization": { + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "original_document", + "rules" + ], + "properties": { + "version": { + "const": 1 + }, + "original_document": { + "type": "object" + }, + "original_text": { + "type": "string", + "maxLength": 65536 + }, + "rules": { + "type": "array", + "maxItems": 16, + "items": { + "type": "string", + "maxLength": 160 + } + } + } + }, + "repair": { + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "patch" + ], + "properties": { + "version": { + "const": 1 + }, + "patch": { + "type": "object" + } + } + }, + "rejected_repair": { + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "reason", + "sha256" + ], + "properties": { + "version": { + "const": 1 + }, + "reason": { + "type": "string", + "maxLength": 64, + "pattern": "^[A-Z][A-Z0-9_]*$" + }, + "patch": { + "type": "object" + }, + "sha256": { + "type": "string", + "pattern": "^[a-f0-9]{64}$" + }, + "original_text": { + "type": "string", + "maxLength": 65536 + } + }, + "oneOf": [ + { + "required": [ + "patch" + ] + }, + { + "required": [ + "original_text" + ] + } + ] + }, + "response_capture": { + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "sha256", + "bytes", + "complete", + "retained" + ], + "properties": { + "version": { + "const": 1 + }, + "sha256": { + "type": "string", + "pattern": "^[a-f0-9]{64}$" + }, + "bytes": { + "type": "integer", + "minimum": 0 + }, + "complete": { + "type": "boolean" + }, + "retained": { + "type": "boolean" + }, + "text": { + "type": "string", + "maxLength": 65536 + } + }, + "allOf": [ + { + "if": { + "properties": { + "retained": { + "const": true + } + } + }, + "then": { + "required": [ + "text" + ] + }, + "else": { + "not": { + "required": [ + "text" + ] + } + } + } + ] + }, + "response_recovery": { + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "source_ref", + "source_sha256", + "patch_ref", + "patch_sha256", + "semantic_code", + "failure_code" + ], + "properties": { + "version": { + "const": 1 + }, + "source_ref": { + "type": "string", + "maxLength": 8000 + }, + "patch_ref": { + "type": "string", + "maxLength": 8000 + }, + "source_sha256": { + "type": "string", + "pattern": "^[a-f0-9]{64}$" + }, + "patch_sha256": { + "type": "string", + "pattern": "^[a-f0-9]{64}$" + }, + "semantic_code": { + "enum": [ + null, + "HYPOTHESIS_DUPLICATE" + ] + }, + "failure_code": { + "type": [ + "string", + "null" + ], + "maxLength": 80 + } + } + }, + "response_assessment": { + "type": "object", + "additionalProperties": false, + "required": [ + "version", + "decision", + "raw_retained", + "document_retained" + ], + "properties": { + "version": { + "const": 1 + }, + "decision": { + "enum": [ + "protocol_valid", + "normalized_protocol_valid", + "rejected_incomplete", + "rejected_syntax", + "schema_field_candidate", + "rejected_other_schema", + "no_candidate" + ] + }, + "raw_retained": { + "type": "boolean" + }, + "document_retained": { + "type": "boolean" + } + } + } + } + }, + "derived": { + "type": "boolean" + } + }, + "$defs": { + "http_attempt": { + "type": "object", + "properties": { + "http_status": { + "type": "integer", + "minimum": 100, + "maximum": 599 + } + } + } + }, + "required": [ + "operation", + "operation_key", + "input_request_hash", + "config_hash", + "phase", + "rounds", + "request_ref", + "result_ref", + "retry_not_before", + "code", + "status", + "format", + "format_version", + "case_id", + "package_id", + "analysis_revision", + "outcome" + ], + "additionalProperties": false, + "allOf": [ + { + "if": { + "required": [ + "derived" + ], + "properties": { + "derived": { + "const": true + } + } + }, + "then": { + "properties": { + "outcome": { + "required": [ + "response_recovery" + ] + } + } + } + }, + { + "if": { + "properties": { + "outcome": { + "required": [ + "response_recovery" + ] + } + } + }, + "then": { + "required": [ + "derived" + ], + "properties": { + "derived": { + "const": true + } + } + } + } + ] +} diff --git a/tests/fixtures/llm_rejections/20261019/separate-hypotheses-stray-token/analysis.md b/tests/fixtures/llm_rejections/20261019/separate-hypotheses-stray-token/analysis.md index f862cf5..e65a663 100644 --- a/tests/fixtures/llm_rejections/20261019/separate-hypotheses-stray-token/analysis.md +++ b/tests/fixtures/llm_rejections/20261019/separate-hypotheses-stray-token/analysis.md @@ -1,7 +1,7 @@ -# separate-hypotheses-stray-token - -Rejection: `LLM_RESPONSE`. Protocol status: `ERROR` (a successful protocol response may still fail its owning phase). - -An unquoted stray word syndromes occurs between the final proposal object and existing ]}. Deleting only this token in memory passed the existing hypothesis validator. A future rule must preserve all literals and reject ambiguous deletions. - -See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. +# separate-hypotheses-stray-token + +Rejection: `LLM_RESPONSE`. Protocol status: `ERROR` (a successful protocol response may still fail its owning phase). + +An unquoted stray word syndromes occurs between the final proposal object and existing ]}. Deleting only this token in memory passed the existing hypothesis validator. A future rule must preserve all literals and reject ambiguous deletions. + +See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. diff --git a/tests/fixtures/llm_rejections/20261019/separate-hypotheses-terminal-character/analysis.md b/tests/fixtures/llm_rejections/20261019/separate-hypotheses-terminal-character/analysis.md index 421fb85..795a9ea 100644 --- a/tests/fixtures/llm_rejections/20261019/separate-hypotheses-terminal-character/analysis.md +++ b/tests/fixtures/llm_rejections/20261019/separate-hypotheses-terminal-character/analysis.md @@ -1,7 +1,7 @@ -# separate-hypotheses-terminal-character - -Rejection: `LLM_RESPONSE`. Protocol status: `ERROR` (a successful protocol response may still fail its owning phase). - -The response ends after three complete proposal objects with an extraneous character and missing outer closers. Replacing the terminal character with ]} in memory passed the existing hypothesis validator. This is NOT an approved generic repair: completing containers can conceal truncation. - -See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. +# separate-hypotheses-terminal-character + +Rejection: `LLM_RESPONSE`. Protocol status: `ERROR` (a successful protocol response may still fail its owning phase). + +The response ends after three complete proposal objects with an extraneous character and missing outer closers. Replacing the terminal character with ]} in memory passed the existing hypothesis validator. This is NOT an approved generic repair: completing containers can conceal truncation. + +See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. diff --git a/tests/fixtures/llm_rejections/20261019/separate-investigation-filter-list/analysis.md b/tests/fixtures/llm_rejections/20261019/separate-investigation-filter-list/analysis.md index 1fe9041..d3b3202 100644 --- a/tests/fixtures/llm_rejections/20261019/separate-investigation-filter-list/analysis.md +++ b/tests/fixtures/llm_rejections/20261019/separate-investigation-filter-list/analysis.md @@ -1,7 +1,7 @@ -# separate-investigation-filter-list - -Rejection: `INVESTIGATION_OUTPUT`. Protocol status: `SUCCESS` (a successful protocol response may still fail its owning phase). - -The tool query uses an undocumented flat filter array with !#flatten instead of column/operator/value objects. The same response also overstates static Horde spawns as disproof of dynamic spawning. Do not repair only the filter and blindly execute coupled confidence/evidence updates. - -See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits. +# separate-investigation-filter-list + +Rejection: `INVESTIGATION_OUTPUT`. Protocol status: `SUCCESS` (a successful protocol response may still fail its owning phase). + +The tool query uses an undocumented flat filter array with !#flatten instead of column/operator/value objects. The same response also overstates static Horde spawns as disproof of dynamic spawning. Do not repair only the filter and blindly execute coupled confidence/evidence updates. + +See the German overall analysis in ../analysis.md for evidence, offline counterprobes and limits.