feat(visibility): en uforankret kjoering sier det - felt + linje (ORDRE 20260821T092039Z)
Maalt oekt 48: en bundle-kjoering uten cost-baseline.json gikk rc 0 uten et ord, og `grep baseline provenance.py outbox.py` ga null treff - hverken stdout, stempelet eller utboksen bar at validatorens steg 0 ble hoppet over. To tenner, begge smaa, og begge fra kjoeringens ENE oppslag av baselinen (koe-(p)): 1. ProvenanceStamp.cost_baseline_anchored - PAAKREVD bool uten default. Begge defaults lyver: True lar en glemsom konstruktoer paastaa en ankring som ikke skjedde, False underrapporterer en ekte. Naar utboksen gratis (write_proposal dumper hele stempelet). DryRunReport baerer det samme - en dry-run stopper foer noe stempel finnes. 2. run.cost_baseline_notice(anchored) - ENESTE renderer, tar den alt opploeste booleanen, returnerer None naar kjoeringen ER forankret (omisjon, aldri en tom rad). Printes paa tre flater: --live-dry-run, full enkeltkjoering, og per prosjekt i portefoeljemodus. IKKE foldet inn i mandate.announce, og det er en MAALING: den fyrer kun med --mandate, saa nettopp de bare bundle-dry-runsene defekten ble maalt paa ville fortsatt sagt ingenting - og den renderes foer run_project, altsaa foer noen har opploest baselinen. Ankeringen forblir VALGFRI (en pre-amendment-base kjoerer uendret) - dette er synlighet, ikke en ny nekt. Golden-transkriptet er byte-uendret: demoen kjoerer en base som HAR fila. Load-bearing MAALT (tests/test_baseline_visibility_loadbearing.py, 11 tester), seks mutasjoner alle roede mot HELE suiten + groenn kontroll 885/5: konstant stamp-wiring (3 roede) - konstant dry-run-wiring (1) - detach dry-run-printen (1) - renderer returnerer alltid linja (2, inkl. den forankrede kontrollen) - detach full-run-printen (1) - detach portefoelje-printen (1). Portefoelje-armen er DEFENSIV og uttalt (ingen referanse-prosjekt setter bundle_dir; budget_stop-presedensen, crafted PortfolioResult). Det paakrevde feltet tvang fem eksisterende test-konstruktoerer til aa ta stilling. Dokumentene som beskrev den gamle stillheten er rettet: kunnskapsbase-for-en-kjoring.md S4.1 (tabellraden re-maalt live), S6 og S7; README «How it is set up»; CLAUDE.md S4.0-raden. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DA6HAF8HFQxGYC2h6ypRQe
This commit is contained in:
parent
0bc8dae5c0
commit
156312c32e
11 changed files with 481 additions and 17 deletions
|
|
@ -297,17 +297,31 @@ Men fila er **valgfri** på bundle-stien, og fraværet er stille. Målt 2026-08-
|
|||
|---|---|---|---|
|
||||
| intakt | `LIVE-DRY-RUN OK` | 0 | — |
|
||||
| uten `validator-input.json` | nektet | 1 | `live-dry-run refused: IR projection not found in bundle: 'validator-input.json'` |
|
||||
| **uten `cost-baseline.json`** | **`LIVE-DRY-RUN OK`** | **0** | **ingen** |
|
||||
| **uten `cost-baseline.json`** | **`LIVE-DRY-RUN OK`** | **0** | **`Cost baseline: NONE in the bundle — this run is un-anchored: …`** |
|
||||
| korrupt `cost-baseline.json` (`quantity: -1`, `unit_cost` mangler) | nektet | 1 | `live-dry-run refused: 2 validation errors for CostBaseline …` |
|
||||
|
||||
Kjeden som gir det utfallet: `okf.load_optional_cost_baseline` returnerer `None` når fila mangler
|
||||
(VERIFISERT: `okf.py:323-335`), `run.py:516` tar imot `None`, og `validate_proposal` hopper over
|
||||
steg 0 når baselinen er `None` (VERIFISERT: `validator.py:213`). Det er med vilje — en base skrevet
|
||||
før fila fantes skal fortsatt kjøre byte-identisk (VERIFISERT: `CLAUDE.md`, S4.0-raden). Men
|
||||
ingenting i kjørestien *sier* at det skjedde: verken stdout, `provenance` eller utboksen bærer et
|
||||
felt for forankret/uforankret (VERIFISERT: `grep baseline` over `provenance.py` og `outbox.py`
|
||||
gir null treff). Den eneste flaten som skriver det høyt er demoen, som printer
|
||||
«KUNNSKAPSBASE: … — uten kostbaseline» når fila mangler (VERIFISERT: `simulation.py:791-802`).
|
||||
før fila fantes skal fortsatt kjøre byte-identisk (VERIFISERT: `CLAUDE.md`, S4.0-raden).
|
||||
|
||||
**Fraværet er ikke lenger stille (2026-08-21).** Kjøringen sier det nå på to måter, og begge
|
||||
stammer fra den *samme* oppslagsverdien inne i kjøringen — ikke fra en ny lesing av basen:
|
||||
|
||||
- **Et strukturert felt:** `provenance.cost_baseline_anchored` er `true`/`false`, og følger med
|
||||
inn i utboksens `{run_id}-proposal.json`, som dumper hele stempelet (VERIFISERT:
|
||||
`tests/test_baseline_visibility_loadbearing.py`, armene (a) og (d)).
|
||||
- **Én linje på stdout:** `Cost baseline: NONE in the bundle — this run is un-anchored: …`,
|
||||
skrevet av tørrkjøringen, av den fulle enkeltkjøringen og per prosjekt i porteføljemodus. Er
|
||||
basen forankret, skrives **ingen linje i det hele tatt** — en linje for noe kjøringen ikke har
|
||||
utelates, samme regel som resten av kunngjøringen følger (VERIFISERT: kjørt 2026-08-21 mot to
|
||||
kopier av veglys-basen; intakt kopi er byte-uendret, kopi uten fila bærer linja).
|
||||
|
||||
Ankeringen er fortsatt **valgfri** — en base skrevet før fila fantes kjører uendret. Dette er
|
||||
synlighet, ikke en ny nekt. Demoen har sin egen, norske formulering
|
||||
(«KUNNSKAPSBASE: … — uten kostbaseline», `simulation.py:791-802`): to formuleringer med vilje, fordi
|
||||
demoen beskriver hva *basen erklærer* før kjøringen, mens linja over rapporterer hva *kjøringen
|
||||
gjorde*.
|
||||
|
||||
**Konsekvensen for planleggingen:** spørsmål 2 i [§3](#3-avgjørelsesdelen-spørsmålene-du-stiller-fagpersonen)
|
||||
er det eneste spørsmålet der et «vet ikke» ikke stopper noe — og derfor det eneste der svaret må
|
||||
|
|
@ -524,12 +538,13 @@ så dokumentet ikke lover mer enn det som kan leveres.
|
|||
tilnærming i bestillingen (VERIFISERT: `run.py:634-638`; én `expel_query` for hele
|
||||
kjøringen). En bestilling med to tilnærminger mot to ulike kostlinjer får tidligere dommer
|
||||
hentet for den kandidaten `validator-input.json` beskriver.
|
||||
- **Det finnes ingen «er basen klar?»-kommando.** `--live-dry-run` beviser at basen *åpner*;
|
||||
den sier ingenting om at `cost-baseline.json` mangler, og ingenting om brutte lenker.
|
||||
`preflight` sjekker Azure-konfigurasjon, ikke basen (VERIFISERT: `preflight.py` docstring).
|
||||
- **En uforankret kjøring etterlater ingen spor.** Verken stdout, `provenance` eller utboksen
|
||||
sier om validatoren hadde en kostbaseline (VERIFISERT: §4.1). Dette dokumentet er i dag den
|
||||
eneste beskrivelsen av den egenskapen utenfor koden og `CLAUDE.md`.
|
||||
- **Det finnes ingen «er basen klar?»-kommando.** `--live-dry-run` beviser at basen *åpner*, og
|
||||
sier nå fra hvis `cost-baseline.json` mangler — men ingenting om brutte lenker, og ingenting om
|
||||
innholdets kvalitet. `preflight` sjekker Azure-konfigurasjon, ikke basen (VERIFISERT:
|
||||
`preflight.py` docstring).
|
||||
- **Uforankret kjøring er synlig, men ikke summert.** Feltet og linja finnes per kjøring
|
||||
([§4.1](#41-den-skarpeste-mangelen-cost-baselinejson)); det finnes ingen rapport som teller opp
|
||||
hvor mange kjøringer i et porteføljepass som gikk uforankret.
|
||||
- **Eksempelbasene er ikke ekte prosjekter.** Prosjektlaget er fiktivt; realiseringsgraden i alle
|
||||
tre frø-dommene er lånt fra utenlandsk programlitteratur fordi ingen norsk ex-post-måling
|
||||
finnes (VERIFISERT: `provenance`-feltet i de tre dom-filene).
|
||||
|
|
@ -542,12 +557,17 @@ så dokumentet ikke lover mer enn det som kan leveres.
|
|||
- **1–2 uker.** Oppskriften sier det, og ingenting i dette dokumentet korter det ned. Det som
|
||||
står her er hva ukene skal brukes til.
|
||||
|
||||
## 7. Hvis utforskningen skulle konkludere med kode
|
||||
## 7. Punktet der utforskningen konkluderte med kode
|
||||
|
||||
Den gjør det på ett punkt, og det er uttalt her i stedet for bygget: en kjøring som går uten
|
||||
`cost-baseline.json` burde si det — i kunngjøringen, i `provenance`, eller begge. Demoen gjør det
|
||||
allerede; kjørestien gjør det ikke. Det er en beslutning for eieren av repoet, ikke for dette
|
||||
dokumentet.
|
||||
Dokumentet pekte opprinnelig på ett punkt der det ikke holdt å beskrive: en kjøring som går uten
|
||||
`cost-baseline.json` burde si det — i kunngjøringen, i `provenance`, eller begge. Demoen gjorde det
|
||||
allerede; kjørestien gjorde det ikke.
|
||||
|
||||
**Det er nå bygget (2026-08-21), med begge deler:** et strukturert `cost_baseline_anchored`-felt på
|
||||
provenance-stempelet, og én linje på stdout når kjøringen er uforankret — se
|
||||
[§4.1](#41-den-skarpeste-mangelen-cost-baselinejson). Ankeringen forble valgfri, og
|
||||
golden-transkriptet er byte-uendret, fordi demoen kjører en base som *har* fila og linja derfor
|
||||
ikke fyrer der.
|
||||
|
||||
## 8. Verifiseringslogg
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue