docs(P4.5): torsdagens anker var arvet, og arvet gjorde det fail-open
§6 landet i 859be2a med frys-gatens to unntak (`docs/`, `CHANGELOG.md`)
kopiert inn i tag-ankeret. Unntakene er ikke generelle: de er begrunnet i
at ONSDAGEN skriver nøyaktig dem. Torsdag skriver ingenting, så riktig
forventning er IDENTITET — og arvet dit gjorde `docs/`-unntaket gaten
blind for den ene skriveren vi vet er aktiv i repoet, den parallelle
sesjonen som eier docs/presentasjon-portfolio-optimiser.html.
Samme klasse som da frys-gaten selv ble snudd fra positiv liste til
eksklusjonsform: en gate arvet uten at begrunnelsen ble re-utledet.
Ankeret er nå `git describe --tags --exact-match HEAD` -> `v1.0.0`.
MÅLT fail-closed begge veier: `no tag exactly matches '<sha>'` (exit 128)
når HEAD ikke er tagget, `bad revision` når taggen mangler. Ingen av dem
kan forveksles med grønt.
Feiler ankeret er det en BESKJED, ikke en abort: `git diff --stat
v1.0.0..HEAD` UTEN unntak skiller kjøresti-endring (-> §3) fra ren
`docs/` (demoen upåvirket, men da vitende).
Steg 1 var også et øyeblikksbilde, ikke en regel: «kun den fremmede
HTML-fila» slutter å stemme i det den sesjonen committer eller legger
igjen en fil til, og en gate som roper på noe operatøren ikke eier lærer
ham å ignorere gaten. Nå `git status --short --untracked-files=no`
-> TOMT (målt).
Lagt til én setning om at en `Resolved`/`Audited`/`Installed`-linje fra
uv er miljø-sjekken, ikke en feil — målt at `uv run` er STILLE på varmt
miljø (stderr = de fire linjene §1 beskriver), men en første kjøring for
dagen kan si fra.
Målt: utfyllings-gaten uendret på 3 · 810 passed / 4 skipped · ruff +
format + mypy rene · kalendertabellens pipe-telling intakt.
Planens to beskrivelser av gaten rettet i samme pass (P4.5-blokka +
tor-13-raden) — de beskrev et design som ikke lenger står.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0143ESVxVd5srp9PGshHCdi4
This commit is contained in:
parent
859be2acfc
commit
8e7fa54267
2 changed files with 43 additions and 18 deletions
|
|
@ -231,31 +231,48 @@ seg over natta (egnethetsreview-planen pkt. 3). Kommandoen som gjør det står a
|
|||
går på — ikke som et show underveis.** Samme kommando, annet tidspunkt, helt annen jobb: kjørt på
|
||||
scenen oppdager den regresjonen samtidig med publikum.
|
||||
|
||||
**1 — Riktig katalog, rent tre**
|
||||
**1 — Rent tre**
|
||||
|
||||
```
|
||||
git status --short
|
||||
git status --short --untracked-files=no
|
||||
```
|
||||
|
||||
Forventet: **kun** `?? docs/presentasjon-portfolio-optimiser.html` (den fila eies av en annen sesjon
|
||||
og er utracket med vilje). Flere linjer = noe har flyttet seg; les hva det er før du gjør noe annet.
|
||||
Forventet: **TOMT** (målt). Utrackede filer holdes bevisst utenfor: `docs/presentasjon-portfolio-optimiser.html`
|
||||
eies av en annen sesjon, og en gate som roper på den lærer deg å ignorere gaten. Kommer det linjer
|
||||
her, er det **sporet** innhold som har endret seg — les hva før du gjør noe annet.
|
||||
|
||||
**2 — Treet du kjører ER treet som ble tagget**
|
||||
**2 — Treet du kjører ER det taggede**
|
||||
|
||||
```
|
||||
git diff --stat v1.0.0..HEAD -- . ':(exclude)docs/' ':(exclude)CHANGELOG.md'
|
||||
git describe --tags --exact-match HEAD
|
||||
```
|
||||
|
||||
Forventet: **TOMT**. Samme gate som onsdag, nå med taggen som anker i stedet for X.
|
||||
**`fatal: bad revision` (exit 128) er IKKE en grønn gate** — det betyr at `v1.0.0` ikke finnes her,
|
||||
altså at onsdagens siste steg ikke landet. Målt: en manglende tag feiler høylytt, den returnerer
|
||||
ikke tomt. Unntakene er de samme to som onsdag, av samme grunn: `docs/` og `CHANGELOG.md` er det
|
||||
eneste som lovlig kan ha landet etter taggen.
|
||||
Forventet: **`v1.0.0`**. Torsdag skriver ingenting, så forventningen er **IDENTITET** — ikke
|
||||
frys-gatens «tom modulo `docs/` og `CHANGELOG.md`». De to unntakene var begrunnet i at *onsdagen*
|
||||
skriver nøyaktig dem; arvet hit ville de gjort gaten blind for den ene skriveren vi vet er aktiv i
|
||||
repoet (den parallelle sesjonens `docs/`-fil).
|
||||
|
||||
**Feiler den, er det en BESKJED — ikke nødvendigvis en abort.** Målt: uten tag på HEAD sier git
|
||||
`fatal: no tag exactly matches '<sha>'` (exit 128); finnes ikke taggen i det hele tatt, sier den
|
||||
`fatal: bad revision` — da landet ikke onsdagens siste steg. Begge feiler høylytt; ingen av dem kan
|
||||
forveksles med grønt. Les så hva som faktisk landet:
|
||||
|
||||
```
|
||||
git diff --stat v1.0.0..HEAD
|
||||
```
|
||||
|
||||
**Ingen unntak her, med vilje.** Rører det `src/`, `tests/`, `shared/`, `pyproject.toml` eller
|
||||
`uv.lock` → **ikke kjør demoen fra dette treet**, gå til §3. Er det bare `docs/`, er demoen
|
||||
upåvirket — men da *vet* du det, i stedet for å ha hatt en gate som tidde.
|
||||
|
||||
**3 — Outputen er fortsatt den frosne**
|
||||
|
||||
Kjør blokka i §1 («Hvis du vil vise at outputen er den frosne»). Forventet: `diff` **TOMT**.
|
||||
|
||||
*(Skriver `uv` en `Resolved`/`Audited`/`Installed`-linje før programmet starter, er det miljø-sjekken
|
||||
sin og ikke en feil. Målt på varmt miljø er `uv run` stille — stderr er de fire linjene §1 beskriver
|
||||
— men en første kjøring for dagen kan si fra. Det er ingen grunn til abort.)*
|
||||
|
||||
**Er 3 ikke tom: ikke debug — gå til §3.** Forskjellen er at du vet det på forhånd, så «dette er den
|
||||
frosne kjøringen, sjekket inn som fasit» blir en planlagt setning i stedet for en redning.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue