skills/release/SKILL.md
Release the current project to the personal Homebrew tap from repo-local release config. Use when the user says "release", "ship", "cut a version", "publish", "make a new tag", or asks how to make a new version available via jwa91/tap.
npx skillsauth add jwa91/agentskills releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This project publishes to the personal Homebrew tap at jwa91/tap. The release path is determined by repo-local config, not by project name.
From the repo root:
.goreleaser.yaml exists, this is a GoReleaser-owned project. Release with:jwa-harden run -- goreleaser release --clean
scripts/release.sh exists, this is a jwa-tobrew script-owned cask or formula project. Release with:jwa-harden run -- ./scripts/release.sh <version> <path/to/artifact>
jwa-tobrew init --kind=go|cask|formula first, or inspect the repo docs for a project-specific release process.If both files exist, prefer .goreleaser.yaml for Go projects and treat the script as legacy unless current repo docs say otherwise.
vX.Y.Z) and release notes from recent commits.jwa-tobrew lint when the repo participates in the jwa-* family policy.jwa-harden doctor should pass.jwa-harden doctor signing.Use this path when .goreleaser.yaml is present. GoReleaser builds the artifacts, creates or updates the GitHub Release, and writes the generated Casks/<name>.rb entry back to jwa91/tap.
Typical local flow:
git tag -a vX.Y.Z -m vX.Y.Z
git push origin vX.Y.Z
jwa-harden run -- goreleaser release --clean
If the repo has CI wired for tag releases, pushing the tag may be enough. Check the repo's .github/workflows/ before also running a local release.
Use this path when scripts/release.sh is present and .goreleaser.yaml is absent. The script wraps jwa-tobrew release with the repo's configured kind/name and expects a bare version plus the artifact path.
Examples:
jwa-harden run -- ./scripts/release.sh 1.2.3 build/App.dmg
jwa-harden run -- ./scripts/release.sh 1.2.3 dist/tool.tar.gz
The script adds the v prefix where needed. Pass the bare version unless the script's own usage says otherwise.
$GITHUB_TOKEN not set: run through jwa-harden run -- from a repo that has .env.template.goreleaser reports a dirty tree: commit, stash, or intentionally discard unrelated local edits before release.notarytool or signing identity missing: run jwa-harden doctor signing and fix the reported prerequisite.jwa-tobrew bump; release from the source repo's GoReleaser config instead.@latest (govulncheck in particular can raise its minimum Go version and break stable pipelines).fetch-depth: 0 or explicit git fetch --tags) so version/changelog rules evaluate correctly.origin.tools
Use the `jwa-harden` CLI for secret-safe command execution, env-template discovery, and signing/notarization preflight checks. Trigger when a command needs secrets, when `.env.template` or 1Password references are involved, or before signed release flows.
documentation
Modify or extend the `jwa-tobrew` scaffolding system — the templates that `init` writes into target projects. Trigger when the user says "add a new scaffold kind", "change what init writes", "update the templates", or asks how the embedded templates are wired.
development
Detect and fix drift between a project and the conventions encoded in `jwa-tobrew`, prek, and the tap ADRs. Trigger when the user says "align", "any drift", "verify conventions", or asks why a particular file/symlink/script is required.
tools
Advise on the stack for a new project. Given what the user wants to build, plus the user's principles and preferences, propose a language + tools as a short written proposal. Use when starting a new project or deciding what to build something in.