portfolio-optimiser/docs/2026-09-08-syretest-s7c-begge-laaser-k2.md
Kjell Tore Guttormsen 648b36e9ad docs(s7c): both locks open, the price is delivered -- and the live model still did not read it [skip-docs]
S7c ran the whole chain on a knowledge base built at llm-ingestion-okf HEAD (6776c37):
raw corpus -> okf build -> pre-pass -> declared cut -> LIVE model -> deterministic
validator -> artefacts. Two paid arms, identical but for the payload. No production
code changed; every table names the command that produced it.

The chain works end to end. The door closes (43 = 39 + 4), all 629 concepts now carry
the stamp --ingested-at asked for (S7 measured 11 of 629, so F1 is really fixed), the
diff against the delivered bundle is ONE line, both contract checks exit 0, both arms
return rc 0 with zero 429s, for NOK 0.63 of the NOK 5 cap.

What it does not do is answer the question it was opened for. The priced table was
delivered at rank 10, its bytes reached 2 of 11 prompts with 5647500 verbatim six
times -- and none of the 11 replies used it. Measured why, not guessed: the excerpt is
a single-column pandoc SIMPLE table with whitespace runs of 887 characters between a
label and its amount, exactly the form F4 measured that derive_cost_baseline must
refuse. Opening both locks buys the BYTES, not the STRUCTURE.

Three premises felled before anything was paid for:
- the order's step-1 command cannot run (okf build requires --bundle-id/--okf-version);
- the order's known-positive was mis-paired: 58 401 is NOT the flagless default but
  --cost-vocabulary --k 12 --limit 120000. Both producer numbers reproduce exactly;
  the flagless default measures 57 289, so the price of the priced table is +8.5 %
  payload / +20.9 % rendered context, not +6.4 %;
- --plan-review is still structurally refused with a payload (rc 1, both combinations).

Recommendation to the operator (the decision is theirs): keep the flags OFF by default
-- measured gain nil, measured cost +20.2 % debate input and +29.6 % NOK on the one
open-cut run, which ended rejected. Keep them as opt-in; they do deliver the document.

Five findings reported, not fixed, two of them cross-repo (log.md is still a navigable
concept for po at 630 while okf considers 629; the priced form is unreadable as
rendered).

Suite 1511 passed / 5 skipped, ruff + mypy clean, golden demo-transcript.stdout
BYTE-UNCHANGED (shasum -a 1 of the CONTENT = ea8c534773acdbe41ae68f2c55724d69aaf8be4f).

Measurement: docs/2026-09-08-syretest-s7c-begge-laaser-k2.md
Order: 20260908T033950Z-4303132405-from-.claude

Co-Authored-By: Claude <Opus 5>
2026-09-08 07:00:47 +02:00

24 KiB
Raw Blame History

Syretest S7c — hele kjeden på fikset kunnskapsbase, med begge låser åpnet, mot en LEVENDE modell

Dato: 2026-09-08 · Ordre: 20260908T033950Z-4303132405-from-.claude · Grunnlag: docs/2026-09-07-syretest-s7-prepass-k2.md (S7 — levende modell leste kuttet, men kuttet holdt tilbake prisskjemaet), docs/2026-09-07-prepass-mater-q5b-k2.md (B tapte, A er default), og produsentens to målinger llm-ingestion-okf docs/2026-09-08-blindsone-below-k-k2.md (4c699fd) + docs/2026-09-08-blindsone-laas2-budsjett-k2.md (6776c37).

Dette er en måling. Ingen produksjonskode er endret; hele måleoppsettet ligger utenfor treet (scratchpad/s7c/, utracket), og hver tabell under er produsert av en kommando som står i teksten. Fem funn og tre felte premisser er rapportert, ikke fikset — det er ordrens egen regel.


0. Hva som ER målt, og hva som IKKE er det

Målt her: at hele kjeden — råkorpus → okf build på produsentens HEAD → pre-pass → deklarert kutt → LEVENDE modell → deterministisk validator → artefakter — går ende til ende for et mandat-formet spørsmål, i to armer som er identiske bortsett fra hvilket payload de fikk. Målt er også hva den dyre halvdelen kjøper: om modellen faktisk brukte prisskjemaet når begge låser er åpnet og bytene ligger i prompten.

