docs: the two addendum defects recorded as invariants with their measurements

[skip-docs]

PM addenda 4 and 5 to order 20260902T151931Z-250257273. Each row carries the
decision, the measurement that forced it, and the mutations that turn it red --
including the two the measurement itself corrected: that reverting both
current_progress sites left only a source-inspection arm red, and that an
actorless verified value never reaches trust_tier through evidence_for at all.
This commit is contained in:
Kjell Tore Guttormsen 2026-09-03 01:29:01 +02:00
commit 24c45f3ebd

View file

@ -1073,6 +1073,48 @@ Python ≥3.10. MAF (`agent-framework-core` 1.16.0, `-orchestrations` 1.1.1 —
nye verktøyet, så at en manager velger BEDRE med et utdrag enn med hele indeksen er ikke bevist
(structured-output-grensens klasse); og ordrens nevner for N100:2023 var 34 mens disken viser 40 —
tallene bruker den målte nevneren. Måling: `docs/2026-08-26-katalogkostnaden.md`.
- **Et fravær ved en signeringsport sies i ORD; i dataene sies det ved å være borte (PM-tillegg 4,
økt 77):** `PlanReviewRequest.current_progress` og `ParkedExploration.current_progress` ble begge
bygget med `str(review.current_progress)`. Verdien er en `MagenticProgressLedger | None` og er
`None` i hver kjøring målt så langt, så `str()` ga de fire tegnene `None`, rendererens
truthiness-vakt fant dem ikke-tomme, og eksperten som skulle SIGNERE en plan ble vist en
«progress so far»-seksjon hvis eneste innhold var ordet `None` — og de samme fire tegnene ble
skrevet inn i `{run_id}-plan-review.json`, det ENESTE som krysser prosessgrensen i U12s asynkrone
dør. `_progress_text` er den ENE konverteringen (ved siden av `_plan_text`): fravær blir tom
streng, aldri `"None"`. **Datalaget sier fravær ved å være tomt** (`Bundle.skipped`s
tom-tuppel-regel), mens **TERMINALEN sier det i ord** — det er den ene flaten der omisjon er
feil, fordi stillhet ved en port noen signerer er nøyaktig dét `PlanReviewInputError` alt nekter
for EOF. **Målingen endret testen:** å reversere BEGGE kallsteder lot KUN en kildeinspeksjons-arm
bli rød — en lint, ikke en gate, fordi de første armene konstruerer en `PlanReviewRequest` selv og
aldri går inn i noen av stedene. Hvert sted har nå et ATFERDSMESSIG vitne som driver den EKTE
døra: terminalen for den synkrone, den parkerte spørsmålsFILA for den asynkrone. Load-bearing
MÅLT (`tests/test_plan_review_progress_line_loadbearing.py`, 7 armer), fem mutasjoner alle røde
mot HELE suiten, hver med sin egen signatur + grønn kontroll 1202/5 og golden BYTE-UENDRET:
begge steder reversert (3 røde) · det synkrone alene (2) · det parkerte alene (2) · terminalen går
stille igjen (2) · plassholderen fyrer alltid og sluker en ekte ledger (1, kontrollen alene).
Recorder-wiringen i `resume_exploration` er URØRT (uvitnet, defensiv — S2b).
- **`evidence_for` avleder en tier KUN for nøkkelen SPEC §5.3 tierer (PM-tillegg 5, økt 77):**
`evidence_for(path, key="sources")` REISTE `ValueError`. Tieren ble avledet UBETINGET gjennom
`trust_tier`, som nekter en oppføring uten `by`-aktør — riktig, fordi en tillitsgrad avledet av
en oppføring som identifiserer ingen mynter den proveniensen den påstår å lese. Men `by` er
påkrevd av en VERIFIKASJONS-oppføring (SPEC §5.2), ikke av enhver provenienss-nøkkel: den avtalte
segmenterte formen bærer `segment_id`/`source_offset`, en `sources`-liste bærer `id`/`resource`.
Vakten tilhørende ÉN nøkkel ble anvendt på ALLE. **`trust_tier` er URØRT** — `_TIERED_KEY` navngir
den ene nøkkelen §5.3 tierer, og enhver annen nøkkel kommer tilbake med
`state`/`reason`/`items_seen`/`entries` og `tier=None`. **`admits_falsification` flyttet MED, og
det er samme faktum, ikke scope-krype:** den leste `tier != "unverified"`, og `None != "unverified"`
er SANT, så en `sources`-liste som FINNES ville klarert en terskel om verifisering; den navngir nå
tierene som klarerer. For hver verdi som var nåbar før endringen er de to skrivemåtene identiske —
derfor står de eksisterende K5-armene grønne, og derfor er dette en innstramming og ikke en ny
regel. **Målingen korrigerte testen:** en `verified`-verdi UTEN aktør når aldri `trust_tier`
gjennom `evidence_for` i det hele tatt — dekoderen nekter formen først, som
`unreadable`/`unsupported-flow`; begge vakter asserteres nå der hver av dem FAKTISK bor.
**Defekten fantes fordi parameteren aldri var ØVET:** alle 11 kallsteder brukte defaulten (målt
ved B4s slutt). Load-bearing MÅLT (`tests/test_evidence_key_parameter_loadbearing.py`, 6 armer),
fire mutasjoner alle røde mot HELE suiten + grønn kontroll 1208/5 og golden BYTE-UENDRET: avled
tieren ubetinget (3 røde) · reverter K5-terskelen (1, konsekvens-armen alene) · «fiks» det ved
aldri å tiere (3, inkludert to eksisterende falsifiserings-armer) · løsne `trust_tier` i stedet
(2, inkludert dens egen eksisterende gate).
- **`read_bundle` koster O(DOKUMENTER i én base), aldri O(bytes av den — S2c/MAJOR-3, økt 77):**
verktøyet returnerte `okf.bundle_context`, altså HELE den navigerte basen, og fordi utforskningens
deltakere deler ÉN samtalehistorikk red det ene `function_result`-et med i **hver senere prompt**