han-release

Featured

Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as {plugin-name}--v{version} so a version-constrained dependency can resolve, and publish a GitHub release crediting every merged pull request and closed issue to the people behind it. Use when releasing, cutting a release, shipping a new Han version, publishing release notes, or tagging a version. Always stops for approval before creating any tag, because a pushed tag is never moved. Requires the gh CLI, jq, the claude CLI, and a clean git checkout. This is a repository-maintenance skill for the Han repo itself, not a general review or PR skill — use code-review for local review, post-code-review-to-pr to post a PR review, and update-pr-description for PR bodies.

Code & Development 263 stars 23 forks Updated today MIT

Install

View on GitHub

Quality Score: 91/100

Stars 20%
81
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

<!-- `AskUserQuestion` is deliberately absent from `allowed-tools`, and must stay absent. Listing it makes Claude Code's permission evaluator auto-approve the tool through its always-allow path and return empty answers without ever rendering the prompt, so every gate in this skill would silently pass. See han-plugin-builder/skills/guidance/references/skill-building-guidance/allowed-tools-AskUserQuestion.md. The tool still works unlisted; it prompts once for permission. --> ## Pre-requisites - gh CLI: !`which gh 2>/dev/null || echo "not installed"` - jq: !`which jq 2>/dev/null || echo "not installed"` - claude CLI: !`which claude 2>/dev/null || echo "not installed"` - git repo: !`git rev-parse --is-inside-work-tree 2>/dev/null || echo NO` **If `gh`, `jq`, or `claude` reads `not installed`, or this is not a git repo:** tell the operator which prerequisite is missing and that it must be installed/configured before `/han-release` can run, then **immediately stop**. The skill cannot proceed without all four. The `claude` CLI is what creates the per-plugin tags in Step 10. Every invocation of it in this skill goes through the shell's `command` builtin (`command claude ...`), never a bare `claude`, because an operator's shell commonly wraps `claude` in a function or alias that blocks waiting for terminal input. The `which` probe above resolves the same way a bare call would, so it reports the wrapper's presence rather than the executable's; treat a non-empty result as "the tool ...

Details

Author
testdouble
Repository
testdouble/han
Created
4 months ago
Last Updated
today
Language
Shell
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

Data & Documents Featured

cut-release

Cuts a new versioned release of claude-code-trace end-to-end without asking any questions. Detects commits since the last ancestral tag, classifies them with conventional-commit rules to pick the semver bump, bumps every version-bearing file in sync, writes the CHANGELOG entry, commits and tags on a release branch, pushes the tag to trigger the GitHub Actions release pipeline, fast-forwards `main` onto the release commit and pushes it, then cleans up the local branch. Use this skill whenever the user mentions cutting, tagging, bumping, or shipping a release — including "cut a release", "release v1.2.3", "tag and release", "bump version", "publish a release", "do a patch release", or "make a new release". Trigger even when the user does not name the version — the skill computes it. Also use proactively when the user finishes a unit of work and asks to publish it.

363 Updated today
delexw
AI & Automation Listed

release

Prepare a version release — bump version files, commit, and tag. Just run /release with no arguments.

3 Updated today
RockyHong
DevOps & Infrastructure Listed

release

Runs a repository's full release process end to end, driven by a `.claude/release.yml` committed to that repo — no hardcoded repo, workflow, or branch names. `/release init` interviews you, writes that config, and opens a PR for it. `/release dry-run` rehearses a release read-only, changing nothing. A full run baselines from the last successful release, reviews every PR merged since, audits docs and screenshots and stops with an [ON HOLD] issue if anything is stale (it reports staleness, never fixes it), opens a labelled review issue for explicit human approval, confirms the ref, deploys the docs site first, dispatches the release workflow with the approved issue's number, tracks it, locates the resulting PR or GitHub Release, announces it, and writes a self-contained HTML record of what shipped. Use on /release, or any ask to cut, ship, publish, or promote a release. Not for feature work (/code-development) or a red pipeline (/ci-pipeline). Needs `gh` or a GitHub MCP server — Claude Code only.

0 Updated 4 days ago
dawg-io