IKKE målt: at en modell dømmer bedre med det åpne kuttet. To kjøringer på ett manus er ikke et utvalg; armene endte ulikt (validert mot avvist) av grunner som ikke er isolert her. Samme klasse som structured-output-grensen. Heller ikke målt: at sha256-tree dekker hele treet (vi verifiserer de leverte dokumentene), at prisene i K2 er ekte (skjemaet er ikke fylt ut — se § 5), eller at leverandørens caching traff prefiksene.

Kjent-positiv, kjørt FØRST og assertert i hvert måleskript (p_measure.py, live_s7c.py assert-er og nekter å kjøre videre): rotnivå-listingen på levert K2 måler 3 954 tegn / 1 495 o200k-tokens over 629 konseptfiler — S7a-3s publiserte tall, eksakt.

To uavhengige kjent-positive til, mot produsentens egne tall, FØR noe ble betalt: 62 149 og 58 401 o200k-tokens er begge reprodusert til tokenet (§ 2), og den nye sha256-tree-refen f14872a0… er den samme som produsenten publiserte.


1. Bundelen: bygget på okf HEAD, og hva den er identisk med

cd ~/repos/llm-ingestion-okf && git rev-parse --short HEAD          # 6776c37 (rent tre)
uv run okf build ~/corpora/okf-telling-20260829/K2/trinn1 \
  --bundle <scratchpad>/k2-bundle-s7c \
  --bundle-id k2-trinn1-20260903 --okf-version 0.2 \
  --ingested-at 2026-09-03T00:00:00Z --report <scratchpad>/build-report.json

Premiss felt før noe ble kjørt: ordrens steg-1-kommando utelater --bundle-id og --okf-version. okf build --help sier at begge er påkrevd med mindre --segments off, så kommandoen slik den står i ordren kan ikke kjøres. S7s verdier er brukt, ellers ville diffen mot den leverte basen målt to ting samtidig.

Egenskap Målt
Døra (bevaringsidentiteten) merged + coded rejections = 43; N = 43
— extracted / gated / persisted 39 / 39 / 39 av 43
— substantive / degenerate / rejected 39 / 0 / 4
— avvisningskoder extractor_empty_pdf 1, extractor_unknown 3
Konverterer pandoc 3.9 (pinnet, pypandoc-bundlet)
Veggklokke, okf sin egen rapport 789,20 s total, 18,353 s per fil
Veggklokke, målt i skallet (start → rc) 2 351 s — differansen er ikke oppløst her
ref (sha256-tree) sha256-tree:f14872a01104e47474093611b1960c6c541e4701dc40147a00c8e1b337c8a92a
bundle_id / opphav k2-trinn1-20260903 / declared-index
Ufulgte kryss-lenker (skipped) 0
Filer totalt (files) 1 108
Konsepter, okf sin nevner (considered) 629
Konsepter, po sin navigasjon (context_files) 630 — se funn 2

Diffen mot K2-bundle-20260903 er ÉN linje

diff -r <scratchpad>/k2-bundle-s7c ~/corpora/okf-telling-20260829/K2-bundle-20260903
# exit 1 — 1 fil skiller seg, 3 diff-linjer, 0 "Only in"
45d44
< - [Corpus run history](log.md)

F1 er reelt fikset. S7 målte at --ingested-at nådde 11 av 629 konsepter; her bærer 629 av 629 ingested_at: 2026-09-03T00:00:00Z (grep -rh "^ingested_at:" | sort | uniq -c). Alle 629 konseptfiler er byte-identiske med den leverte basen.

F2 er fikset på KONSUMENTSIDEN, ikke i bundelen. Lenken - [Corpus run history](log.md) står fortsatt i rot-index.md; produsentens eget pre-pass ekskluderer den (considered = 629), mens po sin navigate_bundle følger kryss-lenker og teller 630log.md ER i context_files. Den leverte basen har verken lenken eller dokumentet i navigasjonen (629). Se funn 2.


2. To payloads på samme base og samme spørsmål — og ordrens kjent-positiv var feilparet

Spørsmålet er ORDRETT S7as og S7s mandat-spørsmål: Finn kostnadsbesparelser i Stange skole-anbudet.

