Skip to content

skills: integrate varve + red-first oracle rule (plugin 0.20.0) - #162

Open
avrabe wants to merge 2 commits into
mainfrom
skills/varve-and-red-first
Open

skills: integrate varve + red-first oracle rule (plugin 0.20.0)#162
avrabe wants to merge 2 commits into
mainfrom
skills/varve-and-red-first

Conversation

@avrabe

@avrabe avrabe commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

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

#161 claim verdict
14 releases (v0.12.1) 15 — v0.13.0 had landed
layer carries 8 tools 9 — the issue omitted ordeal
signed, offline-verifiable cosign verify-blob OK; varve verifysignature OK, 9 tool(s) match their signed digests
no PATH fallback ✅ shim outside a pin exits 1; inside, exits 0
varve status surfaces staleness ⚠️ not today — needs an ingested line-status envelope, and none is published

Two things I could not have written honestly without running them:

  • Tamper detection bites. Appending one byte to rivet inside the core: tool 'rivet' does not match its signed digest … the binary was altered. Green again after restore.
  • Realms beat the ambient environment. A bogus VARVE_TRUST_ROOT makes varve verify exit 1 when the pin names no realm, and is ignored when it names one — confirming REQ-REALM-001, with the no-realm case serving as the control that proves the test isn't vacuous.

Scope decisions

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

  • 16/16 skills parse under strict YAML; names match directories; all carry versions
  • plugin 0.19.0 → 0.20.0

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

…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

oracle-gate-a-change: add the red-first rule — an oracle that passes before the change measures nothing

1 participant