docs(verdict-gate): maaleavsnittet og invariantraden - fem mutasjoner, fire tall verifisert

S2c § 6s fjerde aerlighets-grense er lukket, og BEGGE stedene den sto skrevet er
rettet: en invariantrad som fortsatt sier "MAALT, RAPPORTERT, IKKE FIKSET" om noe
som er fikset er en ledger som lyver, og S2c-raden i CLAUDE.md sa nettopp det.

docs/2026-09-04-s2c-debatt-k2.md § 8: premisset (2 883 tegn, prompt 1 og 3), hvor
regelen bor og hvorfor akkurat der, at den gatede doera er uroert, at en nektet
lesning er registrert, mutasjonstabellen og de fire verifiserte tallene.

CLAUDE.md: ny invariantrad; S2c-raden retter sin egen paastand.

Verifisert med kommandoer, ikke fra hukommelsen:
  suite            1314 passed / 5 skipped (fra 1306/5, +8, strengt supersett)
  golden           ea8c534773acdbe41ae68f2c55724d69aaf8be4f (INNHOLD, ikke blob)
  syretest doer    850 000 av 3 852 500, 3 av 5, stage 4 + stage 5
  syretest loekke  verdict key=be8535e204cdc4c6, 2 av 2
  mutasjoner       M1 4 roede - M2 1 - M3 1 - M4 3 - M5 4, alle mot HELE suiten

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-04 20:41:32 +02:00
commit bcf3337d8a
2 changed files with 146 additions and 11 deletions

View file

