The gate (test_package_leaks_no_secret_content) is `git archive HEAD` content-scanned
against the absolute-home-path pattern. It caught two literal /Users/ktg/... paths in
docs/2026-09-08-n-bundlene-konsum.md's command block, introduced in e7ffe9e. Same
shell semantics with ~-form; no other change.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
416 lines
22 KiB
Markdown
416 lines
22 KiB
Markdown
# Konsum-målingen på N100, N200 og N500 — hentet, resonnert og sitert, mot en LEVENDE modell
|
||
|
||
> **Ordre `20260908T113200Z-46497613-from-.claude`.** «Ferdig» skulle bety at portfolio-optimiser
|
||
> henter, resonnerer og siterer riktig fra hver av de tre bundlene med en levende modell.
|
||
> Tre betalte armer i A-formen (`--prepass-payload`), én per bundle, samme oppsett som S7c.
|
||
> Underlag: vegnormal-okf `docs/2026-09-08-n100-n200-n500-ferdig.md` (`6d953f8`),
|
||
> llm-ingestion-okf worktree `llm-ingestion-okf-wt-o2c` @ `a37d5ce`.
|
||
>
|
||
> **Svaret er nei på alle tre — og de tre grunnene er ulike, målt, og eies av hvert sitt repo.**
|
||
|
||
---
|
||
|
||
## 0. Hva som ER målt, og hva som IKKE er det
|
||
|
||
**MÅLT.** De tre tre-hashene reprodusert ordrett fra vegnormal-okfs melding. `okf.navigate_bundle`
|
||
når 446 / 1 133 / 270 konsepter — po sin egen kode, mot V1s tall. Pre-passet leverer fasit-konseptet
|
||
på **rang 1 av 8 på alle tre**, med default-kommandoen, ingen flagg. Kontraktsjekk exit 0 × 3.
|
||
Klientproben grønn. Tre betalte kjøringer, rc 0 × 3, **NOK 0,21 av taket 5, 0 × 429**. Hver rolles
|
||
prompter, prompt-tokens og leverandør-tokens. Hvert modellsvar ordrett. Nekten `--explore` +
|
||
`--prepass-payload` (rc 1, null modellkall). Hvilke felt pre-passets utdrag faktisk bærer.
|
||
|
||
**IKKE MÅLT.** **Én kjøring er én kjøring** — tre armer, ett spørsmål hver, én modell
|
||
(`gpt-4-1-mini`), ett deployment. Ingen arm er gjentatt, så ingenting her sier noe om varians.
|
||
At en ANNEN modell ville lest det samme kuttet annerledes er ikke målt. Om rangeringen holder for
|
||
andre spørsmål enn V1s tre er ikke målt her (okf måler det). Ingen av de tre bundlene er
|
||
faglig gjennomgått av meg — jeg sammenlikner mot konseptkroppen, ikke mot vegnormalen.
|
||
|
||
**IKKE RØRT.** Ingen fil under `src/`. Ingen Azure-konfig. Ingen fil i vegnormal-okf eller i noen
|
||
okf-checkout. Ingen push.
|
||
|
||
---
|
||
|
||
## 1. Kjent-positiv per bundle, FØR noe ble betalt
|
||
|
||
Måleprotokollens stige: alt gratis først, så en feil i en betalt arm er attribuerbar.
|
||
|
||
```bash
|
||
OKF=~/repos/llm-ingestion-okf-wt-o2c # ren worktree, a37d5ce, egen venv
|
||
B=~/repos/vegnormal-okf/build/ferdig
|
||
$OKF/.venv/bin/python3 $OKF/tools/okf_consume.py $B/n100-2023 \
|
||
--question "Hva krever Krav 3.3.1—13 i N100? Gjengi det sentrale vilkåret." --out payload-n100.json
|
||
# ... tilsvarende for n200-2024 og n500-2024, DEFAULT-kommandoen, ingen flagg
|
||
```
|
||
|
||
| kjent-positiv | N100:2023 | N200:2024 | N500:2024 |
|
||
|---|---|---|---|
|
||
| `sha256-tree` reproduserer V1s ref | **JA** `5f288f2c…` | **JA** `c420b754…` | **JA** `eb74e987…` |
|
||
| `okf.navigate_bundle` → konsepter | **446** (fasit 446) | **1 133** (fasit 1 133) | **270** (fasit 270) |
|
||
| `Bundle.skipped` (ufulgte lenker) | 0 | 0 | 0 |
|
||
| considered / withheld / delivered | 446 / 438 / 8 | 1 133 / 1 125 / 8 | 270 / 262 / 8 |
|
||
| budsjett brukt av 120 000 | 8 939 | 21 102 | 9 085 |
|
||
| **fasit-konseptets rang** | **1 av 8** | **1 av 8** | **1 av 8** |
|
||
| `okf_contract_check` | **exit 0**, 14 regler, 0 funn | **exit 0**, 14 regler, 0 funn | **exit 0**, 14 regler, 0 funn |
|
||
| `prepass.admit_payload` mot montert base | **OK** | **OK** | **OK** |
|
||
| klientprobe `test_foundry_profile_live` | **1 passed** — kjørt FØR armene | (samme kjøring) | (samme kjøring) |
|
||
|
||
`a37d5ce` gjør det den sier: fasit-konseptet står på **rang 1 på 3 av 3** med den flaggløse
|
||
kommandoen. Nevnerne lukker mot V1 til konseptet. **Budsjettforbruket avviker fra V1s tall**
|
||
(8 939 mot 8 977 · 21 102 mot 17 818 · 9 085 mot 10 517) — forventet, og det er selve fiksen:
|
||
oppslags-omordningen leverer et ANNET sett med åtte utdrag enn den V1 målte.
|
||
|
||
Deployment urørt, målt med `az cognitiveservices account deployment show`: `GlobalStandard`,
|
||
`capacity` **100**, versjon `2025-04-14`, `Succeeded`.
|
||
|
||
### 1.1 En egenskap S7a-3 kjøpte, som først nå ble betalt for
|
||
|
||
Alle tre basene erklærer `bundle_id` i rot-`index.md` (`vegnormal-n100-2023`) mens de er montert som
|
||
`n100-2023`. Til 03.09 NEKTET `reconcile_bundle_id` nøyaktig det. Uten slakke-beslutningen (økt 81)
|
||
kunne **ingen av de tre bundlene åpnes slik de er levert** — botemiddelet ville vært å montere dem
|
||
på nytt for hånd, én gang per leveranse. Kjøringen sier avviket høyt i stedet:
|
||
|
||
```
|
||
Knowledge base: declares bundle_id 'vegnormal-n100-2023' (source: declared-index) but is mounted
|
||
as 'n100-2023' — the DECLARED id is the identity, so every artefact this run stamps names
|
||
'vegnormal-n100-2023'
|
||
```
|
||
|
||
---
|
||
|
||
## 2. Kjøreformen: po har INGEN oppslags-dør i A-form, og nekten er målt
|
||
|
||
Ordren ba meg velge kjøreform og begrunne, og sa at en nekt er et funn. Den er det.
|
||
|
||
**Debattens oppgave er hardkodet.** `run.py:1243`, ett eneste forekomststed:
|
||
|
||
```python
|
||
result = await debate.run(f"Find a cost-saving measure for {project.id}.\nContext:\n{context}")
|
||
```
|
||
|
||
Ingen av `run_project`s **26 parametre** bærer et spørsmål, en prompt, et objective eller en task
|
||
(målt med `inspect.signature`). Operatørens spørsmål når modellen KUN som pre-passets erklærte
|
||
`question`-linje inne i `context`.
|
||
|
||
**Den ene døra som bærer en operatør-prompt er `--explore`, og den er NEKTET med `--prepass-payload`:**
|
||
|
||
```
|
||
$ python -m portfolio_optimiser.run N100 --profile local --docs-dir B --bundle-dir B \
|
||
--explore "Hva krever Krav 3.3.1—13 i N100? …" --explore-config /dev/null \
|
||
--prepass-payload payload-n100.json
|
||
run refused: --prepass-payload and --explore cannot be combined (the exploration navigates the
|
||
whole knowledge base with the same four tools the payload withdraws, so the run as a whole would
|
||
read far outside the cut it declares) # rc 1, null modellkall
|
||
```
|
||
|
||
**Valget, og begrunnelsen:** jeg kjørte A-formen som ordren spesifiserer, fordi det er den eneste
|
||
formen som finnes for et deklarert kutt, og fordi den andre armen (`--prepass-seed`, som VILLE båret
|
||
spørsmålet som `explore()`s prompt) er utenfor denne ordrens gjerde. Konsekvensen er målt og
|
||
uttalt, ikke bortforklart:
|
||
|
||
| | N100 | N200 | N500 |
|
||
|---|---|---|---|
|
||
| oppgavelinja modellen fikk | `Find a cost-saving measure for N100.` | `… for N200.` | `… for N500.` |
|
||
| V1s spørsmål ORDRETT i prompten | ja, i **2 av 6** prompter | ja, i **2 av 5** | ja, i **2 av 6** |
|
||
|
||
Modellen fikk altså både spørsmålet og fasit-teksten — men ble ALDRI bedt om å svare på spørsmålet.
|
||
Det er ikke en feilkonfigurasjon; det er formen po har.
|
||
|
||
---
|
||
|
||
## 3. Tre betalte armer
|
||
|
||
```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/nbundler/live_nbundler.py {n100|n200|n500}
|
||
# argv: <N100|N200|N500> --profile azure --docs-dir <base> --bundle-dir <base>
|
||
# --proposal-review --outbox-dir … --run-id nb-<tag> --prepass-payload payload-<tag>.json
|
||
```
|
||
|
||
Innsprutspunktet er `run._default_factory` (Fase 4e). Alle roller LEVENDE.
|
||
|
||
| | **N100** | **N200** | **N500** |
|
||
|---|---:|---:|---:|
|
||
| rc | 0 | 0 | 0 |
|
||
| prompter totalt | **6** | **5** | **6** |
|
||
| — debatt / generering | 3 / 3 | 3 / 2 | 3 / 3 |
|
||
| proposer / checker | 5 / 1 | 4 / 1 | 5 / 1 |
|
||
| prompt-tokens (o200k), debatt | 6 826 | 15 595 | 5 553 |
|
||
| prompt-tokens (o200k), generering | 800 | 483 | 782 |
|
||
| leverandør-input | 12 057 | 24 582 | 10 115 |
|
||
| leverandør-output | 718 | 822 | 817 |
|
||
| **429-svar** | **0** | **0** | **0** |
|
||
| parse-feil-artefakt | **fraværende** | **fraværende** | **fraværende** |
|
||
| verktøykall i debatten | **0** (A-form: verktøyene trukket) | **0** | **0** |
|
||
| validator-dom | rejected (stage 4, P90) | **validated** | rejected (stage 4, P90) |
|
||
| dom-nøkkel | `d7eeac666dbe88dc` | `7326ad0ec7353039` | `1059ab348ea87f48` |
|
||
|
||
**Null parse-feil på tre ferske korpora.** `{run_id}-parse-failures.json` finnes ikke i noen av de
|
||
tre utboksene, og filens tilstedeværelse ER signalet (økt 35). Den avledede grammatikken (Fase 1b
|
||
funn 1b) ble akseptert av det levende endepunktet på tre korpora den aldri er testet mot — det
|
||
lukker en av den radens uttalte ærlighets-grenser.
|
||
|
||
**Steg 5 fyrer LEVENDE på begge de avviste armene.** Forsøk 2 og 3 bærer ordrett «your previous
|
||
proposal was REJECTED by the deterministic validator», og påstanden faller monotont:
|
||
|
||
| | forsøk 1 | forsøk 2 | forsøk 3 |
|
||
|---|---:|---:|---:|
|
||
| N100 `claimed_saving_nok` | 3 000 000 | 1 500 000 | 600 000 (P90 = 530 585) |
|
||
| N500 `claimed_saving_nok` | 350 000 | 210 000 | 90 000 (P90 = 81 323) |
|
||
|
||
---
|
||
|
||
## 4. Målene (a)–(e), med nevner
|
||
|
||
### (a) Svarte modellen med det sentrale vilkåret i fasit-kravet?
|
||
|
||
Ordrett sammenlikning mot konseptkroppen.
|
||
|
||
**N100 — JA.** Fasit-kroppen er én setning, og modellen gjenga den **ORDRETT**:
|
||
|
||
> «Eventuell kryssing mellom gang- og sykkelveg og veg skal være planskilt ved ÅDT > 4 000.»
|
||
|
||
og resonnerte riktig om den (ÅDT ≤ 4 000 ⇒ planfri kryssing ikke påkrevd). Nøkkelordene
|
||
`planskilt`, `ÅDT` og `4 000` står alle i svaret.
|
||
|
||
**N200 — NEI.** Fasit er Krav 2.9.2—12, filterkriterier for friksjonsjordarter, med tabell
|
||
2.9.2—1. Nevner: **0 av 6** nøkkelord fra kroppen (`filterkriteri`, `friksjonsjordart`, `2.9.2`,
|
||
`O90`, `D90`, `filter`) står i noe av modellens svar. Modellen resonnerte i stedet om
|
||
grunnundersøkelser, fra et ANNET levert konsept.
|
||
|
||
**N500 — NEI.** Fasit er Krav 10.2—2, tekniske bygg som egne brannceller. Nevner: **0 av 6**
|
||
nøkkelord (`branncelle`, `brannsikker`, `teknisk(e) bygg`, `10.2`, `byggteknisk`). Modellen
|
||
resonnerte om tunnelportaler, fra et annet levert konsept.
|
||
|
||
**Mekanismen er målt, ikke gjettet:** modellen ble bedt om et kostnadsbesparende tiltak. På N100
|
||
ER fasit-kravet kostnadsformet (en terskel som lar deg sløyfe en dyr konstruksjon), så det å svare
|
||
på oppgaven og å svare på spørsmålet SAMMENFALLER. På N200 og N500 gjør de det ikke, og modellen
|
||
fulgte oppgaven den fikk.
|
||
|
||
### (b) Siterte den riktig konsept-id?
|
||
|
||
Ordren gir to instrumenter. Begge rapporteres, og bare det ene er bærende.
|
||
|
||
| | N100 | N200 | N500 |
|
||
|---|---|---|---|
|
||
| stempelets siteringer | 8 | 8 | 8 |
|
||
| stempel ∩ delivered | **8 av 8** | **8 av 8** | **8 av 8** |
|
||
| fasit-id i stempelet | **JA** | **JA** | **JA** |
|
||
| **modellen navnga fasit-id-en** | **NEI** (navnga ingen id) | **NEI** (navnga `id-03418c46…`) | **NEI** (navnga `id-05152184…`) |
|
||
|
||
**Stempel-lesningen kan ikke diskriminere, og er derfor ikke bærende.** Stempelet siterer de leverte
|
||
konseptene MEKANISK, uavhengig av hva modellen leste — det ville vært `8 av 8` også for en kjøring
|
||
der modellen leste ingenting. Det er repoets egen vakuøs-gate-klasse. Den bærende lesningen er hva
|
||
modellen faktisk refererte, og der er svaret **nei på alle tre**. De to id-ene modellen DID navngi
|
||
er begge ekte, leverte konsepter — bare ikke fasit.
|
||
|
||
Konsept-id-en er tilgjengelig for modellen: `render_context` avgrenser hvert utdrag med
|
||
`--- BEGIN DATA <concept_id> ---`. På N200 og N500 brukte modellen den; på N100 lot den være.
|
||
|
||
### (c) Hallusinerte den et kravnummer eller en verdi som ikke står i kroppen?
|
||
|
||
Kjent-negativ: tall i modellens PROSA som ikke finnes i delivered-mengden, etter at UUID-fragmenter
|
||
er fjernet (ellers teller instrumentet biter av ekte id-er som oppdiktede tall).
|
||
|
||
| | N100 | N200 | N500 |
|
||
|---|---|---|---|
|
||
| kravnummer-formede tokens i prosa | ingen | ingen | ingen |
|
||
| tall i prosa ikke i delivered | **0** | **0** | **0** |
|
||
| konsept-id-referanser som ikke er levert | **0** | **0** | **0** |
|
||
|
||
**(c) = 0 på alle tre i prosaen.** Modellen siterte kun det den hadde. To treff ble undersøkt og
|
||
forkastet som instrumentfeil: N200s `03418` er et fragment av den ekte, leverte id-en
|
||
`id-03418c46-…` (modellen skrev den uten `id-`-prefikset), og N500s `500` er normalens eget navn.
|
||
|
||
**Men det strukturerte FORSLAGET er en annen sak, og der er det ett ekte funn.** N200s validerte
|
||
forslag bruker to kostkoder:
|
||
|
||
```json
|
||
"affected_items":[{"code":"03418c46","quantity":1,"unit_cost":15000000},
|
||
{"code":"03423b12","quantity":500,"unit_cost":4500}]
|
||
```
|
||
|
||
`03418c46` er et **kravnummer brukt som kostkode** — en ekte konsept-id, men ikke en kostlinje.
|
||
`03423b12` finnes **0 ganger blant basens 1 137 filer** (målt). Det er en oppdiktet identifikator,
|
||
formet som en ekte. Begge ble **VALIDERT**, fordi kjøringen er UFORANKRET og validatorens stage 0
|
||
derfor hoppes over — nøyaktig den defekten `--require-cost-baseline` (F4, økt 100) ble bygget for,
|
||
og det første LEVENDE tilfellet av den. Kjøringen sa det selv, i klartekst:
|
||
|
||
> `Cost baseline: NONE in the bundle — this run is un-anchored: the validator's stage 0 … is SKIPPED`
|
||
|
||
Dette er ikke telt under (c) etter ordrens definisjon (tall i SVARET mot delivered-mengden), men å
|
||
la det stå urapportert ville vært å bruke definisjonen som en gjemmeplass.
|
||
|
||
### (d) Kostnad
|
||
|
||
Listepris, Azure Retail Prices API (`api-version=2023-01-01-preview`, `currencyCode='NOK'`,
|
||
`armRegionName=eastus`), **hentet på nytt 08.09**, metere `gpt 4.1 mini Inp/Outp glbl Tokens`:
|
||
input NOK 0,003734 / 1K, output NOK 0,014936 / 1K.
|
||
|
||
| Kjøring | Prompter | Input | Output | NOK |
|
||
|---|---:|---:|---:|---:|
|
||
| N100 | 6 | 12 057 | 718 | 0,056 |
|
||
| N200 | 5 | 24 582 | 822 | 0,104 |
|
||
| N500 | 6 | 10 115 | 817 | 0,050 |
|
||
| klientprobe | 1 | ~20 | ~5 | ~0,000 |
|
||
| **SUM** | **18** | **46 754** | **2 357** | **NOK 0,21** |
|
||
|
||
**NOK 0,21 — 4,2 % av taket på NOK 5. 429-svar: 0.** Takene (`max_rounds=3`, `max_tokens`,
|
||
`max_attempts`) er URØRT, og ingen kjøring traff dem.
|
||
|
||
### (e) Nevner-vokabularet
|
||
|
||
**Ikke brukt i noen av de tre armene.** `[sourced-not-sufficient]` og de øvrige markørene står
|
||
0 ganger i 17 modellsvar. Det nærmeste er N500s checker: «No other specific cost-saving tradeoffs
|
||
were found within the given excerpt for N500» — riktig innhold, feil vokabular.
|
||
|
||
Det er ærlig nok her: alle tre armene FANT noe å foreslå i kuttet, så ingen av dem var i posisjonen
|
||
markøren finnes for. Kontrasten er S7 arm A, som brukte `[sourced-not-sufficient]` ordrett fordi
|
||
kuttet der ikke bar svaret.
|
||
|
||
---
|
||
|
||
## 5. Hovedfunnet: kuttet leverer riktig dokument og fjerner nøkkelen spørsmålet stiller
|
||
|
||
Dette er det som avgjør «ferdig»-dommen, og det ble målt fordi (a) falt på to av tre.
|
||
|
||
Fasit-konseptets fil i basen bærer kravnummeret i frontmatter:
|
||
|
||
```yaml
|
||
title: Krav 3.3.1—13 H1 – Nasjonal hovedveg, ÅDT < 6 000 og fartsgrense 80 km/t
|
||
req_number: Krav 3.3.1—13
|
||
description: Eventuell kryssing mellom gang- og sykkelveg og veg skal være planskilt ved ÅDT > 4 000.
|
||
```
|
||
|
||
Pre-passets utdrag bærer feltene `bundle_id · concept_id · sha256 · adjudication · trust_tier ·
|
||
bundle_id_inherited · text_sha256 · text · rank` — **ingen `title`, ingen `req_number`**.
|
||
|
||
| kravnummeret i det modellen faktisk fikk | N100 `3.3.1` | N200 `2.9.2` | N500 `10.2` |
|
||
|---|---|---|---|
|
||
| i fasit-utdragets `text` | **NEI** | ja (kroppen navngir «Tabell 2.9.2—1») | **NEI** |
|
||
| noe sted i hele det leverte kuttet | **NEI** | ja | **NEI** |
|
||
|
||
Til sammenlikning, po sin EGEN `read_file` på samme fil returnerer hele fila — 774 tegn, inkludert
|
||
`title` og `req_number`. Pre-passets utdrag er 98 tegn kropp.
|
||
|
||
**Pre-passet RANGERER på kravnummeret** — det er hele `a37d5ce`s mekanisme, og den virker: rang 1
|
||
av 446. **Og så leverer det utdraget uten den nøkkelen.** Modellen får et avsnitt om planfrie
|
||
kryssinger uten noe som helst som knytter det til «Krav 3.3.1—13». For to av tre bundler er
|
||
spørsmålets identifikator dermed ikke til stede i modellens kontekst i det hele tatt.
|
||
|
||
Dette er den strukturelle tvillingen til S7c-funnet: **der kjøpte låsene BYTENE, ikke STRUKTUREN;
|
||
her kjøper rangeringen RIKTIG DOKUMENT, ikke NØKKELEN.**
|
||
|
||
---
|
||
|
||
## 6. «Ferdig»-dommen, ærlig, per bundle
|
||
|
||
Kriteriet er ordrens: ferdig = (a) ja OG (b) ja OG (c) 0.
|
||
|
||
| | (a) | (b) modell | (c) | **ferdig** |
|
||
|---|---|---|---|---|
|
||
| **N100:2023** | **JA** (ordrett) | NEI | **0** | **NEI** |
|
||
| **N200:2024** | NEI | NEI | **0** | **NEI** |
|
||
| **N500:2024** | NEI | NEI | **0** | **NEI** |
|
||
|
||
**0 av 3.** N100 er nærmest: den gjenga fasit-vilkåret ordrett og hallusinerte ingenting; den
|
||
navnga bare ikke konseptet den siterte.
|
||
|
||
### Hvem eier hva som mangler
|
||
|
||
**llm-ingestion-okf eier én ting, og den er skarp.** Utdragsformen i `okf-consumption/1` bærer
|
||
`text` uten `title`/`req_number`. Rangeringen er FIKSET og god (rang 1 × 3 med flaggløs kommando) —
|
||
det er leveransen som mister nøkkelen. Et spørsmål stilt på en identifikator kan ikke besvares på en
|
||
identifikator som ikke ble levert. **Dette er ikke en ny nekt eller et flagg: det er ett felt til
|
||
per utdrag.**
|
||
|
||
**vegnormal-okf eier ingenting her.** Bundlene bærer `title`, `req_number`, `description` og riktig
|
||
kropp; indekstreet lukker (0 ufulgte lenker × 3); tre-hashene reproduserer; nevnerne stemmer.
|
||
Kroppene er de riktige kroppene. Det er ingen innholdsmangel i noen av de tre.
|
||
|
||
**portfolio-optimiser eier kjøreformen, og det er den største posten.** A-formens oppgave er
|
||
hardkodet til et kostnads-mandat, og den eneste døra som bærer en operatør-prompt (`--explore`) er
|
||
nektet med `--prepass-payload`. **po kan ikke STILLE et oppslagsspørsmål i A-form.** Det som ble
|
||
målt over er derfor det nærmeste A-formen kommer: fikk modellen fasit-teksten, og brukte den den?
|
||
Ja på N100, nei på to — og på begge de to fulgte modellen oppgaven den faktisk fikk.
|
||
|
||
### Anbefaling til operatøren (beslutningen er din)
|
||
|
||
1. **Meld feltet til llm-ingestion-okf: la utdraget bære `title` (eller `req_number`).** Billigst,
|
||
mest presist, og det eneste som gjør et identifikator-spørsmål besvarbart i det hele tatt.
|
||
Kostnaden er noen titalls tegn per utdrag mot dagens 8 utdrag.
|
||
2. **Avgjør om po skal ha en oppslags-dør.** I dag finnes den ikke i A-form. Tre veier, ikke
|
||
bygget her: (i) la `--prepass-payload` ta et operatør-spørsmål som debattens oppgave;
|
||
(ii) løsne `--explore`-nekten under et deklarert kutt (Q5=B-armen `--prepass-seed` er allerede
|
||
den formen, med verktøyene BEHOLDT); (iii) erklær at po ikke er et oppslagsverktøy og la
|
||
«ferdig» bety noe annet enn V1s K0-spørsmål. **Dette er en beslutning, ikke en fiks.**
|
||
3. **Kjør N-bundlene med `--require-cost-baseline` neste gang det er en kostnadskjøring.** N200
|
||
validerte et forslag med en oppdiktet kostkode fordi kjøringen var uforankret. F4-flagget finnes
|
||
allerede og ville nektet den.
|
||
4. **De tre bundlene kan IKKE kalles fullført på dette grunnlaget** — men det som mangler er ikke
|
||
bundlene. Etter (1) er kriteriet på nytt målbart for under NOK 0,25.
|
||
|
||
---
|
||
|
||
## 7. Funn — rapportert, ikke fikset
|
||
|
||
1. **Pre-passets utdrag mister kravnummeret** (§ 5). Eier: llm-ingestion-okf. Nevner: 2 av 3
|
||
bundler har ikke identifikatoren noe sted i modellens kontekst.
|
||
2. **po har ingen oppslags-dør i A-form** (§ 2). Eier: po. `run.py:1243` er hardkodet; ingen av
|
||
`run_project`s 26 parametre bærer et spørsmål; `--explore` nektes med `--prepass-payload`.
|
||
3. **En uforankret kjøring validerte en oppdiktet kostkode** (§ 4c). Eier: po (bruksmåte, ikke
|
||
kode — F4-flagget finnes). `03423b12` finnes 0 av 1 137 filer.
|
||
4. **Nevner-vokabularet ble ikke brukt i noen arm** (§ 4e). Eier: uavklart. Ingen av armene var i
|
||
posisjonen markøren finnes for, så dette er ikke bevis for at det ikke virker — det er en
|
||
ubesvart nevner.
|
||
5. **Budsjettforbruket avviker fra V1s tall** på alle tre (§ 1). Forventet konsekvens av `a37d5ce`,
|
||
ikke en defekt — nevnt fordi V1s tabell ellers ville lest som stale.
|
||
|
||
---
|
||
|
||
## 8. Ærlighets-grenser, uttalt
|
||
|
||
- **Én kjøring er én kjøring.** Tre armer, ett spørsmål hver, ingen gjentakelse. Ingenting her
|
||
måler varians, og et annet trekk fra samme modell kunne gitt et annet utfall på (a).
|
||
- **(a) på N100 er ikke bevis for at kjeden svarer på oppslag.** Det er bevis for at fasit-teksten
|
||
nådde modellen og ble brukt — og på N100 sammenfaller «svar på oppgaven» og «svar på spørsmålet»
|
||
ved et sammentreff i kravets innhold. Sammentreffet er identifisert, ikke skjult.
|
||
- **(b) er skåret på modellens referanse, ikke på stempelet**, fordi stempelet ikke kan
|
||
diskriminere. Det er en skjerping av ordrens kriterium, ikke en oppmykning, og den er begrunnet.
|
||
- **(c) = 0 gjelder PROSAEN.** Det strukturerte forslaget dikter opp kostkoder, som er strukturelt
|
||
påkrevd (ingen baseline, og oppgaven krever et tall). Skillet er uttalt i § 4c.
|
||
- **`--cost-vocabulary`, `--k` og `--rarity-weight` ble IKKE brukt.** Fasit sto på rang 1 med
|
||
default-kommandoen på alle tre, så opt-in-flaggene var ikke nødvendige — ordrens betingelse for
|
||
å bruke dem (`below_k`) inntraff aldri.
|
||
- **Kuttet er verifisert mot den monterte basen** (`admit_payload` × 3), så payloaden kan ikke ha
|
||
levert bytes basen ikke holder. Det er en gate, ikke en tillitserklæring til produsenten.
|
||
- **Ingen av de tre bundlene er faglig gjennomgått.** Sammenlikningen i (a) er mot konseptkroppen
|
||
slik den står, ikke mot vegnormalen.
|
||
|
||
---
|
||
|
||
## 9. Verifiseringslogg
|
||
|
||
| # | Påstand | Slik den ble verifisert |
|
||
|---|---|---|
|
||
| 1 | Tre tre-hasher reproduserer | `payload.bundle.ref` mot vegnormal-okfs melding, 3 av 3 ordrett |
|
||
| 2 | 446 / 1 133 / 270 konsepter | `okf.navigate_bundle(...).context_files`, po sin egen kode |
|
||
| 3 | Fasit på rang 1 × 3 | indeks av fasit-id-en i `payload.excerpts`, default-kommando |
|
||
| 4 | Kontraktsjekk exit 0 × 3 | `okf_contract_check.py`, 14 regler, 0 funn |
|
||
| 5 | Klientproben grønn | `uv run pytest tests/test_foundry_profile_live.py -q` → 1 passed |
|
||
| 6 | Deployment urørt | `az … deployment show` → GlobalStandard, 100, `2025-04-14` |
|
||
| 7 | Debattens oppgave er hardkodet | `grep -n 'Find a cost-saving measure' src/` → ett treff, `run.py:1243` |
|
||
| 8 | Ingen spørsmåls-parameter | `inspect.signature(run_project)`, 26 navn, 0 treff |
|
||
| 9 | Nekten er ekte | argv kjørt → rc 1, meldingen ordrett, null modellkall |
|
||
| 10 | Spørsmålet nådde modellen | ordrett delstreng i 2 av 6 / 2 av 5 / 2 av 6 prompter |
|
||
| 11 | (a) N100 ja | fasit-setningen ORDRETT i svaret; `planskilt`/`ÅDT`/`4 000` alle til stede |
|
||
| 12 | (a) N200/N500 nei | 0 av 6 nøkkelord fra hver fasit-kropp i noe svar |
|
||
| 13 | (c) = 0 | tall i prosa (UUID-fragmenter fjernet) mot delivered-teksten; 2 treff undersøkt og forkastet som instrumentfeil |
|
||
| 14 | `03423b12` er oppdiktet | 0 treff blant basens 1 137 filer |
|
||
| 15 | Utdraget mangler `title` | feltlista i `payload.excerpts[0]`; kravnummeret ikke i `text` for N100/N500 |
|
||
| 16 | po sin `read_file` bærer det | `navigator_tools(...)` → 774 tegn inkl. `req_number` |
|
||
| 17 | Null parse-feil | `{run_id}-parse-failures.json` fraværende i alle tre utboksene |
|
||
| 18 | Steg 5 fyrer levende | «REJECTED by the deterministic validator» i forsøk 2 og 3, begge armer |
|
||
| 19 | Prisene | Azure Retail Prices API hentet på nytt 08.09 |
|
||
| 20 | 0 × 429 | `retries`-telleren i alle 17 poster |
|