/remote-rollback
Rollback remote dev environment to previous Docker image
$ npx -y skills add bybren-llc/safe-agentic-workflow --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/remote-rollback
Context preview
What this command does when you run it.
Rollback remote dev environment to previous Docker image
Command definition
remote-rollback.mddescription: Rollback remote dev environment to previous Docker image
argument-hint: [commit-sha]
allowed-tools: [Read, Write, Edit, Bash, Grep, Glob]
Rollback the remote development environment to a previous Docker image version.
> **๐ TEMPLATE**: This command is a template. Replace placeholders with your infrastructure values before use. See the **Customization Guide** at the bottom.
Workflow
1. Assess Current Situation
Get current problematic version:
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ CUSTOMIZE: Replace with your SSH and container settings โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker inspect {{APP_CONTAINER_STAGING}} 2>/dev/null | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4 || docker inspect {{APP_CONTAINER_DEV}} | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4"Check current status:
curl -s http://{{REMOTE_HOST}}:{{DEV_PORT}}/api/health 2>/dev/null || echo "Health check failed"Document the issue for Linear ticket creation later.
2. List Available Rollback Targets
Show recent images on remote host:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker images {{REGISTRY}}/{{IMAGE_NAME}} --format 'table {{.Tag}}\t{{.ID}}\t{{.CreatedAt}}'"Cross-reference with git commits to show messages:
git log origin/{{MAIN_BRANCH}} -10 --oneline3. Select Rollback Target
**If argument provided** (commit SHA like `e9722d4`):
- Use specified commit as rollback target
- Verify image exists with that SHA tag
**If no argument provided**:
- Display last 5 available images with commit messages
- Recommend previous stable version (before current)
- Ask user to confirm selection
Default behavior: Select image before current (most common rollback scenario)
4. Pull Rollback Image
Pull the specific version from registry:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker pull {{REGISTRY}}/{{IMAGE_NAME}}:{{TAG_PREFIX}}-{target-sha}"If image not in registry (old version pruned), use local cached image.
5. Update Configuration
Create backup of current config:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && cp {{COMPOSE_FILE}} {{COMPOSE_FILE}}.backup.$(date +%Y%m%d_%H%M%S)"Update docker-compose file to use specific image tag:
# From: image: {{REGISTRY}}/{{IMAGE_NAME}}:latest
# To: image: {{REGISTRY}}/{{IMAGE_NAME}}:{{TAG_PREFIX}}-{target-sha}Use SSH + sed for inline replacement:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && sed -i 's|{{REGISTRY}}/{{IMAGE_NAME}}:latest|{{REGISTRY}}/{{IMAGE_NAME}}:{{TAG_PREFIX}}-{target-sha}|g' {{COMPOSE_FILE}}"6. Restart Services
Restart with rollback image:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && {{DOCKER_SCRIPT}} restart"Monitor startup:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && {{DOCKER_SCRIPT}} logs --tail 50"7. Verify Rollback Success
Check services started:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker ps --filter name={{CONTAINER_PREFIX}}"Verify health endpoint:
curl -s http://{{REMOTE_HOST}}:{{DEV_PORT}}/api/health | jqConfirm correct commit SHA:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker inspect {{APP_CONTAINER_STAGING}} 2>/dev/null | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4 || docker inspect {{APP_CONTAINER_DEV}} | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4"8. Post-Rollback Actions
**If rollback successful**:
- Keep rollback configuration in place
- Create Linear ticket documenting the issue with broken version
- Include error logs and health check failures
- Tag ticket with `bug` and `deployment-rollback` labels
- Notify team via Slack about rollback
**If rollback still has issues**:
- Try rolling back to an even older version
- Check if issue is environmental (database, Redis, etc.)
- Escalate to team for investigation
9. Rollback Report
Provide comprehensive rollback summary:
โฎ๏ธ Remote Dev Environment Rollback
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Problem Detected
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Version: 3a49b85 - feat(ci): add Slack notifications [{{TICKET_PREFIX}}-350]
Issue: Health check failing / Services crashing
Time: Deployed 5 minutes ago
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Rollback Target
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Selected: e9722d4 - style(docs): apply markdown linting fixes [{{TICKET_PREFIX}}-347]
Reason: Last known stable version
Age: 7 hours ago
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Rollback Progress
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[14:30:00] Backup config... โ
{{COMPOSE_FILE}}.backup.20251011_143000
[14:30:05] Pull rollback image... โ
{{TAG_PREFIX}}-e9722d4 (45s)
[14:30:50] Update config... โ
Set to {{TAG_PREFIX}}-e9722d4
[14:30:55] Restart services... โ
Complete (28s)
[14:31:23] Health check... โ
Passed
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Post-Rollback Status
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Running: e9722d4 - style(docs): apply markdown linting fixes [{{TICKET_PREFIX}}-347]
Status: โ
Healthy
URL: http://{{REMOTE_HOST}}:{{DEV_PORT}}
Duration: 1m 23s
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Rollback Complete - Environment Restored
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Next steps:
โข Create Linear ticket for broken version (3a49b85)
โข Include error logs and symptoms
โข Investigate root cause before redeploying
โข Keep this version until fix is verified
To return to latest (when fixed):
/remote-deploy10. Restore to Latest (When Fixed)
When issue is resolved and new build is ready, restore to latest:
# Res
Read more
description: Rollback remote dev environment to previous Docker image argument-hint: [commit-sha] allowed-tools: [Read, Write, Edit, Bash, Grep, Glob]
Rollback the remote development environment to a previous Docker image version.
> **๐ TEMPLATE**: This command is a template. Replace placeholders with your infrastructure values before use. See the **Customization Guide** at the bottom.
Workflow
1. Assess Current Situation
Get current problematic version:
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# โ CUSTOMIZE: Replace with your SSH and container settings โ
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker inspect {{APP_CONTAINER_STAGING}} 2>/dev/null | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4 || docker inspect {{APP_CONTAINER_DEV}} | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4"Check current status:
curl -s http://{{REMOTE_HOST}}:{{DEV_PORT}}/api/health 2>/dev/null || echo "Health check failed"Document the issue for Linear ticket creation later.
2. List Available Rollback Targets
Show recent images on remote host:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker images {{REGISTRY}}/{{IMAGE_NAME}} --format 'table {{.Tag}}\t{{.ID}}\t{{.CreatedAt}}'"Cross-reference with git commits to show messages:
git log origin/{{MAIN_BRANCH}} -10 --oneline3. Select Rollback Target
**If argument provided** (commit SHA like `e9722d4`):
- Use specified commit as rollback target
- Verify image exists with that SHA tag
**If no argument provided**:
- Display last 5 available images with commit messages
- Recommend previous stable version (before current)
- Ask user to confirm selection
Default behavior: Select image before current (most common rollback scenario)
4. Pull Rollback Image
Pull the specific version from registry:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker pull {{REGISTRY}}/{{IMAGE_NAME}}:{{TAG_PREFIX}}-{target-sha}"If image not in registry (old version pruned), use local cached image.
5. Update Configuration
Create backup of current config:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && cp {{COMPOSE_FILE}} {{COMPOSE_FILE}}.backup.$(date +%Y%m%d_%H%M%S)"Update docker-compose file to use specific image tag:
# From: image: {{REGISTRY}}/{{IMAGE_NAME}}:latest
# To: image: {{REGISTRY}}/{{IMAGE_NAME}}:{{TAG_PREFIX}}-{target-sha}Use SSH + sed for inline replacement:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && sed -i 's|{{REGISTRY}}/{{IMAGE_NAME}}:latest|{{REGISTRY}}/{{IMAGE_NAME}}:{{TAG_PREFIX}}-{target-sha}|g' {{COMPOSE_FILE}}"6. Restart Services
Restart with rollback image:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && {{DOCKER_SCRIPT}} restart"Monitor startup:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "cd {{PROJECT_PATH}} && {{DOCKER_SCRIPT}} logs --tail 50"7. Verify Rollback Success
Check services started:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker ps --filter name={{CONTAINER_PREFIX}}"Verify health endpoint:
curl -s http://{{REMOTE_HOST}}:{{DEV_PORT}}/api/health | jqConfirm correct commit SHA:
ssh -i {{SSH_KEY_PATH}} {{REMOTE_USER}}@{{REMOTE_HOST}} "docker inspect {{APP_CONTAINER_STAGING}} 2>/dev/null | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4 || docker inspect {{APP_CONTAINER_DEV}} | grep 'org.opencontainers.image.revision' | cut -d'\"' -f4"8. Post-Rollback Actions
**If rollback successful**:
- Keep rollback configuration in place
- Create Linear ticket documenting the issue with broken version
- Include error logs and health check failures
- Tag ticket with `bug` and `deployment-rollback` labels
- Notify team via Slack about rollback
**If rollback still has issues**:
- Try rolling back to an even older version
- Check if issue is environmental (database, Redis, etc.)
- Escalate to team for investigation
9. Rollback Report
Provide comprehensive rollback summary:
โฎ๏ธ Remote Dev Environment Rollback
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Problem Detected
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Version: 3a49b85 - feat(ci): add Slack notifications [{{TICKET_PREFIX}}-350]
Issue: Health check failing / Services crashing
Time: Deployed 5 minutes ago
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Rollback Target
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Selected: e9722d4 - style(docs): apply markdown linting fixes [{{TICKET_PREFIX}}-347]
Reason: Last known stable version
Age: 7 hours ago
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Rollback Progress
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
[14:30:00] Backup config... โ
{{COMPOSE_FILE}}.backup.20251011_143000
[14:30:05] Pull rollback image... โ
{{TAG_PREFIX}}-e9722d4 (45s)
[14:30:50] Update config... โ
Set to {{TAG_PREFIX}}-e9722d4
[14:30:55] Restart services... โ
Complete (28s)
[14:31:23] Health check... โ
Passed
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Post-Rollback Status
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Running: e9722d4 - style(docs): apply markdown linting fixes [{{TICKET_PREFIX}}-347]
Status: โ
Healthy
URL: http://{{REMOTE_HOST}}:{{DEV_PORT}}
Duration: 1m 23s
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
Rollback Complete - Environment Restored
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Next steps:
โข Create Linear ticket for broken version (3a49b85)
โข Include error logs and symptoms
โข Investigate root cause before redeploying
โข Keep this version until fix is verified
To return to latest (when fixed):
/remote-deploy10. Restore to Latest (When Fixed)
When issue is resolved and new build is ready, restore to latest:
# Res
SAW โ SAFe Agentic Workflow AI Agent Harness for Multi-Agent Team Workflows Built on SAFe methodology (Scaled Agile Framework), adapted for AI agent teams (Now With AI-DLC!) Works for any team with repeatable processes: Software, Marketing, Research, Legal, Operations.
Other commands on safe-agentic-workflow.
- /audit-deps
Run comprehensive dependency audit
Open command - /check-docker-status
Check if {{DEV_MACHINE}} Docker environment needs updating
Open command - /check-workflow
Quick status check of current workflow state
Open command - /deploy-dev
Deploy latest Docker image to {{DEV_MACHINE}} dev environment
Open command - /dev-health
Check {{DEV_MACHINE}} dev environment health dashboard
Open command - /dev-logs
View {{DEV_MACHINE}} dev container logs
Open command