@ -1793,11 +1793,52 @@ Python ≥3.10. MAF (`agent-framework-core` 1.16.0, `-orchestrations` 1.1.1 —
dette manuset; et proposer-manus konsumeres PÅ NYTT av `generate_via_llm`s ferske klient, så et
manus som åpner med et verktøykall brenner genererings-forsøk (uttalt i loaderens docstring, ikke
reparert — å gjette hvilke steg som var «ment for» hvilket kallsted er reparasjon); den hostede
flaten er urørt; og **`read_file` er fortsatt sti-adresserbar til `type: verdict`-laget** — ingen
listing navngir det, men en gjettet sti når en dom utenom den gatede ExpeL-folden. Egenskapen er
ARVET fra S7a-3 og er nå nåbar fra debatten også: MÅLT, RAPPORTERT, IKKE FIKSET (én regel ett
sted, som også endrer utforskningen — egen beslutning). Måling:
`docs/2026-09-04-s2c-debatt-k2.md`.
flaten er urørt; og **`read_file` var sti-adresserbar til `type: verdict`-laget — LUKKET samme dag**
(raden under). Grensen sto her som MÅLT, RAPPORTERT, IKKE FIKSET, med begrunnelsen at å lukke
den er én regel ett sted som også endrer utforskningen, altså en egen beslutning; beslutningen
ble tatt. Måling: `docs/2026-09-04-s2c-debatt-k2.md`.
- **En dom nås gjennom ÉN dør, og `read_file` er ikke den — nekten leser DOKUMENTET, ikke gangen
(verdict-gaten, 04.09, ordre `20260904T172353Z`):** ingen listing navngir `type: verdict`-laget
(`Bundle.context_files` dropper det på hvert nivå, så verken `read_bundle`, `read_dir` eller
`bundle_context` nevner en dom), men en GJETTET sti nådde en — MÅLT: alle 2 883 tegn av
fixturens frø-dom, og i en debattkjøring nådde kroppen prompt 1 og 3. Egenskapen var ARVET fra
S7a-3 og ble nåbar fra debatten da S2c ga den navigatørens fire verktøy. Regelen bor i
`read_file` inne i `navigator_tools`, altså i ÉN kopi for BEGGE kallere — ikke i renderingen
(S2c målte selv at et filter som skjuler et dokument mens denne sprossen serverer bytene er «et
filter i navnet alene») og ikke i prompt-tekst (råd til en utrodd velger er ikke en gate).
**Predikatet er nøklet på det RESOLVERTE DOKUMENTETS frontmatter** (`okf.declares_verdict_type`),
aldri på navigasjonen: `Bundle.verdicts` svarer på «hvilke dommer nådde gangen» — riktig spørsmål
for ExpeL-frøene, feil her, fordi en dom ingen `index.md` lenker er fraværende fra gangen og
ville seilt rett gjennom (M2 → 1 rød, den armen ALENE). `_VERDICT_TYPE` er nå ÉN kopi av hva et
verdict ER (kø-(p)); tre flater svarer på det. **Gaten står FØR dimensjonssjekken**, fordi laget
nektes ubetinget og `dimension=None` er utforskningens EGEN kall — en gate etter den grenen ville
vært fraværende fra nøyaktig den kalleren den ble skrevet for (M5 → 4 røde).
`VerdictLayerRefused` er en `ValueError` (`DimensionScopeRefused`-presedensen: kalleren er en
modell som velger en sti, så nekten hører på CLI-ens nekt-tuppel og hostings 400-arm, aldri
krasj-kanalen). **Den GATEDE døra er urørt, og det er dét som skiller en gate fra en vegg:** en
egen arm kjører hele `run_project` og asserterer at `realiseringsgrad=0.82` fortsatt når
hypotese-prompten gjennom Steg-1-folden. **En nektet lesning er REGISTRERT, aldri stille**
recorderen appender FØR `await call_next()`, så kallet står i `RunResult.debate_tool_calls` og i
`{run_id}-debate.json` med sin sti; det er en EGEN gate og ikke en passasjer på nekten, MÅLT:
mutasjonen «registrer etter `call_next`» tømmer sporet for nøyaktig et nektet kall (`trace = ()`),
fordi invokasjonen aldri returnerer (M3 → 1 rød, den armen ALENE). Sideegenskap MÅLT: en nekt fra
et verktøy fanges av MAF og returneres som feilresultat til modellen — kjøringen fortsetter, og
`finally`-artefaktet skrives som før. Load-bearing MÅLT
(`tests/test_verdict_layer_refusal_loadbearing.py`, 8 armer), **fem mutasjoner alle røde mot HELE
suiten** + grønn kontroll **1314/5** (fra 1306/5; +8, ingen eksisterende testfil rørt, altså et
strengt supersett ved konstruksjon) og golden `demo-transcript.stdout` BYTE-UENDRET
(`shasum -a 1` av INNHOLDET = `ea8c534773acdbe41ae68f2c55724d69aaf8be4f`): M1 detach gaten (4) ·
M2 gate på gangen (1) · M3 registrer etter `call_next` (1) · M4 gate på komplementet av
`context_files` (3 — hvorav TO eldre, UAVHENGIGE vitner: katalog-gatens «hele indeksen er ett
kall unna» og utforskningens byte-identitets-arm, altså er stigens toppsprosse gatet av tester
eldre enn dette arbeidet) · M5 gaten bak dimensjonsgrenen (4). Syretesten er UENDRET i utfall:
850 000 NOK validert av 3 852 500, 3 av 5, de to falne på stage 4 og stage 5, og hele løkka gir
fortsatt dom-nøkkel `be8535e204cdc4c6`. **Ærlighets-grenser, uttalt:** ingen LEVENDE modell har
prøvd den gjettede stien (structured-output-grensens klasse); gaten sitter på `read_file`, ikke
på filsystemet — en kaller som selv åpner en fil i basen utenom verktøyene er upåvirket; og
nekten er nøklet på den ENE erklærte typen ExpeL-folden eier, aldri på et bredere
«ikke i `context_files`»-komplement, som M4 viser ville rammet `index.md` — navigasjon, ikke en
dom. Måling: `docs/2026-09-04-s2c-debatt-k2.md` § 8.
- **STATE.md er local-only** (gitignored). Voyage session-state er efemert; STATE.md er kanonisk kontinuitet.
- Prosess: Voyage-plugin (`/trekbrief → /trekplan → /trekexecute → /trekreview`) per større fase.