docs(invarianter): the judgement's three doors, and the measurement that fixed the minting [skip-docs]

The ledger row for toolbox step 3: what was built, the row-1 movement (5 -> 8 of 17), the
int/float measurement that decided how the door reads a proposal, the exit-3 carrier for a
blocked proposal, the fasit each probe uses outside the door, and the stage the door does NOT
expose (P7 input grounding) with the reason.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-20 10:19:13 +02:00
commit 1111924000
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q

View file

@ -3493,3 +3493,44 @@
kode under samme navn), og begge formene er armer nå. **Tre mutanter var ikke målinger og sies
det om:** to omdøpte bare en etikett/id uten å fjerne en vakt, og én rundet `score` til to
desimaler — EKVIVALENT, fordi scorene er 1.0/0.75/0.5.
- **Dommen gjennom samme dør — verktøykassens steg 3 (20.09, ordre `20260920T074028Z-6180221581`):**
de tre stegene som AVGJØR et forslag fikk hver sin underkommando i `portfolio-optimiser-toolbox`
`validate-proposal``validator.validate_proposal` (metodetaket inkludert), `verdict-key`
`verdicts.verdict_key`, `capture-verdict``verdicts.capture_verdict`. Det er dette som gjør B
til noe annet enn et oppslagsverk: et forslag skrevet UTENFOR po — av et menneske, eller av en
agent som ikke er po — møter nå den samme blokkerende deterministiske gaten, med de samme
stadiene i samme rekkefølge, uten en chatklient på veien. Rad 1: **5 → 8 av 17**, exit 1 uendret,
ingen annen rad flyttet seg.
**Den ordrette setningen er load-bearing, ikke bare dommen:** Steg 5 mater avvisningsgrunnen
verbatim inn i neste forsøk, så en dør som omskrev den ville brutt reparasjonssløyfa mens den så
riktig ut. Probene asserterer på HELE setningen, aldri på en delstreng to stadier deler, og
stadiet navngis av `validator.rejection_stage` — modulen som eier ordlyden — aldri utledet på
nytt i døren.
**Én måling avgjorde en designdetalj:** IR-en skriver hele beløp som JSON-heltall (`30000`),
kjørestien bærer pydantic-FLOATEN videre, og `verdicts._mint_id` hasher den RÅ verdien. En dør
som mintet fra JSON-en slik den står ville delt ut en ANNEN `verdict_id` enn debatten gjør for
samme forslag — det ene en læringsnøkkel ikke får gjøre (A5). Døren leser derfor forslaget
gjennom `SavingsProposal` og gir `model_dump()` til den PUBLIKE `verdicts.features_from_ir`;
proben pinner begge formene og asserterer at de er ULIKE, så snarveien ikke kan komme stille
tilbake.
**Et BLOKKERT forslag er exit 3, og bærer dommen framfor en unntaks-konvolutt** (`Refused`):
«du spurte riktig og svaret er nei» er samme faktum enten en fil manglet eller et krav var
ugjennomførbart, og en kaller som bare leser exit-koden må ikke se et blokkert forslag som et
klarert et.
**Fasiten er utenfor døren i hver arm:** basens egen INNSJEKKEDE golden-suite (skrevet før
verktøykassen fantes, så den kan ikke ha blitt tilpasset døren), et kostnadsgrunnlag skrevet i
testen, et metodetak regnet for hånd fra fixturen (0,05 × 300 000 = 15 000), og den publike
myntingsregelen. Hver avvisningsarm har en rc-0-kontroll på en argv som ellers ville blitt
AKSEPTERT.
**Grensen, uttalt:** input-forankringen (P7, stadium 0b) har INGEN flagg her. Den falsifiserer et
forslag mot den rendrede prompten modellen faktisk fikk, og en ekstern kaller har ingen slik
prompt; en fil som lot som den var en ville vært en annen måling med dette navnet på.
**Load-bearing:** `tests/test_toolbox_doors.py` (6 nye armer), `tests/test_b_gate.py`
(`_EXTERNAL_TODAY` 5 → 8, og `_WITH_A_DOOR_TODAY` navngir HVILKE åtte). **11 av 11 mutanter felt**
i klone (kontroll 138 av 138, isolasjon verifisert på `toolbox.__file__` OG `b_gate.__file__` før
første tall), 0 ikke målt. Den ellevte muterte KONTRAKTEN, ikke koden: `validering` pekt på en
underkommando proben aldri kjørte, og raden falt til 7 av 17 — bindingen er en måling, ikke en
erklæring. **Kjøringen var målrettet mot de to filene som eier sømmen**, ikke mot hele suiten:
et drap er monotont i testmengden, så et drap her er et drap; bare en OVERLEVENDE ville krevd
den brede kjøringen, og ingen overlevde.