Repository navigation
RQ-62-ROADMAPGATE (#1133): programme artifacts get their own status rules — P0/P1/P2 + floor, red-first on the two statusless VCR-WCET items - #1155
Merged
Conversation
…ent earns — implemented, with the not-verified reason written beside it Both describe landed, CI-gated work (WCET phases 1-3 v0.46-v0.48, phase 4 #49) with named wcet_bound_gate.rs fixtures, claims.yaml cycle-model pins and unicorn cross-checks — so draft/proposed/approved would deny shipped work. Not verified: the roadmap reserves that for Rocq-mechanized work (VCR-RA-001), and neither WCET bound is mechanized. Refs #1133 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
…s/ yaml must carry a legal lifecycle status; the roadmap file itself is pinned visible Not a glob widening: R7/R8 assume a release: field and R4/R10 a release window the programme has neither of, so pointing R0-R10 at the roadmap would produce false reds. What does generalize is enforced repo-wide: P1 (status present), P2 (status in draft|proposed|approved|implemented|verified|accepted — rivet does not enforce this enum, and a typo'd status on the release side silently exits CLAIMING and defuses R2), P0 (the roadmap file must load and contribute artifacts — the #1064 invisible shape on the programme's single source of truth), plus a P-VACUOUS floor (379 at authoring). Red-first: both measured offenders (VCR-WCET-001/002 statusless) flagged with exit 1 before the previous commit; negative direction proven green — zero false reds across the other 377 artifacts incl. the roadmap's 37 proposed/approved items with no release: key. Mutation-verified: killing each of P0/P1/P2/floor reds at least one of the 9 new unit tests. CI grep pins the programme-status summary line so a scan that stops running fails loudly. Refs #1133 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
… at the corpus-replay test, landed: PR #1155 The artifact's manual done-when demanded a gate proven RED against VCR-WCET-001/002 and proven not to false-red on the roadmap's by-design absent release: field — both transcripts are in PR #1155 and the corpus replay is now a committed fixture (contains: signature), so the definition of done has an in-repo gate-shaped signature instead of a manual sentence. Refs #1133 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RQ-62-ROADMAPGATE — the VCR roadmap's 39 artifacts get their own ruleset
Refs #1133
status_evidence_check.pyenforced R0–R10 overartifacts/release-v*only, so the entire North Star programme file was subject to none of them — andVCR-WCET-001/VCR-WCET-002carried nostatuskey at all (visible to rivet's ARTIFACT_FLOOR, invisible to every rule and to any status-filtering consumer).Which rules apply to programme artifacts, and why
Deliberately NOT a glob widening (per the artifact): R7/R8 need a
release:field matching the filename — 38 of 39 roadmap items carry none by design until scoped; R4/R10 need a release window the roadmap has none of. Pointing the release ruleset at the roadmap would produce false reds.What does generalize — measured true today for every artifact yaml in the repo — is enforced as three P-rules plus a floor, scanning every artifact-bearing yaml under
artifacts/(release files included):status.draft|proposed|approved|implemented|verified|accepted). rivet does not enforce this enum (generic-yaml source; its docs markstatusoptional — confirmed against rivet 0.32.0schema show/docs artifact-format), so this is the only mechanical guard. Applied to release files too because a typo'd status (implmented) silently exits CLAIMING and defuses R2 — a hole R0–R10 never covered.artifacts/verified-codegen-roadmap.yamlitself must load and contribute artifacts (the artifacts/release-v0.59.yaml has NEVER been in the rivet graph — wrong top-level schema, skipped with a WARN that carries no ERROR: prefix, so the required gate is green because the file is invisible #1064 invisible-file shape, pinned on the one file whose purpose is programme status).Deliberately left out, stated not silent: R1–R3/R9 (done-when evidence) — programme items are long-lived records whose per-increment delivery is tracked by RQ-* release artifacts; backfilling 39 done-when signatures would itself be a hand-written mirror (the DECLARE_SINCE reasoning).
Red-first transcript (tree before the status fix)
Both measured offenders flagged, and exactly those two — zero false reds across the other 377 artifacts, including the roadmap's 37 legitimately
proposed/approveditems with norelease:key (and the one historicalrelease: v0.24.0).Green transcript (after the status fix)
The two offenders:
implemented, justified from contentBoth describe landed, CI-gated work — WCET phases 1–3 (v0.46–v0.48) and phase 4 (#49) — with named
wcet_bound_gate.rsfixtures,claims.yamlcycle-model pins and unicorn cross-checks, sodraft/proposed/approvedwould deny shipped work. Notverified: the roadmap's own convention reserves that for Rocq-mechanized work (VCR-RA-001), and neither WCET bound is mechanized. The reasoning is written as a comment beside each status in the yaml.Anti-vacuity
test_status_evidence_check.py(60 total, all green): the measured two-offender corpus replay, null/empty status, illegal status, the no-false-reds negative direction, both P0 shapes, the floor, release-file P2 coverage, and a live-repo green anchor pinningchecked >= 379.programme-status:summary line, so a checker edit that drops the P-rules (or glob rot scanning nothing) fails the pin, not just the exit code.Gates
python3 scripts/status_evidence_check.py→ exit 0python3 scripts/test_status_evidence_check.py→ exit 0 (60 tests)python3 scripts/claim_check.py claims.yaml→ exit 0rivet validatediagnostics identical before/after (externals not synced locally)🤖 Generated with Claude Code
https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L