portfolio-optimiser/docs/plan/2026-08-07-planrevisjon-prompt.md

9.3 KiB
Raw Blame History

Prompt: planrevisjon før Go — vurder seks innsigelser, endre planen

Til: en fersk sesjon på Fable 5 / xhigh, i portfolio-optimiser. Fra: Opus-5-sesjon 2026-08-07, som gjennomgikk planen på operatørens spørsmål «er planen god nok til å bli gjennomført med høy kvalitet til torsdag?». Lim inn alt under streken som første melding.


Du skal vurdere seks innsigelser mot ukeplanen, avgjøre hver enkelt, og endre planen deretter. Du bygger ingen produksjonskode i denne økten. Produktet er dømmekraft + redigerte plandokumenter.

Rammer som ikke er dine å endre

  • Frist: live demo av alle åtte steg torsdag 13. august. Frys onsdag 12. Fristen flyttes ikke.
  • O1O4 og A/B/C står (docs/plan/2026-08-06-demo-uke-plan.md §0). Du gjenåpner dem ikke.
  • Aldri arbeid i et annet repo. commons er pull-only; coord-send er mekanismen.
  • docs/presentasjon-portfolio-optimiser.html eies av en annen sesjon. Rør den aldri, git add -A aldri.
  • Scope-vakt: du foreslår planendringer og skriver dem inn i plandokumentene. Du starter ikke implementeringen av dem.

Denne økten kjører uten advisor — derfor denne regelen

En Fable-økt kan ikke bruke advisor. Kompenser i arbeidet: hvert tall og hvert faktapremiss du bruker skal produseres av en kommando du faktisk kjører i denne økten. Skriv kommandoen og resultatet inn i planen ved siden av påstanden. Du får en liste med belegg under — den er påstander fra en annen sesjon, altså premisser, ikke fakta. Verifiser hver enkelt selv før du handler på den. Én av innsigelsene under er nettopp at planen bygger på en for smalt målt kommando; ikke gjenta den feilen i din egen revisjon.

Les først (primærkilder, i denne rekkefølgen)

  1. STATE.md — «👉 NESTE»-blokka er sannheten om hvor vi står
  2. docs/plan/2026-08-09-egnethetsreview-plan.mdhoveddokumentet du skal endre (§0 to spor, §1 funn, §2 P1P4, §4 belegg, §5 kalender)
  3. docs/plan/2026-08-06-demo-uke-plan.md — eier kjørestien + de åtte verifiseringskriteriene (§5)
  4. docs/plan/2026-08-09-innholdsgate-og-aerlighet.md — Spor B / P2

Kontekst: hva som ER bra i planen (ikke riv det ned)

Målt i dag (2026-08-07): uv run pytest -q766 passed / 4 skipped på 110 s. Grunnpremisset «v1 = den målte kjernen» holder. Planen har konkrete verifiseringskriterier framfor «sjekk at det virker», en nedgraderingskolonne per post, en beleggstabell, to-spors-delingen, og front-lasting av alt som ikke krever nytt innhold. Innsigelsene under er justeringer av rekkefølge og ett målefeil- funn — ikke en underkjenning av planen.


Innsigelse 1 (viktigst) — Funn 1 er målt for smalt, og én følgesetning er feil

Planens påstand. §1 Funn 1 + §4 rad 3: «ingen bundle i repoet har cost-baseline.json», målt med ls shared/examples/bygg-energi-mikro/. Og §1 linje 78: «reserven (mikro-eksemplet) kan aldri få fila», som er grunnen til at NO-GO-tilfellet trenger sin egen ærlige setning.

Belegg som motsier den (verifiser selv):

Kommando Resultat
find . -name 'cost-baseline.json' -not -path './.git/*' src/portfolio_optimiser/data/bundles/bygg-energi-baseline-mikro/cost-baseline.json
cat på den fila gyldig S4.0-format: project_id + items{code:{quantity,unit_cost}}
grep -n BASELINE_BUNDLE tests/test_s40_cost_baseline_loadbearing.py :42 — fixturen er alt i bruk, seks mutasjoner målt røde
sed -n '505,525p' src/portfolio_optimiser/run.py :516 baseline = okf.load_optional_cost_baseline(bundle_dir) — bundle-stien er wiret
grep -n 'bundle_dir|copytree' src/portfolio_optimiser/simulation.py :280 argument, :316 shutil.copytree, :492 default — bundelen er en parameter, og den kopieres før kjøring

Innsigelsen. Beleggskommandoen så på ÉN katalog under shared/examples/. Repoet shipper en fungerende, format-definerende kostbaseline-bundle, og kjørestien leser den. Den ekte hindringen er ikke at fila er umulig å skaffe — det er at shared/ er pull-only subtree og at kriterium 8 krever goldenene byte-uendret. Det er en plasserings-begrensning, ikke en umulighet: en repo-lokal demo-bundle, eller et kopier-og-utvid-steg før kjøring, gir en forankret kjøring uten å røre commons.

Hvorfor det betyr noe for uka. Slik planen står, møter S4.0-forankringen ekte innhold for første gang tirsdag 11. — to dager før demo, én dag før frys — og planen sier selv at et avvik over 5 % da feller BÅDE det overdrevne og det korrigerte forslaget på scenen. Ukas største enkeltrisiko er plassert sist. Den kan flyttes til helgen for lav kostnad.

