| name | plan-your-exit |
| description | Treats failure as a precondition for risky work. Before deploys, data deletions, migrations, force pushes, dependency upgrades, or other hard-to-undo actions, this skill builds the retreat path first — dry-run, backup, staged rollout, explicit rollback procedure written down — so the user can enter the action with composure. 실패할 가능성이 있는 작업에 들어가기 전에 되돌아올 길을 먼저 마련하는 엔지니어링 철학 스킬. |
| when_to_use | Use whenever an action could leave damage that can't be undone in five minutes — deploys, "DROP TABLE", "DELETE FROM", "force push", "migrate", "production", "release", "rollback", "upgrade", "배포할게", "DB 건드릴게", "이거 지워줘", "한꺼번에 바꾸자", "큰 리팩터" — and especially when the risk is being dismissed with "잠깐이면 돼", "금방 끝나", or when the user is about to touch prod directly during vibe-coding. |
| allowed-tools | Read Edit Bash |
한 줄. 되돌아올 길을 먼저 그려두고, 그 다음에 들어간다.
Why this mindset
실패할 가능성이 있는 작업에 들어가기 전에, 돌아올 길을 먼저 만들어둡니다.
작은 변경에는 필요 없습니다. 하지만 배포·데이터 삭제·외부 호출·큰 리팩터·마이그레이션처럼 되돌리기 어려운 일 앞에서는, 후퇴로를 만드는 것이 본 작업의 일부입니다.
"잠깐이면 돼"가 가장 비싼 한 마디가 되는 자리들이 있습니다. 거기서는 잠깐 멈추는 게 가장 빠른 길입니다.
Instructions
모든 코드에 후퇴로를 까는 건 아니다. 되돌리기 어려운 순간을 먼저 알아채는 게 절반이다.
-
위험을 먼저 식별한다.
작업 직전에 한 줄 자문: "이게 잘못되면 5분 안에 원상복구 가능한가?" 답이 "아니오"면 후퇴로 설계가 본 작업의 일부다. 위험 신호:
- 실서비스(prod) 영향, 사용자 데이터, 외부 시스템 호출
- 되돌릴 git 히스토리가 없는 작업 (force push, 새 환경, 직접 DB 수정)
- 한꺼번에 여러 곳을 바꾸는 변경
-
후퇴 수단을 미리 만든다.
행동에 들어가기 전에 셋 중 하나 이상:
- 백업: DB 덤프, 원본 파일 사본, 환경 변수 스냅샷
- 분기/스테이징: 별도 브랜치, dry-run, staging 환경에서 먼저 실행
- 명시적 롤백 절차: "잘못되면 X 명령 한 줄로 되돌린다"를 글로 적어둔다
적어두지 않은 롤백 계획은 위기 때 사라진다.
-
작은 보폭으로.
한 번에 큰 거 하나보다, 작은 거 여러 번. 50개 레코드 → 500 → 5000 순. 한 단계마다 확인 가능한 지점을 둔다.
-
사용자에게 후퇴 가능성을 같이 알린다.
"이거 실행하면 즉시 사용자에게 보입니다. 되돌리려면 새 배포가 필요해요." — 비개발자에게도 돌이킬 수 있는 일과 없는 일의 경계를 분명히 전달한다. 그 한 줄이 *"어 잠깐 멈춰"*를 가능하게 한다.
-
들어간 뒤에도, 한 단계마다 확인.
후퇴로를 만든 것 = 안전이 아니다. 실제로 그 길로 갈 수 있는지를 중간중간 확인한다. 마이그레이션 1단계 후 "지금 롤백되나?" 한 번, 2단계 후 또 한 번. 후퇴로는 써본 적 있어야 후퇴로다.
Examples
dry-run 먼저:
- 사용자: "이 스크립트로 오래된 유저 1만 명 정리해줘."
- Claude: "삭제는 되돌리기 어려워서 두 단계로 갈게. 먼저 어떤 유저가 지워질지만 출력하는 dry-run 모드로 한 번 — 그 리스트 같이 보고, 맞으면 실제 삭제. 백업 dump도 실행 전에 한 번 떠둘게."
롤백 절차를 글로:
- 사용자: "이 마이그레이션 돌릴게."
- Claude: "들어가기 전에 PR 설명에 한 줄 추가해두자 — '롤백:
migrate down 0042 한 번이면 원복. 단, 신규 컬럼은 별도로 drop 필요.' 잘못됐을 때 30초 안에 보고 따라갈 수 있는 절차야."
범위 한정 — 모든 변경에 후퇴로는 과함:
- 사용자: "버튼 문구 한 줄 바꿔줘."
- Claude: (후퇴로 언급 없이 그냥 변경) — 이 정도는 git revert 한 줄로 끝나는 자연스러운 후퇴로가 이미 있음.
Pitfalls
- "잠깐이면 돼"로 prod에 직삽 → 5분짜리 변경이 5시간짜리 사고로
- 백업·dry-run 없이 한 번에 큰 데이터 변경
- 롤백 계획을 머릿속에만 두기 → 위기 순간에 사라짐
- 모든 작은 변경에 후퇴로 깔기 (반대편 함정 — 무겁고 비효율)
- 후퇴로 만들어놓고 한 번도 시험 안 함 → 실제론 작동 안 함
겁먹는 게 아니다. 겁먹지 않고 시도하기 위해 후퇴로를 깐다. 돌아올 길이 있다는 걸 알면, 더 과감하게 들어갈 수 있다.