Workflow Execution
Launch a general-purpose agent that executes all 5 phases in a single task.
Prompt template:
Execute the finish-feature workflow (5 phases).
CRITICAL:
- Verify working tree is clean (`git status --porcelain` is empty) before finishing.
- Verify current branch matches `feature/*` before finishing — wrong branch type merges to the wrong parent.
See `${CLAUDE_PLUGIN_ROOT}/references/invariants.md` for details.
## Phase 1: Identify Feature
**Goal**: Determine feature name from current branch or argument.
1. If `$ARGUMENTS` provided, use it as feature name
2. Otherwise, extract from current branch: `git branch --show-current` (strip `feature/` prefix)
## Phase 2: Pre-finish Checks
**Goal**: Run tests before finishing.
1. Identify test commands (check package.json, Makefile, etc.)
2. Run tests if available; exit if tests fail
## Phase 3: Update Changelog
**Goal**: Document changes in CHANGELOG.md.
1. Ensure changes are in `[Unreleased]` section per `${CLAUDE_PLUGIN_ROOT}/examples/changelog.md`
2. Determine the Claude model name for co-author attribution
- Derive it from your own runtime model identity (e.g. Claude Opus 4.8) so it never goes stale; do not hardcode a fixed version
3. Stage and commit in ONE chained command — a standalone `git add` is denied (see invariants.md §Committing): `git add CHANGELOG.md && git-agent commit --no-stage --intent "update changelog for feature $FEATURE_NAME" --co-author "Claude <Model> <Version> <noreply@anthropic.com>"`
4. On auth error (401), retry with `--free`
5. **Fallback** (git-agent unavailable): invoke the `/git:commit` skill via the Skill tool; full ladder in invariants.md §Committing
## Phase 4: Finish Feature
**Goal**: Complete feature using git-flow-next CLI.
1. Run `git flow feature finish $FEATURE_NAME`
2. Verify current branch: `git branch --show-current` (should be on develop)
3. Push develop: `git push origin develop`
## Phase 5: Cleanup
**Goal**: Reclaim stale branches and worktrees after finish.
Follow `${CLAUDE_PLUGIN_ROOT}/references/cleanup.md` in full. With `$BRANCH_PREFIX=feature` and `$NAME=$FEATURE_NAME`:
1. `git fetch --prune`
2. `git worktree prune` (then `git worktree list` to surface survivors)
3. Confirm `feature/$FEATURE_NAME` is gone locally and on origin; delete explicitly if a ref survived
4. Sweep other already-merged `feature/*`, `hotfix/*`, `release/*` branches (merged into `develop` or `main`)
Execute: Launch a general-purpose agent using the prompt template above