| 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 ์์ด ํ ๋ฒ์ ํฐ ๋ฐ์ดํฐ ๋ณ๊ฒฝ
- ๋กค๋ฐฑ ๊ณํ์ ๋จธ๋ฆฟ์์๋ง ๋๊ธฐ โ ์๊ธฐ ์๊ฐ์ ์ฌ๋ผ์ง
- ๋ชจ๋ ์์ ๋ณ๊ฒฝ์ ํํด๋ก ๊น๊ธฐ (๋ฐ๋ํธ ํจ์ โ ๋ฌด๊ฒ๊ณ ๋นํจ์จ)
- ํํด๋ก ๋ง๋ค์ด๋๊ณ ํ ๋ฒ๋ ์ํ ์ ํจ โ ์ค์ ๋ก ์๋ ์ ํจ
๊ฒ๋จน๋ ๊ฒ ์๋๋ค. ๊ฒ๋จน์ง ์๊ณ ์๋ํ๊ธฐ ์ํด ํํด๋ก๋ฅผ ๊น๋ค. ๋์์ฌ ๊ธธ์ด ์๋ค๋ ๊ฑธ ์๋ฉด, ๋ ๊ณผ๊ฐํ๊ฒ ๋ค์ด๊ฐ ์ ์๋ค.