The roadmap's 39 artifacts are outside every status/evidence rule
scripts/status_evidence_check.py is the gate that enforces R0–R10 — a status
must be backed by evidence, evidence must belong to the release, a delivery
commit must be acknowledged, and so on. Its scope:
RELEASE_GLOB = "artifacts/release-v*.yaml,artifacts/release-v*/*.yaml,artifacts/release-v*/*.yml"
artifacts/verified-codegen-roadmap.yaml does not match. It holds 39
VCR-* artifacts — the entire North Star program, including every
proposed/approved/implemented status the roadmap advertises — and none
of them is subject to any of those rules.
Measured consequence
Two roadmap artifacts have no status key at all:
VCR-WCET-001 (no status) Sound static per-function WCET bound (--emit-wcet)
VCR-WCET-002 (no status) WCET bounded self-recursion via a verified depth-hint
Every other artifact in the repo has one. A missing status is not merely
untidy — it is unrepresentable in the lifecycle
(draft → proposed → approved → implemented → verified → accepted), and a
consumer filtering by status silently drops these two rows. rivet loads them
(they count toward ARTIFACT_FLOOR), so they are visible to the count and
invisible to the rules.
Not "a missing gate" — the gate exists, is required, and is green. Its
scope just doesn't cover a file whose whole purpose is to record programme
status. That is the shape v0.61 was named for, one directory over:
The roadmap is arguably the worst place for it, because VCR-* statuses are
what the README's North Star table and the release planning both read from.
Not a simple glob widening
The release files and the roadmap have genuinely different obligations:
- Release artifacts carry
release: and must satisfy R7/R8 (evidence belongs
to the release, release: matches the filename) — the roadmap's artifacts
mostly have release: None by design, since a programme item is not scoped
to one release until it is.
- R4's delivery-commit rule assumes a release window; the roadmap has none.
So the fix is to decide which rules apply to programme artifacts — at
minimum: every artifact has a status, and the status is a legal lifecycle
value — and enforce those, rather than pointing the release-scoped ruleset at
a file it was not written for. Red-first is free: VCR-WCET-001 and
VCR-WCET-002 are an already-measured corpus of two, and a fix that does not
flag both has not fixed the reported thing.
Also worth deciding while here
39 roadmap artifacts carry release: None, including three the v0.62 planning
just had to scope by hand (VCR-TIER-001, VCR-REACH-002, VCR-RA-011).
Whether programme items should carry a target release once committed is a
separate question, but it is the reason this was noticed.
The roadmap's 39 artifacts are outside every status/evidence rule
scripts/status_evidence_check.pyis the gate that enforces R0–R10 — a statusmust be backed by evidence, evidence must belong to the release, a delivery
commit must be acknowledged, and so on. Its scope:
artifacts/verified-codegen-roadmap.yamldoes not match. It holds 39VCR-*artifacts — the entire North Star program, including everyproposed/approved/implementedstatus the roadmap advertises — and noneof them is subject to any of those rules.
Measured consequence
Two roadmap artifacts have no
statuskey at all:Every other artifact in the repo has one. A missing status is not merely
untidy — it is unrepresentable in the lifecycle
(
draft → proposed → approved → implemented → verified → accepted), and aconsumer filtering by status silently drops these two rows.
rivetloads them(they count toward
ARTIFACT_FLOOR), so they are visible to the count andinvisible to the rules.
Why this is the same class as #1085 / #1091 / #1113 / #1119
Not "a missing gate" — the gate exists, is required, and is green. Its
scope just doesn't cover a file whose whole purpose is to record programme
status. That is the shape v0.61 was named for, one directory over:
The roadmap is arguably the worst place for it, because
VCR-*statuses arewhat the README's North Star table and the release planning both read from.
Not a simple glob widening
The release files and the roadmap have genuinely different obligations:
release:and must satisfy R7/R8 (evidence belongsto the release,
release:matches the filename) — the roadmap's artifactsmostly have
release: Noneby design, since a programme item is not scopedto one release until it is.
So the fix is to decide which rules apply to programme artifacts — at
minimum: every artifact has a status, and the status is a legal lifecycle
value — and enforce those, rather than pointing the release-scoped ruleset at
a file it was not written for. Red-first is free:
VCR-WCET-001andVCR-WCET-002are an already-measured corpus of two, and a fix that does notflag both has not fixed the reported thing.
Also worth deciding while here
39 roadmap artifacts carry
release: None, including three the v0.62 planningjust had to scope by hand (
VCR-TIER-001,VCR-REACH-002,VCR-RA-011).Whether programme items should carry a target release once committed is a
separate question, but it is the reason this was noticed.