portfolio-optimiser/docs/2026-09-10-p10-konform-k2-payload.md
Kjell Tore Guttormsen ce22b0e0e6 docs(p11): okf 0.8.1 measured - source-quota carries the denominators, one prior constant ranked the price schedule out [skip-docs]
P11 (order 20260910T225652Z), NOK 0, no push. PATH okf is 0.8.1 (uv tool list,
__version__, --help flags). src/ untouched.

(ix) on 0.8.1 shipped: 629/623/6 and 629/620/9 - PM's predicted denominators,
now measured. --no-source-quota alone gives back 629/621/8 and 629/617/12 in
both arms; the exact numbers are an interaction with tie-shared-rank (both
arms) and stem-prefix (open arm). --title-covered never fires here (byte-
identical payload). 0.8.1 with the three new rules off reproduces the 0.7.0
payloads' delivered lists and budgets.

P10 section 6 diagnosed: a bisect over okf's own history (known-positive at
both ends) puts the price schedule's loss at okf 38104b7, whose only consume
code change is DOCUMENT_PRIOR_EXPONENT 1.0 -> 0.5; putting that one constant
back in a copy returns the old payload byte for byte. tie-shared-rank is ruled
out; known_positive 10349 -> 12563 is a version marker, not the mechanism. On
0.8.1 the schedule is over_budget_after_knapsack, not below_k.

okf check on 0.8.1 has 15 rules, not 16: rule 16 (bundle_mismatch) is on okf
main 7cca9e0, in no tag. Run from an export of 7cca9e0 the K3-15 pair is rc 1
and the right pair rc 0 - a real cross-corpus mismatch, not an okf defect.

Offer rows on four corpora: identifiers unchanged (65/50, 435, 982, 272).

The P10 doc gets dated additions in sections 4 and 6; the old sentences stand.
Test docstring: +2 lines naming the 0.8.1 rule count, no behaviour change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 01:38:58 +02:00

221 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.