docs(pre-commit): rivet-validate adoption — install paths, failure mode, audit script#263
docs(pre-commit): rivet-validate adoption — install paths, failure mode, audit script#263
Conversation
…de, audit script Addresses the in-scope subset of #187 — the canonical template already ships rivet-validate at T1 (templates/pre-commit/.pre-commit-config.yaml:71-86), so the gap was on the *adoption* side rather than the template itself. Changes: - docs/pre-commit.md - "Installing rivet" rewritten: GitHub release binaries exist as of v0.8.0; cargo install must always pass --tag/--rev to avoid drift. - New "Version-pinning" subsection with two equivalent recipes (CI cargo install + system local-hook, vs. additional_dependencies). - New "Failure mode" subsection with a worked example of the output a developer sees when rivet validate blocks a commit, plus a --no-verify advisory anchored on the hook security model (REQ-051). - New "Adoption audit" subsection pointing at the audit script. - scripts/audit-rivet-validate-adoption.sh - Walks a workspace of repository clones, reports adopted / gap / no-pre-commit-config repos. Markdown output suitable for pasting into docs/adoption-status.md or an issue body. - Exits non-zero on any gap so it can act as a CI gate. - docs/adoption-status.md - Placeholder for the latest audit run + refresh recipe. Out of scope for this PR (acknowledged in the issue body): - Cross-repo audit *run* (needs a workspace with sibling clones; an operator must execute the script). - Cross-repo adoption issues filed on relay / sigil / gale / wohl (filing on other repos is outside the issue-triage agent's authorised scope per the org policy). Refs: REQ-051
Automated review for PR #263pulseengine/rivet: Verdict: 💬 Comment Summary: The proposed changes to the Findings: 0 mechanical (rivet) · 2 from local AI model. Findings (2):
Generated by a local AI model and post-validated against a strict JSON contract. Each finding includes the verbatim line being criticised — verify by reading the file at the cited location. Reviewed at |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: 1c5da24 | Previous: 08b87f8 | Ratio |
|---|---|---|---|
traceability_matrix/1000 |
64635 ns/iter (± 620) |
44661 ns/iter (± 159) |
1.45 |
query/10000 |
119348 ns/iter (± 803) |
92475 ns/iter (± 909) |
1.29 |
This comment was automatically generated by workflow using github-action-benchmark.
Summary
Addresses the in-scope subset of #187. The canonical pre-commit template already ships
rivet-validateat Tier 1 (templates/pre-commit/.pre-commit-config.yaml:71-86), so the gap was on the adoption side rather than the template itself.This PR is draft because two of the issue's six acceptance bullets cannot be satisfied from a session scoped to
pulseengine/rivetonly — they need a session with org-wide write access. See "Out of scope" below.Acceptance — #187
rivet-validatehook to rivet's canonical pre-commit template (Tier 1). Pre-existing intemplates/pre-commit/.pre-commit-config.yaml(lines 71-86, with the# T1annotation). No change needed.rivetinstall path that CI and pre-commit can both use (binary release?cargo install rivet?).docs/pre-commit.md"Installingrivetfor hooks" rewritten with three concrete paths: GitHub release binary (v0.8.0+),cargo install --gitwith mandatory--tag/--rev, and workspace build for monorepo developers.rivet validatefails, the commit is blocked with a clear message pointing at the broken link. New "Failure mode" subsection indocs/pre-commit.mdwith a worked output example (artifact id, link/field, reason) and a--no-verifyadvisory anchored to the REQ-051 hook security model.cargo install+language: systemvs.additional_dependencies: ['rivet==0.8.0']).rivet.yamlpresence vs.rivet-validatehook presence. Produce a gap list (output: issue comment ordocs/adoption-status.md). Audit script landed atscripts/audit-rivet-validate-adoption.sh(smoke-tested locally — finds rivet's own checkout). Cross-repo run deferred — see "Out of scope".What's in this PR
docs/pre-commit.md— rewritten install / version-pin / failure-mode / audit sections.scripts/audit-rivet-validate-adoption.sh— workspace audit script. Walks a directory of sibling clones, classifies eachrivet.yaml-bearing repo as adopted / gap / no pre-commit framework, emits a markdown gap report, exits non-zero on any gap.docs/adoption-status.md— placeholder for the most recent recorded run, plus refresh recipe.Out of scope
Two acceptance bullets need a session that can write to other org repos (this issue-triage agent is restricted to
pulseengine/rivetper org policy):kiln,loom,meld,relay,sigil,spar,synth,gale,wohlclones (and committing the output todocs/adoption-status.md) is the operator's next step. Phase 4 of the V&V coverage initiative envisions a CI job that does this on a schedule.Test plan
bash -n scripts/audit-rivet-validate-adoption.sh— syntax clean.RIVET_AUDIT_QUIET=1 scripts/audit-rivet-validate-adoption.sh /home/user→ reportsrivetas adopted (1/1, 0 gaps), exit 0.cargo run --release -p rivet-cli -- validate— error count unchanged fromorigin/mainbaseline (6 errors / 140 warnings; the 6 errors live in thespar:external fixture and are unaffected by docs/script edits).Closes #187 once cross-repo run + per-repo issue filing happen separately, per the issue body's two-line scope split.
🤖 Generated with Claude Code — issue-triage agent run 2026-05-07.
Generated by Claude Code