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>
This commit is contained in:
parent
9232f94041
commit
648b36e9ad
1 changed files with 423 additions and 0 deletions
423
docs/2026-09-08-syretest-s7c-begge-laaser-k2.md
Normal file
423
docs/2026-09-08-syretest-s7c-begge-laaser-k2.md
Normal file
|
|
@ -0,0 +1,423 @@
|
|||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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 **630** — `log.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`.
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
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 HEAD` → `6776c37`, `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 à 22–27 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.json` → `rejected`, `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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue