From cal
Exit hotfix mode. Guided merge chain: hotfix -> main -> feature branches. Cleans up worktree. Usage: /cal:hotfix-done
How this skill is triggered — by the user, by Claude, or both
Slash command
/cal:hotfix-doneThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Purpose:** Structured exit from hotfix mode with guided merge chain, tagging, and worktree cleanup.
Purpose: Structured exit from hotfix mode with guided merge chain, tagging, and worktree cleanup.
Check cal/active-hotfix.json exists. If not, say: "No active hotfix found. Nothing to do."
Read the state file:
cat cal/active-hotfix.json
# Check the hotfix worktree for uncommitted changes
git -C .worktrees/hotfix-$VERSION status --short
If uncommitted changes: Warn and ask to commit first. Do NOT proceed.
The merge chain from active-hotfix.json defines the order. Walk it step by step with user confirmation at each stage.
Show the user what will merge:
# Show commits that will merge
git log main..hotfix/$VERSION --oneline
# Show file summary
git diff main..hotfix/$VERSION --stat
Ask: "Merge hotfix/$VERSION into main? ($N commits, $M files changed)"
If confirmed:
git checkout main
git merge hotfix/$VERSION -m "[hotfix-merge] Merge hotfix/$VERSION into main"
On conflict:
git diff --name-only --diff-filter=UAsk: "Tag this as v$VERSION on main?"
If confirmed:
git tag v$VERSION
For each feature branch in the merge chain (after main):
# Show what will merge
git log $FEATURE_BRANCH..main --oneline
git diff $FEATURE_BRANCH..main --stat
Ask: "Merge main into $FEATURE_BRANCH? ($N commits, $M files changed)"
If confirmed:
git checkout $FEATURE_BRANCH
git merge main -m "Merge main (with hotfix/$VERSION) into $FEATURE_BRANCH"
On conflict: Same protocol — show, explain, offer help, never auto-resolve.
After all merges complete:
# Remove the worktree
git worktree remove .worktrees/hotfix-$VERSION
# Delete the hotfix branch (it's merged)
git branch -d hotfix/$VERSION
# Remove the state file
rm cal/active-hotfix.json
# Return to the parked branch
git checkout $PARKED_BRANCH
Update the ## Current Work section back to normal mode:
## Current Work
**Branch:** `$PARKED_BRANCH`
**Mode:** normal
**Active:** <resume previous ticket or run /cal:next>
Hotfix $VERSION complete.
Merged: hotfix/$VERSION -> main -> $FEATURE_BRANCHES
Tagged: v$VERSION
Worktree: cleaned up
Branch: back on $PARKED_BRANCH
Resume feature work or run `/cal:next` for next ticket.
If the user says "abort" or "cancel" during the merge chain:
If the hotfix branch exists on remote:
git push origin --delete hotfix/$VERSION
Ask before deleting the remote branch.
If new feature branches were created since the hotfix started, they won't be in the merge chain. Cal should check:
git branch --no-merged main
And warn: "These branches don't have the hotfix yet: $BRANCHES. Merge main into them separately."
[hotfix-merge] tag in commit messages allows the main-protect hook to pass.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub pixley-growth/cal-plugin --plugin cal