# P-default (som S7: k=8, default limit, ingen flagg)
uv run python tools/okf_consume.py <base> --question "<spørsmålet>" --out payload-default.json
# P-åpen (begge låser)
uv run python tools/okf_consume.py <base> --question "<spørsmålet>" \
  --cost-vocabulary --k 12 --limit 160000 --out payload-open.json
# den tredje konfigurasjonen, kjørt for å avgjøre hva 58 401 er
uv run python tools/okf_consume.py <base> --question "<spørsmålet>" \
  --cost-vocabulary --k 12 --limit 120000 --out payload-okf-defaultlimit.json
uv run python tools/okf_contract_check.py --skill skills/okf-consume/SKILL.md --payload <hver>
P-default (flaggløs) P-åpen (begge låser) okf sin «default limit»
flagg ingen --cost-vocabulary --k 12 --limit 160000 --cost-vocabulary --k 12 --limit 120000
considered / withheld / delivered 629 / 621 / 8 629 / 617 / 12 629 / 618 / 11
identiteten lukker
below_k 261 267 266
no_lexical_match 358 349 349
over_budget_alone 2 1 2
over_budget_after_knapsack 1
budsjett brukt / tak (B) 79 440 / 120 000 150 249 / 160 000 82 399 / 120 000
payload på disk (B) 169 583 240 021 172 246
payload, o200k-tokens 57 289 62 149 58 401
kontraktsjekk exit 0 (14 regler, 8 utdrag, 621 tilbakeholdt) exit 0 (14 / 12 / 617) exit 0 (14 / 11 / 618)
prisskjemaet below_k LEVERT, rang 10 av 12 over_budget_after_knapsack
rendering debatten ser (render_context) 75 341 tegn / 22 284 tok 145 237 tegn / 26 936 tok

Premiss felt: ordrens kjent-positiv paret to tall som ikke hører sammen. Ordren ber om at «58 401 / 62 149» reproduseres for henholdsvis P-default og P-åpen. 62 149 reproduseres eksakt. 58 401 gjør det ikke for den flaggløse defaulten — den måler 57 289. okf-meldingens egen ordlyd er «the same run at the default limit», altså --cost-vocabulary --k 12 --limit 120000, og den konfigurasjonen måler 58 401 eksakt. Begge produsent-tallene er altså reprodusert; det var parringen som var feil, ikke tallene.

Konsekvensen for operatørens beslutning er ikke kosmetisk. Prisen på prisskjemaet er +6,4 % bare målt mot den tredje konfigurasjonen. Mot den defaulten som faktisk shipper og som S7 kjørte, er den:

Sammenligning Tokens Delta
payload: flaggløs default → P-åpen 57 289 → 62 149 +4 860 (+8,5 %)
rendering debatten faktisk betaler for 22 284 → 26 936 +4 652 (+20,9 %)
debatt-input hos leverandøren (§ 4, like-for-like) 68 238 → 81 997 +13 759 (+20,2 %)

Payload-tokens er ikke prisen. Renderingen er, og den er tre ganger så dyr som +6,4 %.


3. Revise-steget: kombinasjonen ordren spør om er fortsatt STRUKTURELT NEKTET

Ordren spør om --plan-review revise «hvis kjeden tillater det uten å omgå en nekt». Målt på nytt mot HEAD, på denne basen og dette payloadet:

run refused: --prepass-payload and --explore cannot be combined (…)                      # rc = 1
run refused: --plan-review requires --explore (…)                                        # rc = 1

Begge nektene står (M32; F4), og de er S7 § 3s egne. Døra som finnes for et menneske i A-formen er --proposal-review (MAJOR-2), og den er brukt i begge armer i § 4 — der ga arm Adef en approve, mens arm Aopen aldri nådde døra fordi ingen kandidat validerte. Nekten er funnet, ikke en hindring: utforskningens eget kutt er fortsatt uerklært, akkurat som S7 sa.


4. To betalte armer, A-formen, samme base og samme spørsmål

Alle roller LEVENDE mot Foundry gpt-4-1-mini (GlobalStandard, capacity 100, versjon 2025-04-14 — målt med az cognitiveservices account deployment show, ingen konfig rørt). Innsprutspunktet er run._default_factory (Fase 4e); ingen fil under src/ er rørt.

