[skip-docs]: ingen brukervendt flate ennaa -- CLI-flagget kommer i steg 6/7 med
README-blokka, og CLAUDE.md-raden i steg 8. Modulen er ikke naabar utenfra i denne
commiten.
Steg 1 og 2 av planen, committet sammen fordi begge armene bor i samme testfil og
ble skrevet mot samme ekte produsent-payload.
`prepass.py` konsumerer et OKF-konsumkontrakt-SS-8-payload som INPUT-fil (SS 2.4:
transporten er ikke del av kontrakten). po produserer ingen payload og vendrer ingen
produsent -- en subprosess mot produsentens checkout ville bundet pakka til en sti paa
en maskin og doedd i `git archive HEAD`, og en kopi ville vaert kø-(p)-driften.
`check_payload_shape` -- seks nekter, hver ved navn: ukjent revisjon (`==`, aldri
prefiks), nevnere som ikke lukker (SS 5.2, med DEKLARERT og OBSERVERT som to tall),
`len(excerpts)` og `len(withheld)` mot sine tellere (SS 8.1s to halvdeler), `spent >
limit` (SS 7.3) og en kjent-positiv som ikke ble reprodusert (SS 7.4). De to siste er
DEFENSIVE og uvitnet: produsenten nekter dem selv foer den emitterer.
`verify_against_bundle` -- fem sjekker mot den MONTERTE basen: erklaert id (aldri
mountet, S7a-3), joinen gjennom `safe_resolve` med `PathSecurityError` re-reist som
nekt, filas `sha256`, og -- baerende -- at `text` er RE-UTLEDBAR fra det monterte
dokumentet. Den siste lukker injeksjonsflaten: et payload kan ikke levere bytes basen
ikke holder. De to gatene som bodde i det tilbaketrukne `read_file` er reist paa nytt
her paa DOKUMENTET (verdict-laget og SS 4.1a), aldri delegert til produsentens egne
regler.
MAALT foer bygging, ikke antatt:
- Pre-passet nekter ALLE tre av repoets leverte baser ("declares no bundle_id") --
S7a-3s egen maaling sett fra produsentsiden. `shared/` er pull-only, saa fixturen er
bygget paa en KOPI med erklaert id, som ogsaa gir S7a-3s slakk-tilfelle gratis.
- `concept_id + ".md"`, `sha256` = HELE fila, og tekst-utledningen (frontmatter delt
paa `splitlines()`, NFC, per-linje rstrip) holder for alle fire utdrag i et EKTE
produsent-payload. En naiv `split("\n")` er UENIG med produsenten -- derfor er
regelen transkribert fra kilden og gatet av fixturen, aldri gjettet.
Fixturen `tests/fixtures/prepass/` er produsentens output ORDRETT (okf `54a0bc2`), saa
ingen arm er groenn mot en form ingen pre-pass emitterer.
TO TEST-FIXTURER VAR FEIL, funnet ved aa kjoere roedt: excerpt/withheld-armene brakk
ogsaa nevnerne, saa lukke-sjekken fyrte foerst; og dimensjons-armen kjoerte mot et
umerket dokument, der `in_dimension` aldri dropper uskopet kunnskap. Begge armene ville
staatt groenne mot en implementasjon uten sjekken de er skrevet for.
1413 passed / 5 skipped (fra 1387/5, +26, 0 fjernet). ruff + mypy rene.
Co-Authored-By: Claude <claude-opus-5>
|
||
|---|---|---|
| .. | ||
| bygg-energi-mikro-fixture.payload.json | ||
| README.md | ||
A real pre-pass payload, checked in verbatim
bygg-energi-mikro-fixture.payload.json is the unedited output of the OKF consumption
pre-pass. It is here so that every arm in tests/test_prepass_payload_loadbearing.py is gated
against a shape a producer actually emits, rather than against one the test built for itself.
Produced 2026-09-07 with:
python3 ~/repos/llm-ingestion-okf/tools/okf_consume.py <base> \
--question "Hva koster energitiltaket i bygget?" --out <this file>
- Producer:
llm-ingestion-okf, revision54a0bc2,tools/okf_consume.py - Contract:
okf-consumption/1(llm-ingestion-okf/docs/consumption-contract.md, normative) <base>: a COPY ofshared/examples/bygg-energi-mikrowithbundle_id: bygg-energi-mikro-fixtureinserted as the first frontmatter line ofindex.md.
Why a copy and not the base itself. Measured 2026-09-07: the pre-pass refuses all three of
this repository's shipped bases with index.md declares no bundle_id — which is S7a-3's own
measurement (zero ^bundle_id anywhere under shared/) seen from the producer's side. shared/
is a pull-only subtree, so the declaration cannot be added there. The test rebuilds the copy the
same way, which also makes this the S7a-3 slack case: a base whose DECLARED id differs from its
mount.
Do not regenerate casually. The digests in this file pin the mounted bytes of four concept
files; regenerating after a git subtree pull is a deliberate act, and the arms that verify
sha256 / text / text_sha256 are what would go red first.