docs(plan): frysedagens instrument gjort sant — to open/-instrukser felt, P2 lukket

Planen er dokumentet operatøren følger onsdag under tidspress. Den instruerte
fortsatt om en beslutning som ble felt 08-10, og på TO steder — nøyaktig
drift-klassen der en retting i én fil etterlater den i en annen:

- §0 S1.c-raden: «tag v1.0.0 på begge remotes» → taggen går til `origin` ALENE.
  Felt med målingen som felte den (open/main = 520e741 = v0.1.0; 26 commits =
  53 filer / 6087 innsettelser; seks plandokument-beslutninger, én åpen sak +
  fire aldri vurdert). Amendert i stedet for omskrevet, per §6-mønsteret.
- P4 pkt. 1s fresh-clone-notat: «publisering dit er S1.c onsdag» → korrigert,
  flyttet til P5-vinduet.

Bokføring i samme pass (planens egen regel, linje 10):
- P2/S1.b ☐ → ✔ (2026-08-09, c255662), både overskrift og Spor 1-tabellen;
  JA-varianten i ærlighets-teksten markert som den som gjelder.
- Kalenderen: man 10. = tre økter (var: kun generalprøven) · tir 11. = P3 er
  gjort søndag, tirsdag er commons-svaret eller tom · ons 12. = frysesekvensen
  i rekkefølge, med distinkt-tellingen (8, ikke 9) og taggen sist.

«ETT trekk» på tag-dagen er MÅLT inn i dokumentet, ikke antatt: `## [Unreleased]`
er verbatim og unik (1 treff, kun to `## `-overskrifter), ingen link-refs å
følge med. Sto den to steder, ble frysedagens ene trekk improvisasjon.

Null kodeendring; ingen test rørt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLpSfvCgBLmc3tPRMnr1JA
This commit is contained in:
Kjell Tore Guttormsen 2026-08-10 05:15:36 +02:00
commit c9787cf10c

View file

