portfolio-optimiser/docs/plan
Kjell Tore Guttormsen 1e11dcb96c feat(simulation): the demo now RUNS the Step-7 file inbox it narrates (P1/S1.a)
The Step-7 trace line said "lang fil-løkke" while the verdict arrived as a
function argument (`verdict_input`) — the short, in-run capture. The long loop
was tested but never exercised by the thing on stage.

An expert now drops a real verdict FILE (`write_verdict`) into an inbox between
the runs, and Run B is given `verdict_dir=`, so `run_project` merges it into the
store before the Step-1 fold.

Not done as the plan point was worded, and the difference is load-bearing:
routing the PERSONA verdict through the inbox would have put ONE marker on two
paths — Step 7 (inbox) and Step 8 (promotion) both end in Run B's prompt, so
either could carry it alone and `test_simulation_loadbearing.py`'s promotion
assertion would have stayed green with promotion detached. A second verdict with
its own marker keeps both seams independently red-able; `simulate_learning_loop`
raises when the two markers are equal. The inbox sits beside the bundle copy,
never inside it, and the id is an explicit sentinel (a minted id would collide
with the promoted verdict's, and `VerdictStore.add` is first-write-wins).

766 -> 769 passed (773 collected). Criterion 6 re-measured: stdout byte-identical
across two runs; stderr unchanged at 6 lines. Mutations measured against the full
suite, four red + a green control: detach `verdict_dir=` · point Run B at an empty
folder while the file is still written · marker set to `realization_rate: 0.82`
(measured present in the verdict seed) · marker set to `energy performance gap`
(measured present in a navigated concept file) · benign rename of the inbox dir.

Honesty limit found while measuring: the last two mutations fell on the causality
assertion, not the Run A control — generation prompts carry the debate output, not
the bundle context. The pair holds, but each assert defends a different property.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FVYDeJ9evZicgU5r3roZVW
2026-08-09 13:13:21 +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 now RUNS the Step-7 file inbox it narrates (P1/S1.a) 2026-08-09 13:13:21 +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