docs(k3): round 19, a document's own identity, per-run frontmatter, and a description from the source
The report for K3-19, measured from a frozen export of77e7cab: R761 from the base56b00e7against77e7cab-- directory `14ce59dc-...` -> `r761-prosesskoden`, 2 761 concepts and 710 shells unchanged, 110 = 110, 1 807 descriptions, the flagged edition and address on 2 761 of 2 761, hit@1/8/50 over S1-S6 6/6 at both k, `okf check` 4 of 4 with 0 findings, and --ingested-at alone confirmed on 2 761 of 2 761. Reported first rather than repaired: the known-positive falls from rank 1 to not delivered at the default k (13 at k = 50), decomposed to the directory name alone; and the order's own `sources` value is refused by PyYAML on every concept while `okf check` accepts it. CHANGELOG under [Unreleased], the README and CLAUDE.md paragraphs carry the final numbers, and the README test count moves to 1659 collected. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
77e7caba2e
commit
7eeafb35c8
4 changed files with 357 additions and 9 deletions
59
CHANGELOG.md
59
CHANGELOG.md
|
|
@ -7,6 +7,65 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
|
||||
- **A NISO-STS document's own identity names its directory and titles its
|
||||
`sources` entry (K3-19).** `okf build` put every concept of an STS delivery
|
||||
under a directory named for the delivery file -- measured, a UUID occurring
|
||||
0 times in the document -- while the document's one `<std-ident>` carried a
|
||||
`<doc-number>`. `extract.declared_identity` reads exactly one `<std-ident>`
|
||||
(`<doc-number>`, `<year>`) and exactly one `<title-wrap>`; a value stated
|
||||
more than once is not read. The directory is the `<doc-number>` through the
|
||||
id grammar, replacing only the file's stem, and `sources[0].title` is
|
||||
`<doc-number>` + `<year>`, then the `<title-wrap>` title, then the file name
|
||||
-- the first that can be written into the flow mapping verbatim (the
|
||||
measured `<full>` carries commas, so it never is). A declared name two
|
||||
documents in one run claim is used by neither, and stderr says so.
|
||||
- **Consumer cost: a re-run, and an STS document's concept ids move**
|
||||
(`<uuid>/...` -> `<doc-number>/...`). Every other file type is untouched:
|
||||
the five-document folder rebuilds identical except the `log.md` line that
|
||||
records the venv's converter path.
|
||||
- **Measured side effect on ranking, reported rather than repaired:** hit@1
|
||||
/ 8 / 50 over S1-S6 stays 6/6 at both `k`, but the known-positive falls
|
||||
from rank 1 to not delivered at the default `k` (13 at `k` = 50).
|
||||
`consume`'s first signal reads a concept id's segments, and on a
|
||||
one-document bundle every id now carries the document's own name; renaming
|
||||
only the directory back restores rank 1. `--rarity-weight` delivers it at
|
||||
rank 4 with S1-S6 unmoved, and stays off.
|
||||
|
||||
### Added
|
||||
|
||||
- **`okf build --frontmatter KEY=VALUE`**, repeatable, stamps a key on every
|
||||
concept of a run -- for what an operator knows and a document does not say,
|
||||
such as an edition or a publisher's address. SPEC SS 4.1 "Extensions" lets
|
||||
a producer add any key; SS 11 forbids a consumer to reject one. Split on the
|
||||
FIRST `=`, and the value is written verbatim on ONE line, because this
|
||||
package's readers are line-oriented and blind to a block-form `sources`.
|
||||
Precedence: a stated value beats what the document declares, which beats the
|
||||
file name. A run may add any key and REPLACE only `sources` and
|
||||
`description`; every key the door writes itself -- including Door A's
|
||||
`ingest_manifest`, which would make that door claim the file -- is refused
|
||||
before a proposal is written (`run_frontmatter_invalid`), as is a value that
|
||||
would not read back as stated. Reachable as `build(frontmatter=...)` and as a
|
||||
keyword-only `concept_frontmatter_values` on `measure`, `process_inbox` and
|
||||
`render_inbox_concept`. Without the flag nothing moves. **Note:** a
|
||||
`sources` value carrying a URL or `X:Y` in the flow mapping passes `okf
|
||||
check` and is refused by PyYAML's `safe_load` -- measured on 2 761 of 2 761
|
||||
concepts with such a value -- and it is written verbatim as stated.
|
||||
- **`description` for an STS section, from its own first spec point.** The
|
||||
first `<p>` of the first direct-child `<sec sec-type="spec">`, whole,
|
||||
carried by the plan entry, screened by the gate, and written only where a
|
||||
YAML reader reads it verbatim (`inbox._yaml_plain`; over 2 024 measured
|
||||
values the rule and PyYAML agree on every one). The spec sets no length, so
|
||||
the one-paragraph limit is ours. On the measured document: 2 026 of 2 761
|
||||
titled sections carry a spec point, 1 807 descriptions are written (2 points
|
||||
have no `<p>`, 217 carry `": "`), none is invented, and none is derived from
|
||||
a title.
|
||||
|
||||
`--ingested-at` alone was confirmed to stamp every concept, on the segmented
|
||||
route too, and to date `log.md`: 2 761 of 2 761. Report:
|
||||
[`docs/2026-09-11-k3-runde19-dokumentidentitet-og-frontmatter.md`](docs/2026-09-11-k3-runde19-dokumentidentitet-og-frontmatter.md).
|
||||
|
||||
## [0.8.2] — 2026-09-11
|
||||
|
||||
### Added
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue