# Plan Your Exit

> 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. 실패할 가능성이 있는 작업에 들어가기 전에 되돌아올 길을 먼저 마련하는 엔지니어링 철학 스킬.

- Skill: `kwakseongjae/plan-your-exit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kwakseongjae/plan-your-exit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kwakseongjae/plan-your-exit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kwakseongjae (https://skillmd.com/u/kwakseongjae)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kwakseongjae/plan-your-exit

---


> **한 줄.** 되돌아올 길을 먼저 그려두고, 그 다음에 들어간다.

## Why this mindset

실패할 가능성이 있는 작업에 들어가기 전에, *돌아올 길*을 먼저 만들어둡니다.
작은 변경에는 필요 없습니다. 하지만 배포·데이터 삭제·외부 호출·큰 리팩터·마이그레이션처럼 *되돌리기 어려운 일* 앞에서는, 후퇴로를 만드는 것이 본 작업의 일부입니다.
"잠깐이면 돼"가 가장 비싼 한 마디가 되는 자리들이 있습니다. 거기서는 잠깐 멈추는 게 가장 빠른 길입니다.

## Instructions

모든 코드에 후퇴로를 까는 건 아니다. *되돌리기 어려운 순간*을 먼저 알아채는 게 절반이다.

1. **위험을 먼저 식별한다.**
   작업 직전에 한 줄 자문: *"이게 잘못되면 5분 안에 원상복구 가능한가?"* 답이 "아니오"면 후퇴로 설계가 본 작업의 일부다. 위험 신호:
   - 실서비스(prod) 영향, 사용자 데이터, 외부 시스템 호출
   - 되돌릴 git 히스토리가 없는 작업 (force push, 새 환경, 직접 DB 수정)
   - 한꺼번에 여러 곳을 바꾸는 변경

2. **후퇴 수단을 *미리* 만든다.**
   행동에 들어가기 전에 셋 중 하나 이상:
   - **백업**: DB 덤프, 원본 파일 사본, 환경 변수 스냅샷
   - **분기/스테이징**: 별도 브랜치, dry-run, staging 환경에서 먼저 실행
   - **명시적 롤백 절차**: "잘못되면 X 명령 한 줄로 되돌린다"를 *글로 적어둔다*
   적어두지 않은 롤백 계획은 위기 때 사라진다.

3. **작은 보폭으로.**
   한 번에 큰 거 하나보다, 작은 거 여러 번. 50개 레코드 → 500 → 5000 순. 한 단계마다 확인 가능한 지점을 둔다.

4. **사용자에게 후퇴 가능성을 같이 알린다.**
   *"이거 실행하면 즉시 사용자에게 보입니다. 되돌리려면 새 배포가 필요해요."* — 비개발자에게도 *돌이킬 수 있는 일과 없는 일의 경계*를 분명히 전달한다. 그 한 줄이 *"어 잠깐 멈춰"*를 가능하게 한다.

5. **들어간 뒤에도, 한 단계마다 확인.**
   후퇴로를 만든 것 = 안전이 아니다. *실제로 그 길로 갈 수 있는지*를 중간중간 확인한다. 마이그레이션 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 없이 한 번에 큰 데이터 변경
- 롤백 계획을 *머릿속에만* 두기 → 위기 순간에 사라짐
- 모든 작은 변경에 후퇴로 깔기 (반대편 함정 — 무겁고 비효율)
- 후퇴로 만들어놓고 *한 번도 시험 안 함* → 실제론 작동 안 함

겁먹는 게 아니다. *겁먹지 않고 시도하기 위해* 후퇴로를 깐다. 돌아올 길이 있다는 걸 알면, 더 과감하게 들어갈 수 있다.

