Two changes, one theme: what a reader needs in order to cite is a property of
the PRODUCER, so neither the excerpt nor the skill may hard-code a list of the
producers someone thought of.
The pass-through rule is now the `source_` PREFIX, not the five keys this
library writes. Measured on the N500 bundle currently on disk: 269 of 274
concepts carry `source_element_id`, a locator that repository chose under this
chain's own rule ("the key says what it indexes") and that this library never
writes. The allowlist dropped it, and an excerpt that names a document without
naming the place in it is the defect this work exists to close. A prefix and
never a substring - `resource_owner` contains the literal and is not a locator,
and promoting it would be fabricated provenance produced by a matching bug. The
known-negative is tested: `bundle_id`, `type` and `ingested_at` do not travel.
Contract 8.5 states the rule as a prefix rather than a list.
K2 control, re-measured against the frozen tool at
|
||
|---|---|---|
| .. | ||
| example-payload.json | ||
| README.md | ||
References
example-payload.json is a real payload, not an illustration: it was
produced by
python3 tools/okf_consume.py examples/ingest-golden-segmented-okf-v0-2/expected-bundle \
--question "Hva sier veiledningen om krav?" --out references/example-payload.json
against the three-concept golden bundle that ships in this repository, so anyone reading this file can regenerate it byte for byte and compare. It carries no content from the K2 corpus.
It is here so that the payload's shape can be read without running anything, and
so that a reader can see what the members the contract does not name look like in
practice: text and text_sha256 on every excerpt (§ 8 permits additional
members; § 1 defines an excerpt as delivered content, and without a body the
budget gate would measure a skeleton), rank, bundle_id_inherited, and the
raw_bytes/encoding_delta pair that gives the known-positive a second,
independent check.