# Rollback Planning Instructions
## Objective
Create a comprehensive rollback plan for a release, ensuring quick recovery if deployment issues occur.
## Prerequisites
- Release candidate or deployed release identified
- Previous stable version available
- Understanding of data migration impacts
---
### Identify Release and Target
Load release history from state
What is the context for this rollback plan?
[p] Pre-deployment - Planning ahead for new release
[a] Active issue - Need to rollback now
[r] Review - Updating existing rollback plan
Context:
Store as {{rollback_context}}
**URGENT MODE ACTIVATED**
Load current deployed version
Identify last known good version
Skip optional steps, focus on execution
---
### Version Selection
**Current Version:** {{current_version}}
**Available Rollback Targets:**
| Version | Deployed | Status | Age |
|---------|----------|--------|-----|
{{#each available_versions}}
| {{version}} | {{deployed_date}} | {{status}} | {{age}} |
{{/each}}
Which version should we rollback to?
(Enter version number or select from list):
Store as {{target_version}}
Validate target version exists and is stable
**Rollback Path:** {{current_version}} → {{target_version}}
---
### Impact Analysis
Load changes between versions
Identify database migrations
Check for breaking changes
**Changes to Revert:**
- Stories: {{stories_between_versions.length}}
- Database migrations: {{migrations.length}}
- API changes: {{api_changes.length}}
- Configuration changes: {{config_changes.length}}
{{#if migrations.length}}
**Database Migrations:**
| Migration | Type | Reversible |
|-----------|------|------------|
{{#each migrations}}
| {{name}} | {{type}} | {{reversible ? 'Yes' : 'NO'}} |
{{/each}}
**WARNING:** Some migrations are not reversible. Manual intervention required.
{{/if}}
{{#if breaking_changes}}
**Breaking Changes to Consider:**
{{#each breaking_changes}}
- {{description}}
{{/each}}
{{/if}}
---
### Rollback Procedure
Generate rollback steps based on deployment type
**Pre-Rollback Checklist:**
- [ ] Notify stakeholders of planned rollback
- [ ] Ensure target version artifacts are available
- [ ] Verify database backup exists
- [ ] Confirm rollback team is available
- [ ] Document current error/issue being resolved
**Rollback Steps:**
1. **Announce Maintenance**
- Notify users of planned maintenance
- Enable maintenance mode if available
2. **Stop Traffic**
- Route traffic away from affected services
- Drain existing connections
3. **Database Rollback** {{#if migrations.length}}(if needed){{/if}}
{{#each migrations_to_revert}}
- Revert: {{name}}
```sql
{{down_script}}
```
{{/each}}
4. **Deploy Previous Version**
- Target version: {{target_version}}
- Deployment command: `{{deploy_command}}`
5. **Verify Deployment**
- Run health checks
- Verify critical endpoints
- Check error rates
6. **Restore Traffic**
- Re-enable traffic routing
- Monitor for issues
7. **Post-Rollback**
- Disable maintenance mode
- Notify stakeholders
- Document rollback reason
---
### Verification Checklist
What are the critical checks after rollback?
(Enter comma-separated or press Enter for defaults):
**Health Checks:**
- [ ] Service responds to health endpoint
- [ ] Database connectivity verified
- [ ] Cache connectivity verified
- [ ] External service integrations working
**Functional Checks:**
- [ ] User authentication works
- [ ] Core workflows functional
- [ ] Critical API endpoints responding
- [ ] No elevated error rates
**Performance Checks:**
- [ ] Response times within SLA
- [ ] No memory leaks
- [ ] CPU utilization normal
---
### Escalation Procedures
Define escalation contacts for rollback issues:
Level 1 (On-call):
Level 2 (Engineering Lead):
Level 3 (VP/Director):
Enter contacts:
**Escalation Matrix:**
| Issue | Contact | Response Time |
|-------|---------|---------------|
| Rollback fails | {{level_1}} | Immediate |
| Data inconsistency | {{level_2}} | 15 minutes |
| Extended outage | {{level_3}} | 30 minutes |
---
### Generate Rollback Plan
# Rollback Plan: {{current_version}} → {{target_version}}
**Created:** {{date}}
**Context:** {{rollback_context}}
**Estimated Duration:** {{estimated_duration}}
## Summary
- Current Version: {{current_version}}
- Target Version: {{target_version}}
- Stories Affected: {{stories_between_versions.length}}
- Database Changes: {{migrations.length}}
## Pre-Rollback Checklist
{{pre_rollback_checklist}}
## Rollback Steps
{{rollback_steps}}
## Verification Checklist
{{verification_checklist}}
## Escalation Contacts
{{escalation_matrix}}
## Rollback Command
```bash
{{rollback_command}}
```
---
*Plan generated by BMAD Release Manager*
---
### Save Plan
Save rollback plan to output file
Link plan to release candidate
Update state with rollback plan reference
**Plan Saved:** {{output_file_path}}
---
## Completion
Rollback plan created for **{{current_version}} → {{target_version}}**.
**Summary:**
- Estimated Duration: {{estimated_duration}}
- Database Migrations: {{migrations.length}}
- Manual Steps Required: {{manual_steps_count}}
**Plan Location:** {{output_file_path}}
## EXECUTE ROLLBACK NOW?
Ready to execute rollback?
[y] Yes - execute rollback procedure
[n] No - save plan for later
Choice:
Execute rollback procedure
{{release_id}}
{{current_version}}
{{target_version}}
{{environment}}
{{user_name}}
{{rollback_reason}}
{{current_timestamp}}