feat(p21): the PROJECT carries the price, so a run against a road normal can be anchored
Four paid stress rounds ran entirely UN-ANCHORED, all of them, because the one file loader reads cost-baseline.json out of the BUNDLE and no vegnormal ships one: N100, N200, N500 and R761 are knowledge, and knowledge carries requirements, never amounts. The validator's stage 0 -- the one stage that tells an invented cost line from a line this project actually buys -- was skipped in every single run, so "validated" could not mean what it says. P20 G1/G2 measured real R761 process numbers (12.11 three times on Soraasen, 1.1.1 on Lindaas) validating with amounts nobody had anywhere. --cost-baseline FILE is PM decision (e), taken over the three alternatives P20 wrote down. A LOADED object, never a path (prepass_payload's rule): the CLI owns the file and loads it ONCE, so the notice, the stamp and every base of an --across-bundle pass all descend from one read. ONE parse, two doors -- load_cost_baseline delegates to load_cost_baseline_file -- while safe_resolve stays on the bundle door alone, because a project's own schedule is legitimately outside every base. No tolerant twin: this path exists only because an operator NAMED a file. DEL B: five anchored context sets, a1-a3 with their line and a4 with none, so stage 0 is what catches the falsification arm. THE ORDER'S OWN ARM (h) WAS FELLED BY MEASUREMENT: "no baseline code is a requirement number the base declares" is measured 0 of 4 on the project-coded sets and 5 of 5 on kontrakt-sorasen -- which is what R761 Prosesskoden IS, a bill of quantities priced BY process code. The complement keeps both, and the order's own mutation still bites. DEL B3: the judge reports anchored (off the run's own stamp), priced per row, and WHICH falsifier caught the falsification arm. Load-bearing MEASURED, five mutations all red against the WHOLE suite, green control 1850/5 (from 1809/5, superset, 0 removed), golden byte-unchanged: A3(i) the flag is read but the baseline is unused (3 red) . A3(ii) only the first base gets it (1) . A3(iii) report_forbidden drops it (1) . B2(i) a4 gets a line (1, arm (g) alone) . B2(ii) a code swapped to 12.11 (2, arms (f) and (h)). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
587480f050
commit
7b4f85d77c
20 changed files with 1259 additions and 15 deletions
70
CLAUDE.md
70
CLAUDE.md
|
|
@ -2848,6 +2848,76 @@ Python ≥3.10. MAF (`agent-framework-core` 1.16.0, `-orchestrations` 1.1.1 —
|
|||
en base som ikke lar seg løse faller tilbake til katalognavnet — `dimension_label`-presedensen
|
||||
ordrett: å annonsere skal ALDRI endre hvilken feil en operatør ser. Load-bearing MÅLT
|
||||
(`tests/test_parse_error_feedback_loadbearing.py`, 7 armer).
|
||||
- **PRISEN HØRER TIL PROSJEKTET, ikke til kunnskapsbasen — og ordrens egen B2-regel ble FELT av
|
||||
måling (P21 DEL A+B, 15.09):** fire betalte runder (P16/P18/P19/P17b/P20) kjørte **UFORANKRET,
|
||||
alle sammen**, fordi den ene fil-lasteren leser `cost-baseline.json` ut av BUNDLE-katalogen og
|
||||
ingen vegnormal bærer et prisskjema: N100/N200/N500/R761 er KUNNSKAP, og kunnskap bærer krav,
|
||||
aldri beløp. Validatorens **stadium 0** — det ENE stadiet som skiller en oppdiktet kostlinje fra
|
||||
en linje dette prosjektet faktisk kjøper — ble derfor hoppet over i hver eneste av dem, og
|
||||
`validated` kunne ikke bety det det sier: P20 G1/G2 målte EKTE R761-prosessnumre (`12.11` ×3 på
|
||||
sorasen, `1.1.1` på lindaas) som validerte med beløp ingen hadde noe sted.
|
||||
`--cost-baseline FILE` er PM-beslutning **(e)**, valgt over tre alternativer P20 skrev ned:
|
||||
(a) nekt enhver kravformet kode uforankret ville gjort det ENE realistiske kontekstsettet
|
||||
umålbart, (b) `--require-cost-baseline` som default ville etterlatt ingen stresstest, og
|
||||
(c) K2s prisskjema er nektet av MAJOR-4s egen uttalte grense. **Et LASTET objekt, aldri en sti**
|
||||
(`prepass_payload`-regelen, og `mandate=`/`dimension=` før den): CLI-en eier fila, biblioteks-
|
||||
sømmen tar det validerte artefaktet — lastet ÉN gang, så notisen, stempelet og hver base i et
|
||||
`--across-bundle`-pass stammer fra én lesing (kø-(p)). **ÉN parse, TO dører:**
|
||||
`okf.load_cost_baseline_file` er hvor bytene tolkes og `load_cost_baseline` delegerer til den;
|
||||
det som skiller er OPPLØSNINGEN — `safe_resolve` blir værende på bundle-døra ALENE, fordi et
|
||||
prosjekts eget prisskjema legitimt ligger utenfor hver base. **Ingen tolerant tvilling**, og det
|
||||
er motsatt av `load_optional_cost_baseline`: bundle-fila er fraværende som default (en base
|
||||
skrevet før amendmentet er legitimt uforankret), mens denne stien finnes KUN fordi en operatør
|
||||
NAVNGA en fil — å tolerere dens fravær ville besvart en eksplisitt ordre med en stille uforankret
|
||||
kjøring (`load_mandate`-regelen). **Gjensidig utelukkende med `--derive-cost-baseline`, håndhevet
|
||||
BEGGE steder:** CLI-en nekter VED NAVN (så operatøren hører hvilke to flagg som kolliderer) og
|
||||
`run_project` reiser `ValueError` (så en bibliotekskaller ikke kan nå en tilstand CLI-en nekter).
|
||||
**`cost_baseline_source_notice` er en ANDRE renderer ved siden av `cost_baseline_notice`, aldri
|
||||
en utvidelse av den:** de sier ULIKE fakta og kan ikke være uenige (å oppgi flagget INNEBÆRER
|
||||
forankret, så nøyaktig én av de to kan rendres), og den POSITIVE linja er et BEVISST avvik fra
|
||||
omisjons-regelen — `proposal_review_notice`-avviket, av samme grunn: stillhet her er TVETYDIG,
|
||||
for en operatør som ga et prisskjema kan ikke skille «fila di forankret kjøringen» fra «basen
|
||||
hadde sin egen» eller fra «flagget ble droppet». Uten fil returnerer den `None`, så omisjonen
|
||||
beholdes nøyaktig der den er entydig. **`--across-bundle` får SAMME skjema per base** (ett
|
||||
prosjekt, ett prisskjema) — det er den ene ankringsparameteren som IKKE er en bundle-sak, og en
|
||||
base med og en uten ville forankret halve kommisjonen mens stempelet rapporterte ankring for den
|
||||
halvdelen som tilfeldigvis kjørte først. Tre partisjons-rader (`--portfolio` og
|
||||
`report_forbidden` nekter VED NAVN med rc-0-kontroll; live-dry-run er en WIRING, så den frie
|
||||
turen sier det samme som den betalte). **DEL B: fem forankrede kontekstsett** — hvert
|
||||
`contexts/<sett>/cost-baseline.json` har 4–8 linjer, a1–a3 har SIN linje og a4/`must_refuse` har
|
||||
INGEN, så stadium 0 er det som fanger falsifiseringsarmen. **Beskrivelser er BEVISST UTELATT fra
|
||||
JSON-en:** `CostBaselineLine` har ingen slik nøkkel, pydantic ignorerer ekstra felt i stillhet,
|
||||
og en fixtur hvis innhold droppes taust er en løgn — teksten bor i `mandate.json`s
|
||||
label/description, som er nøklet på samme kode (kø-(p)). **ORDRENS ARM (h) BLE FELT AV MÅLING
|
||||
FØR NOE BLE BYGGET PÅ DEN:** regelen «ingen baseline-kode er et kravnummer basen erklærer» er
|
||||
MÅLT mot `okf.declared_reference_numbers` over de fire monterte basene — de fire prosjektkodede
|
||||
settene bærer **0**, og `kontrakt-sorasen-2027` bærer **5 av 5** (`12.1`, `12.12`, `22.1`,
|
||||
`52.11`, `51.1` er ekte R761-`prosessnr`). Det er ikke et uhell i settet; det er hva R761
|
||||
Prosesskoden ER — en norsk vegkontrakts mengdebeskrivelse prises BY prosesskode — så ordrens
|
||||
regel ville tvunget fram en omskriving av nettopp det settet beslutning (e) ble valgt for å
|
||||
bevare. **KOMPLEMENTET beholder begge:** et prisskjema kan prise det kommisjonen NAVNGIR, og kan
|
||||
ikke INNFØRE en korpus-identifikator som en kostlinje ingen bestilte. Ordrens egen mutasjon biter
|
||||
fortsatt (bytt en kode til `12.11`, en erklært `prosessnr` ingen approach bestiller → arm (h)
|
||||
rød). **DEL B3:** dommeren rapporterer `anchored` (lest av kjøringens EGET stempel, aldri
|
||||
re-avledet), `priced` per rad (mot settets eget skjema, rapportert enten kjøringen var forankret
|
||||
eller ei, så runde 1–4 kan dømmes med samme instrument) og `stage` per `must_refuse`-rad fra
|
||||
`validator.rejection_stage`, som bor ved siden av setningene den nøkler på (kø-(p)) og er en
|
||||
RAPPORT, aldri en gate — derfor er `"other"` et ærlig svar der og ville ikke vært det inne i
|
||||
pipelinen. Load-bearing MÅLT (`tests/test_cost_baseline_flag_loadbearing.py` 15 armer +
|
||||
`tests/test_context_sets_loadbearing.py` +11 + `tests/test_stress_judge_loadbearing.py` +6 +
|
||||
`tests/test_prose_code_form_loadbearing.py` +2), **fem mutasjoner alle røde mot HELE suiten** +
|
||||
grønn kontroll **1850/5** (fra 1809/5, supersett, 0 fjernet) og golden
|
||||
`demo-transcript.stdout` BYTE-UENDRET (`shasum -a 1` av INNHOLDET =
|
||||
`ea8c534773acdbe41ae68f2c55724d69aaf8be4f`): A3(i) flagget leses men baselinen brukes ikke (3
|
||||
røde) · A3(ii) bare første base får skjemaet (1) · A3(iii) `report_forbidden` slipper flagget (1)
|
||||
· B2(i) a4 får en linje (1, arm (g) alene) · B2(ii) en kode byttet til `12.11` (2, armene (f) og
|
||||
(h)). **Ærlighets-grenser, uttalt:** skjemaet når IKKE prompten — modellen må fortsatt oppgi
|
||||
mengde og enhetspris selv, og stadium 0s avvisning navngir BASELINE-verdien, så Steg 5s
|
||||
tilbakemating er hva som lar løkka konvergere (økt 94s måling); den hostede flaten er BEVISST
|
||||
urørt (feltet er i ingen av hostings tre sett, så den generiske 400-en svarer og Fase 4es to
|
||||
halvdeler står); portefølje-armen er ikke wiret (flagget er nektet der ved navn, så en utskrift
|
||||
ville vært død kode); og alle beløp i de fem skjemaene er OPPDIKTEDE størrelsesordener, som hvert
|
||||
setts eget `honesty`-felt sier.
|
||||
- **STATE.md er local-only** (gitignored). Voyage session-state er efemert; STATE.md er kanonisk kontinuitet.
|
||||
- Prosess: Voyage-plugin (`/trekbrief → /trekplan → /trekexecute → /trekreview`) per større fase.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue