# P10 — én konform K2-payload på disk Ordre `20260910T051343Z-8984415658-from-.claude`, økt 112, 2026-09-10. Ingen betalt kjøring. **NOK 0.** Ingen push. ## § 0 Hva som ER målt og hva som IKKE er det **Målt:** * At de to K2-payloadene `scratchpad/s7c/payload-default.json` og `…/payload-open.json` gir `okf check` **rc 1** med **8** og **12** funn, alle `excerpt_unnamed`, mot 15 regler (P9s tall, reprodusert her). * At en re-spilling av de SAMME to armene mot den SAMME basen med dagens `okf consume` gir payloads der **hvert** utdrag bærer `title`, og at `okf check` da gir **rc 0 / 0 funn** på begge. * At kjent-negativen `{}` fortsatt gir **rc 1 / 9 funn**, altså at sjekken kan feile. * At po sin egen `prepass.admit_payload` ADMITTERER alle fire payloadene mot den monterte basen. * At po sin konsument tidde om det okf navngir: en manglende `title` forsvant sporløst. * At de leverte DOKUMENTENE er andre etter re-spillingen enn før — inkludert at den åpne armen ikke lenger leverer prisskjemaet. **IKKE målt:** * Ingenting her er bekreftet mot en levende modell. Ingen betalt kjøring er gjort. * At en modell LESER et navngitt utdrag bedre enn et navnløst. `okf check` måler form, ikke bruk. * Hva prisskjema-bortfallet (§ 4) betyr for et forslags kvalitet. Det krever en betalt kjøring. ## § 1 Premisser (i)–(xiii), med utfall per rad | # | premiss | utfall | |---|---|---| | (i) | HEAD `3082e70`, upushet = 2, `git ls-remote origin main` = `455d611…` | ✅ reprodusert eksakt | | (ii) | to utrackede: presentasjons-HTML + `scratchpad/` | ✅ ingen tredje | | (iii) | 1 570 / 5 · ruff rent · format 0/198 · mypy 37 · golden `ea8c534…` · STATE 120 | ✅ alle. `ruff` er ikke på PATH som bart navn; `uv run ruff` er formen | | (iv) | fire `okf check`-rader, 20 funn alle `excerpt_unnamed` | ✅ reprodusert byte for byte | | (v) | rc fanges direkte, aldri gjennom rør | ✅ fulgt (`out=$(…); rc=$?`) | | (vi) | `okf consume` er produsenten, gratis, ingen nettverk | ✅ default-armen på 1,7 s, åpen på 2,9 s | | (vii) | basen på disk gir ref `sha256-tree:f14872a01104…` | ✅ og **byte-for-byte det begge gamle payloadene deklarerer** | | (viii) | `bundle_id` identifiserer ikke bytene | ✅ bekreftet; se § 5 | | (ix) | PM målte nye nevnere 629/623/6 og 629/620/9 | ❌ **AVVIK — mine tall gjelder: 629/621/8 og 629/617/12, altså UENDRET.** Forklaring i § 3 | | (x) | tre defaults flyttet seg etter at de gamle ble sporet | ⚠️ **delvis**: PATH-okf 0.7.0 har `--tie-shared-rank`, men **ikke** `--stem-prefix` og **ikke** `--source-quota` | | (xi) | po produserer ingen payload, har ingen `tools/` | ✅ **VOID bekreftet.** Modul-docstringen sier ordrett «po produces no payload and vendors no producer»; `ls tools` → No such file or directory | | (xii) | `title` er frivillig med skrevet grunn | ✅ `str \| None = None`; grunnen er sitert i § 2 | | (xiii) | (A), (B), (C) er operatørens | ✅ uendret, ingen av dem flyttet av denne økta | ## § 2 Formvalget i pkt. 2: **F1 (rapporterende)**, og hva F2 ville kostet `PrepassExcerpt`-docstringen begrunner at hvert nytt felt defaulter til `None`: *«a required field would refuse every payload written before today».* F2 ville reversert nøyaktig den setningen, og prisen er et tall. **Målt 2026-09-10 over alle payload-filer i repoet:** ``` TOTAL payload-filer: 20 F2 ville AVVIST: 10 av 20 F2 ville AKSEPTERT: 10 av 20 ``` Blant de ti F2 ville avvist er `tests/fixtures/prepass/bygg-energi-mikro-fixture.payload.json` — **4 utdrag, 0 med `title`** — den ENE git-trackede payload-fixturen, som driver hver av de seks andre prepass-suitene. F2 ville altså krevd at en sporet fixtur ble skrevet om for at F2s egen regel skulle bli grønn. Det er ikke en pris denne ordren autoriserer, og det er ikke en avveining en konsument skal ta på en produsents vegne. **F1 avviser ingenting.** `prepass.unnamed_excerpts(payload)` navngir de leverte utdragene som bærer ingen `title`, **ved konsept-id og i payload-rekkefølge** — ikke som et antall: «3 av 4 er navnløse» kan ikke tas tilbake til en produsent, «disse tre konseptene er det» kan (`BudgetExceeded`s kø-(y)-regel ett nivå ned). Observasjonen bæres videre på `PrepassDeclaration.unnamed_excerpts` og inn i `{run_id}-prepass.json`. **Feltet DEFAULTER til tom tuppel** — `skipped_links`-halvdelen, aldri `cost_baseline_anchored`s: en tom trace er her et ærlig POSITIVT utsagn («hvert levert utdrag ble navngitt»), mens en påkrevd bool måtte påstå noe om en hendelse og begge defaults ville iblant vært usanne. **Fravær ALENE, speilet av okf sin regel.** Et utdrag der produsenten skrev `title: ""` ER navngitt, dårlig; å omklassifisere det ville vært reparasjon, og headeren viser det allerede som `title: ` der et fraværende viser ingenting. `_ground_against_input` er URØRT (P8s invariant). **Load-bearing MÅLT**, fem mutasjoner alle røde mot HELE suiten, grønn kontroll **1577 passed / 5 skipped** (fra 1570/5 — supersett, 0 fjernet) og golden `demo-transcript.stdout` BYTE-UENDRET (`shasum -a 1` av INNHOLDET = `ea8c534773acdbe41ae68f2c55724d69aaf8be4f`, aldri git-blob-id-en): | mutasjon | røde | |---|---| | M1 regelen finner aldri noe | 3 | | M2 regelen flagger hvert utdrag | 4 (inkl. kjent-positiv-kontrollen) | | M3 tom `title` telles som fravær | **1 — tom-navn-armen ALENE** | | M4 observasjonen når aldri deklarasjonen | 2 | | M5 den stopper på dataklassen | **1 — artefakt-armen ALENE** | Ingen grønn mutasjon. ## § 3 Re-spillingen — gamle og nye nevnere side om side Basen er `~/repos/portfolio-optimiser/scratchpad/s7c/k2-bundle-s7c`, verifisert med okf sin egen identitet FØR re-spillingen: `root_bundle_id_of` = `k2-trinn1-20260903`, `bundle_ref` = `sha256-tree:f14872a01104e47474093611b1960c6c541e4701dc40147a00c8e1b337c8a92a`, byte-for-byte det `bundle.ref` begge de gamle payloadene deklarerer. Spørsmålet er ORDRETT «Finn kostnadsbesparelser i Stange skole-anbudet», uendret. | arm | payload | considered / withheld / delivered | budget spent av limit | utdrag med `title` | |---|---|---|---|---| | default | GAMMEL `scratchpad/s7c/payload-default.json` | 629 / 621 / **8** | 79 440 av 120 000 | **0 av 8** | | default | NY `scratchpad/p10/payload-default-v2.json` | 629 / 621 / **8** | 54 931 av 120 000 | **8 av 8** | | åpen | GAMMEL `scratchpad/s7c/payload-open.json` | 629 / 617 / **12** | 150 249 av 160 000 | **0 av 12** | | åpen | NY `scratchpad/p10/payload-open-v2.json` | 629 / 617 / **12** | 88 297 av 160 000 | **12 av 12** | `considered` = 629 i alle fire, som det skal — basen er den samme. **AVVIK mot premiss (ix), og mitt tall gjelder.** PM målte 629/623/6 og 629/620/9 i en frossen eksport av okf `958e9bc`. Jeg måler nevnerne **UENDRET**. Forklaringen er en versjonsforskjell, ikke en «sannsynlighet»: PATH-okf er 0.7.0 (`~/.local/bin/okf`, `llm_ingestion_okf.__version__` = `0.7.0`), og dens `okf consume --help` navngir **ingen** `--stem-prefix` og **ingen** `--source-quota`. Full flaggliste målt: ``` --cost-vocabulary --k --limit --no-tie-shared-rank --out --question --rarity-weight --ref --reserve-top-rank --tie-shared-rank --withheld-titles ``` To av de tre defaultene premiss (x) navngir har altså ikke landet i PATH-okf 0.7.0. PMs frosne `958e9bc` er en senere build enn den som er installert her. **Feltlista i `excerpts[0]`, før og etter (begge armer, identisk endring):** ``` FØR: adjudication bundle_id bundle_id_inherited concept_id rank sha256 text text_sha256 trust_tier ETTER: adjudication bundle_id bundle_id_inherited concept_id rank sha256 source_file source_sha256 text text_sha256 title trust_tier ``` Tre nye medlemmer: `title`, `source_file`, `source_sha256`. **po sin egen `prepass.admit_payload` mot den monterte basen: ADMITTED for alle fire** (begge gamle og begge nye). En payload som ikke lukker mot basen er en payload ingen konformans-påstand skal bygges på; disse lukker. ## § 4 FUNN som ordren ikke ba om, og som ikke skal ligge stille Nevnerne står, men **kuttets INNHOLD er et annet**. Målt per arm: | arm | samme leverte id-er og rekkefølge | samme `text_sha256` per utdrag | levert tekst (tegn) | |---|---|---|---| | default | **nei** | **nei** | 72 535 → **47 679** | | åpen | **nei** | **nei** | 141 470 → **76 824** | Den mest konsekvensrike enkeltforskjellen: den ÅPNE armen leverte `del-ii-bilag-7-prisskjema/prissammenstilling-sheet-1` i den GAMLE payloaden og gjør det **ikke** i den nye. Det er dokumentet hele S7c-målingen («begge låser når prisskjemaet») handlet om. Årsaken er den samme versjonsforskjellen som over — `--tie-shared-rank` er nå PÅ som default og endrer rangeringen — men det er en **rapportert observasjon, ikke en diagnose**: ingen måling her isolerer flagget som årsak, og ingen betalt kjøring sier hva bortfallet koster et forslag. **Tilføyd 2026-09-11 (P11).** Setningen over står som den ble skrevet; dette er diagnosen den manglet. **Årsaken er IKKE `--tie-shared-rank`.** En bisect over okf sin egen historikk viser prisskjemaet LEVERT på posisjon 10 til og med `f6fea13` og `withheld: below_k` fra og med **`38104b7`** (2026-09-09). Hver commit ble kjørt fra `git archive` mot samme base og samme spørsmål, med kjent-positiv på begge ender: `6776c37` gir den GAMLE payloaden og `v0.7.0` den NYE, begge med identisk levert liste. Den eneste kodeendringen `38104b7` gjør i `consume.py` er dokument-prioren, `total / n` → `total / n**0.5` (`DOCUMENT_PRIOR_EXPONENT`). Satt tilbake til 1.0 i en kopi av `38104b7` gir den gamle payloaden byte-identisk tilbake. Default-armens fall (72 535 → 47 679) skjedde i to trinn: `38104b7` (→ 63 644) og deretter tie-effekten ved `a364ef4` (→ 47 679). `known_positive` 10 349 → 12 563 er en versjonsmarkør: tallet flyttet seg ved `17c49fc` og `c95d189` mens den leverte lista sto. På okf 0.8.1 er prisskjemaet ikke lenger `below_k`, men `over_budget_after_knapsack`. Målt med `scratchpad/p11/bisect/` og `scratchpad/p11/exponent/`; tall og kommandoer står i `docs/2026-09-11-p11-okf-081.md` § 4 og § 9. Dette er hele grunnen til at en re-spilt payload er en NY måling og ikke en reparert gammel. ## § 5 `okf check` før og etter, med kjent-negativ okf på PATH: **0.7.0**. SKILL-en er generert i denne økta FOR DENNE BASEN (`scratchpad/p10/SKILL-k2-s7c.md/SKILL.md`, navngir ref `f14872a01104…`), altså ikke P9s SKILL, som ble generert for pinnen (`k2-trinn1-20260903` ved ref `18ae18ab…`). | payload | rc | rapportlinje | funn | |---|---|---|---| | GAMMEL default | **1** | NOT conformant: 15 rules over 8 excerpts and 621 withheld entries | **8**, alle `excerpt_unnamed` | | **NY default** | **0** | **conformant: 15 rules over 8 excerpts and 621 withheld entries** | **0** | | GAMMEL åpen | **1** | NOT conformant: 15 rules over 12 excerpts and 617 withheld entries | **12**, alle `excerpt_unnamed` | | **NY åpen** | **0** | **conformant: 15 rules over 12 excerpts and 617 withheld entries** | **0** | | kjent-negativ `{}` | **1** | NOT conformant: 15 rules over 0 excerpts and 0 withheld entries | **9** | **Regelantallet er 15, ikke 16** — den bundle-identitets-regelen okf har i arbeid har ikke landet i 0.7.0. Målt direkte i stedet for antatt: P9s SKILL, generert for pinnens ref `18ae18ab…`, gir **rc 0 / 0 funn** på begge de nye payloadene, som deklarerer ref `f14872a0…`. En checker som sammenlignet SKILL-ens bundle med payloadens ville reist et funn på nøyaktig den raden. Den gjør det ikke, altså finnes regelen ikke ennå. Dette er premiss (viii) sett fra checker-siden: `okf check` avstemmer i dag ikke identitet, så **kun** `bundle_ref` skiller de tre K2-buildene. **Ingen FYI sendt til okf, og grunnen er målt:** ingen okf-tall endret seg. Regelantallet står på 15 i hver eneste rad over, funn-teksten er ordrett den samme, og kjent-negativen gir samme 9. Funnene gikk fra 20 til 0 fordi PAYLOADEN ble en annen, ikke fordi checkeren ble det. En melding uten et endret tall er støy. ## § 6 Honesty limits * **Ingen betalt kjøring er gjort. NOK 0.** Ingenting her er bekreftet levende. At et navngitt utdrag brukes bedre enn et navnløst er ikke vist — dette er samme klasse som structured-output-grensen. * **En re-spilt payload er en NY måling, ikke en reparert gammel.** De gamle filene er URØRT (`scratchpad/s7c/payload-default.json` og `…-open.json` er ikke skrevet til). P6- og P8-radene som bygger på de gamle payloadene gjelder fortsatt for DE payloadene, og **ikke** for de nye — § 4 måler at kuttets innhold faktisk er et annet, ikke bare at det er navngitt. * **Nevneren for konformans er ÉN bundle i ÉN build.** `bundle_id` alene identifiserer ikke bytene: tre K2-builds bærer alle `k2-trinn1-20260903` ved tre ulike refs. Sammenlign alltid `ref`. * **`okf check` er GULVET, aldri beviset.** Checkerens egen docstring sier at arbeidsdelingen og forbudene er egenskaper ved en KJØRING som ingen statisk sjekk når. rc 0 sier at payloadens FORM holder, ikke at kuttet var riktig — § 4 er nøyaktig et tilfelle der formen ble bedre og innholdet ble et annet. * **Prisskjema-bortfallet i § 4 er observert, ikke diagnostisert.** Ingen måling her isolerer `--tie-shared-rank` som årsak. **Tilføyd 2026-09-11 (P11):** diagnostisert nå, og `--tie-shared-rank` er ikke årsaken. Prisskjemaet ble rangert ut av okf `38104b7`, som endret dokument-prioren (`DOCUMENT_PRIOR_EXPONENT` 1.0 → 0.5). Når bare den konstanten settes tilbake i en kopi av commiten, kommer den gamle payloaden tilbake byte-identisk. Se § 4 over og `docs/2026-09-11-p11-okf-081.md` § 4. * **(A), (B) og (C) forblir operatørens** og ble ikke flyttet av denne økta. * PATH-okf 0.7.0 er ikke bevist å være samme commit som PMs frosne `958e9bc`; versjonsstrengen er det eneste som er målt, og de to sprikte i flaggliste.