Skip to main content

rollback

Rolls back git commit, DB migration, or deploy to known-good with safety + health checks. Triggers: rollback, revert deploy, revert migration, rollback commit, git revert.

소스 정보

저장소
softspark/ai-toolkit
최근 소스 활동
2026년 8월 6일 06:57
감지된 SKILL.md 언어
영어
스타
179
포크
21

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
rollback
description
Rolls back git commit, DB migration, or deploy to known-good with safety + health checks. Triggers: rollback, revert deploy, revert migration, rollback commit, git revert.
effort
medium
disable-model-invocation
true
argument-hint
[target: git/db/deploy]
allowed-tools
Bash, Read
hooks
{"PostToolUse":[{"matcher":"Bash","hooks":"[Truncated]"}]}
scripts
["scripts/rollback_info.py"]
# /rollback - Safe Rollback $ARGUMENTS ## What This Command Does Safely revert changes with appropriate safety checks and confirmation. ## Rollback Types ### 1. Git Rollback ```bash # Revert last commit (creates new commit) git revert HEAD --no-edit # Revert specific commit git revert <commit-sha> --no-edit # Revert to specific state (CAUTION) git reset --soft <commit-sha> # Keep changes staged ``` ### 2. Database Migration Rollback | Tool | Command | |------|---------| | Alembic | `alembic downgrade -1` | | Prisma | `npx prisma migrate resolve --rolled-back <name>` | | Laravel | `php artisan migrate:rollback --step=1` | | Django | `python manage.py migrate <app> <previous>` | | Flyway | `flyway undo` | ### 3. Deployment Rollback | Platform | Command | |----------|---------| | Kubernetes | `kubectl rollout undo deployment/<name>` | | Docker Compose | `docker compose up -d --force-recreate` (with previous image tag) | | Heroku | `heroku rollback` | ## Gather Rollback Context Run the rollback info script to assess current state before rolling back: ```bash python3 ${CLAUDE_SKILL_DIR}/scripts/rollback_info.py ``` Returns JSON with: - `git{}` - current/previous commit, branch, commits ahead, uncommitted changes - `migrations{}` - detected tool (alembic/prisma/laravel/django/drizzle), rollback command - `docker{}` - running services and image tags ## Safety Checks (MANDATORY) Before any rollback: 1. Confirm what will be reverted (show diff/plan) 2. Check for dependent changes that may break 3. Verify backup exists (for database rollbacks) 4. Get explicit user confirmation ## Usage Examples ``` /rollback # Interactive - asks what to rollback /rollback git last # Revert last git commit /rollback migration # Rollback last database migration /rollback deploy # Rollback to previous deployment ``` > **CRITICAL: Always confirm with the user before executing destructive rollback operations.** ## Rules - **MUST** confirm the current state AND the target state before rolling back — surface the diff in plain English - **MUST** verify a recent backup exists (for DB rollbacks) or explicitly warn the user that none was found - **NEVER** roll back without an explicit "yes" from the user — rollbacks are irreversible in the user-experience sense even when technically reversible - **NEVER** `git reset --hard` on a branch others have pulled from — it rewrites shared history - **CRITICAL**: after any rollback, run a health check (`/health` or the project's equivalent) to confirm the target state is stable — a "successful" rollback to a broken baseline is worse than the original state - **MANDATORY**: log the rollback with timestamp, scope, and reason — post-mortems need this trail ## Gotchas - `git revert` creates a **new commit** that undoes the target commit. The reverted commit is still in history — if the target commit was sensitive (secret, PII), revert alone does not remove it. Use history rewriting tools for that. - Database migration rollbacks sometimes **lose data**. A forward migration that added a NOT NULL column with a default, then populated it with user data, cannot restore the column contents on rollback — the data is gone. - Kubernetes `kubectl rollout undo` rolls back to the previous ReplicaSet, not to a specific version. If you need "rollback to v1.2.3 specifically", track deployments by image tag and use `kubectl set image`, not `rollout undo`. - Heroku and similar PaaS platforms `rollback` restores the slug but not environment config that changed after the rollback target was built — new env vars or add-ons may break the rolled-back version. - `git reset --soft` preserves staged changes, `--mixed` (default) preserves working tree, `--hard` discards both. Wrong flag = lost work; always state the flag explicitly in the confirmation prompt. - Restoring a DB backup on top of an active database can cause data loss between the backup time and the restore time. Take a fresh snapshot before the restore, even when rolling back — the current (broken) state might contain post-backup user writes. ## When NOT to Use - For emergency halt of all agent activity — use `/panic` - For undoing local uncommitted edits — use `git checkout` directly, not this skill - For an incident with user-facing impact — use `/workflow incident-response` for coordinated response - For planned schema changes — use `/migrate` with a forward rollback migration, not this skill after-the-fact - For a feature flag off-switch — toggle the flag; rollback is a heavier tool than needed
GitHub에서 보기