docs(plan): revisjon etter kvalitetsrevisjonen 04.09

Operatoerbeslutning (b): revider planen foer M1. Ordre
20260904T135502Z-687411640-from-.claude, ti punkter, alle utfoert i
plan.md og brief.md under .claude/projects/ (local-only, gitignored) --
denne seksjonen i revisjonsrapporten er den sporede baereren.

Gater ved levering, kjoert 2026-09-04:
- plan-validator.mjs --strict: valid, 56 steg, 0 errors/warnings
- brief-validator.mjs: valid, 0 errors/warnings
- oekt 2s gate-script (33 grep-kriterier): PASS=33 FAIL=0
- grep -c 'Pass 2' plan.md: 6
- de tolv "Foreldet tekst"-greppene: PASS=12 FAIL=0

Ingen kode skrevet, ingen M1-steg utfoert. 56 steg inn, 56 steg ut.

Tre avvik fra ordreteksten, begrunnet i rapporten: --check i 5 av 6
Cowork-steg (steg 16 er M1, sak_status.py finnes foerst i steg 17);
det tolvte scriptet i avviksnoten er jobbsok_tools.py, ikke
kandidat_schema.py (som allerede sto der); Pass 2-seksjonen staar sist
i fila, der trekplan.md anviser, med peker fra planhodet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-04 17:07:11 +02:00
commit 2076f617e0

View file

