gitflow skill
Manage a gitflow branching workflow including feature, release, and hotfix branches with versioned releases and changelog generation.
- GitHub stars
- 8
- Files
- 7
- Last commit
- Oct 28, 2026
- License
- MIT
- Allowed tools
- —
What does the gitflow skill do?
gitflow manages a gitflow branching workflow including feature, release, and hotfix branches with versioned releases and changelog generation.
Summary generated from the skill's SKILL.md.
About the gitflow skill
Managing complex branching strategies like gitflow is what this skill enables for developers working with production-ready repositories. It automates the lifecycle of feature, release, and hotfix branches while ensuring the main production branch remains stable. An agent should load this tool when a user needs to promote development work to production, coordinate an emergency fix, or manage versioned releases.
The skill relies on the GitHub CLI tool to handle pull requests, merges, and releases. It enforces strict safety protocols, such as verifying that CI checks are green before merging to main and requiring the creation of a break-glass revert pull request after every production deployment. It also handles semantic versioning by updating project manifests like package.json or pyproject.toml and generating changelogs. This tool is specifically designed for the gitflow topology and should not be used for simple single-branch workflows or basic git command education.
What an agent can do with it
- 1Deploy accumulated development workCreate a new release branch from the development branch to prepare accumulated work for production.
- 2Apply an emergency production fixInitiate a hotfix branch directly from the main branch to address an urgent issue in production.
- 3Develop new project featuresStart a new feature branch off the integration branch to build functionality for the next release cycle.
- 4Automate versioned release documentationGenerate a professional changelog and tag a new semantic version during the release process.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the gitflow skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the gitflow skill in Plugin
/plugin marketplace add mgiovani/cc-arsenal /plugin install cc-arsenal@cc-arsenal-marketplace
Install the gitflow skill in Claude Code
~/.claude/skills/gitflow/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/gitflow ~/.claude/skills/gitflowInstall the gitflow skill in Claude Code (project)
.claude/skills/gitflow/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/gitflow .claude/skills/gitflowInstall the gitflow skill in Codex
~/.agents/skills/gitflow/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/gitflow ~/.agents/skills/gitflowInstall the gitflow skill in Gemini CLI
~/.gemini/skills/gitflow/SKILL.md
$ npx degit mgiovani/cc-arsenal/skills/gitflow ~/.gemini/skills/gitflowInstall the gitflow skill in Claude.ai
npx degit mgiovani/cc-arsenal/skills/gitflow gitflow && zip -r gitflow.zip gitflow # claude.ai → Customize → Skills → + → Create skill → Upload a skill → gitflow.zip
SKILL.md
View on GitHubGitflow
This skill covers the full gitflow branching model with two long-lived branches and short-lived branches off them.
mainis production. Merging tomaintriggers your deploy pipeline. Treat every merge tomainas a production deploy that your users will see shortly after.dev(sometimes calleddevelop) is the integration branch. Day-to-day feature and fix work lands here first.- Short-lived branches:
feat/<desc>andfix/<desc>offdev,release/<x.y.z>offdev,hotfix/<x.y.z>offmain.
Pick the flow
Read the matching reference in full and follow it step by step. Each one is self-contained.
| The user wants to... | Flow | Read |
|---|---|---|
Ship the accumulated dev work to production |
Release | references/release.md |
| Get an urgent fix into production now, can't wait for a release | Hotfix | references/hotfix.md |
| Build a new feature or a fix that will ride the next release | Feature | references/feature.md |
If the intent is ambiguous (e.g. "ship the settings fix"), ask one question: is this urgent enough to go straight to production (hotfix), or does it ride the next release (feature now, release later)? Then stop and wait for the answer. Don't pick a flow, name a branch, run a command or propose a version until the user replies.
Universal rails
These apply to every flow. They exist because main is live production and a mistake here is user-visible, so the cost of a shortcut is real.
- Requires
gh(brew install gh) for PRs, merges, and releases. Confirmgh auth statussucceeds before the first PR; if not, stop and tell the user to rungh auth login. mainis a deploy button. Never merge tomainwhile any CI check is not green. The full Definition-of-Done gate runs on a PR tomain; wait for all of it. Poll CI every few minutes rather than tight-looping, to keep token cost sane. No CI pipeline configured on the repo? Skip the wait-for-green step and say so explicitly before merging.- Always update
CHANGELOG.mdduring a release and a hotfix (never per-feature; the changelog is assembled at ship time). Seereferences/changelog.mdfor the format. - Conventional Commits. Follow the Conventional Commits spec. Keep commit messages, PR titles, PR bodies, the changelog, and release notes clean and professional.
- Never force-push. Never bypass git hooks (
--no-verifyor equivalent). The pre-push hooks are part of the safety net. If a push fails due to a hook, investigate and root-fix the underlying issue; never bypass. - Stage only the files you intend. Prefer
git add <specific-files>over blanket staging commands. Verify what you are about to stage withgit diff --stagedbefore committing. - Verify before every push. Run
git log --oneline <base>..HEADandgit diff --stat <base>..HEADso you know exactly what is going to the remote, especially before anything that touchesmain. - After any merge to
main(release or hotfix), open a break-glass revert PR and leave it OPEN. It is the one-click rollback. Never merge it yourself. See the shared procedure inreferences/release.md(the revert step is identical for hotfix).
Versioning
Semantic versioning. The current version lives in your project manifest (package.json, pyproject.toml, Cargo.toml, etc.) on both long-lived branches (kept in sync; both are at the last released version). No version manifest in the repo? Version via the latest git tag alone and skip the bump-file step.
- Release: bump minor for new features (e.g.
1.1.0to1.2.0), major for breaking changes. - Hotfix: bump patch (e.g.
1.1.0to1.1.1). - The tag is
v<x.y.z>, annotated, placed on the merge commit onmain.
Merge methods (they differ by target, on purpose)
| Merge | Method |
|---|---|
Feature/fix PR into dev |
Squash merge (one clean commit per PR with the (#NNN) suffix). This keeps dev history readable. |
release/* or hotfix/* into main |
Merge commit (--no-ff). This preserves the release as a first-parent merge so the break-glass revert (git revert -m 1) is clean. |
Back-merge release/* or hotfix/* into dev |
Merge commit. |
Delete short-lived branches yourself once they are merged everywhere they need to go.
Stay in the loop
These flows touch production. When CI is running or a deploy is in flight, report each milestone to the user as it lands (CI green, merged, deploy healthy, tagged) rather than going silent. If any gate is red, stop and root-fix; do not merge around it.
Files in this skill
7gitflow skill questions
How do I install the gitflow skill in Claude Code?
Run npx degit mgiovani/cc-arsenal/skills/gitflow ~/.claude/skills/gitflow. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the gitflow skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What is the difference between a release and a hotfix in this workflow?
A release is used to ship accumulated work from the dev branch to production, while a hotfix is used to get an urgent fix into production immediately without waiting for a full release cycle.
Which merge method should be used for feature branches?
Feature and fix PRs into the dev branch should use a squash merge to keep the history readable.