skills: tool-version provenance + the cross-repo seam (plugin 0.21.0) - #166
Open
avrabe wants to merge 1 commit into
Open
skills: tool-version provenance + the cross-repo seam (plugin 0.21.0)#166avrabe wants to merge 1 commit into
avrabe wants to merge 1 commit into
Conversation
….21.0) Closes #164 and #165. Both field reports tested before any skill was edited. #164 — a version-less evidence claim is unfalsifiable The report claimed differing warning counts between rivet versions. Measured worse: on one unchanged tree (varve @ a640673, 158 artifacts) the VERDICT flips — 0.19.0 FAIL/exit 1, 0.28.0 FAIL/exit 1, 0.32.0 PASS/exit 0. Root cause visible in the output: `unknown artifact type 'verification'`, i.e. an old binary rejecting a type the newer schema ships. So both directions are wrong — an old FAIL can be a schema-capability artifact rather than a finding, and an old PASS can miss rules it never implemented. That is traceability-audit step 0's question one layer down, and it is cross-linked. Pin claim verified: relay's verification-gate.yml and release.yml pin rivet v0.19.0 while the current layer ships 0.32.0 — so the required gate is the laxest check in the system. - oracle-gate-a-change 0.5.0: step 4b, record which oracle - clean-room-verification 0.3.0: the verifier's own version is a claim too - release-execution 0.3.0: the traceability gate records the toolchain #165 — a requirement can be owned outside this repo, both directions The blocking mechanism already exists: `rivet verify` refuses without evidence (measured, exit 1). What rivet has no field for is WHO owns an unrun criterion. external-anchor is not it — that models the inbound supplier boundary (received-as-reqif / polarion-export), not a criterion owed by a downstream consumer. Filed upstream; the skills prescribe the convention that works today. - traceability-audit 0.3.0: "verified is not always decidable inside this repo" — name the owner, hold at implemented, tag it, block the release - release-execution 0.3.0: step 4c, published-contract check BEFORE the tag - pulseengine-feature-loop 0.4.0: the same rule where requirements are written - oracle-gate-a-change: the prompt that generates good kill-criteria — name what would still be false if every check you can run passes roster: varve's coverage boundary stated once — it carries the tools that check our work, not the upstream ones that build it (varve#52). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G5qpB7zvxLvdrvn5YRyj4R
This was referenced Aug 13, 2026
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.
Closes #164. Closes #165. Both tested by execution before any skill was edited.
#164 — measured worse than reported
The report claimed differing warning counts between rivet versions. On one unchanged tree (varve @
a640673, 158 artifacts) the verdict flips:The output names the cause:
unknown artifact type 'verification'— an old binary rejecting a type the newer schema ships. So the rule had to be stronger than "record the version":That is
traceability-auditstep 0's question one layer down, so the new step cross-links it rather than restating it.Pin claim verified, not just repeated: relay's
verification-gate.ymlandrelease.ymlboth pin rivet v0.19.0; the current layer ships 0.32.0. The required gate really is the laxest check in the system.#165 — the block already works; the declaration is what's missing
rivet verifyrefuses to promote without evidence — measured, exit 1. So the mechanism to hold a requirement is there. What rivet has no field for is who owns the unrun criterion.external-anchoris not that field: it models the inbound supplier boundary (source-of-truth,received-as-reqif,received-as-polarion-export) — requirements handed to us. The outbound case, a criterion owed by a downstream consumer, has no typed home. So the skills prescribe the convention that works today (name the owner in the requirement, hold atimplemented, tag it, block the release), and the capability request goes upstream.Scope calls
oracle-gate-a-changestep 3 already mandates kill-criteria; what the report actually adds is the externally-owned case plus one prompt — name what would still be false if every check you can run passes. One line in step 3, not a new methodology section.wasm-tools,cargo-component,wkg; varve#52) — rather than repeated in each skill that mentionsvarve which.Verification
versionline is frontmatter;plugin.jsondiff is exactly one line🤖 Generated with Claude Code
https://claude.ai/code/session_01G5qpB7zvxLvdrvn5YRyj4R