portfolio-optimiser/docs
Kjell Tore Guttormsen afdd9e0692 test(p13): the okf pin is MEASURED and deliberately NOT lifted -- the V1 stamp form disarms the forgery guard
The lift to llm-ingestion-okf v0.8.5 (which forces llm-ingestion-guard to
v1.4.0) was built and run in a worktree, never in the tracked tree. It is not
green, and the reason that decides it is not the red tests.

MEASURED. 27/27 imported names still resolve across five modules. Both demo
goldens stay byte-identical (ea8c534... / ede3e2f...), ruff check passes and
mypy clears 37 files. The suite goes 1579/3/5 (control) -> 1573/9/5. Eight of
the nine reds have ONE cause: the emitter moved from `generated: true` to the
V1 flow mapping `generated: { by: process:okf-ingest, at: ... }`, one line per
generated concept, seven files across four examples/ingest-golden-* bundles --
and 0 under shared/, so a future lift does not touch the pull-only subtree.

THE FINDING. okf._carries_complete_ingest_stamp reads the new form as NOT a
stamp (measured: True on the literal, False on the flow mapping), so
write_concept_file's IngestStampError refusal would land DISARMED -- and
test_ingest_stamp_fail_closed_loadbearing stayed GREEN through the whole bump
run. That is exactly the trap the _YAML_TRUE_LITERALS invariant row was written
for, arriving by a spelling it did not anticipate. A gate that stops gating is
not a row to name; it is a blocker.

TWO PREMISES FELLED before anything was built on them. Guard v1.2.0 -- the
lowest 1.x satisfying okf's declared >=1.2,<2.0 -- is NOT choosable: okf v0.8.5
pins the guard itself via [tool.uv.sources] tag = "v1.4.0" and uv refuses the
consumer's lower pin as conflicting URLs. And `rev = "v1.4.0"` is a DIFFERENT
url to uv than `tag = "v1.4.0"` even at the same value; only the tag= spelling
resolves.

DELIVERED. tests/test_okf_version_guard.py pins what is measured-green
(0.3.2 / 0.3.4) in two halves -- the installed distribution and pyproject --
with the refusal messages NAMING the eight-row cost of the lift, so the next
session cannot lift the pin without re-measuring. Iron Law: written red against
the v0.8.5/v1.2.0 target first (3 failed / 2 passed). Four mutations, each with
its own signature, all red: the okf assert never raises (1) / always raises (1)
/ the guard assert never raises (1) / the pin constant drifts to 0.3.3 (2 --
both halves, so the derivation is live and not two literals).

Also in the assessment: R761 navigated free for the first time (po had 0
references to it) -- 8.58/6.89/7.11 s, 131 MB max RSS, 5514 files -> 2756
concepts, 0 skipped links, against n100-2023's 0.21 s / 111 MB / 450 -> 446 /
0; and what the CLI can and cannot do with four bundles today.

Suite 1582 passed / 5 skipped (from 1577/5, strict superset, 0 removed).
Goldens byte-unchanged. Two coord messages closed; two STATE claims corrected
against measurement (upushed 3 -> 0, inbox "empty" -> 2).

