--- allowed-tools: Bash(git:*), Read, Edit, Write argument-hint: description: Create a new Git Flow hotfix branch from main for emergency production fixes --- # Git Flow Hotfix Branch Create emergency hotfix branch: **$ARGUMENTS** ## Current Repository State - Current branch: !`git branch --show-current` - Git status: !`git status --porcelain` - Latest production tag: !`git describe --tags --abbrev=0 origin/main 2>/dev/null || echo "No tags on main"` - Main branch status: !`git log main..origin/main --oneline 2>/dev/null | head -3 || echo "No remote tracking for main"` - Commits on main since last tag: !`git log $(git describe --tags --abbrev=0 origin/main 2>/dev/null)..origin/main --oneline 2>/dev/null | wc -l | tr -d ' '` ## Task Create a Git Flow hotfix branch for emergency production fixes: ### 1. Pre-Flight Validation **Critical Checks:** - **Verify hotfix name**: Ensure `$ARGUMENTS` is provided and descriptive - โœ… Valid: `critical-security-patch`, `payment-gateway-fix`, `auth-bypass-fix` - โŒ Invalid: `fix`, `hotfix1`, `bug` - **Check main branch exists**: Ensure `main` branch is present - **Verify no uncommitted changes**: Clean working directory required - **Confirm emergency status**: Hotfixes are for CRITICAL production issues only **โš ๏ธ IMPORTANT: Hotfix Usage Guidelines** Hotfixes are ONLY for: - ๐Ÿ”’ Critical security vulnerabilities - ๐Ÿ’ฅ Production-breaking bugs - ๐Ÿ’ฐ Payment/transaction failures - ๐Ÿšจ Data loss or corruption issues - ๐Ÿ”ฅ System downtime or crashes NOT for: - โŒ Regular bug fixes (use feature branch) - โŒ New features (use feature branch) - โŒ Performance improvements (use feature branch) - โŒ Non-critical issues (wait for next release) ### 2. Create Hotfix Branch Workflow ```bash # Switch to main branch git checkout main # Pull latest production code git pull origin main # Create hotfix branch from main git checkout -b hotfix/$ARGUMENTS # Set up remote tracking git push -u origin hotfix/$ARGUMENTS ``` ### 3. Determine Version Bump Analyze the latest tag to suggest hotfix version: ``` Current production version: v1.2.0 Hotfix version: v1.2.1 Version bump: PATCH (third number incremented) ``` **Hotfix Version Rules:** - Always increment PATCH version (X.Y.Z โ†’ X.Y.Z+1) - Never increment MAJOR or MINOR for hotfixes - Examples: - v1.2.0 โ†’ v1.2.1 - v2.0.5 โ†’ v2.0.6 - v1.5.9 โ†’ v1.5.10 ### 4. Success Response ``` โœ“ Switched to main branch โœ“ Pulled latest production code from origin/main โœ“ Created branch: hotfix/$ARGUMENTS โœ“ Set up remote tracking: origin/hotfix/$ARGUMENTS โœ“ Pushed branch to remote ๐Ÿ”ฅ Hotfix Branch Ready: hotfix/$ARGUMENTS Branch: hotfix/$ARGUMENTS Base: main (production) Will merge to: main AND develop Suggested version: v1.2.1 โš ๏ธ CRITICAL HOTFIX WORKFLOW This is an EMERGENCY production fix. Follow these steps: 1. ๐Ÿ” Identify the Issue - Reproduce the bug - Understand the root cause - Document the impact 2. ๐Ÿ› ๏ธ Implement the Fix - Make MINIMAL changes - Focus ONLY on the critical issue - Avoid refactoring or improvements - Add tests to prevent regression 3. ๐Ÿงช Test Thoroughly - Test the specific fix - Run full regression tests - Test on production-like environment - Verify no side effects 4. ๐Ÿ“ Document the Fix - Update version in package.json - Add entry to CHANGELOG.md - Document the bug and fix - Include reproduction steps 5. ๐Ÿš€ Deploy Process - Create PR to main - Get expedited review - Run /finish to merge and tag - Deploy to production immediately - Monitor for issues ๐ŸŽฏ Next Steps: 1. Fix the critical issue (MINIMAL changes only) 2. Test thoroughly: npm test 3. Update version: v1.2.1 4. Create emergency PR: gh pr create --label "hotfix,critical" 5. Get fast-track approval 6. Run /finish to merge to main AND develop 7. Deploy to production 8. Monitor systems closely โš ๏ธ Remember: - Hotfix will be merged to BOTH main and develop - Tag v1.2.1 will be created on main - Production deployment should happen immediately - Team should be notified of the hotfix ``` ### 5. Error Handling **No Hotfix Name Provided:** ``` โŒ Hotfix name is required Usage: /hotfix Examples: /hotfix critical-security-patch /hotfix payment-processing-failure /hotfix auth-bypass-vulnerability โš ๏ธ IMPORTANT: Hotfixes are for CRITICAL production issues only! For non-critical fixes, use: /feature - Regular bug fixes ``` **Invalid Hotfix Name:** ``` โŒ Invalid hotfix name: "fix" Hotfix names should be: - Descriptive of the issue - Use kebab-case format - Indicate severity/urgency Examples: โœ… critical-security-patch โœ… payment-gateway-timeout โœ… user-data-corruption-fix โŒ fix โŒ bug1 โŒ hotfix ``` **Uncommitted Changes:** ``` โš ๏ธ Uncommitted changes detected in working directory: M src/file.js A test.js Hotfixes require a clean working directory. Options: 1. Commit your changes first 2. Stash them: git stash 3. Discard them: git checkout . โš ๏ธ This is an emergency hotfix. Please clean your working directory. ``` **Main Branch Behind Remote:** ``` โš ๏ธ Local main is behind origin/main by 2 commits โœ“ Pulling latest production code... โœ“ Fetched 2 commits โœ“ Main is now synchronized with production โœ“ Ready to create hotfix branch ``` **Not a Critical Issue:** ``` โš ๏ธ Hotfix Confirmation Required Is this a CRITICAL production issue that requires immediate attention? Critical issues include: - Security vulnerabilities - Production system failures - Data loss or corruption - Payment/transaction failures If this is NOT critical, consider: - Creating a feature branch instead - Waiting for the next release cycle - Using regular bug fix workflow Proceed with hotfix? [y/N] ``` ### 6. Hotfix Checklist ``` ๐Ÿ”ฅ Emergency Hotfix Checklist Issue Identification: - [ ] Bug is confirmed and reproducible - [ ] Root cause is identified - [ ] Impact is documented - [ ] Stakeholders are notified Development: - [ ] Fix is minimal and focused - [ ] No unnecessary changes included - [ ] Tests added to prevent regression - [ ] Code reviewed (if time permits) Testing: - [ ] Fix verified in local environment - [ ] Unit tests passing - [ ] Integration tests passing - [ ] Tested on production-like environment - [ ] No side effects detected Documentation: - [ ] CHANGELOG.md updated - [ ] Version bumped (PATCH) - [ ] Bug description documented - [ ] Fix explanation documented - [ ] Deployment notes prepared Deployment: - [ ] PR created with "hotfix" and "critical" labels - [ ] Fast-track approval obtained - [ ] Production deployment plan ready - [ ] Rollback plan documented - [ ] Monitoring alerts configured - [ ] Team notified of deployment Post-Deployment: - [ ] Fix verified in production - [ ] Systems monitored for issues - [ ] Metrics show improvement - [ ] Hotfix merged back to develop - [ ] Post-mortem scheduled (if needed) ``` ### 7. Version Update Process After implementing the fix, update the version: ```bash # Update package.json version (PATCH bump) npm version patch --no-git-tag-version # Update CHANGELOG.md cat >> CHANGELOG.md << EOF ## [v1.2.1] - $(date +%Y-%m-%d) - HOTFIX ### ๐Ÿ”ฅ Critical Fixes - Fix $ARGUMENTS: [brief description] - Root cause: [explanation] - Impact: [who/what was affected] - Resolution: [what was fixed] EOF # Commit version bump git add package.json CHANGELOG.md git commit -m "chore(hotfix): bump version to v1.2.1 Critical fix for $ARGUMENTS ๐Ÿค– Generated with Claude Code Co-Authored-By: Claude " ``` ### 8. Create Emergency PR ```bash gh pr create \ --title "๐Ÿ”ฅ HOTFIX v1.2.1: $ARGUMENTS" \ --body "$(cat <<'EOF' ## ๐Ÿ”ฅ Emergency Hotfix **Severity**: Critical **Version**: v1.2.1 **Issue**: $ARGUMENTS ## Problem Description [Detailed description of the production issue] ## Root Cause [Explanation of what caused the issue] ## Fix Implementation [Description of the fix applied] ## Testing - [x] Issue reproduced locally - [x] Fix verified locally - [x] Unit tests passing - [x] Integration tests passing - [x] Tested on staging environment ## Deployment Plan 1. Merge to main 2. Tag as v1.2.1 3. Deploy to production immediately 4. Monitor for 30 minutes 5. Merge back to develop ## Rollback Plan [How to rollback if issues occur] ## Monitoring [What to monitor post-deployment] --- **โš ๏ธ This is a critical production hotfix requiring immediate deployment** ๐Ÿค– Generated with Claude Code EOF )" \ --base main \ --head hotfix/$ARGUMENTS \ --label "hotfix,critical,priority-high" \ --assignee @me \ --reviewer team-leads ``` ## Git Flow Integration **Hotfix Workflow in Git Flow:** ``` main (v1.2.0) โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ (after hotfix merge) v1.2.1 โ”‚ โ””โ”€โ–บ hotfix/$ARGUMENTS โ”‚ โ””โ”€โ–บ (merges back to both) โ”‚ develop โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ (receives hotfix) ``` **Important:** - Hotfixes branch from `main` (production) - Hotfixes merge to BOTH `main` AND `develop` - Tags are created on `main` after merge - Production deployment happens immediately ## Environment Variables - `GIT_FLOW_MAIN_BRANCH`: Main branch name (default: "main") - `GIT_FLOW_DEVELOP_BRANCH`: Develop branch name (default: "develop") - `GIT_FLOW_PREFIX_HOTFIX`: Hotfix prefix (default: "hotfix/") ## Related Commands - `/finish` - Complete hotfix (merge to main and develop, create tag, deploy) - `/flow-status` - Check current Git Flow status - `/feature ` - Create feature branch (for non-critical fixes) - `/release ` - Create release branch ## Best Practices **DO:** - โœ… Use hotfixes ONLY for critical production issues - โœ… Keep changes minimal and focused - โœ… Test thoroughly before deploying - โœ… Document the issue and fix clearly - โœ… Notify team immediately - โœ… Merge back to develop after production deployment - โœ… Monitor production closely after deployment - โœ… Conduct post-mortem if appropriate **DON'T:** - โŒ Use hotfix for regular bug fixes - โŒ Add new features to hotfix - โŒ Refactor code during hotfix - โŒ Skip testing to save time - โŒ Forget to merge back to develop - โŒ Deploy without proper review - โŒ Skip documentation - โŒ Ignore monitoring after deployment ## Post-Hotfix Actions After successful hotfix deployment: 1. **Verify Fix in Production** - Monitor error rates - Check affected functionality - Verify metrics return to normal 2. **Update Documentation** - Document the incident - Update runbooks if needed - Share learnings with team 3. **Merge to Develop** - Ensure hotfix is in develop branch - Resolve any merge conflicts - Push to remote 4. **Post-Mortem (if needed)** - Schedule review meeting - Identify prevention measures - Update processes if needed 5. **Cleanup** - Delete hotfix branch - Archive related documentation - Update incident tracking