docs(P4.5): §5s frys-gate ved X kunne aldri feile
Punkt 5 kjørte frys-gaten mot <X> rett etter at punkt 4 leste X som
`git rev-parse HEAD`. På det tidspunktet ER X lik HEAD, og ingenting er
committet imellom — så <X>..HEAD er tom uansett hva treet inneholder.
Målt, ikke resonnert: med en endret src/-fil liggende i arbeidstreet
(` M src/portfolio_optimiser/__init__.py`) sto gaten fortsatt tom. Den
måler ingen tilstand.
Økt 7s begrunnelse for to kjøringer sa «den første måler en tilstand som
ikke lenger finnes når taggen settes». Det er for snill: den finner ingen
tilstand å måle. Dette er repoets egen defektklasse, anvendt på repoets
egen runbook — «en gate som bare kan bli grønn beviser ingenting» er
standarden hver load-bearing test måles mot.
Alvorlighet, uttalt presist: falsk trygghet, ikke falsk grønt. Punkt 3
(rent tre) og punkt 9 (etter Y og Z) dekker den faktiske risikoen, så
ingenting ved onsdagen blir rødt av dette. Men en gate operatøren ser
grønn ved X kan under tidspress gjøre punkt 9 til en gjentakelse man
hopper over — samme argument som ga §6 steg 1 sin `--untracked-files=no`.
Punktet er BEHOLDT, ikke fjernet: fjerning renummererer 6→5 … 11→10 og
bryter fem kryssreferanser (§0s «punkt 10» og «punkt 6», punkt 9s
tilbakereferanse, STATEs «elleve punkter», planens ons-12-rad) — på
frys-eve. I stedet har punkt 5 fått en arm den kan feile på:
git diff --stat c255662..HEAD -- . ':(exclude)docs/' ':(exclude)CHANGELOG.md'
→ ikke tomt (målt: 6 filer). Den beviser at kommandoen kan diskriminere
FØR punkt 9 hviler på at den er tom. Uten den ville en feilskrevet
':(exclude)…' eller en quoting som ikke overlevde skallet (MULTIOS,
08-09) gitt grønn gate på feil grunnlag, og et utestet tre tagget.
c255662 ligger fast bak både Y og Z, så armen forblir ikke-tom uansett
hvor HEAD står onsdag.
To rettelser i samme pass, begge nødvendige for at teksten ikke skal lyve
på en ny måte:
- punkt 9 sa «Punkt 5 målte en tilstand som ikke lenger finnes» — under
det nye punkt 5 er det galt på en ny måte, siden punkt 5 ikke målte noe
- §5s ingress sa «Fila skrives ÉN gang onsdag (punkt 6)», mens punkt 4
instruerer om å skrive X inn i §0. Den bærende egenskapen er at
ingenting skrives ETTER Y, ikke antallet skrivinger — nå sagt slik.
Punkt 4 er operasjonelt riktig: å bære en hash i hodet gjennom tre
gate-kjøringer er verre.
Begge gate-kommandoene er EKSTRAHERT LITERALT fra runbooken og kjørt
(ikke gjenskapt for hånd — repoets MULTIOS-lærdom): arm 1 tom, arm 2
seks filer.
Målt: utfyllings-gaten 2 · §5 elleve punkter · §0/§1/§2/§3/§4/§6/vedlegg
byte-urørt mot 24b5ed2 (kun §5 endret, så økt 9s 67 målinger av §2 står) ·
planens kalender-rader 3 usiterte pipes · frys-gaten mot HEAD TOM ·
810 passed / 4 skipped · ruff + format + mypy rene.
Pre-flighten er re-målt HELT på 24b5ed2, ikke arvet fra 4b9e5d9:
stale tag 0/0 · [Unreleased] 1, null link-refs · frys-gaten d0e8bb0..HEAD
TOM og diskriminerende (c255662..HEAD = 6 filer) · demo exit 0, golden-diff
TOM, 61 linjer, K1 distinkt 8 / linjer 9.
Åttende defekt i denne dokumentfamilien på åtte økter. Ny klasse: ikke
«feil tidspunkt» og ikke «implisitt steg», men en gate hvis utfall var
avgjort av sin egen plassering i sekvensen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0192WLzngWK5aFDYpkXWuLVh
This commit is contained in:
parent
24b5ed29df
commit
c50fd2edb4
2 changed files with 52 additions and 8 deletions
|
|
@ -565,8 +565,8 @@ og risikoen ligger tidlig med slakk bak seg.
|
|||
| 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) **✔ 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. | **SYV Ø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). (4) **Planen gjort sann** (`c9787cf`) — to `open/`-instrukser felt, P2 lukket, kalenderen rettet. (5) **Frysedagens to udefinerte steg lukket** — **P4 ✔** (fersk klon re-målt på `c9787cf`, elleve commits etter forrige måling) og **FRYS gjort kjørbar** (frys-blokka under). (6) **Persona-pullen landet** (`71b7b66`+`d0e8bb0`) — commons svarte to døgn før fristen, så tirsdagens eneste punkt ble tatt mandag; fasiten re-målt mot en prediksjon skrevet FØR pullen. **Ingenting kodemessig gjenstår før onsdag, og tirsdagen er tom.** (7) **P4.5-runbooken SKREVET** (`c7a57d8`) — beslutnings-innholdet forskuttert fra onsdag (gaten dekker målingene, ikke forfatterskapet), inkludert **mandat-setningen som aldri fantes som tekst**; onsdag fyller ~~tre~~ **to** målte felt (tag-feltet felt tir 11. økt 12 — det var sirkulært). Vedlegget felte tre «scene-kosmetiske» STATE-premisser: ingen av dem er synlige på skjermen (målt). **Frysen ble VURDERT flyttet fram og bevisst IKKE flyttet** — onsdag er en dato-beslutning på en enveis-handling, og risikoen den ville hedget er retirert av økt 6 (samme kjøresti målt grønn; `d0e8bb0..HEAD` er dokumenter alene). |
|
||||
| tir 11. | **IKKE TOM — FEM ØKTER (8, 9, 10, 11, 12), alle måling/dokument, null kodeendring.** Frysen ble VURDERT flyttet fram og bevisst IKKE flyttet: **et frysevindu er en forpliktelse, ikke slakk** — å tagge tirsdag ville forbudt kjørestien et døgn lenger og gjort ethvert onsdagsfunn til en `v1.0.1`-beslutning på demo-aften. Tirsdagen er verdt mer som **lovlig-fiks-dag**. (8) generalprøve som PRØVE, alt grønt på `818b55a`; X bevisst IKKE notert; pre-flight mot stale tag ren. (9) runbookens §2 målt mot fasiten — 67 påstander + hver kommando kjørt, null feil; §1s stderr felte én defekt (`/tmp/po-sim-…` kan aldri vises, `TMPDIR` = `/var/folders/…/T/`). (10) **runbookens §6 — torsdagens pre-flight — tilføyd** (se P4.5). (11) **to en-linjes herdinger av onsdagen/torsdagen:** §5 manglet en **arbeidstre-sjekk ved X** (frys-gaten er commit-til-commit, prøven leser treet — en ucommittet `src/`-endring ville gjort X til en beskrivelse av noe som aldri ble prøvd, usynlig for BEGGE gate-kjøringene), og **§3s abortsti brukte relativ sti** til fasit-fila, altså feilet av nøyaktig den «feil katalog»-årsaken prosaen selv navngir (målt). Frysen er nå **tre** kommandoer. (12) **§0s tag-felt var SIRKULÆRT og §5s haker var tvillingen** — feltet kunne først fylles etter §5s siste punkt, mens punkt 6 krever at gaten er tom; hakene settes i fila, og punkt 7–10 skjer etter runbook-commiten `Y`. Begge utveier gjorde en av **torsdagens** to gater rød (ucommittet → §6 steg 1; commit etter taggen → §6 steg 2s identitet). Tag-raden fjernet, ellevte §5-punkt bekrefter taggen der den settes, hakene forlot fila. Se P4.5-amendementet. *(Raden sa «TOM — GÅ RETT PÅ ONSDAG»; det var sant da den ble skrevet man 10. og sluttet å være det samme uke. Samme drift-klasse som radene økt 4, 5 og 6 hver for seg fant.)* *(Amendert man 10. økt 6: tirsdagens ENESTE åpne punkt var commons-svaret på persona-formuleringen — «i kontorbygg» på et veglys-prosjekt, printet ordrett i Steg 7. Svaret kom **to døgn før fristen** og ble tatt samme dag: subtree pull av commons `73136eb` → «i tilsvarende anlegg», `marker` byte-uendret (`71b7b66`), fasiten re-målt (`d0e8bb0`). Abortstien I4 ble aldri utløst — men den ble verifisert KJØRBAR først: `git reset --hard` blokkeres av hooken, **`--keep` slipper**. Rød-settet etter pullen var NØYAKTIG én test, det pinnede transkriptet; goldenene (kriterium 8) uendret; `pyproject.toml`/`uv.lock` urørt. Denne raden instruerte om arbeid som var utført — samme drift-klasse som økt 4 felte.)* |
|
||||
| ons 12. | **FRYSESEKVENSEN, i denne rekkefølgen. P4 ER LUKKET (man 10., økt 5 — fersk-klon-målingen var det eneste som gjensto, og den er kjørt på `c9787cf`), så sekvensen starter på prøven, ikke på en udefinert re-måling:** **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: FYLL UT demo-runbooken** (`docs/plan/2026-08-12-demo-runbook.md` — den er SKREVET man 10. økt 7, `c7a57d8`; onsdag setter inn **to** målte felt (X + prøve-tidspunkt) og følger §5s **elleve** punkter i terminalen — **hakene settes ALDRI i fila**, og taggen bekreftes i punkt 11, ikke som et felt i §0; begge deler ville krevd en skriving etter taggen og gjort torsdagens identitets-anker rødt (tir 11. økt 12). Utfyllings-gaten: `grep -n '<<[A-ZÆØÅ-]*>>' docs/plan/2026-08-12-demo-runbook.md` → TOMT) → **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.** **FRYSEN ER TRE KOMMANDOER, ikke en holdning — se frys-blokka under tabellen** (rent tre → noter X → gaten; arbeidstre-sjekken tilføyd tir 11. økt 11, fordi gaten er commit-til-commit og prøven leser treet). |
|
||||
| tir 11. | **IKKE TOM — SEKS ØKTER (8, 9, 10, 11, 12, 13), alle måling/dokument, null kodeendring.** Frysen ble VURDERT flyttet fram og bevisst IKKE flyttet: **et frysevindu er en forpliktelse, ikke slakk** — å tagge tirsdag ville forbudt kjørestien et døgn lenger og gjort ethvert onsdagsfunn til en `v1.0.1`-beslutning på demo-aften. Tirsdagen er verdt mer som **lovlig-fiks-dag**. (8) generalprøve som PRØVE, alt grønt på `818b55a`; X bevisst IKKE notert; pre-flight mot stale tag ren. (9) runbookens §2 målt mot fasiten — 67 påstander + hver kommando kjørt, null feil; §1s stderr felte én defekt (`/tmp/po-sim-…` kan aldri vises, `TMPDIR` = `/var/folders/…/T/`). (10) **runbookens §6 — torsdagens pre-flight — tilføyd** (se P4.5). (11) **to en-linjes herdinger av onsdagen/torsdagen:** §5 manglet en **arbeidstre-sjekk ved X** (frys-gaten er commit-til-commit, prøven leser treet — en ucommittet `src/`-endring ville gjort X til en beskrivelse av noe som aldri ble prøvd, usynlig for BEGGE gate-kjøringene), og **§3s abortsti brukte relativ sti** til fasit-fila, altså feilet av nøyaktig den «feil katalog»-årsaken prosaen selv navngir (målt). Frysen er nå **tre** kommandoer. (12) **§0s tag-felt var SIRKULÆRT og §5s haker var tvillingen** — feltet kunne først fylles etter §5s siste punkt, mens punkt 6 krever at gaten er tom; hakene settes i fila, og punkt 7–10 skjer etter runbook-commiten `Y`. Begge utveier gjorde en av **torsdagens** to gater rød (ucommittet → §6 steg 1; commit etter taggen → §6 steg 2s identitet). Tag-raden fjernet, ellevte §5-punkt bekrefter taggen der den settes, hakene forlot fila. Se P4.5-amendementet. (13) **§5s punkt 5 var en gate som ikke kunne feile** — `<X>` **er** HEAD der, så `<X>..HEAD` er tom per konstruksjon (målt med en endret `src/`-fil i treet: fortsatt tom). Den målte altså ingen tilstand, mens økt 7s begrunnelse sa «en tilstand som ikke lenger finnes». Punktet beholdt (fjerning ville renummerert elleve punkter og brutt fem kryssreferanser på frys-eve), men gitt en **andre arm** mot fast hash `c255662` → ikke tomt (6 filer), som beviser at kommandoen kan diskriminere før punkt 9 hviler på at den er tom — uten den ville en ødelagt pathspec gitt grønt på feil grunnlag. Punkt 9s tilbakereferanse og §5s ingress rettet i samme pass. Se frys-blokkas økt-13-amendement. *(Raden sa «TOM — GÅ RETT PÅ ONSDAG»; det var sant da den ble skrevet man 10. og sluttet å være det samme uke. Samme drift-klasse som radene økt 4, 5 og 6 hver for seg fant.)* *(Amendert man 10. økt 6: tirsdagens ENESTE åpne punkt var commons-svaret på persona-formuleringen — «i kontorbygg» på et veglys-prosjekt, printet ordrett i Steg 7. Svaret kom **to døgn før fristen** og ble tatt samme dag: subtree pull av commons `73136eb` → «i tilsvarende anlegg», `marker` byte-uendret (`71b7b66`), fasiten re-målt (`d0e8bb0`). Abortstien I4 ble aldri utløst — men den ble verifisert KJØRBAR først: `git reset --hard` blokkeres av hooken, **`--keep` slipper**. Rød-settet etter pullen var NØYAKTIG én test, det pinnede transkriptet; goldenene (kriterium 8) uendret; `pyproject.toml`/`uv.lock` urørt. Denne raden instruerte om arbeid som var utført — samme drift-klasse som økt 4 felte.)* |
|
||||
| ons 12. | **FRYSESEKVENSEN, i denne rekkefølgen. P4 ER LUKKET (man 10., økt 5 — fersk-klon-målingen var det eneste som gjensto, og den er kjørt på `c9787cf`), så sekvensen starter på prøven, ikke på en udefinert re-måling:** **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: FYLL UT demo-runbooken** (`docs/plan/2026-08-12-demo-runbook.md` — den er SKREVET man 10. økt 7, `c7a57d8`; onsdag setter inn **to** målte felt (X + prøve-tidspunkt) og følger §5s **elleve** punkter i terminalen — **hakene settes ALDRI i fila**, og taggen bekreftes i punkt 11, ikke som et felt i §0; begge deler ville krevd en skriving etter taggen og gjort torsdagens identitets-anker rødt (tir 11. økt 12). Utfyllings-gaten: `grep -n '<<[A-ZÆØÅ-]*>>' docs/plan/2026-08-12-demo-runbook.md` → TOMT) → **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.** **FRYSEN ER TRE PUNKTER, ikke en holdning — se frys-blokka under tabellen** (rent tre → noter X → gaten; arbeidstre-sjekken tilføyd tir 11. økt 11, fordi gaten er commit-til-commit og prøven leser treet). Punkt 3 er **to armer** siden økt 13 — kjøringen mot `<X>` er tom per konstruksjon og beviser ingenting alene; diskriminerings-armen mot `c255662` er den som gjør den siste gate-kjøringen meningsfull. |
|
||||
| tor 13. | **DEMO = v1 vises** (runbooken i hånda). **FØRST runbookens §6 — pre-flighten, før noen er i rommet:** rent tre (`git status --short --untracked-files=no` → TOMT) · tag-ankeret `git describe --tags --exact-match HEAD` → **`v1.0.0`** (IDENTITET, ikke frys-gatens diff-med-unntak — de unntakene er onsdagens, og arvet hit ville de vært fail-open mot den parallelle `docs/`-sesjonen) · golden-diffen TOM. Feiler ankeret: les `git diff --stat v1.0.0..HEAD` UTEN unntak — kjøresti-filer = §3, kun `docs/` = upåvirket men vitende. Golden-diff ikke tom = §3, vis fasit-fila; aldri debugging på scenen. *(Tilføyd tir 11. — goldenen ble bygget for å fange regresjon onsdag→torsdag, men kommandoen sto som et show-element UNDER demoen; kjørt der oppdager den regresjonen samtidig med publikum.)* |
|
||||
| fre 14.–lør 15. | **P5**: README (O4) |
|
||||
| deretter | **P6 → P7 → P8 → P9**, ett punkt per økt; STATE.md peker på øverste åpne |
|
||||
|
|
@ -615,6 +615,27 @@ er dokumenter er sant i dag, men sto ingen steder som noe onsdagen SJEKKER. Tre
|
|||
commit av Z og FØR `git tag`, med `--amend` ved avvik. Samme klasse som gaten over: kommandoen var
|
||||
riktig, *tidspunktet* var det ikke.
|
||||
|
||||
**AMENDERT tir 11. økt 13 (målt): kjøringen ved X er tom PER KONSTRUKSJON, ikke bare foreldet.**
|
||||
Økt 7s formulering over — «måler en tilstand som ikke lenger finnes» — er for snill. Ved den
|
||||
første kjøringen **er** `<X>` HEAD (punkt 2 leste den nettopp, og ingenting er committet siden),
|
||||
så `<X>..HEAD` er tom uansett hva treet inneholder. **Målt** med en endret `src/`-fil liggende i
|
||||
treet: gaten sto fortsatt tom. Den måler altså ingen tilstand — den er en **lime-inn-sjekk** av
|
||||
hashen (`fatal: bad revision` hvis den er feil). Frysen selv bæres av punkt 1 (rent tre) og
|
||||
kjøringen etter Y og Z; de to er tilstrekkelige, og den første kjøringen er strukturelt overflødig.
|
||||
Å la en gate som bare kan bli grønn stå udeklarert er nøyaktig det repoet forbyr i testene sine
|
||||
(«en gate som bare kan bli grønn beviser ingenting»), og en operatør som ser den grønn ved X kan
|
||||
under tidspress lese den siste kjøringen som en gjentakelse.
|
||||
**Retteslen er ikke å fjerne den** — det ville renummerert §5s elleve punkter og brutt fem
|
||||
kryssreferanser på frys-eve — **men å gi den en arm den kan feile på.** Runbookens punkt 5 kjører
|
||||
nå gaten mot en fast historisk hash i tillegg:
|
||||
```
|
||||
git diff --stat c255662..HEAD -- . ':(exclude)docs/' ':(exclude)CHANGELOG.md' # → IKKE tomt (målt: 6 filer)
|
||||
```
|
||||
Den beviser at kommandoen *kan* diskriminere **før** den siste kjøringen hviler på at den er tom.
|
||||
Uten den ville en feilskrevet `':(exclude)…'` eller en quoting som ikke overlevde skallet
|
||||
(MULTIOS-lærdommen, 08-09) gitt en grønn gate på feil grunnlag — og et utestet tre tagget.
|
||||
`c255662` ligger fast bak både Y og Z, så armen forblir ikke-tom uansett hvor HEAD står onsdag.
|
||||
|
||||
**Gaten LISTER HVA SOM ER UNNTATT, ikke hva den vokter — den feiler LUKKET.** Første form listet
|
||||
kjørestien positivt (`src/ tests/ shared/ pyproject.toml uv.lock`), og en slik gate er blind for alt
|
||||
den ikke rakk å regne opp: **målt på `1522e2a^..1522e2a` rapporterer inklusjonsformen to filer og
|
||||
|
|
|
|||
|
|
@ -214,8 +214,11 @@ og feilsøking på scenen koster mer enn fila.
|
|||
fra punkt 7 og ut skjer *etter* den. Et hake satt der havner enten ucommittet i treet — målt:
|
||||
`git status --short --untracked-files=no` svarer da ` M docs/plan/2026-08-12-demo-runbook.md`, så
|
||||
torsdagens §6 steg 1 blir rød — eller i en commit **etter** taggen, som gjør §6 steg 2s identitet
|
||||
rød. Samme motsigelse som §0s manglende tag-rad, samme to gater. **Fila skrives ÉN gang onsdag
|
||||
(punkt 6) og røres ikke etterpå.** Bruk papir, en annen skjerm eller hukommelsen.
|
||||
rød. Samme motsigelse som §0s manglende tag-rad, samme to gater. **Fila skrives i punkt 4 og punkt 6
|
||||
— begge FØR runbook-commiten `Y` — og røres ikke etter den.** Det er *etterpå* som er den bærende
|
||||
egenskapen, ikke antallet skrivinger: en hash notert i punkt 4 og først skrevet ned tre steg senere
|
||||
er en hash båret i hodet gjennom tre gate-kjøringer. Bruk papir, en annen skjerm eller hukommelsen
|
||||
til **hakene** — de er det eneste som ellers ville havnet i fila etter `Y`.
|
||||
|
||||
- [ ] Generalprøve ×2 grønn — golden-diff tom begge ganger
|
||||
- [ ] K1: `grep -oE "^ *Steg [1-8]" <stdout> | tr -d ' ' | sort -u | wc -l` → **8**
|
||||
|
|
@ -231,7 +234,25 @@ rød. Samme motsigelse som §0s manglende tag-rad, samme to gater. **Fila skrive
|
|||
og gå videre: den commiten flytter HEAD, så **X** ville pekt på et tre prøven aldri så. Ved X
|
||||
er ingenting redigert ennå — runbooken (Y) og CHANGELOG (Z) skrives *etter* dette punktet.
|
||||
- [ ] **X** notert (`git rev-parse HEAD`) og skrevet inn i tabellen i §0
|
||||
- [ ] Frys-gaten grønn: `git diff --stat <X>..HEAD -- . ':(exclude)docs/' ':(exclude)CHANGELOG.md'` → TOMT
|
||||
- [ ] **Frys-gaten prøvekjørt — BEGGE armer.**
|
||||
|
||||
```
|
||||
git diff --stat <X>..HEAD -- . ':(exclude)docs/' ':(exclude)CHANGELOG.md' # → TOMT
|
||||
git diff --stat c255662..HEAD -- . ':(exclude)docs/' ':(exclude)CHANGELOG.md' # → IKKE tomt
|
||||
```
|
||||
|
||||
Den første armen er **tom, og kan ikke være annet**: `<X>` **er** HEAD her — punkt 4 leste den
|
||||
nettopp, og ingenting er committet siden — så `<X>..HEAD` er tom uansett hva treet inneholder.
|
||||
Målt med en endret `src/`-fil liggende i treet: gaten sto fortsatt tom. Den er altså en
|
||||
**lime-inn-sjekk** av hashen (`fatal: bad revision` hvis du bommet), ikke en frys-sjekk.
|
||||
Frysen selv måles av punkt 3 (rent tre) og punkt 9 (etter Y og Z).
|
||||
**Den andre armen er den som gir punkt 9 mening** — den beviser at kommandoen *kan* bli
|
||||
ikke-tom, før punkt 9 hviler på at den er tom. Målt: **6 filer**. `c255662` ligger fast bak
|
||||
både Y og Z, så den forblir ikke-tom uansett hvor HEAD står i morgen.
|
||||
**Er den andre armen også tom, er det pathspec-en som er ødelagt** — feilskrevet
|
||||
`':(exclude)…'`, eller quoting som ikke overlevde skallet (repoets MULTIOS-lærdom: en kommando
|
||||
som ser riktig ut kan lyve). Punkt 9 ville da vært grønn på feil grunnlag, og du ville tagget
|
||||
et utestet tre. **Ikke gå videre før den andre armen er ikke-tom.**
|
||||
- [ ] Runbooken fylt ut (§0s to felt) + `grep -n '<<[A-ZÆØÅ-]*>>' docs/plan/2026-08-12-demo-runbook.md`
|
||||
→ TOMT — **og så `git commit`. Den commiten ER `Y`.** Uten den er runbooken en ucommittet
|
||||
endring resten av sekvensen ikke kan se: frys-gaten (punkt 5 og 9) ekskluderer `docs/`, så den
|
||||
|
|
@ -248,9 +269,11 @@ rød. Samme motsigelse som §0s manglende tag-rad, samme to gater. **Fila skrive
|
|||
du gårsdagens dato inn i commiten som faktisk tagges. Avvik = `git commit --amend` på
|
||||
overskriften, les på nytt, ikke tag før de er like. *(Sklir HELE sekvensen til torsdag morgen,
|
||||
er alt i orden — Y og Z er da samme dag. Det er bare midnatt MELLOM dem som brekker enigheten.)*
|
||||
- [ ] **Frys-gaten kjøres ÉN GANG TIL, rett før taggen** — samme kommando som over. **Punkt 5** målte
|
||||
en tilstand som ikke lenger finnes: runbook-commiten (Y) og CHANGELOG-stempelet (Z) kom etterpå.
|
||||
Tom her = **det taggede treet er beviselig det prøvde treet**. Ikke tomt = IKKE tag.
|
||||
- [ ] **Frys-gaten kjøres ÉN GANG TIL, rett før taggen** — samme kommando som punkt 5s første arm.
|
||||
**Dette er den første kjøringen som kan si noe.** Punkt 5s arm mot `<X>` var tom *per
|
||||
konstruksjon* (X var HEAD da); her har runbook-commiten (Y) og CHANGELOG-stempelet (Z) flyttet
|
||||
HEAD forbi X, så en `src/`-endring imellom ville dukket opp. Tom her = **det taggede treet er
|
||||
beviselig det prøvde treet**. Ikke tomt = IKKE tag.
|
||||
- [ ] `git tag v1.0.0` + `git push origin v1.0.0` (**`origin` alene** — `open/` er P5-vinduet)
|
||||
- [ ] **Taggen bekreftet der den ble satt** — `git tag -l v1.0.0` → `v1.0.0` · `git ls-remote --tags
|
||||
origin v1.0.0` → **én linje** · `git describe --tags --exact-match HEAD` → `v1.0.0`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue