docs(plan): the v1.0 gate cannot be opened by a green result alone

okf pins llm-ingestion-guard >=0.2,<0.3 in [project].dependencies and pins the
uv source to tag v0.2.0 -- verified at their v0.4.0 tag and at their HEAD. The
cap excludes 0.3.1, so the committed Door B+C fixture run cannot reach the
version the gate names. It does not fail either: uv resolves v0.2.0, the
constraint holds, and the fixtures come back green because v0.2.0 never had the
regression. Green from an unmodified tree is the one outcome that proves nothing
and reads as proof.

The gate now requires the result to name the resolved guard version, and records
that transitive arrival does not count as an integration -- okf v0.4.0 makes the
guard a mandatory runtime dependency, so a consumer can acquire us without
choosing us, and today lands on v0.2.0 without the 0.3.0 hardening or the 0.3.1
fix. Silent under-defend, not a break.
This commit is contained in:
Kjell Tore Guttormsen 2026-07-25 19:57:41 +02:00
commit d39033676a

View file

@ -239,6 +239,23 @@ Nøkkelantakelser (+ test) · Verifisering. Testkommando alltid:
resultatet UANSETT utfall — et rødt FP-resultat er like verdifullt), OG ingen API-formsendring ut av den integrasjonen som ikke er absorbert.
Ett validert `integrated` teller mer enn fem `planned`-erklæringer; vi venter IKKE på
de øvrige (ms-ai-architect bygde sitt eget, `okr` er operatør-parkert).
- **⚠️ GATEN KAN IKKE ÅPNES AV ET GRØNT SVAR ALENE — verifiser hvilken versjon som ble
resolvet (funnet 2026-07-25, premiss-verifisering).** Setningen «v0.4.0 kjører grønt
mot v0.3.1» var skrevet mot en pin vi ikke hadde lest. okf pinner guarden
`>=0.2,<0.3` i `[project].dependencies` **og** `[tool.uv.sources]`-taggen til
`v0.2.0` — verifisert på deres `v0.4.0`-tag OG deres HEAD (`4ea00a9`). `<0.3`
ekskluderer både 0.3.0 og 0.3.1. Kjører de fixturene på et uendret tre, **feiler det
ikke** — uv resolver v0.2.0, constrainten er tilfredsstilt, og fixturene kommer
grønt tilbake fordi v0.2.0 aldri hadde regresjonen. Et grønt svar er dermed det
ENESTE utfallet som intet forteller og ser ut som det forteller alt.
**Gate-krav:** resultatet må navngi den resolvede guard-versjonen, og den må være
`0.3.1`. Bedt om 2026-07-25: widen range + flytt uv-source-taggen før fixture-kjøringen.
- **Transitiv ankomst teller IKKE som integrasjon** (portfolio-optimisers innsikt,
2026-07-25). okf v0.4.0 gjør guarden til en OBLIGATORISK runtime-dep, så en
konsument kan få oss i grafen uten å velge oss — og i dag lander de da på v0.2.0,
uten 0.3.0-hardningen og uten 0.3.1-fiksen. Stille under-forsvar, ikke brudd. En
konsument som fikk oss ved uhell måler ingenting med hensikt; grønt derfra beviser
mindre enn rødt fra en som valgte oss.
- **Filer:** `pyproject.toml` (`version = "1.0.0"`, `Development Status :: 3 → 5 -
Production/Stable`); `README.md` badge + **`**Status:** \`v0.3\`, alpha`-linjen** +
**install-pinnen `@v0.3.1`**; `__init__.py` `__version__`; `CHANGELOG.md`.