export PORTFOLIO_FOUNDRY_PROJECT_ENDPOINT=# utledet INLINE fra `az`, aldri i fil
export PORTFOLIO_MODEL_MAP=scratchpad/major2-live/model_map.json
export PACE_SECONDS=2
uv run --with tiktoken python scratchpad/s7c/live_s7c.py {Adef|Aopen}
# argv: K2 --profile azure --docs-dir <base> --bundle-dir <base> --proposal-review
#       --outbox-dir … --run-id … --prepass-payload {payload-default|payload-open}.json

Den billige klient-proben (tests/test_foundry_profile_live.py) ble kjørt FØRST og var grønn — måleprotokollens stige, så en feil i armene er attribuerbar.

Adef — P-default Aopen — P-åpen
prompter totalt 4 11
— debatt / generering 3 / 1 3 / 8
leverandør-input 68 810 86 331
— debatt / generering 68 238 / 572 81 997 / 4 334
output-tokens 1 076 2 103
største enkeltkall (input) 23 069 27 616
prompt-tokens, debatt (instrument) 45 334 54 533
debatt-verktøy / verktøykall 0 / 0 0 / 0
siteringer i stempelet 8 12
cost_baseline_anchored False False
parse-feil ({run_id}-parse-failures.json) fila skrevet ikke 5
{run_id}-prepass.json skrevet, rest_reachable: false skrevet, rest_reachable: false
utfall ValidatedProposal (51a0821dfb711fc2) Rejection (65094b3648af8d7d)
— validatorens grunn claimed saving 1400000 exceeds P90 feasible 879107
proposal review 1 approve, 0 revise offered, never consulted (no candidate validated)
429 0 0
NOK 0,273 0,354

Deklarasjonen som når operatøren, ordrett fra arm Aopen:

Knowledge base: a DECLARED CUT was used — 12 of 629 concept(s) delivered, 617 withheld by rule:
below_k (267), no_lexical_match (349), over_budget_alone (1). Base k2-trinn1-20260903 at ref
sha256-tree:f14872a0…c8a92a; cut computed for: Finn kostnadsbesparelser i Stange skole-anbudet

Kontraktens nekt-vokabular ble brukt i ÉN av to armer

Arm Aopen, proposerens første svar, ordrett:

… no direct cost-saving details are present in the available documentation [sourced-not-sufficient].

Med nevner: markøren står i 2 av 11 prompter i Aopen og forekommer i 1 av 11 svar. I Adef står den i 2 av 4 prompter og i 0 av 4 svar. S7s arm A brukte den; Adef — som er samme argv på en fikset base — gjorde det ikke. Én kjøring er én kjøring.

Motprøven, med nevner, som i S7: nevnerne selv (629, 621, 617, delivered, DECLARED CUT) står i 2 prompter per arm og i 0 svar i begge armer. Modellen bruker nekt-vokabularet, aldri nevnerne.

Forankring: begge forslag handler om noe armen faktisk så

Arm Forslaget handler om Målt i det armen så
Adef renhold: vinyl med PUR, veggmonterte skap, unngå åpne himlinger renhold 66 i 2 av 8 · vinyl 7 og PUR 3 i 1 av 8 (…bilag-1-2-renholdstekniske-funksjonskrav…)
Aopen prøvedrift: bedre forhåndskoordinering, færre gjentatte tester prøvedrift 91 i 1 av 12 (inbox-del-ii-bilag-1-1-…-generelle-tekniske-krav)

Dokumentet Aopens forslag hviler på er levert i begge payloads (rang 1). De fire ekstra dokumentene det åpne kuttet kjøpte — prisskjemaet blant dem — formet altså ikke forslaget.


5. Kjernespørsmålet: brukte modellen prisskjemaet? NEI — målt, med nevner

Prisskjemaet (del-ii-bilag-7-prisskjema/prissammenstilling-sheet-1, S7a § 6.2s post 82, 5 647 500 NOK) ble levert i P-åpen på rang 10, og bytene nådde prompten:

