Skip to content

release

Ship a release without forgetting a step. This skill detects your repo type, runs mode-specific pre-flight checks, creates the GitHub issue, commits, tags, pushes, and drafts release notes — pausing to confirm at every destructive step.

Install with your preferred package manager.

Terminal window
gh skill install oharu121/skills release

Releasing by hand is a checklist people forget. Did you update the CHANGELOG? Create the issue? Tag the right SHA? Push the tag? Write release notes in the right language? This skill turns all of that into a three-phase flow (Pre-flight → Issue → Release) with AskUserQuestion gating every step that touches remote state.

The skill detects what kind of repo you’re in — skills-gems, npm, python, monorepo, or generic — and runs mode-specific pre-flight (e.g., npm test for npm, uv run pytest for Python). It creates the GitHub issue and milestone, prompts for version bump, drafts a plan file from a template, commits, tags, pushes, and drafts the GitHub release — all in the language you choose (English, Japanese, or anything else).

If it’s your first run, the skill offers to save preferences (language, repo mode, whether to confirm pre-flight) into .claude/skills/release/config.json so subsequent releases skip the detection prompts.

See the Reference for the full 13-step workflow, per-mode pre-flight scripts, and error-handling matrix.

  • You release irregularly and the checklist drifts from your memory
  • You maintain multiple repos (npm, Python, skills-gems) and want one muscle memory across all of them
  • You ship bilingual release notes and don’t want to translate by hand each time
  • You want every release to have an issue, a plan file, a tag, and GitHub release notes — consistently
  1. Phase 0 — detection. The skill checks package.json, pyproject.toml, skills/, and recent changes to classify the repo. You confirm the detected mode or override it.

  2. Phase 1 — pre-flight. The skill runs the mode-specific checks (tests, lint, README/CHANGELOG sync). If checks fail, the skill stops; you fix and rerun.

  3. Phase 2 — issue. You pick a language, title, labels, and version bump (patch/minor/major/skip). The skill drafts a plan file, creates the milestone if needed, and opens the GitHub issue.

  4. Phase 3 — release. Status check, commit, tag, push, and GitHub release creation — each gated by AskUserQuestion. Release notes come from the plan file, in the chosen language.

  5. Phase 4 — close. Issue closed with a link to the release (or to the commit if version was skipped). First run prompts to save preferences to config.json.

You’ve finished a feature branch with changes under skills/. Run:

/release

The skill detects skills-gems mode, runs pre-flight (README/CHANGELOG checks), asks for language (English) and title (three suggestions + “Other”), picks a patch bump (v0.3.1), drafts .plans/add-xyz-skill.md, creates issue #42 with the enhancement label under milestone v0.3.1, and returns:

Issue created: https://github.com/oharu121/skills/issues/42 — proceeding with release automation…

It commits feat(skills): add xyz skill (#42), tags v0.3.1, pushes both, creates the GitHub release with plan notes as the body, and closes the issue with Released in v0.3.1.

ModeTriggerPre-flight focus
skills-gemsskills/ dir changedREADME/CHANGELOG sync, skill lint
npmpackage.json presentnpm test, lint
pythonpyproject.toml or uv.lockuv run pytest, lint
monorepoTwo or more of the abovePer-module pre-flight
genericNone of the aboveMinimal checks

First run offers to save preferences to .claude/skills/release/config.json:

{
"language": "en",
"repo_mode": "skills-gems",
"preflight_confirm": false
}

When set, detection and language prompts are skipped, and pre-flight runs silently without asking “Proceed?”.

View SKILL.md on GitHub — full workflow, per-mode pre-flight patterns, templates, and error handling. See the Reference for the 13-step detail.