feat(schemas): vv-coverage — repo-status type for V&V technique tracking (#188)#232
Draft
feat(schemas): vv-coverage — repo-status type for V&V technique tracking (#188)#232
Conversation
Introduces `schemas/vv-coverage.yaml` and registers it as a built-in
schema. Defines a single artifact type, `repo-status`, capturing:
- `repo` (required) — canonical `owner/name` join key
- `techniques-applied` (required, list<string>) — V&V techniques
present in the repo
- `techniques-gated-in-ci` (optional, list<string>) — subset that
blocks merge or release
- `notes` (optional, text) — free-form coverage commentary
The split between "applied" and "gated-in-ci" is the load-bearing
distinction the cross-repo coverage matrix renders: the matrix shows
drift between "we have the technique" and "the technique enforces".
Sub-issue #1 of #188; the matrix CLI surface (`rivet coverage --matrix`)
and the cross-repo aggregator land in follow-up PRs.
Recommended technique identifiers documented in the schema description
(verus / kani / rocq / lean / aeneas / mirai / proptest / loom / miri /
asan / tsan / lsan / fuzz / mutation / criterion / differential /
rivet-validate / cargo-deny / cargo-audit / semver-check). Authors may
use identifiers outside this set; the aggregator surfaces unknowns
rather than rejecting them.
Verification:
- 9 new integration tests in `rivet-core/tests/vv_coverage_schema.rs`
(schema loads, parses, registered in SCHEMA_NAMES, declares
`repo-status` with the three documented fields, required/optional
shape matches the aggregator contract, both technique fields are
`list<string>`, schema extends `common`).
- `cargo test -p rivet-core --lib` — 857 pass.
- `cargo test -p rivet-core --test schema_agent_pipelines` — 5 pass
(this suite iterates over SCHEMA_NAMES; new entry round-trips).
- `cargo fmt --all -- --check` — clean.
- `rivet validate` diagnostics identical to origin/main (6 pre-existing
errors in the spar-external fixture, 62 warnings — unchanged).
Refs: #188
Refs: #184
Implements: REQ-010
7 tasks
📐 Rivet artifact deltaNo artifact changes in this PR. Code-only changes (renderer, CLI wiring, tests) don't touch the artifact graph. |
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.
Refs: #188 (sub-issue #1 of the proposed decomposition in the 2026-04-26 triage comment).
Summary
First in-scope cut at the V&V coverage matrix story (#188). Introduces a single new schema,
vv-coverage, with one artifact type,repo-status, designed as the source-of-truth shape consumed by:rivet coverage --matrixrendering surface (sub-issue Add document system and improve graph visualization #2 of V&V coverage matrix dashboard via rivet coverage (per-commit, per-repo, per-technique) #188),Filed as a draft because two follow-up sub-issues (#188 #2 + #3) need to land before this schema has a real consumer. The shape itself is the contract those follow-ups depend on; merging it early gives them a stable target.
Acceptance-criteria mapping (#188 sub-issue #1)
techniques_applied,techniques_gated_in_cion a repo-level artifactschemas/vv-coverage.yaml—repo-status.techniques-applied(required,list<string>),repo-status.techniques-gated-in-ci(optional,list<string>)rivet-core/src/embedded.rs;cargo test -p rivet-core --test schema_agent_pipelinesexercises every entry inSCHEMA_NAMESrivet validateclean (no new diagnostics)origin/main: 6 errors / 62 warnings, all pre-existing inspar-externalrivet-core/tests/vv_coverage_schema.rscovering required/optional, list-typing, schema name registration,extends: [common]Out of scope
These bullets from #188 cannot be addressed by this PR and are tracked for follow-ups:
rivet coverage --matrixCLI surface — sub-issue Add document system and improve graph visualization #2 in the prior triage decomposition. Depends on this schema landing.The agent-pipelines block is intentionally not added; sub-issue #1 is shape-only and the pipeline would have nothing to fire on yet.
Why kebab-case fields
Project convention (
tool-name,safety-level,cve-id,mutation-score, etc. across the existing schemas). The original issue body usestechniques_applied; this PR matches the in-tree style. If a hard rename is preferred, say the word and I'll switch.Verification
cargo test -p rivet-core --lib— 857 passcargo test -p rivet-core --test vv_coverage_schema— 9 pass (new)cargo test -p rivet-core --test schema_agent_pipelines— 5 pass (iteratesSCHEMA_NAMES; new entry round-trips)cargo test -p rivet-core --test supply_chain_schema— pass (regression sanity for the neighbouring schema)cargo fmt --all -- --check— cleanrivet validate— identical toorigin/main:Result: FAIL (6 errors, 62 warnings, 0 broken cross-refs)— same six SPAR-* errors in the external fixture, no new diagnosticsTest plan
SCHEMA_NAMESrepo-statusdeclaresrepo,techniques-applied,techniques-gated-in-ciwith the documented required/optional shapecargo fmt --checkclean,rivet validatebaseline unchangedtechniques-appliedvstechniques_applied)rivet coverage --matrix, aggregator, dashboardTrailers
Per CLAUDE.md, the commit carries:
(Schema change →
REQ-010.#184is the V&V coverage initiative hub.)Generated by Claude Code — issue-triage agent run 2026-04-28.
Generated by Claude Code