I1: Funn 1 was measured one directory wide; the repo ships a working S4.0
baseline fixture and run.py:516 reads it. The anchored dry-run + the 10%%
deviation test move from Tuesday to the weekend (P4 pt 0); Tuesday becomes a
re-measurement with an explicit abort path (I4: pre-pull hash, reset rule,
18:00 NO-GO). I2: stderr damping decided YES, in the weekend BEFORE pinning —
measured today stderr is six lines, one deliberately non-deterministic. I3:
[project.scripts] moves off freeze day to before the fresh-clone measurement.
I5: a demo runbook post (P4.5) at the freeze. I6: every §4 claim re-measured
today on HEAD bb3df79; the 08-09 datings were commits from 2026-08-06.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UDHSsyMuBASJcRapddciHL
26 KiB
Egnethetsreview → plan — funnene gjort varige, én økt av gangen
Hva dette er. Fable-reviewen (2026-08-09, kjørt fra
2026-08-09-fable-egnethetsreview-prompt.md) leverte funnene sine i et chat-transkript som forsvinner. Dette dokumentet er den varige formen: hvert funn i klarspråk, med belegget som produserte det, rangert som en planSTATE.mdpeker inn i økt for økt. Chatten kan glemmes — alt som trengs står her.Slik brukes den:
STATE.mds «👉 NESTE»-blokk peker alltid på det ØVERSTE ulukkede P-punktet her. En økt lukker et punkt → setter ✔ med commit-hash HER → overskriver STATE.md → neste økt leser videre. Demo-uke-planen (2026-08-06-demo-uke-plan.md) og innholdsgate-planen (2026-08-09-innholdsgate-og-aerlighet.md) BESTÅR uendret — denne planen føyer review-funnene inn i samme løp og flytter ingenting som er besluttet (O1–O4 står).Voyage: småjobber (≤1 økt, kjent sti) kjøres direkte med
/tdd-disiplin. Full Voyage-syklus (/trekbrief → /trekplan → /trekexecute → /trekreview) brukes der et punkt er merket [Voyage] — punktene med reell design-usikkerhet eller ≥2 økters bygging.Revidert 2026-08-07 (planrevisjonen — seks innsigelser målt og avgjort, se §6): ukas største måletekniske risiko (S4.0-forankringen) er flyttet fra tirsdag til helgen, stderr-beslutningen tas FØR pinningen,
[project.scripts]er flyttet ut av frysedagen, tirsdag har fått abortsti, og demoen har fått en runbook-post (P4.5). Datonote (I6): filnavnets2026-08-09beholdes (omdøping koster lenker), men øktene dokumentet daterer til 08-08/08-09 ble committet 2026-08-06 (målt 08-07:git show -s --format='%h %ad' --date=short c96ef90 0eb0f3d 295e966 688ee24 e93e921 d6f3359→ alle2026-08-06).
0. TO SPOR (operatørbeslutning 2026-08-09 — overordner rekkefølgen under)
Operatøren har delt uka i to spor. P-punktene under består, men hører nå hjemme slik:
SPOR 1 — KOMPLETT VERSJON 1, klar til torsdag 13. (inkludert andre repo)
v1 = den målte kjernen (alle åtte steg wiret, 42 load-bearing-testfiler, 766/770 grønn —
inventaret i 2026-08-06-v1-inventory.local.md) + to lukkinger + release-kuttet:
| Post | Innhold | Kost | Nedgradering hvis tid/kvote ryker |
|---|---|---|---|
| S1.a = P1 | Steg 7-innboksen inn i demoløpet | 1 økt | ærlig etikett (0,1 økt) |
| S1.b = P2 | Innholdsgaten (Spor B) | 1–2 økter | NEI-varianten i ærlighets-teksten (ferdigskrevet) |
| S1.c (ny) | Release-kuttet: versjon 1.0.0 synket FIRE steder (pyproject/__init__/uv.lock/test_smoke) + CHANGELOG ([Unreleased] → 1.0.0; Steg-5-API-endringen står alt der) + tag v1.0.0 på begge remotes ETTER grønn generalprøve. ([project.scripts] er flyttet videre til P4 pkt. 5 i HELGEN (I3): en ny entry point endrer install-flaten, så den må ligge FØR fresh-clone-målingen — aldri på frysedagen.) |
0,5–0,75 økt (ons kveld) | tag fredag i stedet — aldri tag før grønn generalprøve |
Andre repo — hva som faktisk MÅ gjøres der (målt, ikke antatt):
- commons: energieksemplet MED
cost-baseline.json— ALLEREDE bestilt (frist tir 11., coord20260806T112037Z…); GO/NO-GO tirsdag står. Reserven (mikro) gjør at v1 ALDRI blokkeres av commons: rammeverket er v1, innholdet er data. - llm-ingestion-okf: ingenting — pinnet
v0.3.2gjennom v1 (målt at den holder). - guard-repoet: ingenting —
v0.3.4finnes, stdlib-only; wiringen skjer HER (S1.b). - po-claude: PARKERT (ramme B) — v1 er MAF-siden alene, og det SIES i release-notatet.
→ Ingen ny coord-melding trengs. Alt andre-repo-arbeid er enten bestilt eller ikke nødvendig.
Flagget konflikt (operatøren eier den): O4 sier README-løftet kommer ETTER demoen (fre–lør).
Anbefaling: tag v1.0.0 onsdag med nøktern README-status; nivå-2-påstanden inn i README fre/lør
som besluttet. Beviset først, påstanden etterpå — det gjelder også taggen.
EKSPLISITT UTE av v1 (sies i release-notatet, ikke i en fotnote): CLI-porteføljetak (P6),
commons-amendmentene (P7), metode-skillen (P8), bestiller-flaten (åpen beslutning i STATE),
bundle-fabrikken (O1), søsken-repoet (parkert), okf v0.4.0+.
SPOR 2 — KOMPLETT OG OVERBEVISENDE DEMO av alle åtte steg
= P3 (GO-dag + re-måling av kostnads-sjekken) + P4 (forankret prøvekjøring +
fresh-clone-/stderr-/golden-kriterier + to ærlighets-setninger) + P4.5 (demo-runbook, VED
frysen — I5) + generalprøven + én muntlig mandat-setning (bestillingsflyten er svaret
på «kan vi styre hva som analyseres?» — docs/bestille-en-kjoring.md).
Stderr-dempingen er BESLUTTET (I2, 2026-08-07): JA — utføres i HELGEN som del av
P4-forskuddet, FØR stderr-pinningen (demping etter pinning ville ugyldiggjort fasiten på
frysedagen). Målt 08-07: stderr er SEKS linjer — de fire støylinjene (to ExperimentalWarning +
to «forcing completion») pluss blanklinje + arbeidskopi:-linja, som er bevisst
ikke-deterministisk (simulation.py:531-534) og IKKE skal dempes. Dempingen rører ikke stdout
(kriterium 6). Faller den: NEI-fallback = pin de fire linjene som fasit, med
arbeidskopi:-linja normalisert på prefiks.
Økt-regnskap for uka i dette repoet (revidert 08-07): S1.a (1) + S1.b (1–2) +
S1.c (0,5–0,75) + P3 (0,25) + P4/generalprøve — utvidet med forankret prøvekjøring,
10 %-prøven, [project.scripts] og dempingen (0,75–1,25) + P4.5 runbook (0,25)
≈ 3,75–5,5 økter på seks dager (fre 7.–ons 12., ny full ukeskvote). Totalen går opp med
slakk i normal drift (1–2 økter/dag). Første kutt hvis den ikke gjør det: S1.b →
NEI-varianten i ærlighets-teksten (nedgraderingskolonnen — ferdigskrevet, frigjør 1–2 økter,
og Spor B er ikke en frys-betingelse). Deretter gjelder nedgraderingskolonnen rad for rad —
v1 forblir ærlig komplett på hvert nivå, den blir aldri stille ufullstendig.
1. Funnene i klarspråk
Reviewen fant ingen brann i koden: suiten er grønn (766 passed / 4 skipped), demo-outputen er byte-identisk over to kjøringer, og alle åtte steg har sin merkede linje. Det den fant, er fire steder der demoen lover mer enn den viser, og noen hull i sikkerhetsnettet rundt torsdag.
Funn 1 — kostnads-sjekken har aldri kjørt på ekte innhold.
Validatoren KAN avstemme et forslag mot prosjektets faktiske kostnadstall (S4.0), men sjekken
aktiveres bare når kunnskapsbasen shipper cost-baseline.json — og ingen demo-bundle under
shared/examples/ har den fila (målt, §4 rad 3). (Korrigert 08-07, I1: den opprinnelige
formuleringen «ingen bundle i repoet» var målt for smalt — repoet shipper en fungerende,
format-definerende baseline-bundle i src/portfolio_optimiser/data/bundles/bygg-energi-baseline-mikro/,
i bruk av S4.0-testens målte mutasjoner, og kjørestien leser fila: run.py:516.) I dagens demo
regner validatoren derfor kun på tall forslaget selv oppgir. Bestillingen til commons krever fila
(bra) — men slik planen sto, ville sjekken møtt ekte innhold FØRSTE gang på leveransedagen; avviker
manus-tallene mer enn 5 % fra de leverte kostnadstallene, avvises BÅDE det overdrevne og det
korrigerte forslaget på scenen. Derfor er forankringen flyttet til helgen (P4 pkt. 0): reserven
kan ikke få fila I shared/ (pull-only subtree + kriterium 8 krever goldenene byte-uendret), men
det er en plasserings-begrensning, ikke en umulighet — demoen kjører uansett på en KOPI av
bundelen (simulation.py:316), så en repo-lokal kopier-og-utvid-variant gir en forankret kjøring
uten å røre commons. NO-GO-setningen i P4 pkt. 4 er omskrevet tilsvarende.
Funn 2 — demoen sier «fil-innboks for ekspertdommer», men bruker den ikke.
Steg 7-linja i demoen sier «lang fil-løkke». I virkeligheten leveres dommen som et
funksjonsargument — simulate_learning_loop kaller run_project uten verdict_dir
(§4 rad 4). Fil-innboksen finnes og er testet (test_step7_async_loop_loadbearing.py), men
demoen kjører den ikke. Dette er samme klasse som Steg 5 var før 7. august: et steg som
omtales er ikke vist.
Funn 3 — «last ned og kjør» er aldri testet fra en fersk nedlasting.
Ingen av de åtte demo-kriteriene kjører fra en ren klone. uv.lock finnes, så beviset er én
kommandosekvens — og den fanger miljøavhengigheter (PORTFOLIO_SHARED_ROOT re-peker
kunnskapsbasen!), utrackede filer og lokal .venv-drift.
Funn 4 — små presisjonshull i det som sies og vises. Kjøring A kalles «fersk kunnskapsbase, ingen tidligere dommer», men bundelen shipper ett dom-frø, og Kjøring B viser «2 dommer» der bare én kom fra sløyfa — én muntlig setning retter det. Stderr-støyen (to warnings + to «forcing completion») er det første publikum ser.
Etter demoen (feature-settet):
- Funn 5: porteføljekjøring fra kommandolinja har ikke noe samlet token-tak — taket finnes i
biblioteket (
PortfolioMeter, seks målte mutasjoner), menmain()kobler det aldri på; koden sier det selv (§4 rad 6). - Funn 6: spec-gjelden mot commons/søskenet vokser — seks lokale semantikk-beslutninger er uspeilet (D7-speiling ÅPEN i CLAUDE.md), og «rettferdig sammenligning» (A6) blir mindre sann for hver av dem.
- Funn 7: «metoden som Agent Skill» er en CLAUDE.md-konvensjon uten realisering — kun ekspert-personaen finnes (§4 rad 5).
- Funn 8:
[project.scripts]mangler (release-hygiene, målbilde §11 pkt. 7). - Null-funn: bytte av orkestrering (Sequential/Handoff/graf-laget/checkpointing) skal IKKE gjøres — målt: debatten er i praksis en fast sekvens og Group Chat beholdes av byttekost-grunner, gevinsten er kosmetisk, kostnaden er re-verifisering av hele offline-beviskjeden (§4 rad 7–8).
2. Plan FØR demoen (P1–P4, i utførelsesrekkefølge)
P1 — Steg 7-innboksen kobles på i demoen ☐
[1 økt · Opus 5/high · TDD direkte · MÅ lande før onsdags-frysen]
Rute persona-dommen gjennom en faktisk verdict_dir-katalog i simulate_learning_loop —
sømmene finnes allerede (run_project(verdict_dir=…) + write_verdict er offentlig primitiv).
Ny load-bearing-test: detach innboks-lesingen → markør-/Steg 7-linja endres → RØD. Kriterium 6
(byte-identisk stdout) måles på nytt etterpå.
Faller den på tid: minimumsvarianten = ærlig etikett i _run_trace_lines («dom levert
direkte her; fil-innboksen er samme søm, bevist i test») + én muntlig setning. 0,1 økt.
P2 — Spor B: innholdsgaten ☐
[1–2 økter · Opus 5/high · TDD direkte · følger innholdsgate-planen §3–§4 uendret]
Reviewens skjerpelse, ellers ingen endring: §4-beslutning 2 (avvisning per dokument eller per
bundle?) tas FØR bygging, og innholdsgate-planens kriterium 5 (byte-uendret demo-stdout) måles
ETTER wiring. Målt frys-sikker: verken run.py eller simulation.py importerer ingest.
P3 — Tirsdag 11.: GO/NO-GO + kostnads-sjekken (nå RE-måling, med abortsti) ☐
[0,25 økt, del av tirsdagsøkta · Opus 5/medium]
Som demo-uke-planen — men etter planrevisjonen 08-07 (I1) er dette en re-måling mot nytt
innhold, ikke førstegangskjøring: S4.0-forankringen og 10 %-avviks-prøven kjøres første gang i
HELGEN mot den lokalt forankrede reserven (P4 pkt. 0). Tirsdag: (a) kjør demo-kriterium 1+2
(åtte steg-linjer; REJECTED- og VALIDATED-linje for samme kandidat) mot den NYE bundelen;
(b) skriv manus-registerets tall FRA den leverte cost-baseline.json, aldri ved siden av den;
(c) gjenta 10 %-prøven mot levert innhold (mekanismen er alt bevist — dette måler INNHOLDET):
bevisst avvik → FORKASTET; korrigert → FORESLÅTT.
Abortsti (I4, ufravikelig rekkefølge): (1) FØR pull: noter git rev-parse HEAD i STATE;
(2) pull → kriterium 8 (git diff --stat på goldens → tomt) + full suite; (3) rødt utfall →
git reset --hard <pre-pull-hash> (squash-pullen er lokale commits uten push — resetten fjerner
dem helt) og NO-GO er UTLØST — senest kl. 18:00 tirsdag, uten videre diskusjon: reserven ER
demoinnholdet (den forankrede varianten fra helgen), ærlighets-setningen per P4 pkt. 4. NO-GO er
et planlagt utfall, ikke en krise — generalprøve nr. 0 mandag har allerede verifisert det.
P4 — Forankret prøvekjøring + fire kriterier + to setninger (FORSKUTTERES i helgen; onsdag gjenstår kun re-måling mot valgt innhold) ☐
[0,75–1,25 økt · Opus 5/low–medium · alt under bygges/måles mot mikro-reserven i helgen — se §5]
0. Forankret prøvekjøring (NY 08-07, I1 — ukas største måletekniske risiko, nå TIDLIGST):
lag en repo-lokal kopier-og-utvid-bundle — mikro-reservens innhold + cost-baseline.json i
S4.0-formatet fixturen definerer (project_id + items{code:{quantity,unit_cost}}), med
baseline-tall avledet FRA manus-registerets tall (samme disiplin som P3 b, speilvendt). Kjør
HELE demoløpet mot den: simulate_learning_loop tar bundle_dir som argument og kopierer den
(simulation.py:280/:316), og run.py:516 leser fila. Inkluder 10 %-avviks-prøven (flyttet hit
fra P3): bevisst avvik → FORKASTET i stage 0; korrigert → FORESLÅTT. Ligger utenfor shared/ →
kriterium 8 urørt; kriterium 6 er selv-identitet og påvirkes ikke. Ved NO-GO tirsdag kjører
demoen denne varianten (call-site-valg i main() — samme søm GO-utfallet uansett bruker).
Faller den: fallback = uforankret reserve + den gamle NO-GO-setningen — ingenting tapt mot
planen slik den sto før revisjonen.
- Fresh-clone-kriterium: klon til scratch →
uv sync→ kjør simuleringen → diff mot arbeidskopiens output. Beviser «last ned → kjør»-påstanden. Kjøres ETTER pkt. 5 ([project.scripts]), så målingen dekker den endelige install-flaten (I3). - Stderr: FØRST beslutningen, SÅ pinningen (I2). Dempingen er besluttet JA (§0 Spor 2) og
utføres FØR pinning. Målt 08-07: stderr er seks linjer — fire støylinjer + blanklinje + den
bevisst ikke-deterministiske
arbeidskopi:-linja (simulation.py:531-534), som aldri kan stå ubehandlet i en byte-fasit. Pin deretter: «stderr = kunarbeidskopi:-linja (+ blank), normalisert på prefiks»; nye advarsler etter subtree-pull fanges fortsatt. - Golden-transkript: sjekk inn demo-outputen som fasit-fil og diff mot den — selvidentitet (kriterium 6) fanger ikke-determinisme, men ikke regresjon mellom onsdag og torsdag. Transkriptet er også demoens abortsti (gjort eksplisitt i P4.5).
- To ferdigskrevne setninger inn i ærlighets-teksten (mønsteret fra innholdsgate-planen §5). NO-GO-varianten er OMSKREVET etter I1: «kostnads-forankringen er aktiv også i reserve-eksemplet, men kostnadstallene der er syntetiske — avledet av manuset, ikke levert av et fagmiljø» (fallback hvis pkt. 0 faller: den gamle setningen «kostnads-forankringen er ikke aktiv i reserve-eksemplet»). Frø-setningen står: «én av de to tidligere dommene i Kjøring B fulgte med eksempelet — den andre er den demoen lærte».
[project.scripts](flyttet HIT fra S1.c, I3): entry point inn ipyproject.toml(grep -n scripts pyproject.toml→ 0 treff i dag) +uv sync→ deretter pkt. 1. En install-flate som endres på frysedagen ville krevd ny fresh-clone-måling ETTER frys — selvmotsigende.
P4.5 — Demo-runbook: ÉN side operatøren følger på scenen (NY 08-07, I5) ☐
[0,25 økt · Opus 5/low · produseres VED frysen onsdag, ETTER generalprøve ×2 — så den matcher frosset output]
Det som skal SIES torsdag ligger i dag på fire steder: demo-uke-planen §1 (tre ærlighets-punkter),
innholdsgate-planen §5 (opplesnings-avsnittet), P4 pkt. 4 (to setninger) og §0 Spor 2 (muntlig
mandat-setning). Runbooken samler dem på én side: kjøresekvens (kommandoen + forventede
steg-linjer), hva som sies hvor, og abortstien: feiler live-kjøringen, vis golden-transkriptet
fra P4 pkt. 3 og si høyt at det er gårsdagens frosne kjøring. Sti:
docs/plan/2026-08-12-demo-runbook.md (datert sti — utenfor _LIVE_DOCS-gaten). Runbooken er
lesestoff, ikke kjøresti — den kan skrives etter frysen uten å røre den.
3. Plan ETTER demoen (P5–P10, i verdirekkefølge)
P5 — README + nivå-2-påstanden (O4, fre 14.–lør 15.) ☐
[1 økt · Opus 5/medium] Allerede besluttet (O4). Reviewens tillegg: G5-forbeholdet skal stå i teksten som løftes — sammenligningen mot søskenet gjelder den spec-ede kjernen, ikke hele dette repoet (mandat/hovedbok/portefølje-budsjett m.m. er utenfor spec-ene, målt 0 treff).
P6 — Globalt token-tak inn i CLI-en ☐
[1 økt · Opus 5/high · TDD direkte] --budget-dør i main(): PortfolioMeter +
read_spend/write_spend-wiring + BudgetRefused inn i except-tuplen (TRAP-kommentaren i
run.py sier selv at den ikke fanges i dag). Feller: CLI-test med spend-fil nær taket +
--portfolio → strukturert refusal; detach flagget → rød.
P7 — Amendment-pakken til commons — ÉN samlet bestilling ☐
[1 økt · Fable 5/high (spec-review er formen) · leveres via coord-send, ALDRI arbeid i commons] D-A-restene samlet i én tekst: F2/F3-validator-semantikken, S3.2-seedingregelen, S4.0-baseline-formatet, (p)-kvantiseringen, Steg-5-returtypen. Feller: amendmentet gir spec-tester/goldens som binder semantikken på tvers av stackene — i dag kan søskenet følge spec-en korrekt og likevel divergere fra dette repoet.
P8 — Metoden som Agent Skill (B6) ☐ [Voyage]
[/trekbrief først; bestilling til commons + liten konsum-søm her] Målt: kun
shared/skills/expert-reviewer/SKILL.md finnes. Innholdet eies av commons (bestilling som
tekst); konsum-sømmen her er liten (MAF SkillsProvider er experimental — pin versjon).
[Voyage] fordi formen har reell design-usikkerhet — hva av metoden som skal være skript vs.
referanse er ikke avgjort.
P9 — Småting ☐
[0,5 økt samlet · Opus 5/low] Kapabilitetskartets to korreksjoner (topologi-notatet fra
funn «null»: debatten er en fast sekvens, Group Chat beholdes av byttekost; checkpointing-raden
nedgraderes fra «ADOPT (later)» til «NEI med begrunnelse» — pass-nivå-gjenopptakelse er allerede
levert via spend-fila). ([project.scripts] er flyttet inn i v1-release-kuttet, §0 S1.c.)
P10 — Eksplisitt NULL (ingen økt) ✔
Ingen Sequential-swap, ingen Handoff, ingen graf-adopsjon, ingen checkpointing. Står her så ingen senere økt «oppdager» dem på nytt. Falsifisering av selve null-beslutningen: forsvinner «forcing completion»-linjene en dag uten bytte, var topologi-analysen feil.
4. Belegg (kommandoene bak påstandene — RE-MÅLT 2026-08-07 på HEAD bb3df79; opprinnelig måling 2026-08-06, se datonoten øverst)
| # | Påstand | Kommando → resultat |
|---|---|---|
| 1 | Suiten grønn | uv run pytest -q → 766 passed / 4 skipped (107 s) — re-målt 08-07 |
| 2 | Demo deterministisk + 8 steg | to kjøringer 08-07, stdout adskilt fra stderr: diff → tom; grep -cE "^ *Steg [1-8]" → 8. Stderr målt: 6 linjer — 2 ExperimentalWarning + 2 «forcing completion» + blanklinje + ikke-deterministisk arbeidskopi:-linje (bevisst, simulation.py:531-534) |
| 3 | (KORRIGERT 08-07, I1) Ingen bundle under shared/examples/ shipper kostbaseline — men REPOET gjør, og kjørestien leser den |
ls shared/examples/bygg-energi-mikro/ → 8 filer, ingen baseline (re-målt, står — men var målt for SMALT: én katalog). find . -name 'cost-baseline.json' -not -path './.git/*' → src/portfolio_optimiser/data/bundles/bygg-energi-baseline-mikro/cost-baseline.json (gyldig S4.0-format, merket SYNTHETIC); i bruk: grep -n BASELINE_BUNDLE tests/test_s40_cost_baseline_loadbearing.py → :42/:162/:242; kjørestien: run.py:516 load_optional_cost_baseline; bundelen er kopiert parameter: simulation.py:280/:316 |
| 4 | Steg 7 vises uten fil-innboksen | re-målt 08-07: run_project kalles uten verdict_dir (simulation.py:328-338/:356-366); dommen er argumentet verdict_input (:322); etiketten «lang fil-løkke» står i :478 |
| 5 | Metode-skill finnes ikke | find shared -name "SKILL.md" → kun expert-reviewer (re-målt 08-07) |
| 6 | CLI-porteføljen uten pass-tak | run.py:1679-1686 (re-lest 08-07): budget-stop-armen «currently UNREACHABLE from here»; TRAP-kommentar: BudgetRefused (RuntimeError) utenfor except-tuplen |
| 7 | Debatten er en fast sekvens | workflow.py:99-108 (re-lest 08-07): round-robin-selector, terminerings-nett = max_rounds*2+1 = 7 > 3 dispatcher → fyrer aldri; «forcing completion» ×2 målt i dagens stderr |
| 8 | MAF-alternativene gir ikke gevinst | re-målt 08-07: installert _group_chat.py:145-155 har round-robin kun som docstring-eksempel; inspect.signature(SequentialBuilder.__init__) → checkpoint_storage direkte. (Handoff = modelldreven ruting: 08-06-introspeksjonen, ikke re-målt) |
| 9 | [project.scripts] mangler — bygges i HELGEN (P4 pkt. 5, I3) |
grep -n scripts pyproject.toml → 0 treff (re-målt 08-07) |
| 10 | Spor B er frys-sikker | grep -nE '^(from|import).*ingest' src/portfolio_optimiser/{run,simulation}.py → 0 treff (re-målt 08-07, skarpere grep — treffene som finnes er kommentarer/hjelpetekst, ingen import) |
| 11 | (NY 08-07) Begge baseline-loaderne finnes | grep -n 'def load_optional_cost_baseline|def load_cost_baseline' src/portfolio_optimiser/okf.py → :305 + :323 |
| 12 | (NY 08-07, I6) Daterings-avvik | git show -s --format='%h %ad' --date=short c96ef90 0eb0f3d 295e966 688ee24 e93e921 d6f3359 → ALLE 2026-08-06; date → 2026-08-07 (fredag); 13. aug = torsdag |
5. Ukens kalender (hvor punktene lander)
Justert fre 7. aug (operatør): arbeid starter I DAG, helg inkludert, ny full ukeskvote — full sti er hovedsporet, nedgraderingene i §0 er forsikring. Prinsippet bak fordelingen: alt som IKKE krever det nye commons-innholdet gjøres FØR tirsdag, så tirsdag/onsdag er tynne og risikoen ligger tidlig med slakk bak seg.
| Dag | Innhold |
|---|---|
| fre 7. | Planrevisjonen (I1–I6) ✔ + P1/S1.a: Steg 7-innboksen inn i demoløpet (økt 1) |
| lør 8.–søn 9. | P2/S1.b: innholdsgaten (økt 2, evt. 3) + P4-forskuddet UTVIDET (0,75–1,25 økt), i denne rekkefølgen: forankret prøvekjøring + 10 %-prøven (pkt. 0, I1) → [project.scripts] (pkt. 5, I3) → stderr-demping FØR pinning (pkt. 2, I2) → fresh-clone (pkt. 1) → golden-transkript-mekanikk (pkt. 3) → de to ærlighets-setningene (pkt. 4) — alt bygges og måles mot den FORANKREDE mikro-reserven NÅ |
| man 10. | Generalprøve nr. 0 mot forankret reserve: alle kriterier ende-til-ende → NO-GO-utfallet er ferdig verifisert FØR tirsdag; rest-slakk er buffer |
| tir 11. | P3: noter pre-pull-hash → subtree pull → GO/NO-GO (abortsti I4: rød suite/goldens → git reset --hard <pre-pull-hash> + NO-GO senest kl. 18:00) + RE-måling: kriterium 1+2 mot NY bundle; manus-tall skrives FRA levert cost-baseline.json; 10 %-prøven gjentatt; goldens byte-uendret |
| ons 12. | P4 re-målt mot valgt innhold → generalprøve ×2 → FRYS → P4.5: demo-runbook (I5) → S1.c: versjonssynk + CHANGELOG + tag v1.0.0 (uten [project.scripts] — den ligger i helgen, I3) |
| tor 13. | DEMO = v1 vises (runbooken i hånda) |
| fre 14.–lør 15. | P5: README (O4) |
| deretter | P6 → P7 → P8 → P9, ett punkt per økt; STATE.md peker på øverste åpne |
6. Planrevisjonen 2026-08-07 — seks innsigelser, avgjørelser med belegg
Kjørt på Fable 5/xhigh uten advisor; hvert premiss fra innsigelses-prompten er derfor re-målt i økta med egne kommandoer (§4 + kolonnen her) — ingen tall er gjenbrukt.
| # | Innsigelse | Avgjørelse | Nøkkelmåling (kjørt 08-07) |
|---|---|---|---|
| I1 | Funn 1 målt for smalt; «reserven kan aldri få fila» feil som formulert | TAS INN — forankret prøvekjøring + 10 %-prøve flyttet til helgen (P4 pkt. 0); §1/§4 korrigert | find . -name 'cost-baseline.json' → fixturen finnes (gyldig S4.0-format); run.py:516 wirer loaderen; simulation.py:280/:316 — bundelen er kopiert parameter |
| I2 | Demping (ons) etter pinning (helg) ugyldiggjør fasiten | TAS INN, SKJERPET — beslutning JA tatt nå; demping i helgen FØR pinning; målt at stderr uansett trenger definert form | to sim-kjøringer: stderr = 6 linjer, ikke 4 — arbeidskopi:-linja er ikke-deterministisk (simulation.py:531-534) |
| I3 | [project.scripts] på frysedagen endrer install-flaten ETTER fresh-clone-målingen |
TAS INN — flyttet til P4 pkt. 5 (helg), FØR fresh-clone; S1.c = synk + CHANGELOG + tag | grep -n scripts pyproject.toml → 0 treff |
| I4 | Tirsdagens pull mangler avbruddssti | TAS INN — pre-pull-hash + reset-regel + NO-GO senest kl. 18:00 skrevet inn i P3 og §5 | kriterium 8 finnes (demo-uke-plan §5 pkt. 8, lest 08-07), men ingen revert-regel sto i noe dokument |
| I5 | Ingen demo-runbook allokert | TAS INN — ny post P4.5 (0,25 økt, VED frysen); golden-transkriptet gjort eksplisitt til abortsti | de fire spredte kildene bekreftet (demo-uke-plan §1, innholdsgate §5, P4 pkt. 4, §0 Spor 2 — lest 08-07) |
| I6 | Datoene ligger 2–3 dager fram i tid | TAS INN — §4 re-datert til faktisk måling; STATE-loggen korrigert; filnavnet står med datonote | git show -s --format='%h %ad' → alle refererte commits 2026-08-06; date → 2026-08-07 (fredag) |
Avvist: ingen. I1s mot-spørsmål ble målt, ikke antatt: ingen kollisjon med
_default_bundle_dir()/PORTFOLIO_SHARED_ROOT (bundelen er et funksjonsargument, og demoen
kjører på en kopi — simulation.py:280/:316/:492), ingen kollisjon med kriterium 6
(selv-identitet: en forankret kjøring diffes mot seg selv) eller kriterium 8 (den lokale bundelen
ligger utenfor shared/), og syntetisk forankring beviser MEKANISMEN live — tall-ærligheten
dekkes allerede av nivå 2-regelen (demo-uke-planen §1 pkt. 3) og fixture-notatet «SYNTHETIC».
Kostnaden (~0,25–0,5 økt ekstra i helgen) er dekket av ny full ukeskvote og kjøpes tilbake ved at
tirsdag/onsdag blir tynnere.