Foreslått endring (din avgjørelse). Nytt punkt i P4-forskuddet (helg): kjør hele demoløpet mot en lokalt forankret bundle, inkludert 10 %-avviks-prøven som i dag ligger i P3. Da blir tirsdag en re-måling mot nytt innhold i stedet for en førstegangskjøring. Korriger samtidig §1 Funn 1, §1 linje 78 og §4 rad 3 til det som faktisk er målt.

Vurder mot: koster dette en ekstra økt vi ikke har? Kolliderer en repo-lokal demo-bundle med _default_bundle_dir()-sømmen (simulation.py:48-51, PORTFOLIO_SHARED_ROOT) eller med kriterium 6 (byte-identisk stdout)? Er en syntetisk forankring godt nok bevis, eller flytter den bare usikkerheten? Avvis innsigelsen hvis svaret er nei — men avvis den med en kommando.

Innsigelse 2 — Rekkefølgedefekt: stderr-demping vs. stderr-pinning

P4 pkt. 2 pinner de fire kjente stderr-linjene som fasit i helgen. §0 Spor 2 lister demping av de samme fire linjene som «valgfritt før frys» — altså onsdag. Demping etter pinning ugyldiggjør pinnet på frysedagen. Foreslått endring: ta demping-beslutningen i helgen, før pinningen, og skriv den inn som en beslutning (ja/nei), ikke som et valgfritt tillegg sent i uka.

Innsigelse 3 — [project.scripts] ligger på frysedagen, men endrer install-flaten

§0 S1.c legger [project.scripts] inn onsdag kveld, etter at P4 pkt. 1 (fresh-clone-kriteriet) er målt. grep -n scripts pyproject.toml → 0 treff i dag. En ny entry point endrer det uv sync / install produserer, så «last ned → kjør»-beviset må strengt tatt måles på nytt etter frysen — som er selvmotsigende. Foreslått endring: flytt [project.scripts] til P4-forskuddet i helgen, slik at onsdag kun er versjonssynk (fire steder) + CHANGELOG + tag.

Innsigelse 4 — Tirsdagens subtree-pull mangler avbruddssti

Kriterium 8 sjekker at goldenene er uendret etter pull, men ingen sted står det hva som skjer hvis pullen gjør suiten rød dagen før frys. Foreslått endring: skriv inn pre-pull-hash-notering, en eksplisitt revert-regel, og et klokkeslett på tirsdag der NO-GO utløses uten videre diskusjon.

Innsigelse 5 — Ingen demo-runbook er allokert

Det som skal SIES torsdag ligger spredt over fire steder: demo-uke-plan §1 (tre ærlighets-punkter), innholdsgate-plan §5, P4 pkt. 4 (to ferdigskrevne setninger), og §0 Spor 2 (muntlig mandat-setning). Ingen post i planen produserer ÉN side operatøren kan følge på scenen — kjøresekvens, hva som sies hvor, og hva som gjøres hvis kjøringen feiler live. Golden-transkriptet fra P4 pkt. 3 er den naturlige aborten, men det står ikke som abortsti noe sted. Foreslått endring: egen post, ~0,25 økt, produseres VED frysen onsdag så den matcher frosset output.

Innsigelse 6 (lav) — datohygiene svekker beleggstabellen

Plandokumentet heter 2026-08-09-…, STATE-loggen daterer økter til 2026-08-09, og §4 sier «målt 2026-08-09 på HEAD c96ef90» — men git log -6 --format='%h %ad' --date=short gir 2026-08-06 for c96ef90, og i dag er 2026-08-07. Datoene ligger 23 dager fram i tid. Ikke en økt verdt, men en beleggstabell mister etterprøvbarhet når datoen ikke stemmer med commit-datoen. Foreslått endring: korriger datoene i §4 og i STATE-loggen; la filnavnet stå (omdøping koster lenker) med en note.


Det du skal levere

  1. En avgjørelse per innsigelse: TAS INN / AVVISES / ENDRES TIL — hver med kommandoen du kjørte for å avgjøre den. Avvisning er et fullt legitimt utfall; en avvisning uten måling er ikke.
  2. docs/plan/2026-08-09-egnethetsreview-plan.md redigert — §1/§4 korrigert der målingen krever det, §2 P3/P4 og §5-kalenderen omorganisert etter avgjørelsene, §0-økt-regnskapet oppdatert hvis summen endres.
  3. Et oppdatert økt-regnskap mot kalenderen fre 7. ons 12. Si eksplisitt om totalen fortsatt går opp, og hva som er første kutt hvis den ikke gjør det (nedgraderingskolonnen er alt skrevet — bruk den, ikke finn opp en ny).
  4. STATE.mds «👉 NESTE»-blokk overskrevet med den reviderte første handlingen for i dag (fredag), inkludert board-linja og route-linja.
  5. Commit med docs(plan):-prefiks. Ikke feat: (den krever staget README + CLAUDE.md). git add i eget Bash-kall, aldri sammen med git commit. Eksplisitt filliste — aldri -A.

Kriteriet på at denne økten lyktes

Planen som ligger der etterpå har ukas største måletekniske risiko tidligst, ikke sist, og hver påstand i §4 er produsert av en kommando som er kjørt i dag. Hvis du konkluderer med at planen skal stå uendret, er det et gyldig utfall — men da skal §4 bære målingene som viser hvorfor.