name: gitflow-workflow
description: Use this skill for GitFlow tasks: starting/finishing features, releases, hotfixes; managing branches; versioning; or general GitFlow operations.
user-invocable: false
allowed-tools: Read
version: 0.1.0
Purpose
All detailed command manuals live under ./references/ and should be consulted when you need exact flags/options.
Required invariants (used by the 6 instruction-type skills)
Preflight
Before any start/finish operation:
- Confirm working tree is clean (use
git status to verify).
- Identify current branch and verify the branch type matches the operation (
feature/*, hotfix/*, release/*).
- Determine the active workflow preset (Classic GitFlow vs GitHub Flow vs GitLab Flow) to identify correct base/target branches.
Branch naming
- Use kebab-case and a strict prefix:
<type>/<kebab-case> (e.g. feature/user-authentication).
Finish behavior
- Prefer non-fast-forward merges when finishing (e.g.
--no-ff) to preserve a visible integration history, unless the repo workflow config says otherwise.
- Run tests if available before finishing; fix failures before merging.
- After finishing hotfix/release, ensure the integration branch receives the changes (often merging back into
develop).
- Delete topic branches locally and remotely after finishing when policy allows.
Changelog generation
When updating CHANGELOG.md during finish-release or finish-hotfix operations, follow these principles:
Core principle: Include all commits that represent user-facing changes since the previous version tag. Exclude internal-only changes (build, CI, tooling) and administrative commits (merges, releases).
Note: The finish-feature operation updates the [Unreleased] section without filtering, as features are already user-facing by nature.
Commit collection process for releases and hotfixes:
- Identify the previous version tag (e.g.,
v1.5.0)
- Collect commits:
git log --oneline <previous-tag>..HEAD
- Filter commits using conventional commit format, applying the user-facing principle:
- Include: Commits that affect end users, API consumers, or documented behavior (e.g.,
feat, fix, refactor, docs, perf, deprecate, remove, security)
- Exclude: Internal tooling (
chore, build, ci), test-only changes (test), merge commits, release commits
- Map commit types to appropriate Keep a Changelog sections (
Added, Changed, Deprecated, Removed, Fixed, Security)
- Format entries using present/imperative tense and user-facing language
- Merge repetitive items and include sufficient context to understand impact
See ${CLAUDE_PLUGIN_ROOT}/examples/changelog.md for the standard format.
Minimal templates (what the 6 skills assume)
The operation-specific templates have been moved into the corresponding start-* / finish-* skills to keep those tasks self-contained.
Reference index
./references/context-gathering.md
./references/naming-rules.md
./references/workflow-presets.md
./references/versioning-and-tags.md
./references/commands-core.md
./references/commands-topic.md
External References
1---2name: gitflow-workflow3description: All detailed command manuals live under ./references/ and should be consulted when you need exact flags/options.4---5
6---
7name: gitflow-workflow
8description: Use this skill for GitFlow tasks: starting/finishing features, releases, hotfixes; managing branches; versioning; or general GitFlow operations.
9user-invocable: false
10allowed-tools: Read
11version: 0.1.0
12---
13
14## Purpose
15
16All detailed command manuals live under `./references/` and should be consulted when you need exact flags/options.
17
18## Required invariants (used by the 6 instruction-type skills)
19
20### Preflight
21
22Before any start/finish operation:
23- Confirm working tree is clean (use `git status` to verify).
24- Identify current branch and verify the branch type matches the operation (`feature/*`, `hotfix/*`, `release/*`).
25- Determine the active workflow preset (Classic GitFlow vs GitHub Flow vs GitLab Flow) to identify correct base/target branches.
26
27### Branch naming
28
29- Use kebab-case and a strict prefix: `<type>/<kebab-case>` (e.g. `feature/user-authentication`).
30
31### Finish behavior
32
33- Prefer non-fast-forward merges when finishing (e.g. `--no-ff`) to preserve a visible integration history, unless the repo workflow config says otherwise.
34- Run tests if available before finishing; fix failures before merging.
35- After finishing hotfix/release, ensure the integration branch receives the changes (often merging back into `develop`).
36- Delete topic branches locally and remotely after finishing when policy allows.
37
38### Changelog generation
39
40When updating CHANGELOG.md during `finish-release` or `finish-hotfix` operations, follow these principles:
41
42**Core principle:** Include all commits that represent **user-facing changes** since the previous version tag. Exclude internal-only changes (build, CI, tooling) and administrative commits (merges, releases).
43
44**Note:** The `finish-feature` operation updates the `[Unreleased]` section without filtering, as features are already user-facing by nature.
45
46**Commit collection process for releases and hotfixes:**
471. Identify the previous version tag (e.g., `v1.5.0`)
482. Collect commits: `git log --oneline <previous-tag>..HEAD`
493. Filter commits using conventional commit format, applying the user-facing principle:
50 - **Include**: Commits that affect end users, API consumers, or documented behavior (e.g., `feat`, `fix`, `refactor`, `docs`, `perf`, `deprecate`, `remove`, `security`)
51 - **Exclude**: Internal tooling (`chore`, `build`, `ci`), test-only changes (`test`), merge commits, release commits
524. Map commit types to appropriate Keep a Changelog sections (`Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`)
535. Format entries using present/imperative tense and user-facing language
546. Merge repetitive items and include sufficient context to understand impact
55
56See `${CLAUDE_PLUGIN_ROOT}/examples/changelog.md` for the standard format.
57
58## Minimal templates (what the 6 skills assume)
59The operation-specific templates have been moved into the corresponding `start-*` / `finish-*` skills to keep those tasks self-contained.
60
61## Reference index
62
63- `./references/context-gathering.md`
64- `./references/naming-rules.md`
65- `./references/workflow-presets.md`
66- `./references/versioning-and-tags.md`
67- `./references/commands-core.md`
68- `./references/commands-topic.md`
69
70## External References
71
72- [git-flow-next Documentation](https://git-flow.sh/docs/)
73- [git-flow-next Commands](https://git-flow.sh/docs/commands/)
74- [git-flow-next Cheat Sheet](https://git-flow.sh/docs/cheat-sheet/)