Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action> sub-command pattern. Git-flow consolidated from 8→5 commands (commit variants absorbed into --push/--merge/--sync flags). Dispatch files, name: frontmatter, and cross-reference updates for all plugins. Phase 2: Design documents for 8 new plugins in docs/designs/. Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate, saas-react-platform, saas-test-pilot, data-seed, ops-release-manager, ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents, skills, README, and claude-md-integration. Marketplace grows from 12→20. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
name, description
| name | description |
|---|---|
| deploy rollback | Generate a rollback plan to revert a deployment to the previous state |
/deploy rollback
Generate a rollback plan for reverting a deployment.
Skills to Load
skills/visual-header.mdskills/rollback-patterns.mdskills/compose-patterns.md
Agent
Delegate to agents/deploy-planner.md.
Usage
/deploy rollback [--service=<name>] [--dry-run] [--strategy=<recreate|blue-green>]
Options:
--service- Target a specific service (default: entire stack)--dry-run- Show plan without executing--strategy- Rollback strategy:recreate(default) orblue-green
Instructions
Execute skills/visual-header.md with context "Rollback Planning".
Phase 1: Current State Capture
- List running containers for the stack:
docker compose ps - Record current image digests:
docker compose images - Check for volume data that may need backup:
docker volume ls --filter name=<stack> - Record current environment variables from
.env - Save current
docker-compose.ymlhash for verification
Phase 2: Previous State Detection
Attempt to identify the previous deployment state:
- Check git history for previous
docker-compose.yml:git log --oneline -5 -- docker-compose.yml - Check Docker image history for previous tags
- Look for backup files:
docker-compose.yml.bak,.env.bak - If no previous state found, warn user and ask for target state
Phase 3: Rollback Plan Generation
Apply patterns from skills/rollback-patterns.md:
Strategy: recreate (default)
- Stop current containers:
docker compose down - Restore previous docker-compose.yml from git
- Restore previous .env file
- Pull previous images if needed
- Start containers:
docker compose up -d - Verify health checks pass
Strategy: blue-green
- Start previous version alongside current (different ports)
- Verify previous version health
- Switch reverse proxy to point to previous version
- Stop current version
- Rename previous version to use standard ports
Phase 4: Data Considerations
- Identify services with persistent volumes (databases, file storage)
- Check if database migrations were run (irreversible changes)
- Recommend volume backup before rollback:
docker run --rm -v <volume>:/data -v $(pwd):/backup alpine tar czf /backup/<volume>.tar.gz /data - Flag if rollback may cause data loss
Phase 5: Output
## Rollback Plan
### Target
- Service: myapp-stack
- Current: v2.1.0 (deployed 2h ago)
- Rollback to: v2.0.3
### Steps
1. Backup database volume (estimated: 2min)
docker run --rm -v myapp_db:/data -v $(pwd):/backup alpine tar czf /backup/db-backup.tar.gz /data
2. Stop current stack
docker compose down
3. Restore previous config
git checkout HEAD~1 -- docker-compose.yml
4. Start previous version
docker compose up -d
5. Verify health
docker compose ps
### Warnings
- Database migration v45 was applied — may need manual revert
- Volume myapp_uploads has 230MB of new data since last deploy
### Estimated Downtime
- Strategy: recreate — ~30 seconds
- Strategy: blue-green — ~0 seconds (requires port availability)
User Request
$ARGUMENTS