Skip to content

The VCR roadmap's 39 artifacts are outside status_evidence_check's scope — two have no status key at all #1133

Description

@avrabe

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.

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 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions