portfolio-optimiser/docs/plan
Kjell Tore Guttormsen 1522e2aaaa feat(simulation): the demo's gate is anchored to real cost lines (P4 pkt. 0)
The validator can reconcile a proposal against the project's actual cost lines
(S4.0 stage 0), but only when the knowledge base ships a cost-baseline.json —
and no bundle under shared/ has one. So on stage the gate reasoned only about
numbers the proposal supplied itself.

The reserve can never receive the file in shared/ (pull-only subtree, and demo
criterion 8 requires the goldens byte-unchanged). That is a placement
constraint, not an impossibility: materialize_anchored_bundle copies the bundle
and adds the file outside shared/, and the run path reads it through exactly
the seam a delivered bundle would use.

The baseline is DERIVED IN CODE from the scripted register, never typed beside
it — two sources of the same numbers drift, and drift is precisely what the
10 % probe models. On GO day the direction reverses (plan P3 b). Both scripted
replies must state the same cost lines or ValueError: were they to differ,
hypothesis #1 would be falsified by stage 0 instead of by P90 — the same
REJECTED line on screen, a different mechanism behind it.

10 % probe, measured: baseline x 1.10 -> FORKASTET at stage 0, before the
solver; corrected -> FORESLÅTT. Criterion 6 re-measured (stdout byte-identical
across two runs); stderr unchanged at 6 lines. The ONLY diff against the
un-anchored demo is the new KUNNSKAPSBASE block — everything else is
byte-identical, which is the problem: an anchoring nobody can see is one nobody
can check. Hence it is printed, and hence `provenance` is a required argument.
769 -> 775 passed.

Five mutations red + green control. The measurement failed the TEST first:
"ingen kostbaseline erklært" CONTAINS "kostbaseline erklært", and
ENERGI-TOTAL-EL already appears in the Step-2 line, so both assertions survived
the detach mutation. The two branches now share no wording.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GD6Y2Y23NZZxPYtSRoCmst
2026-08-09 14:35:07 +02:00
..
2026-06-23-incremental-plan.md docs: add cost-discipline + 90% principle as locked decisions (D5, D6) 2026-06-23 22:11:48 +02:00
2026-06-26-maalbilde-agentic-loop.md docs(maalbilde): konsolidert agentisk-loop baseline + OKF-kontekstarkitektur 2026-06-26 20:56:14 +02:00
2026-07-02-sesjonsplan.md docs(plan): session-by-session execution plan from the 2026-07-02 status analysis 2026-07-02 17:11:10 +02:00
2026-07-03-maalbilde-ingest-lag.md docs(plan): målbilde + gated sesjonsplan for ingest-programmet 2026-07-03 13:45:14 +02:00
2026-07-03-program-brief-ingest-konnektorer.md docs(plan): program-brief for ingest-lag — tools/konnektorer mot reelle datakilder 2026-07-03 11:24:24 +02:00
2026-07-03-sammenligningsprotokoll.md docs(plan): S3 — comparison protocol (pinned ref, metrics, liveness asymmetry) 2026-07-03 01:10:05 +02:00
2026-07-03-sesjonsplan-ingest.md docs(plan): ingest-rammer — Opus 4.8 xhigh alle økter, ingen Fable 5 2026-07-04 17:17:09 +02:00
2026-07-06-reell-kjoring-analyse-plan.md docs(plan): utrulling D-F–D-I — sesjonsplan (D-F–D-I i §2, S3.5/S3.6/S5.4, graf+T0), roadmap-revisjonsblokk, commons-amendment-utkast (Step-1-analyse: NEI → minimal amendment), toolkit-repo-brief 2026-07-15 05:29:41 +02:00
2026-07-10-sesjonsplan-fase2-6.md docs(repo): meet the org repo-standard gate — 0 ERROR 2026-08-03 21:56:19 +02:00
2026-07-14-commons-amendment-utkast.md docs(plan): utrulling D-F–D-I — sesjonsplan (D-F–D-I i §2, S3.5/S3.6/S5.4, graf+T0), roadmap-revisjonsblokk, commons-amendment-utkast (Step-1-analyse: NEI → minimal amendment), toolkit-repo-brief 2026-07-15 05:29:41 +02:00
2026-07-14-revisjonspakke-DF-DI.md docs(plan): utrulling D-F–D-I — sesjonsplan (D-F–D-I i §2, S3.5/S3.6/S5.4, graf+T0), roadmap-revisjonsblokk, commons-amendment-utkast (Step-1-analyse: NEI → minimal amendment), toolkit-repo-brief 2026-07-15 05:29:41 +02:00
2026-07-14-toolkit-repo-brief.md docs(plan): utrulling D-F–D-I — sesjonsplan (D-F–D-I i §2, S3.5/S3.6/S5.4, graf+T0), roadmap-revisjonsblokk, commons-amendment-utkast (Step-1-analyse: NEI → minimal amendment), toolkit-repo-brief 2026-07-15 05:29:41 +02:00
2026-07-16-llm-ingestion-guard-inclusion.md docs(security): plan llm-ingestion-guard inclusion at ingest/inbox persist-gates 2026-07-16 07:43:30 +02:00
2026-08-06-demo-uke-plan.md feat(step5): the falsification that informed the next hypothesis now leaves the loop 2026-08-06 15:12:06 +02:00
2026-08-06-intensjons-qa.md docs(qa): the four decisions the QA surfaced, with what constrains them 2026-08-06 13:20:52 +02:00
2026-08-07-planrevisjon-prompt.md docs(plan): six objections to the week plan, as a prompt the next session must measure before acting 2026-08-07 16:39:42 +02:00
2026-08-09-egnethetsreview-plan.md feat(simulation): the demo's gate is anchored to real cost lines (P4 pkt. 0) 2026-08-09 14:35:07 +02:00
2026-08-09-fable-egnethetsreview-prompt.md docs(plan): the Fable prompt, with the feature set as its main track and quota as its output 2026-08-06 20:01:53 +02:00
2026-08-09-innholdsgate-og-aerlighet.md docs(plan): the content gate and the honesty sentence, on a track that does not touch the freeze 2026-08-06 19:49:13 +02:00