docs(s7b): invariantraden - to soemmer, fjorten roede, og den ene som ikke KAN gates
Radene bor i CLAUDE.md fordi de er repoets invariant-hovedbok: beslutningen,
maalingen som tvang den, og testen som blir roed naar den oppheves.
Baerer tre ting commit-meldingen til a79e2f8 sier kortere: at ordrens diagnose
ble felt foer noe ble bygget paa den (og at nevneren var tre lesere, ikke en),
at den ANDRE soemmen - aa gjoere IR-projeksjonen valgfri - er MAALT og
dokumentert men IKKE bygget, og at M7 forblir groenn som en aerlighets-grense
snarere enn som en gate: kandidaten er BYGGET fra baselinen, saa stage 0 kan
per konstruksjon ikke felle den.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
a79e2f8965
commit
1df88c064e
1 changed files with 54 additions and 0 deletions
54
CLAUDE.md
54
CLAUDE.md
|
|
@ -1604,6 +1604,60 @@ Python ≥3.10. MAF (`agent-framework-core` 1.16.0, `-orchestrations` 1.1.1 —
|
|||
(`shasum -a 1` = `ea8c534773acdbe41ae68f2c55724d69aaf8be4f`): P1 detach registreringen (3) ·
|
||||
P2 dropp `path` fra `trace_payload` (3, inkludert et EKSISTERENDE vitne) · P3 koerser en
|
||||
ikke-streng til en etikett (2) · P4 les kun Mapping-formen (2).
|
||||
- **Forslaget kan OPPSTÅ fra kommisjonen og basens eget prisskjema — og ordrens diagnose var feil
|
||||
(S7b-forberedelse, økt 82):** ordren sa at forslaget *leses fra en håndskrevet
|
||||
`validator-input.json`. **Symptomet er ekte** — en base uten fila nekter med `FileNotFoundError`
|
||||
før første modellkall — **men diagnosen ble felt FØR noe ble bygget på den:** `SavingsProposal`
|
||||
har ALLTID blitt konstruert av `generate._parse_ir` fra MODELLENS svar; fila er en fasit VED SIDEN
|
||||
AV kjørestien, påkrevd kun som prosjektets IDENTITET. Det skillet avgjorde at S7b er **to sømmer,
|
||||
ikke én**, og at bare den ANDRE er bygget her. **Nevneren: tre lesere, ikke én** —
|
||||
`run.py:453` (hver bundle-kjøring), `verdicts.py:507` (kun med ikke-tom store) og `run.py:1662`,
|
||||
dispatcherens rutingsnøkkel, som bevisst ikke tar `project_id` fordi den leser den derfra. Å gjøre
|
||||
IR-projeksjonen valgfri er den ANDRE sømmen: MÅLT, dokumentert, IKKE bygget.
|
||||
**Arbeidsdelingen er hele designet:** eksperten sier HVA (`Approach.label` → `measure`, VERBATIM),
|
||||
HVILKE linjer (`affected_codes`) og HVOR MYE (`claimed_saving_nok`); dokumentet sier MENGDE og
|
||||
PRIS (`derive_cost_baseline`, MAJOR-4). `candidate_from_approach` oppfinner ingenting og nekter
|
||||
ved NAVN på alle tre gap. **Anslaget bor på `Approach`, aldri på `Mandate`** — `settle`s egen
|
||||
regel: tilnærminger er ALTERNATIVER og summeres aldri, så ett tall på mandatnivå ville vært
|
||||
tvetydig over N; og det er IKKE kjøringens MÅL (`contracts.GoalContract` eier nettopp ett sådant),
|
||||
hvilket står skrevet der feltet innføres, ellers leses det som den `(p)`-driften modulen forbyr.
|
||||
**Null modellkall er STRUKTURELT:** `run.evaluate_mandate_candidates` er **SYNC**, så den kan ikke
|
||||
awaite et chat-kall — ingen mutasjon av kroppen kan stille innføre ett; CLI-armen asserterer det
|
||||
likevel ATFERDSMESSIG (`_default_factory` patchet til å raise), fordi rc 0 alene også er utfallet
|
||||
til en dør som gjorde ingenting. **`allow_own_proposals` får en `not_evaluated`-RAD, ikke en
|
||||
nekt:** raden kan ikke fylles uten en modell, men å utelate den gjør den uskillbar fra en
|
||||
tilnærming ingen bestilte (`ApproachOutcome`s egen regel), og å nekte hele kjøringen ville vært
|
||||
feil andre veien — feltet defaulter til `True`. **Fixturen brukes URØRT**, og dét er armens poeng:
|
||||
`test_cost_baseline_derivation_loadbearing` må kalle `_runnable()` og skrive en
|
||||
`validator-input.json` inn i en kopi før `run_project` ser på den. Load-bearing MÅLT
|
||||
(`tests/test_proposal_from_mandate_loadbearing.py`, 17 armer), **femten mutasjoner, FJORTEN røde
|
||||
mot HELE suiten** + grønn kontroll **1274/5** (fra 1257, supersett, 0 fjernet) og golden
|
||||
`demo-transcript.stdout` BYTE-UENDRET (`shasum -a 1` = `ea8c534773acdbe41ae68f2c55724d69aaf8be4f`,
|
||||
INNHOLD — ikke git-blob): M1 detach CLI-dispatchen (1) · M2 fabrikkér et anslag (2) · M3 default
|
||||
kodene til hele skjemaet (1) · M4 toler en ukjent kode (1) · M5 bygg lazily (1) · M6 utelat
|
||||
own-proposal-raden (1) · M8 detach `--mandate`-nekten (1) · M9 detach
|
||||
`--derive-cost-baseline`-nekten (1) · M10 dropp fra portefølje-partisjonen (1) · M11 dropp fra
|
||||
`report_forbidden` (1) · M12 `measure` er ikke ekspertens ord (1) · M13 baseline-rekkefølge i
|
||||
stedet for ekspertens (1) · M14 rut på mount-navnet (1) · M15 fabrikkér usikkerhetsbånd (1).
|
||||
**TO MUTASJONER FALSIFISERTE TESTEN FØRST (repoets vakuøs-gate-klasse, TRETTENDE og FJORTENDE
|
||||
gang):** (i) M5 sto GRØNN — armen asserterte kun `pytest.raises`, og BEGGE implementasjoner
|
||||
reiser mens ingen rad når kalleren uansett, så de er uskillbare utenfra; det er økt 57s regel («en
|
||||
nekt etter forbruket ser identisk ut ved exit-koden») anvendt på CBC-solves, og testen TELLER nå
|
||||
solves med en kontroll som beviser at telleren beveger seg. (ii) M14 sto GRØNN — armen brukte
|
||||
`f"not-{declared}"`, som matcher verken mount eller erklæring, og **fixturene erklærer ingen
|
||||
`bundle_id`** (S7a-3 målte null `^bundle_id`-treff under `tests/`), så de to SAMMENFALLER der;
|
||||
den nye armen bygger en base som erklærer en id ulik katalognavnet og asserterer BEGGE halvdeler.
|
||||
**ÉN MUTASJON FORBLIR GRØNN, OG DET ER EN ÆRLIGHETS-GRENSE — IKKE EN GATE:** M7 (døm UTEN
|
||||
baselinen) er strukturelt uobserverbar, fordi kandidaten er BYGGET fra baselinen og stage 0
|
||||
derfor avstemmer med 0 % avvik ved konstruksjon; `baseline=` står som en DEFENSIV, uvitnet søm
|
||||
(`budget_stop`-presedensen), ikke som noe en test holder. **Flere ærlighets-grenser, uttalt:**
|
||||
`assumptions` er TOM (et bånd kan ikke avledes fra én pris), så Monte Carlo er degenerert
|
||||
(P10 == P50 == P90) mens stage 3 fortsatt rapporterer persentiler — det som binder er stage 0,
|
||||
stage 2/4b og pydantics `claimed <= total`; `measure` er ikke bare prosa, men stage 5s
|
||||
`METHOD_CAPS`-oppslagsnøkkel, så en ekspert-label treffer metode-cap-en kun om den ER et
|
||||
registrert metodenavn; den hostede flaten er BEVISST urørt (feltet er ikke i whitelisten, så
|
||||
4e-halvdelene står uendret); og ingen LEVENDE K2-fil er lest — fixturen er syntetisk, som i
|
||||
MAJOR-4. Måling: `docs/2026-09-03-forslag-fra-mandat.md`.
|
||||
- **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