From git-flow
Use this skill when the user asks an agent to create, prepare, validate, tag, or manage releases by promoting completed work from develop to main with a disciplined Git Flow-inspired release process, release branches, SemVer decisions, changelogs, release PRs, and safe Git/GitHub CLI workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/git-flow:releaseThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this workflow whenever creating or preparing a release. Act like a release
Use this workflow whenever creating or preparing a release. Act like a release engineer: optimize for correctness, traceability, safety, production readiness, and repository hygiene over speed.
develop to main.main represents production-ready code only.develop remains the integration branch for completed development work.release/<version> branch for traceability.develop to main unless the repository
explicitly requires it.scripts/validate.py validates release branch names, SemVer versions,
release branch bases, merge directions, and tag names.references/checklist.md contains the required gates, release PR
template, release notes outline, and post-release summary format. Read it
before starting release work.git status --short before release operations.git reset --hard, git clean, git restore, git checkout --,
force push, forced branch deletion, tag deletion, tag overwrite, or
--no-verify.Run narrow, explicit inspection commands before starting:
git status --short
git branch --show-current
git rev-parse --verify develop
git rev-parse --verify main
gh auth status
Then inspect the release scope with explicit branch names:
git log --oneline main..develop
git diff --stat main..develop
git diff --name-status main..develop
Verify:
develop exists and is the intended source branchmain exists and is the intended production branchdevelop contains only completed, intended release workmain and develop are understoodIf unrelated, incomplete, unsafe, or ambiguous changes are detected, stop and report the issue.
Determine the release version using SemVer unless the project clearly uses another scheme:
Do not guess the version if release impact is ambiguous. Ask for clarification or document the ambiguity as a blocker.
Validate the version and branch name:
python3 scripts/release.py version 1.4.0
python3 scripts/release.py branch release/1.4.0
python3 scripts/release.py base release/1.4.0 develop
Ensure version bumps are consistent across all relevant files. Do not create inconsistent or partial version updates.
develop.release/<version>, for example release/1.4.0.release/latest or
release/final.Allowed release-branch changes:
Disallowed release-branch changes:
Update changelog or release notes if the project uses them. Do not invent changes that are not supported by the inspected diff or commit history.
Summarize user-visible changes clearly. Group changes by category where useful:
Include migration notes when required and rollback considerations when useful.
Run available project validation before promoting to main:
Treat validation failures as hard blockers. Do not bypass checks or hooks. If validation tooling is absent, perform internal checks where possible and document what was checked.
If the repository uses PRs, create a release PR from release/<version> into
main:
gh pr create --base main --head release/1.4.0 \
--title "chore(release): prepare 1.4.0" \
--body-file /path/to/release-pr.md
The release PR must clearly state:
Do not create a release PR with unrelated changes. Do not merge a release PR unless checks pass and approval requirements are satisfied.
Only merge after validation passes.
Required sequence:
Verify source and target branches before every merge.
Verify the working tree is clean.
Validate merge direction:
python3 scripts/validate.py merge release/1.4.0 main
python3 scripts/validate.py merge release/1.4.0 develop
Merge release/<version> into main.
If release-specific changes were made, merge release/<version> back into
develop.
Stop on conflicts and report conflicted files and required decisions.
Ensure develop and main do not diverge unintentionally.
Create a release tag only after main contains the released changes.
v1.4.0 or 1.4.0.main.Validate tags before creating them:
python3 scripts/validate.py tag v1.4.0 1.4.0
After release completion, verify:
main contains the release commitmaindevelopmain and developSummarize the release using the template in
references/checklist.md.
npx claudepluginhub liljamesjohn-archive/codecave --plugin git-flowGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.