@ -364,3 +364,72 @@ Alle tall over er kjørt 2026-09-04. Kommandoene som ikke står inline:
Ikke målt: prosentandel kontekst (vindu ukjent), kostnad for standardmodus
`trekbrief` (kontrafaktisk), og hva Haiku-tokenene i websøk konkret ble brukt til.
## Revisjonen utført (2026-09-04, økt 4)
Operatøren svarte **(b)**: revider planen først. Ordre `20260904T135502Z-687411640-from-.claude`
navnga ti punkter; alle ti er utført i `plan.md` og `brief.md`
(`.claude/projects/2026-09-03-jobbsok-plugin-build/`). Begge filene er local-only —
`.gitignore:19` (`.claude/projects/`) — så denne seksjonen er den sporede bæreren av
endringen. Ingen kode er skrevet, ingen M1-steg er utført. **56 steg inn, 56 steg ut.**
| # | Punkt | Hva som faktisk står der nå |
|---|-------|-----------------------------|
| 1 | Steg 1, proben | Test-pluginen er navngitt `jobbsok-probe` (fire filer under `tests/fixtures/cowork-probe/`: manifest, `skills/probe-versjon/SKILL.md`, `.mcp.json` med `probe-tools`, `probe_tools.py`); steget sier eksplisitt at det ikke kan fullføres av en utfører-økt; de fire spørsmålene er en tabell operatøren besvarer, forhåndsutfylt `ubesvart`; Verify er `test "$(grep -cE …)" = 4`, som feiler på et ubesvart punkt i stedet for å telle og se en annen vei |
| 2 | Steg 13, `BUILD_STAMP` | `.gitignore` er nå leveranse: i `expected_paths`, i `must_contain` og i testen (`git check-ignore BUILD_STAMP`). Testtallet 6 → 7 |
| 3 | Steg 20/21, `--oppdater` | «The script writes nothing: it is a reader» er borte; `--oppdater` er en navngitt modus med egen test (kun de fire cachede nøklene endres, resten byte-identisk). Steg 21s skill-kall har test og `must_contain`. Testtallet 7 → 8 |
| 4 | Steg 23, `dagens`-ekkoet | Skillen ekkoer `BUILD_STAMP` + `plugin.json`-versjon på forespørsel (ikke i den gyldne dagsvisningen, som ellers ville brutt per commit). Testtallet 5 → 6 |
| 5 | Steg 26, benign-korpus | Korpuset er de åtte annonsene i `tests/fixtures/listings/` fra steg 7 (finnes fra M1, nitten steg før), ikke `adv-07-benign.json` fra steg 29. Taket er **1 av 8 (12,5 %)**, uttalt som snubletråd og ikke som måling; overskridelse eskalerer, taket heves aldri for å passe resultatet |
| 6 | Steg 31, connector-hook-proben | Femte punkt `- Connector-hook:` i probefila; Verify feiler mens den står `ubesvart`; `docs/cowork-probe.md` i `expected_paths` og i sesjon 8s gjerde |
| 7 | `--check` i Cowork-stegene | 5 av 6, ikke 6 av 6 — se avvik A |
| 8 | Pass 2 + graden | `## Adversarial Pass 2 (v5.1.1 high-effort)` med «unavailable, skipped» — se avvik C. Graden er merket **egenvurdert** i planhodet, med REPLAN 65.8 navngitt som eneste anmelder-verdict |
| 9 | Revisions rad 7 | «Decided YES by the operator 2026-09-04»; avviksnoten er nå målt, ikke påstått — se avvik B |
| 10 | Foreldet tekst | `brief.md` 193–194 og 245, `plan.md` 103. Ingen av dem sier lenger `zip -r` eller «the version-echo skill» som instruks. `interview_turns` 9 → 5 (målt: 5 runder / 12 spørsmål) |
### Gater ved levering (kjørt 2026-09-04, økt 4)
| Gate | Resultat |
|------|----------|
| `plan-validator.mjs --strict --json plan.md` | `valid: true`, `steps: 56`, 0 errors, 0 warnings |
| `brief-validator.mjs --json brief.md` | `valid: true`, 0 errors, 0 warnings |
| Økt 2s gate-script (33 grep-kriterier fra brief.md) | PASS=33 FAIL=0 |
| `grep -c 'Pass 2' plan.md` | 6 (≥ 1) |
| De tolv «Foreldet tekst»-greppene | PASS=12 FAIL=0 |
Gate-scriptene er gjenskapt og ligger i øktens scratchpad, ikke i repoet. De tolv greppene
måler **levende instruksjonstekst**: `## Revisions`-loggen og de to stedene som siterer
briefens frase for å ta avstand fra den er utelatt ved konstruksjon, ikke ved skjønn.
Begge de to spørringene er validert mot et kjent-positivt tilfelle (1 treff før filtrering,
0 etter) — et «fant ingenting» som ikke er verifisert, er ikke en måling.
### Tre avvik fra ordreteksten, uttalt
**A. Punkt 7 er utført som 5 av 6, ikke 6 av 6.** Ordren sier «alle seks
`Verifiser i Cowork`-steg kjører `--check`». Steg 16 er M1s gate, og
`scripts/sak_status.py` opprettes først i steg 17, i M2. Å skrive `--check` inn i steg 16
ville lagt en kommando mot et script som ikke finnes. Steg 25, 37, 42, 47 og 56 kjører den
nå — i Verify og i stegteksten. Unntaket er skrevet inn i steg 16 med begrunnelsen, og
Revisions rad 15 sier nå rett ut at påstanden «every Cowork step now runs `--check`» var
usann da den ble skrevet.
**B. Punkt 9s tolvte script er `jobbsok_tools.py`, ikke `kandidat_schema.py`.**
`kandidat_schema.py` sto allerede først i avviksnotens liste over elleve. Målt på nytt her:
`grep -o 'scripts/[A-Za-z0-9_./-]*' plan.md | sed 's/[.,)]*$//' | sort -u` gir 25 oppføringer,
hvorav to er de bare katalogstiene `scripts/` og `scripts/jobbsok_lib/` — altså **23 filer**.
Det forklarer både rapportens 23 (filer) og PM-ens 25 (oppføringer): begge tallene er riktige
for hver sin nevner. Fordelingen: 3 i briefens §4, **12** kapabilitets-scripts (den manglende
er `jobbsok_tools.py`), 4 moduler i `jobbsok_lib/`, **4** shell-hjelpere (noten sa «two»).
Noten er skrevet om med måletallene og kommandoen som ga dem.
**C. Pass 2-seksjonen står sist i fila, ikke i planhodet.** Ordren sier «planhodet … slik
`commands/trekplan.md` krever»; kommandodefinisjonen sier «Append the section header to
plan.md **before the trailing JSON block**». Planen har ingen avsluttende JSON-blokk, så
seksjonen er lagt til slutt, der den anvisningen peker. Planhodet har fått en peker til den
i samme setning som merker graden egenvurdert, så begge lesningene av ordren er dekket.
### Ett bifunn, ikke utført
Gate-scriptet fra økt 2 lå i en scratchpad og var nesten borte; det er gjenskapt herfra, men
ligger igjen i en scratchpad. De to scriptene (33 gater, 12 grep) er den eneste maskinelle
sjekken på at denne revisjonen holder over tid. Å legge dem under `docs/` eller `scripts/`
er ikke en del av ordren og er ikke gjort — det er et spørsmål til operatøren.