Adef Aopen
5647500 i prompter 0 6 forekomster i 2 av 11
prissammenstilling i prompter 0 24 i 2 av 11
prisskjema i prompter 2 i 2 av 4 (omtale i et annet levert utdrag — kontroll: 1 forekomst i de 8 utdragene) 6 i 2 av 11
5647500 / prissammenstilling / prisskjema / pris i SVAR 0 av 4 0 av 11

Bytene var der. Modellen brukte dem ikke i ett eneste av elleve svar.

Hvorfor, målt og ikke gjettet: FORMEN, ikke tilstedeværelsen

Det leverte utdraget er 67 245 tegn over 104 linjer, og det er en pandoc SIMPLE table med ÉN kolonneoverskrift (Prisskjema). Målt: lengste sammenhengende mellomrom-løp er 887 tegn, og det finnes bare 19 tall ≥ 1000 på .0-form (10 distinkte). Etiketten og beløpet står på samme logiske linje, adskilt av flere hundre mellomrom:

… Prosjektering (tiltransport av prosjekterende)                        …                5647500.0
  92.0

Dette er nøyaktig den formen F4 målte 08.09: derive_cost_baseline (MAJOR-4) NEKTER dette skjemaet fordi det har én kolonneoverskrift. Så samme dokument er utilgjengelig for begge konsumenter av ulik grunn — deriveren nekter det, og modellen leste forbi det. Å åpne begge låser leverer BYTENE, ikke STRUKTUREN.

Og skjemaet er ikke fylt ut: det er et pre-award prisskjema (MAJOR-4s egen fixtur-observasjon, her bekreftet på den leverte basen). En kjøring forankret på dette dokumentet ville uansett nektet.


6. Mot S7 (arm A) og S7s arm C

S7 arm A (07.09) S7 arm C (07.09) S7c Adef S7c Aopen
form kutt (P-default) fri navigasjon kutt (P-default) kutt (P-åpen)
base 630 konsepter, ref 4ffd750c… samme 629/630, ref f14872a0… samme
prompter 5 15 4 11
leverandør-input 69 043 67 846 68 810 86 331
output 964 1 409 1 076 2 103
verktøykall 0 10 0 0
siteringer 8 630 8 12
nevnere annonsert 630 = 622 + 8 ingen 629 = 621 + 8 629 = 617 + 12
nådde prisskjemaet nei (below_k) JA, i fire steg nei (below_k) levert — og ikke brukt
utfall ValidatedProposal ValidatedProposal ValidatedProposal Rejection

Like-for-like er de to siste kolonnene: samme base, samme spørsmål, samme argv bortsett fra payloadet. Det åpne kuttet koster +20,2 % debatt-input og +29,6 % NOK, ga +7 prompter (fordi genereringen brukte åtte forsøk mot ett), og endte på et avvist forslag mot et validert.

S7c Adef mot S7 arm A er den andre like-for-like-en: nesten identisk pris (68 810 mot 69 043), én prompt færre, samme utfall. Den fiksede basen endrer altså ikke A-formens kostnad — den endrer nevneren fra 630 til 629 og gjør stempelet ærlig.

Arm C er fortsatt den eneste som NÅDDE prisskjemaet — i fire navigasjonssteg av 630 dokumenter — og den brukte det ikke i et forslag heller (S7 § 4: arm C endte på klimakriterier).


7. Kostnad

Listepris, Azure Retail Prices API (api-version=2023-01-01-preview, currencyCode='NOK', armRegionName=eastus), metere gpt 4.1 mini Inp/Outp glbl Tokens, hentet på nytt 2026-09-08 og identiske med S7s: input NOK 0,003734 / 1K, output NOK 0,014936 / 1K.

Kjøring Prompter Input Output NOK
Adef — P-default, approve 4 68 810 1 076 0,273
Aopen — P-åpen, approve 11 86 331 2 103 0,354
klient-probe (test_foundry_profile_live) 1 ~20 ~5 ~0,000
SUM 16 155 161 3 184 NOK 0,63

NOK 0,63 — 12,5 % av taket på NOK 5. 429-svar: 0. Største enkeltkall er 27 616 tokens; ingen enkeltpost over 100 000. Takene (max_rounds=3, max_tokens, max_attempts) er URØRT, og ingen kjøring traff dem.


8. «Virker det?» — den ærlige konklusjonen