Order: 20260912T190444Z-8080128610-from-.claude
Record: docs/2026-09-12-p13-okf-pin-r761.md

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 21:41:25 +02:00
..
fase1-spikes fix(fase1): spike B fan-out measures real conversation bleed, not a counter 2026-06-24 11:09:55 +02:00
plan docs(f16): the 1.18.0 assessment measured -- 0 of 19 forms moved, three features assessed and none built 2026-09-12 17:18:46 +02:00
rapport docs: fjern brukernavn, hjemmekatalog-stier og privat namespace fra publisert flate 2026-08-18 13:20:23 +02:00
research docs(research): MAF 1.9.0 capability map — feature-utilization for Fase 2 [skip-docs] 2026-06-24 11:36:26 +02:00
2026-06-24-two-approaches-brief.md docs: plain-text brief — goal + two approaches (MAF vs Claude Agent SDK) + learning goal 2026-06-24 09:21:31 +02:00
2026-06-26-fot-i-bakken.md docs(fot-i-bakken): ground-truth-verifisert levert-vs-lovet — agentiske lag inerte 2026-06-26 15:25:03 +02:00
2026-07-15-foundry-auth-recipe.md docs(1b): Claude på Foundry er en TREDJE klientflate — FoundryChatClient kan ikke binde den 2026-08-13 20:31:36 +02:00
2026-08-13-demo-presentasjon.html docs(deck): begge deck bærer det MÅLTE 1b-utfallet — ærlighet, ikke seier 2026-08-14 20:28:35 +02:00
2026-08-13-fase1a-lokal-ende-til-ende.md docs(fase1a): «uansett modell» hvilte på en måling jeg aldri leste ferdig 2026-08-13 20:19:31 +02:00
2026-08-13-fase4-azure-yaml-valg.md feat(4b): AZURE-profilen leser miljøet sitt, ikke operatørens laptop 2026-08-13 22:27:21 +02:00
2026-08-13-fase4-research-spike.md docs(4·): containeren er bygget — og wheelen er ikke installerbar alene 2026-08-13 21:57:40 +02:00
2026-08-13-presentasjon-ledelse.html docs(deck): tredje deck bærer samme MÅLTE 1b-utfall som de to andre 2026-08-18 09:37:14 +02:00
2026-08-14-fase1b-forste-levende-kjoring.md docs(1b): koordinatene byttet mot plassholdere - vei A, redigert framover 2026-08-18 13:03:11 +02:00
2026-08-18-vurdering-azure-omdoeping.md feat(gate): pakke-gaten leser INNHOLDET, ikke bare filnavn + vurdering av Azure-omdøping 2026-08-18 13:42:02 +02:00
2026-08-25-fable-misjonsreview.md docs: Fable 5 misjons-review — nærmer systemet seg faktisk målet? (ORDRE 20260825T104711Z) 2026-08-25 14:12:23 +02:00
2026-08-25-syretest-vei-ab.md feat(explore): katalogkallet koster O(baser), ikke O(korpus) (ORDRE 20260825T213645Z) 2026-08-26 14:45:16 +02:00
2026-08-26-katalogkostnaden.md feat(explore): katalogkallet koster O(baser), ikke O(korpus) (ORDRE 20260825T213645Z) 2026-08-26 14:45:16 +02:00
2026-08-29-maf-gjelden-omfang.md docs: MAF-gjeldens omfang malt, ikke bygget (F3/F15/F16/U16-17-19, ORDRE 20260825T214801Z) 2026-08-29 09:30:01 +02:00
2026-09-02-f15-maf-pinnen.md docs(f15): nevner-disiplin anvendt paa mitt EGET instrument - 17/16/2, ikke 16/16/2 2026-09-02 19:47:11 +02:00
2026-09-02-misjonsreview-v2.md docs: misjonsreview v2 mot bruksscenarioet — målt, ikke bygget (S2, ORDRE 20260902T113744Z-1245330375) 2026-09-02 17:17:39 +02:00
2026-09-02-read-bundle-kontekstkostnad.md docs: name the mechanism behind the untouched-debate proof, and re-measure all three bases 2026-09-03 01:30:09 +02:00
2026-09-03-forslag-fra-mandat.md docs(s7b): maaledokumentet baerer funnet CLAUDE.md-raden peker paa 2026-09-03 22:40:56 +02:00
2026-09-03-hierarkisk-navigasjon-k2.md docs(s7a-3): ordrens ANDRE binding maalt paa alle 478 K2-nivaaer, og to prosa-hull lukket 2026-09-03 08:09:53 +02:00
2026-09-03-syretest-s7a-k2.md docs(s7a): SS 5s "deler aarsak" var en paastand, ikke en maaling - og maalingen felte tallet 2026-09-03 03:42:18 +02:00
2026-09-03-syretest-s7a2-k2.md fix(docs): rediger vekk absolutt hjemmesti i S7a-2-rapporten - handover-gaten var roed paa HEAD 2026-09-03 06:02:17 +02:00
2026-09-04-major2-proposal-review-k2.md docs(major2): steg 9 fullfoert - M38..M40 roede, K2-omkjoeringen maalt, last_ruling-paastanden rettet 2026-09-05 20:39:52 +02:00
2026-09-04-s2c-debatt-k2.md docs(verdict-gate): maaleavsnittet og invariantraden - fem mutasjoner, fire tall verifisert 2026-09-04 20:41:32 +02:00
2026-09-04-syretest-s7b-k2.md docs(s7b): syretesten paa K2 - maaledokumentet med de fire tallene og tretten roede 2026-09-04 09:04:51 +02:00
2026-09-05-major2-trekreview.md docs(major2): remedieringsfoot under den sporede trekreview-kopien 2026-09-05 22:31:06 +02:00
2026-09-06-major2-levende-k2.md docs(major2): funn (b) re-maalt live - loekka konvergerer paa foerste reviderte forsoek 2026-09-07 00:52:39 +02:00
2026-09-07-okf-prepass-i-debatten.md docs(prepass): before/after on K2, the mutation battery and the invariant row 2026-09-07 14:39:50 +02:00
2026-09-07-prepass-mater-q5b-k2.md feat(prepass): --prepass-seed makes the cut a starting point, and K2 says it costs 2026-09-08 04:02:09 +02:00
2026-09-07-syretest-s7-prepass-k2.md docs(s7): a live model reads a declared cut -- three premises felled, four findings [skip-docs] 2026-09-07 16:07:29 +02:00
2026-09-08-f3-f4-nekten-og-forankringen.md feat(navigation,validator): read_dir names the rung that reads a document, and a run can require its anchoring 2026-09-08 05:32:46 +02:00
2026-09-08-funn-4-5-og-read-nekt.md feat(prepass,explore): padding dies at the prompt; a refusal the model can act on is a return value [skip-docs] 2026-09-08 23:36:54 +02:00
2026-09-08-funn-99-chatclient-refusal.md fix(cli): a provider failure leaves the CLI as one line, and a guessed base id is correctable 2026-09-08 21:03:18 +02:00
2026-09-08-n-bundlene-hypoteseform.md docs(n-bundlene): P4 -- one free N100 run after the P3 fix, (b') is now yes 2026-09-08 17:31:07 +02:00
2026-09-08-n-bundlene-konsum.md docs(n-bundlene): use ~-form for two absolute home paths -- handover gate was red on HEAD [skip-docs] 2026-09-08 15:23:55 +02:00
2026-09-08-syretest-s7c-begge-laaser-k2.md docs(s7c): both locks open, the price is delivered -- and the live model still did not read it [skip-docs] 2026-09-08 07:00:47 +02:00
2026-09-09-p6-betalt-k2-etter-kollaps.md docs(p6): one paid K2 run says the collapse bought legibility, not use 2026-09-09 13:14:55 +02:00
2026-09-09-p7-forankrede-identifikatorer.md feat(validator,generate,run): an identifier a proposal builds on must be in the input, or the verdict falls [skip-docs] 2026-09-09 16:04:01 +02:00
2026-09-09-p8-forankringstilbudet.md feat(run,generate): a run says what its delivered input can ground, before it spends an attempt [skip-docs] 2026-09-09 17:50:02 +02:00
2026-09-10-p9-v070-bundler.md docs(p9): okf v0.7.0 measured - the rename costs nothing, content adds 15 identifiers [skip-docs] 2026-09-10 06:33:57 +02:00
2026-09-10-p10-konform-k2-payload.md docs(p11): okf 0.8.1 measured - source-quota carries the denominators, one prior constant ranked the price schedule out [skip-docs] 2026-09-11 01:38:58 +02:00
2026-09-11-p11-okf-081.md docs(p11): okf 0.8.1 measured - source-quota carries the denominators, one prior constant ranked the price schedule out [skip-docs] 2026-09-11 01:38:58 +02:00
2026-09-11-p12-maf-gjeld.md docs(p12): MAF debt re-measured U1-U19 - 6/5/8 unchanged row for row, the pin bump moved U5's premise not its status [skip-docs] 2026-09-11 10:50:14 +02:00
2026-09-12-f16-maf-1180.md docs(f16): the 1.18.0 assessment measured -- 0 of 19 forms moved, three features assessed and none built 2026-09-12 17:18:46 +02:00
2026-09-12-p13-okf-pin-r761.md test(p13): the okf pin is MEASURED and deliberately NOT lifted -- the V1 stamp form disarms the forgery guard 2026-09-12 21:41:25 +02:00
bestille-en-kjoring.md feat(provenance): a run records which external service it actually called 2026-08-05 21:37:29 +02:00
ekspert-svar.md feat(hitl): ekspertdommen kan ikke oppstaa av stillhet (F2, ORDRE 20260825T214801Z) 2026-08-27 01:22:07 +02:00
extending.md docs: llms.txt + sikkerhetskontakt til security@ (ORDRE 20260821T041218Z) 2026-08-21 11:29:54 +02:00
knowledge-base-recipe.md docs: kunnskapsbase for ÉN konkret kjøring — kategorier, innholdstyper, veiprosjekt-eksempel (ORDRE 20260821T083046Z) 2026-08-21 11:10:59 +02:00
kort-presentasjon.html docs(deck): begge deck bærer det MÅLTE 1b-utfallet — ærlighet, ikke seier 2026-08-14 20:28:35 +02:00
kunnskapsbase-for-en-kjoring.md feat(visibility): en lenke som ikke ble fulgt sier det - spor + betinget linje (ORDRE 20260821T142704Z) 2026-08-21 17:18:18 +02:00
okf-konsum-kontrakter.md docs(s7a-3): ordrens ANDRE binding maalt paa alle 478 K2-nivaaer, og to prosa-hull lukket 2026-09-03 08:09:53 +02:00
presentasjon-bygge-kunnskapsbase.html feat(visibility): en lenke som ikke ble fulgt sier det - spor + betinget linje (ORDRE 20260821T142704Z) 2026-08-21 17:18:18 +02:00
presentasjon-fagpersonens-bidrag.html docs: fagpersonens bidrag - spørsmål/sjekkliste til fagperson (ORDRE 20260824T092912Z) [skip-docs] 2026-08-24 15:24:51 +02:00
review-2026-07.md docs(review): kryssmodell-review 2026-07 (14 funn, 11 detach-bevis) + revidert roadmap + sesjonsplan Fase 2-6 2026-07-10 06:28:11 +02:00