From refute
Pin `refute` as a project-managed dependency at a concrete release tag so collaborators and CI use a known version, via the Go-tool path on Go 1.24+ projects or a project-local release binary otherwise.
How this skill is triggered — by the user, by Claude, or both
Slash command
/refute:pin-refuteThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Recommended model: low. Narrow pinning workflow with explicit commands
Recommended model: low. Narrow pinning workflow with explicit commands and a fixed end-state.
Pin refute to a concrete release for the current project so every
collaborator and CI run uses the same version. Floating tags
(@latest, @main, continuous build tags) are refused.
Ask the user for the version to pin, or accept one passed in. The tag
must be a released semver tag like v0.1.3.
Refuse and stop if the user supplies:
@latest@main, @master, @HEAD, or any branch name-dev, -nightly,
-rc, -pre, -snapshot, or a bare commit SHA). Warn the user
that these move or are not durable, and require they pick a real
release tag.If unsure which tag is current, point the user at
https://github.com/shatterproof-ai/refute/releases and stop.
Inspect the project root:
go.mod exists and its go directive is 1.24 or newer
(parse the line go 1.24 / go 1.26 / etc.), use the Go-tool
path (preferred).Do not guess. If go.mod exists but the Go version is below 1.24,
fall through to the binary path and tell the user why.
Propose the command, but do not run it yet:
go get -tool github.com/shatterproof-ai/refute/cmd/refute@<version>
Show the resulting go.mod diff to the user before writing. Generate
it by running go get -tool ...@<version> in a scratch copy, or by
describing the expected tool directive addition / update so the
user can see what will change. Wait for approval.
On approval:
go get -tool command in the project root.go tool refute version and show the output.go.mod (and go.sum) for the user to commit.Pick a directory based on what the project already uses:
tools/ exists, use tools/refute and tools/refute.version..bin/refute and tools/refute.version (create
tools/ for the version file).Propose the changes before writing:
tools/refute.version containing the single line
<version> (e.g., v0.1.3).https://github.com/shatterproof-ai/refute/releases/download/<version>/refute-<os>-<arch>
into the chosen directory and chmod +x it.Show the diff for tools/refute.version (a one-line creation or
single-line change) before writing. Wait for approval.
On approval:
tools/refute.version..bin/refute or tools/refute../.bin/refute version (or ./tools/refute version)
and show the output.Note in passing that the chosen directory should be in .gitignore
if the project does not want the binary checked in; the version file
should be committed either way so CI can resolve the pin.
Print a one-line summary: which path was used, the pinned version,
and the verification output. Tell the user to commit the resulting
changes (go.mod/go.sum, or tools/refute.version).
refute for the first time (covered by install-refute).refute-doctor).@latest, @main, branch names): refuse and ask for
a release tag.go.mod and no tools/ or .bin/ writable location: ask
the user where to put the binary; do not guess.npx claudepluginhub shatterproof-ai/agents --plugin refuteCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.