Steg 8. Ingen produksjonskode i denne commiten utover de TRE testarmene tre GROENNE
mutasjoner tvang fram.
MAALING (`docs/2026-09-07-okf-prepass-i-debatten.md`), instrumentet validert mot en
kjent-positiv FOER foerste tall (K2 rotlisting = 3 954 tegn / 1 495 o200k-tokens,
S7a-3s publiserte tall eksakt; skriptet asserterer paa det og nekter aa rapportere
ellers):
- KUTTET paa levert K2: 629 = 621 + 8, tre regler navngitt. Payload paa disk 40 425
tok; renderingen debatten ser 5 162 tok -- 87 % av kostnaden er withheld-lista, som
aldri naar prompten.
- FOER/ETTER, tre armer fordi "FOER" ikke er ett tall. Like-for-like (en debatt som
GAAR stigen mot det deklarerte kuttet): 10 prompter / 7 031 tok -> 3 prompter /
10 641 tok. **+51 %, og dokumentet paastaar ikke at dette er en besparelse.** Det som
kjoepes er nevnerne, et re-maalbart `ref`, og at stempelet slutter aa overdrive:
siteringer 629 -> 8.
- SPOERSMAALET BASEN IKKE SVARER PAA: aatte arkitekttegninger, og **5,5x dyrere** enn
det gode spoersmaalet (28 312 mot 5 162 tok). En TOM leveranse er bevis for fravaer;
en FULL er IKKE bevis for tilstedevaerelse -- og med verktoeyene trukket har debatten
ingen vei til aa oppdage det selv. Uttalt som den reelle handelen, ikke oppdaget i
drift.
LOAD-BEARING: 32 mutasjoner, ALLE ROEDE mot HELE suiten, maks en per Bash-kall,
restaurert fra `scratchpad/` med `shasum -c` (aldri `git checkout`). Groenn kontroll
**1467 passed / 5 skipped** (fra 1387/5; **+80 node-ider, 0 fjernet**, maalt med `comm`
mot en baseline tatt foer foerste commit). Golden `shasum -a 1` av INNHOLDET =
ea8c534773acdbe41ae68f2c55724d69aaf8be4f, BYTE-UENDRET. `pyproject.toml` uroert.
TRE MUTASJONER VAR GROENNE FOERST, og alle tre var TESTFEIL -- ikke soemfeil. Ingen ble
droppet:
- M9: injeksjonsarmen satte `text_sha256` fra den INJISERTE teksten, saa
`text_sha256`-grenen fyrte i stedet, og armen matchet paa "text" -- en DELSTRENG av
`text_sha256`. En angriper kontrollerer begge avledede medlemmer, saa fixturen setter
naa `text_sha256` til digesten av den EKTE teksten; da er likhetssjekken det eneste
som staar i veien. Ny parallell arm beviser at de to sjekkene ikke er en sjekk.
- M18: fixturbasen navigerer til fire ikke-verdict-konsepter og payloadet leverer ALLE
fire, saa "siter de leverte" og "siter alt navigerbart" ga SAMME sett. Armen flytter
naa ett utdrag til `withheld` og asserterer `delivered < navigable` FOER den maaler.
- M32: uten raden falt kjoeringen gjennom til "--explore requires --explore-config",
som ogsaa navngir `--explore`. Oekt 57s regel ordrett -- assert aldri paa en
delstreng to nekter deler. Armen bruker naa en argv `--explore` ellers ville blitt
AKSEPTERT paa.
Co-Authored-By: Claude <claude-opus-5>
Steg 6 og 7 av planen. Flagget lastes fail-fast ved siden av `--mandate` (samme
try/except, saa manglende/ugyldig fil lander paa `run refused:` uten traceback) og
traades inn i BEGGE `run_project`-dispatchene -- dry-run og full kjoering. En egen arm
SPIONERER paa argumentet, ikke paa exit-koden: et flagg som parses, valideres og
droppes er F4-klassen, og de to utfallene er samme rc.
SEKS NEKTER, hver ved NAVN, hver med en rc-0-kontroll paa en argv som ellers ville
blitt AKSEPTERT:
- `report_forbidden` -- report-modus returnerer OVER hver dispatch, saa en utelatelse
er et stille DROPP. Kontrollen bruker en JSON-ARRAY-ledger; et objekt ville gjort
armen roed av feil grunn (maalt i oekt 89).
- `single_only` -- navngir `--portfolio`, ALDRI det delte `--prepass-payload`-tokenet:
en droppet rad faller gjennom til `--bundle-dir`-kravet, hvis melding ogsaa navngir
flagget, saa en arm paa det delte tokenet ville staatt groenn mot sin egen mutasjon.
- krever `--bundle-dir`; nektet med `--proposals-from-mandate` (returnerer over
debatten, saa flagget ville vaert stille inert), med `--dimension-config` (pre-passet
kuttet uten aa kjenne dimensjoner, saa aa aere skopet ville droppe utdrag
deklarasjonen teller som LEVERT -- da er nevnerne feil for kjoeringen som publiserte
dem) og med `--explore` (utforskningen leser HELE basen med de fire verktoeyene
payloadet trekker, saa kjoeringen som helhet ville lest langt utenfor kuttet den
erklaerer).
Blokka ligger paa FUNKSJONS-nivaa etter mode-dispatchen, aldri nestet under en annen
grens -- under en av dem ville en bar kombinasjon falt rett gjennom.
`hosting.py` er BEVISST URØRT (briefens non-goal, MAJOR-4/S7b-presedensen): feltet
kommer inn i ingen av de tre settene, saa den generiske `unknown field(s)`-400-en
svarer alt, og Fase 4es to halvdeler staar. Gatet av en testarm i stedet for en
redigering -- inkludert den negative halvdelen (hvert videresendt felt ER en
`run_project`-parameter, hvert konsumert er det ikke).
README-blokka navngir alle seks partnerne, uttrykker seg i kundevendt terminologi
(aldri "OKF bundle") og sier BEGGE aerlighets-grensene hoeyt: dette kjoeper et
DEKLARERT kutt, ikke en billigere kjoering; og en TOM leveranse er bevis for fravaer
mens en FULL ikke er bevis for tilstedevaerelse. Uttrekkeren tar BLOKKA (ikke en
delstreng over hele fila -- `--portfolio` og `--report` staar overalt), med
`--plan-review`-blokka som kjent-positiv kontroll.
1466 passed / 5 skipped (fra 1446/5, +20, 0 fjernet). ruff + mypy rene. Golden
`shasum -a 1` av INNHOLDET = ea8c534773acdbe41ae68f2c55724d69aaf8be4f, BYTE-UENDRET.
Co-Authored-By: Claude <claude-opus-5>