UNPKG

@cloudkinetix/bmad-enhanced

Version:

Cloud-Kinetix enhanced fork of BMAD-METHOD - Breakthrough Method of Agile AI-driven Development with robust versioning and unified validation.

311 lines (215 loc) 6.99 kB
# Rollback Guide - Run {{run-id}} [[LLM: Default path: .bmad-workspace/ck-parallel-dev/runs/{{run-id}}/rollback-guide.md]] [[LLM: This guide documents how to safely rollback changes from this parallel-dev run. Generate alongside pre-execution report for audit trail.]] ## Quick Rollback **Run ID**: {{run-id}} **Executed**: {{execution timestamp}} **Status**: {{COMPLETED|PARTIAL|FAILED}} **Rollback Complexity**: {{LOW|MEDIUM|HIGH}} **Automated Rollback Available**: {{Yes|Partial|No}} ### Immediate Actions If you need to rollback immediately: ```bash # Quick rollback command (if automated rollback available) cd {{project_root}} ./rollback-parallel-dev.sh {{run-id}} # OR Manual rollback (always works) {{List specific commands based on execution state}} ``` ## Execution Summary ### Work Items Executed | Worktree | Branch | Status | Commits | Can Rollback | | -------- | ---------------- | ------------- | ---------- | ------------ | --------- | ----- | -------- | | {{wt1}} | parallel/{{wt1}} | {{ Complete | ⚠️ Partial | Failed}} | {{count}} | {{Yes | Manual}} | | {{wt2}} | parallel/{{wt2}} | {{ Complete | ⚠️ Partial | Failed}} | {{count}} | {{Yes | Manual}} | ### Current State ```bash # Check current state git worktree list git branch -a | grep parallel/ # Main branch status git status git log --oneline -10 ``` ## Rollback Strategies ### Strategy 1: Complete Automated Rollback ({{Available|Not Available}}) [[LLM: Only if all conditions met: clean worktrees, no manual changes, all tracked]] ```bash #!/bin/bash # Automated rollback script echo "Rolling back parallel-dev run {{run-id}}" # Step 1: Verify state if [[ $(git status --porcelain) ]]; then echo "ERROR: Working tree not clean. Commit or stash changes first." exit 1 fi # Step 2: Remove worktrees {{for each worktree}} git worktree remove ../{{worktree}} --force # Step 3: Delete branches {{for each branch}} git branch -D parallel/{{branch}} # Step 4: Reset main if merged {{if changes were merged to main}} git reset --hard {{commit-before-merge}} echo "Rollback complete. State restored to before run {{run-id}}" ``` ### Strategy 2: Selective Rollback (Recommended for Partial Success) When some work items succeeded and others failed: #### Keep Successful Work ```bash # Merge only successful branches git merge parallel/{{successful-branch-1}} git merge parallel/{{successful-branch-2}} # Remove failed work git worktree remove ../{{failed-worktree}} git branch -D parallel/{{failed-branch}} ``` #### Rollback Specific Work Item ```bash # To rollback just one work item cd ../{{worktree}} git log --oneline # Note commits to revert cd {{main-project}} git revert {{commit-hash-1}} {{commit-hash-2}} ``` ### Strategy 3: Manual Step-by-Step Rollback For complex situations or when automated rollback isn't safe: #### Step 1: Document Current State ```bash # Save current state for reference git worktree list > rollback-state-{{timestamp}}.txt git branch -a >> rollback-state-{{timestamp}}.txt git log --oneline -20 >> rollback-state-{{timestamp}}.txt ``` #### Step 2: Clean Up Worktrees ```bash # For each worktree, check and remove cd ../{{worktree-1}} git status # Check for uncommitted changes git stash save "rollback-{{run-id}}-stash" # If needed cd {{main-project}} git worktree remove ../{{worktree-1}} ``` #### Step 3: Handle Branches ```bash # Option A: Delete unmerged branches git branch -D parallel/{{branch-1}} # Option B: Keep for investigation git branch -m parallel/{{branch-1}} investigate/{{branch-1}}-{{date}} ``` #### Step 4: Revert Merged Changes (if applicable) ```bash # If changes were merged to main git log --oneline --grep="parallel/" -20 # Find merge commits # Revert merge commits git revert -m 1 {{merge-commit-hash}} ``` ## Troubleshooting ### "Cannot remove worktree" Error ```bash # Force remove if worktree is in bad state rm -rf ../{{worktree}} git worktree prune ``` ### "Branch has uncommitted changes" ```bash cd ../{{worktree}} git stash save "emergency-rollback-{{timestamp}}" # OR git reset --hard HEAD # LOSES CHANGES! ``` ### "Merge conflicts during rollback" ```bash # Abort the problematic operation git merge --abort # OR git revert --abort # Use alternative strategy git reset --hard {{safe-commit}} ``` ## Verification Steps After rollback, verify system state: ### 1. Check Git State ```bash # No parallel branches remain git branch -a | grep parallel/ # Should be empty # No worktrees remain git worktree list # Should show only main # Clean working tree git status # Should be clean ``` ### 2. Run Tests ```bash # Ensure system still works npm test npm run lint npm run build ``` ### 3. Verify Functionality - [ ] Application starts correctly - [ ] No broken features from partial rollback - [ ] Database/API connections work - [ ] No orphaned resources ## Recovery Data ### Commits Created [[LLM: List all commits created during this run for recovery purposes]] ``` Worktree: {{worktree-1}} - {{commit-hash}} {{commit-message}} - {{commit-hash}} {{commit-message}} Worktree: {{worktree-2}} - {{commit-hash}} {{commit-message}} ``` ### Stashed Changes If any changes were stashed during execution: ``` {{worktree}}: stash@{0} - {{stash-description}} ``` ### File Backups Critical files backed up before execution: ``` .bmad-workspace/ck-parallel-dev/runs/{{run-id}}/backups/ ├── {{file1-backup}} └── {{file2-backup}} ``` ## Post-Rollback Actions ### Report Issues If rollback was needed due to issues: 1. Document what went wrong 2. Save execution logs: `.bmad-workspace/ck-parallel-dev/runs/{{run-id}}/` 3. Report to team lead 4. Update validation rules if needed ### Clean Up Artifacts ```bash # Optional: Archive run data before deletion tar -czf parallel-run-{{run-id}}.tar.gz .bmad-workspace/ck-parallel-dev/runs/{{run-id}}/ # Remove run directory rm -rf .bmad-workspace/ck-parallel-dev/runs/{{run-id}}/ ``` ### Update Documentation - Record lessons learned - Update rollback procedures if needed - Note any manual steps that were required ## Emergency Contacts If automated rollback fails and manual intervention needed: - **Team Lead**: {{contact info from team config}} - **DevOps**: {{contact info from team config}} - **Git Expert**: {{contact info from team config}} --- **Rollback Guide Generated**: {{timestamp}} **Guide Location**: `.bmad-workspace/ck-parallel-dev/runs/{{run-id}}/rollback-guide.md` **Keep this guide until**: {{30 days from execution}} ## Appendix: Understanding What Happened ### Execution Timeline ``` {{timestamp}}: Run initiated {{timestamp}}: Wave 1 started ({{work items}}) {{timestamp}}: Wave 1 completed {{timestamp}}: Wave 2 started ({{work items}}) {{timestamp}}: {{Failure point if applicable}} ``` ### Root Cause (if known) {{Analysis of why rollback was needed}} ### Prevention Recommendations {{Suggestions to prevent similar issues}}