@ -36,8 +36,8 @@ inventaret i `2026-08-06-v1-inventory.local.md`) + to lukkinger + release-kuttet
| Post | Innhold | Kost | Nedgradering hvis tid/kvote ryker | | 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.a = **P1** | Steg 7-innboksen inn i demoløpet | 1 økt | ærlig etikett (0,1 økt) |
| S1.b = **P2** | Innholdsgaten (Spor B) | 12 økter | NEI-varianten i ærlighets-teksten (ferdigskrevet) | | S1.b = **P2** | Innholdsgaten (Spor B) **✔ (2026-08-09, `c255662`)** — alle seks kriterier grønne; 801 → 810 tester. **JA-varianten** i ærlighets-teksten gjelder dermed. | 12 økter | NEI-varianten i ærlighets-teksten (ferdigskrevet)**ikke i bruk** |
| 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.)* **SYNK + CHANGELOG ✔ (2026-08-10, `a41272d`) — forskuttert fra ons kveld; TAGGEN gjenstår, frys-gatet.** Overskriften står bevisst på `[Unreleased]`: STATE hjemler innholdet nå, ikke release-stempelet, og et forhåndsdatert `[1.0.0] - <dato>` ville påstått en hendelse som ikke har skjedd. Ingen test leser CHANGELOG (målt), så paret er ikke maskin-gatet. Tag-dagen = ETT trekk: døp om overskriften, stemple dato, tagge. **Re-locken ble gatet, ikke antatt:** `uv lock` kjørt EKSPLISITT og diffet FØR noen test, ellers ville neste `uv run` re-locket usynlig mot en range-dep mens de to `ExperimentalWarning`-linjene er byte-pinnet i stderr-goldenen. Diffen = kun versjonslinja. **Målt at fire ER alle:** ingen README-badge; CHANGELOG-ens `[0.1.0]` er historikk. | 0,50,75 økt (ons kveld) | tag fredag i stedet — aldri tag før grønn generalprøve | | 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` ETTER grønn generalprøve. **⚠️ «PÅ BEGGE REMOTES» ER FELT (2026-08-10) — TAGGEN GÅR TIL `origin` ALENE.** `open/`-speilet mangler 26 commits (**53 filer / 6087 innsettelser**, målt: `open/main` = `520e741` = `v0.1.0`), så en tag DER er ikke en tag-operasjon men en **offentlig publisering** — og eksponerings-gjennomgangen viste at den krever **seks plandokument-beslutninger**: `2026-08-06-intensjons-qa` + `2026-08-06-demo-uke-plan` (åpen sak, stående anbefaling NEI) pluss FIRE aldri vurdert (`2026-08-07-planrevisjon-prompt`, `2026-08-09-egnethetsreview-plan`, `2026-08-09-fable-egnethetsreview-prompt`, `2026-08-09-innholdsgate-og-aerlighet`). Seks publiseringsbeslutninger på frysedagen er nøyaktig det denne planen forbyr. **Speilet synkes i P5-vinduet**, med READMEen som forklarer commitene — kode publisert foran sin README leser som forlatt. **Onsdag er dermed ETT trekk: CHANGELOG-stempel + `git tag v1.0.0` + `git push origin v1.0.0`.** *(`[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.)* **SYNK + CHANGELOG ✔ (2026-08-10, `a41272d`) — forskuttert fra ons kveld; TAGGEN gjenstår, frys-gatet.** Overskriften står bevisst på `[Unreleased]`: STATE hjemler innholdet nå, ikke release-stempelet, og et forhåndsdatert `[1.0.0] - <dato>` ville påstått en hendelse som ikke har skjedd. Ingen test leser CHANGELOG (målt), så paret er ikke maskin-gatet. Tag-dagen = ETT trekk: døp om overskriften, stemple dato, tagge. **«ETT trekk» er MÅLT (2026-08-10), ikke antatt:** `grep -c '^## \[Unreleased\]$' CHANGELOG.md`**1** (verbatim og unik; kun to `## `-overskrifter, og `## [0.1.0] - 2026-08-06` er historikk), og **ingen link-refs** nederst (`grep -nE '^\[.+\]:'` → tomt) som måtte følges med. Bar en dato, eller stod overskriften to steder, ville «det ene trekket» blitt improvisasjon på frysedagen. **Re-locken ble gatet, ikke antatt:** `uv lock` kjørt EKSPLISITT og diffet FØR noen test, ellers ville neste `uv run` re-locket usynlig mot en range-dep mens de to `ExperimentalWarning`-linjene er byte-pinnet i stderr-goldenen. Diffen = kun versjonslinja. **Målt at fire ER alle:** ingen README-badge; CHANGELOG-ens `[0.1.0]` er historikk. | 0,50,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):** **Andre repo — hva som faktisk MÅ gjøres der (målt, ikke antatt):**
- **commons:** energieksemplet MED `cost-baseline.json` — ALLEREDE bestilt (frist tir 11., - **commons:** energieksemplet MED `cost-baseline.json` — ALLEREDE bestilt (frist tir 11.,
@ -171,7 +171,7 @@ Utført i stedet: en ANDRE dom, med sin egen markør (`realiseringsgrad=0.66`),
betingelse og beviste ingenting. En mutasjon må måles mot hva fila FAKTISK inneholder, ikke mot betingelse og beviste ingenting. En mutasjon må måles mot hva fila FAKTISK inneholder, ikke mot
hva STATE kaller verdien. hva STATE kaller verdien.
### P2 — Spor B: innholdsgaten ### P2 — Spor B: innholdsgaten ✔ (2026-08-09, `c255662`)
**[12 økter · Opus 5/high · TDD direkte · følger innholdsgate-planen §3§4 uendret]** **[12 ø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 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 bundle?) tas FØR bygging, og innholdsgate-planens kriterium 5 (byte-uendret demo-stdout) måles
@ -330,8 +330,9 @@ en byte-fasit ville pinnet kommandoen i stedet for programmet. **stderr 6 → 4
*Punkt 1 — fresh-clone, målt mot `ab7f45a`:* klon fra `origin``uv sync` → `uv run *Punkt 1 — fresh-clone, målt mot `ab7f45a`:* klon fra `origin``uv sync` → `uv run
portfolio-optimiser-demo`. **stdout byte-identisk** med arbeidskopien; stderr identisk normalisert portfolio-optimiser-demo`. **stdout byte-identisk** med arbeidskopien; stderr identisk normalisert
på site-packages-sti + `po-sim-`-suffiks. READMEens egen verifikasjon kjørt i klonen: **785 passed / på site-packages-sti + `po-sim-`-suffiks. READMEens egen verifikasjon kjørt i klonen: **785 passed /
4 skipped**. *(Merk: `open/`-speilet står fortsatt på `520e7412` = `v0.1.0` — publisering dit er 4 skipped**. *(Merk: `open/`-speilet står fortsatt på `520e7412` = `v0.1.0`. **Korrigert 2026-08-10:
S1.c onsdag, ikke en del av denne målingen.)* publisering dit er IKKE S1.c onsdag — den er FELT og flyttet til P5-vinduet; se S1.c-raden i §0.**
Uansett ikke en del av denne målingen.)*
**Load-bearing MÅLT mot HELE suiten, fem mutasjoner alle røde + grønn kontroll:** fjern **Load-bearing MÅLT mot HELE suiten, fem mutasjoner alle røde + grønn kontroll:** fjern
`[project.scripts]` · typo i target · detach `main()`-kallet · la filteret droppe alt · installer `[project.scripts]` · typo i target · detach `main()`-kallet · la filteret droppe alt · installer
@ -445,9 +446,9 @@ og risikoen ligger tidlig med slakk bak seg.
|---|---| |---|---|
| fre 7. | **Planrevisjonen (I1I6)** ✔ + **P1/S1.a**: Steg 7-innboksen inn i demoløpet (økt 1) | | fre 7. | **Planrevisjonen (I1I6)** ✔ + **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,751,25 økt), i denne rekkefølgen: forankret prøvekjøring + 10 %-prøven (pkt. 0, I1) **✔ 08-09** → `[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Å | | lør 8.søn 9. | **P2/S1.b**: innholdsgaten (økt 2, evt. 3) + **P4-forskuddet UTVIDET** (0,751,25 økt), i denne rekkefølgen: forankret prøvekjøring + 10 %-prøven (pkt. 0, I1) **✔ 08-09** → `[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 ✔ (2026-08-09→10)** — kjørt mot **LEVERT VEGLYS-FV-SOER, ikke reserven**: P3 falt to døgn før fristen, så prøven målte demoinnholdet selv. Se UTFØRT-blokka under tabellen. | | man 10. | **TRE ØKTER, alle ✔.** (1) **Generalprøve nr. 0** — kjørt mot **LEVERT VEGLYS-FV-SOER, ikke reserven**: P3 falt to døgn før fristen, så prøven målte demoinnholdet selv. Se UTFØRT-blokka under tabellen. (2) **S1.c synk + CHANGELOG** (`a41272d`) — forskuttert fra ons kveld; TAGGEN gjenstår, frys-gatet. (3) **`open/`-beslutningen TATT** — taggen til `origin` ALENE; speilet til P5-vinduet (se S1.c-raden i §0). **Ingenting kodemessig gjenstår før onsdag.** |
| 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 | | tir 11. | **P3 ER GJORT (søn 09., `02ddc67` — GO).** Tirsdagens ENESTE åpne punkt er **commons-svaret på persona-formuleringen** (`rationale` sier «i kontorbygg» på et veglys-prosjekt, og linja printes ordrett i demoens Steg 7); frist **tir kveld**. **Kommer svaret:** subtree pull FØR frysen, med samme abortsti som P3 hadde (**I4:** noter pre-pull-hash → rød suite/goldens → hard reset til pre-pull-hash + avbryt, senest **kl. 18:00**). **Kommer det ikke:** ship som det står — én avkortet linje, ikke en blokker — og **tirsdagen er tom; gå rett på onsdag.** |
| 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) | | ons 12. | **FRYSESEKVENSEN, i denne rekkefølgen:** **P4** re-målt mot valgt innhold → **generalprøve ×2** (bruk **distinkt**-tellingen `grep -oE "^ *Steg [1-8]" \| tr -d ' ' \| sort -u \| wc -l`**8**; linje-tellingen gir 9, se avviket under tabellen) → **FRYS****P4.5: demo-runbook (I5)** (gatet til ETTER prøven, så den matcher frosset output) → **S1.c-TAGGEN sist** (CHANGELOG-stempel + `git tag v1.0.0` + push til **`origin` ALENE** — synk + CHANGELOG-innhold er alt gjort man 10.; `[project.scripts]` lå i helgen, I3). **Alle beslutninger er tatt på forhånd — onsdag skal MÅLE og UTFØRE, ikke avgjøre.** |
| tor 13. | **DEMO = v1 vises** (runbooken i hånda) | | tor 13. | **DEMO = v1 vises** (runbooken i hånda) |
| fre 14.lør 15. | **P5**: README (O4) | | fre 14.lør 15. | **P5**: README (O4) |
| deretter | **P6 → P7 → P8 → P9**, ett punkt per økt; STATE.md peker på øverste åpne | | deretter | **P6 → P7 → P8 → P9**, ett punkt per økt; STATE.md peker på øverste åpne |