Ja for kjeden, nei for spørsmålet.

Kjeden virker ende til ende. Råkorpus → okf build på HEAD (døra lukker, 43 = 39 + 4) → pre-pass med lukkende nevnere og grønn kontraktsjekk → deklarert kutt inn i en debatt med verktøyene trukket → levende modell → deterministisk validator → outbox med kutt-deklarasjon, siteringer og dom-nøkkel. Begge armer returnerte rc 0, uten en eneste 429, for NOK 0,63 til sammen. Det som var uprøvd i S7 — en base der --ingested-at faktisk holder og et pre-pass som kan levere prisskjemaet — er nå prøvd, og det holder.

Men det åpne kuttet løste ikke problemet det ble bygget for. S7s funn 5 var at kuttet holder tilbake det ene dokumentet i K2 som bærer en pris. Begge låser er nå åpnet, dokumentet er levert på rang 10, bytene står i to av elleve prompter — og modellen brukte dem ikke i noe svar. Blindsonen flyttet seg fra rangeringen til lesningen. Grunnen er målt og ikke gjettet: skjemaet er en énkolonnes SIMPLE table med opptil 887 mellomrom mellom etikett og beløp, altså samme form F4 målte at derive_cost_baseline må nekte.

Anbefaling til operatøren (beslutningen er din): behold flaggene AV som default.

  • Prisen er ikke +6,4 %, den er +8,5 % payload / +20,9 % rendret kontekst / +20,2 % debatt-input mot den defaulten som faktisk shipper — produsentens +6,4 % er målt mot en tredje konfigurasjon.
  • Den målte gevinsten er null: de fire ekstra dokumentene formet ikke forslaget, og prisskjemaet ble ikke lest.
  • Den ene kjøringen med åpent kutt kostet 29,6 % mer og endte avvist. Det er ikke bevis for at kuttet gjør modellen dårligere — én kjøring per arm — men det er heller ikke noe å betale for.
  • Flaggene er verdt å beholde som opt-in for et spørsmål som faktisk trenger et bestemt stort dokument. Det er dét de er, og de fungerer: prisskjemaet BLE levert.

Det som faktisk ville flyttet noe er ikke et flagg i pre-passet, men at prissammenstillingen kommer ut som en tabell med kolonner. Da kunne --derive-cost-baseline forankret kjøringen (stage 0), og da ville modellen fått linjer i stedet for et mellomromsteppe. Det er en produsent-side-observasjon, meldt videre, ikke bestilt.


9. Funn — rapportert, ikke fikset

  1. Ordrens kjent-positiv var feilparet (§ 2). 58 401 er ikke den flaggløse defaulten, men --cost-vocabulary --k 12 --limit 120000. Begge produsent-tall er reprodusert eksakt; den flaggløse defaulten måler 57 289. Konsekvensen er at «prisen for prisskjemaet» er +8,5 %, ikke +6,4 %, målt mot det som shipper.
  2. log.md er fortsatt et navigerbart konseptdokument for po (§ 1). Produsentens F2-fiks ekskluderer den i deres egen vandring (considered = 629), men lenken står i rot-index.md, så okf.navigate_bundle returnerer 630 og korpus-kjøringens egen logg kan leses og siteres av agentene. Den leverte K2-bundle-20260903 har ikke lenken. Kryss-repo, llm-ingestion-okf.
  3. Det leverte prisskjemaet er uleselig i form, ikke fraværende i bytes (§ 5). Énkolonnes SIMPLE table, 887 tegns mellomromsløp, 19 tall ≥ 1000. Samme form F4 målte at MAJOR-4s deriver må nekte. Kryss-repo, produsent-side.
  4. Genereringen brukte åtte forsøk i Aopen, fem av dem parse-feil — alle av samme klasse: claimed saving … exceeds affected items' total …. Modellen påstår en besparelse større enn summen av linjene den selv oppgir. Pydantic fanget hver gang, og fangsten er ærlig ({run_id}-parse-failures.json skrevet). Adef traff det ikke i det hele tatt.
  5. En uforankret kjøring er fortsatt ærlig, men kandidaten er oppdiktet (S7s funn 4, gjentatt). cost_baseline_anchored: False i begge armer; kostkodene er modellens egne (cleaning_labor, maintenance_materials, PRD-001, PRD-002). --require-cost-baseline (F4, 100) ville nektet begge kjøringene — og --derive-cost-baseline ville nektet basen, av funn 3s grunn.

