skills: integrate varve + red-first oracle rule (plugin 0.20.0) - #162
Open
avrabe wants to merge 2 commits into
Open
skills: integrate varve + red-first oracle rule (plugin 0.20.0)#162avrabe wants to merge 2 commits into
avrabe wants to merge 2 commits into
Conversation
…0.20.0) Closes the two open skill issues, with every claim tested by execution first (varve 0.13.0, layer 2026.08.2) rather than taken from the issue text. #160 — oracle-gate-a-change 0.4.0 New step 2c "Confirm the oracle is RED — before implementing". 2b proves a gate *runs*; 2c proves it can *fail*. Cites only the instance that could be reproduced: claim-check's `count-max` fails only when n > max, so a pattern matching 0 times stays green — the code's own comment now says so, and `count-min` is the fix. The other two instances in the issue could not be reproduced, so they are not cited as evidence. #161 — varve integration - roster: varve and ordeal added (report-tool-friction already referenced both, but pulseengine-toolchain.md defined neither) - feature-loop 0.3.0: step 0 pins the loop's tools, with the exact copy-pasteable realm setup that was run end-to-end - release-artifact-pipeline 0.3.0: varve layers as a Track B channel, and deposit as an org release-standard enforcer (it excludes tools whose releases lack cosign-signed sums — the workflow records ordeal's exclusion and its rejoin at v0.18.0) - report-tool-friction 0.4.0: report the layer + digest, not just a version - clean-room-verification 0.2.0 + release-execution 0.2.0: independence as a release gate for solo-agent-authored repos (varve REQ-INDEP-001) gate-potency 0.2.0 The varve tamper test lands here, not under #160 — it is a negative control on a shipped check, not a red-first example. Adds the rule that a negative control needs a paired positive one: the same bogus trust root makes `varve verify` exit 1 with no realm and is ignored with one, which isolates the mechanism instead of merely showing something fired. Documents the workflow that works today; the trust-root onboarding gap it works around is filed as pulseengine/varve#34. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G5qpB7zvxLvdrvn5YRyj4R
… refs The [`name`] convention resolves to skills and memory files only; it is never used for tools on main. Three new [`varve`] refs would have resolved to nothing, in a plugin whose subject is not shipping unverified assertions. Uses the roster's bold convention instead, and unnests one bold span that broke the markdown. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G5qpB7zvxLvdrvn5YRyj4R
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 #160 and #161. Per the standing instruction, every proposal was tested by execution before any skill was edited — varve 0.13.0, layer
2026.08.2.What the testing found
ordealcosign verify-blobOK;varve verify→ signature OK, 9 tool(s) match their signed digestsvarve statussurfaces stalenessTwo things I could not have written honestly without running them:
rivetinside the core:tool 'rivet' does not match its signed digest … the binary was altered. Green again after restore.VARVE_TRUST_ROOTmakesvarve verifyexit 1 when the pin names no realm, and is ignored when it names one — confirmingREQ-REALM-001, with the no-realm case serving as the control that proves the test isn't vacuous.Scope decisions
count-maxpolarity bug reproduced (the code's own comment now reads "greens a 0-match"). The other two did not, so they are not cited as evidence — the rule stands on its own.gate-potency, not oracle-gate-a-change: add the red-first rule — an oracle that passes before the change measures nothing #160. It is a negative control on a shipped check, not a red-first example. One home, not two.ordealadded to the roster too.report-tool-frictionalready named it; the roster defined it. Same one-line defect as varve's absence.Frictionless by construction
Step 0 of the feature loop is the exact block that was run end-to-end — two committed files and three commands, no environment variable, because the realm supplies both registry and trust root. The trust-root onboarding gap it works around is filed as pulseengine/varve#34.
Verification
Note: no CI check validates this plugin — the frontmatter check above was run by hand. Worth a follow-up, given the subject matter.
🤖 Generated with Claude Code
https://claude.ai/code/session_01G5qpB7zvxLvdrvn5YRyj4R