Install any skill in seconds. Free to start, no credit card required.
Get Started Free →svgreg/sg-release
Cut a skill-guard release — run preflight checks, determine the next version from conventional commits, push, then merge the release-please PR and verify the published binaries.
Passed 12 of 17 test cases with the skill, and 6 of 17 without it.
and 9 more in the full report
8 fixed7 passed either way6 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
The current tagged version of surfaceguard is v0.4.0. Since that tag, the commit log contains two 'fix:' commits and one 'feat:' commit. What target version should release-please automatically calculate?
| Checked | Without skill | With skill |
|---|---|---|
| Predicts the calculated next version will be 0.4.1. | Missed | Passed |
The instructions your model reads when the skill loads.
Releases are driven by release-please + GoReleaser (.github/workflows/release.yml).
You never create tags or GitHub Releases by hand. The flow is:
conventional commits on main
→ release-please opens/updates a "release PR" (version bump + CHANGELOG)
→ merging that PR creates the vX.Y.Z tag + GitHub Release
→ the goreleaser job attaches cross-platform binaries + checksums.txt
All GitHub interaction uses gh. If gh is unauthenticated, export the keychain token
per-command: GH_TOKEN=$(printf "protocol=https\nhost=github.com\n" | git credential fill | sed -n 's/^password=//p') gh ...
Never print the token.
Branch protection: main is covered by the protect-main ruleset (direct pushes,
force pushes, and deletion are blocked; PRs need 1 approval). Only the repo owner
(admin role) bypasses it — that's who this skill assumes is running it, since step 3
pushes to main directly and step 4 merges the release PR without a review. If git push origin main is rejected with a ruleset/protected-branch error, the invoking user is not
an admin bypass actor: push a feature branch and open a PR instead, and get an approval
before merging — don't try to work around the ruleset.
Run from the repo root:
git status --short — working tree must be clean, or contain only the changes being
released. Never release with unrelated uncommitted edits mixed in.main and synced: git fetch && git status -sb shows no divergence from origin/main.gofmt -l . — empty output.go vet ./... — clean.go test ./... — all pass.go run ./cmd/surfaceguard scan testdata/malicious exits 1;
go run ./cmd/surfaceguard scan testdata/benign exits 0.go run ./cmd/surfaceguard scan .claude/skills/sg-release must pass —
surfaceguard's own skills must survive surfaceguard.test cases passed, vs 6 / 17 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.