10. Ærlighets-grenser, uttalt

  • To kjøringer er ikke et utvalg. At det åpne kuttet gir dårligere forslag er ikke vist; at det ikke ga et bedre er målt for disse to kjøringene.
  • Ordrens revise-steg finnes ikke i A-formen (§ 3). --plan-review krever --explore, som er nektet sammen med et payload. --proposal-review er brukt i stedet, og i Aopen nådde kjøringen aldri den døra.
  • sha256-tree bæres, ikke re-beregnes. Vi verifiserer de leverte dokumentene mot de monterte bytene; en endring i et dokument payloadet ikke leverte fanges ikke.
  • Byggets veggklokke er ikke oppløst. okf rapporterer 789,20 s; skallet målte 2 351 s fra start til rc. Differansen er ikke undersøkt her.
  • Ordoverlapp mellom engelsk modell-output og norsk base måler ingenting — forankringen i § 4 er målt på norske fagtermer, som er svakere enn en id-join. Id-joinen er fortsatt umulig: ingen av de 15 svarene skrev en konsept-id.
  • Prisene i K2 er ikke fylt ut. Ingen validert besparelse mot ekte tall er forventet eller funnet; begge armer regner på tall modellen selv oppga.
  • Kostnadstallene er listepris, ikke faktura, og caching er ikke målt.

11. Verifiseringslogg

# Påstand Kommando → resultat
1 Instrumentet reproduserer publisert fasit p_measure.py / live_s7c.py assert → 3 954 / 1 495 / 629
2 okf HEAD og rent tre git rev-parse --short HEAD6776c37, git status --short tomt
3 Døra lukker okf build stdout → merged + coded rejections = 43; N = 43
4 F1 fikset grep -rh "^ingested_at:"629 ingested_at: 2026-09-03T00:00:00Z
5 Diffen er én linje diff -r exit 1 → 1 fil, 3 linjer, 0 Only in, log.md-lenka
6 F2 kun konsumentside okf_consume considered = 629 mot navigate_bundle 630, log.md i context_files
7 Nevnerne lukker + kontrakt grønn okf_contract_check.py × 3 → 0 findings, exit 0
8 okf sine to tall reprodusert 62 149 (P-åpen) og 58 401 (--limit 120000) eksakt
9 Prisskjemaet levert i P-åpen payload excerpts[9] = del-ii-bilag-7-prisskjema/prissammenstilling-sheet-1
10 Steg-3-kombinasjonene nektes rc = 1 begge, meldingene i § 3
11 Levende modell leste kuttet Adef/Aopen-records.json → 3 debatt-prompter à 2227 k tok, rc 0
12 Bytene nådde prompten 5647500 6 forekomster i 2 av 11 Aopen-prompter
13 Modellen brukte dem ikke 0 forekomster av alle fem prismarkører i 11 av 11 svar
14 Formen er årsaken 104 linjer, én kolonneoverskrift, mellomromsløp 887 tegn
15 [sourced-not-sufficient] brukt 1 av 11 svar i Aopen, 0 av 4 i Adef
16 Validatoren beholder siste ord outcome.jsonrejected, 1400000 exceeds P90 879107
17 Deployment urørt az … deployment show → GlobalStandard, 100, 2025-04-14
18 Pris hentet, ikke husket Azure Retail Prices API 2026-09-08 → 0,003734 / 0,014936 NOK per 1K

Ikke verifisert her: at en levende modell velger bedre med et åpent kutt; at N=43 er produsentens riktige nevner (lest fra deres stdout, men rå-katalogen har 43 filer, målt); at byggets 1 562 s ubokførte veggklokke skyldes indeks-fasen; at leverandørens caching traff.

Instrumentoppsett: scratchpad/s7c/ (utracket) — p_measure.py, live_s7c.py, payload-{default,open,okf-defaultlimit}.json, {Adef,Aopen}-records.json, outbox-{Adef,Aopen}/. tiktoken o200k_base via uv run --with tiktoken; fortsatt ingen prosjektavhengighet.