Skip to content

docs/MANIFEST.toml still cites R10.2/D17.9 — the citation sweep in #47 could not see it #54

Description

@forkwright

Finding

docs/MANIFEST.toml's entry for docs/design/rendering-completeness.md still describes the doc as the "R10.2/D17.9 rendering-completeness floor". #47 (commit 74f6622) established that R10.2 is the operator-facing-GUI requirement, has never described the rendering floor, and rewrote every other citing file (rendering-completeness.md itself, docs/design/topology.md, README.md) to cite D17.9 alone. docs/MANIFEST.toml carries the same stale pairing #47 fixed everywhere else, because it was never in scope for that sweep to find.

Evidence

docs/MANIFEST.toml:44:

description = "Measurement contract for the R10.2/D17.9 rendering-completeness floor over the origin corpus."

Compare docs/design/rendering-completeness.md:3 (fixed by #47): "This note defines the measurement contract for D17.9." and README.md:28 (fixed by #47): "D17.9 evidence floor".

Root cause: ci/check-doc-refs.py, the CI stage (doc-refs-check) that exists specifically to catch this identifier-citation class, only scans root.rglob("*.md"). docs/MANIFEST.toml is a .toml file, so its own description prose — despite carrying the exact same R<n>/D17.<n> citation shape the script's JOINED_IDS_RE is built to check — is invisible to it. ci/check-doc-manifest.py (docs-manifest-check) validates that manifest paths exist/are complete and that each file passes kanon lint --writing; it never inspects a manifest entry's own description text for citation accuracy either. So no stage in .kanon-ci.toml can currently catch this class of drift in docs/MANIFEST.toml itself.

Why this matters

docs/MANIFEST.toml is documented as the authoritative doc inventory ("makes docs/MANIFEST.toml the authoritative CI input set" per check-doc-manifest.py's own docstring) and is the first thing a reader or an agent consults to learn what each canonical doc is for. A stale citation there re-teaches the exact wrong pairing #47 spent an issue correcting everywhere else, and nothing in CI will catch a repeat of this specific failure mode (a citation fix that updates every .md file but not the manifest's own prose).

Desired correction

  • Immediate: fix the one stale description (drop R10.2/, matching the D17.9-only wording used everywhere else #47 touched).
  • Systemic: extend ci/check-doc-refs.py (or check-doc-manifest.py) so docs/MANIFEST.toml's description fields are checked by the same dangling/mismatch logic as every other canonical doc. Note this is not a trivial glob-widening: docs/MANIFEST.toml:33 describes docs/design/decisions.md as covering "D17.x technical decisions" — the bare-ref scanner would need to treat D17.x the way RANGE_CONTEXT_RE already treats D17.*, or a naive glob change introduces a false-positive dangling report on that entry. Add a case to check-doc-manifest.py --self-test (or an equivalent fixture) proving a re-injected stale citation in the manifest is caught, mirroring the existing self-test pattern.

Done when: docs/MANIFEST.toml:44 cites D17.9 only, and a CI stage exists that would fail if that citation regressed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions