| name | reuse-not-rewrite |
| description | Surveys what already exists before writing new code, and refuses to delete code whose purpose is unknown. When a request would replace, remove, or duplicate existing functionality, this skill greps the codebase, reads git history for buried reasons, and prefers small extensions over fresh rewrites. ์ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ ์ ์ฝ๋๋ฒ ์ด์ค ์์ ์ด๋ฏธ ์๋ ๊ฒ์ ๋จผ์ ์ดํผ๊ณ , ๋ชจ๋ฅด๋ ์ฝ๋๋ฅผ ํจ๋ถ๋ก ์น์ฐ์ง ์๊ฒ ๋ง๋๋ ์์ง๋์ด๋ง ์ฒ ํ ์คํฌ. |
| when_to_use | Use whenever existing code is about to be replaced, removed, or duplicated โ phrases like "rewrite", "from scratch", "์๋ก ๋ง๋ค์", "๋ค์ ์ง์", "๊ฐ์์์", "์ฒ์๋ถํฐ", "๋ฆฌํฉํฐ๋งํ์", "์ด๊ฑฐ ์ ์ฐ๋ ๊ฒ ๊ฐ์", "์ง์๋ ๋ผ?", or the impulse "๋ด ์์ผ๋ก ๋ค์ ์ง๋ ๊ฒ ๋น ๋ฅผ ๊ฒ ๊ฐ์". Strongest against vibe-coding "์ด๊ฑฐ ๋ค ์๋ก ์ง์ค" requests and hesitation in front of legacy code. |
| allowed-tools | Read Grep Glob Bash(git *) |
ํ ์ค. ์๋ก ์ง๊ธฐ ์ ์, ์ด๋ฏธ ์๋ ๊ฑธ ํ ๋ฒ ๋ ๋ณธ๋ค. ๋ชจ๋ฅด๋ ์ฝ๋๋ ํจ๋ถ๋ก ์น์ฐ์ง ์๋๋ค.
Why this mindset
๊ณผ๊ฑฐ์ ์์ฑ๋ ์ฝ๋๋ ํจ๋ถ๋ก ๋ฌด์๋๊ฑฐ๋ ๋ค์ ์ง์ด์ง ์์์ผ ํฉ๋๋ค.
๊ฑฐ๊ธฐ์ ๋๊ตฐ๊ฐ์ ์๊ฐยท์ํ์ฐฉ์คยท์ด์ ๊ฐ ๋ฐํ ์์ต๋๋ค. ์ ๋ง๋ค์ด์ง ์ฝ๋๋ฒ ์ด์ค๋ผ๋ฉด, ์ฌํ์ฉํ๋ ๊ฒ์ด ์๋ก ์ง๋ ๊ฒ๋ณด๋ค ๊ฑฐ์ ํญ์ ๋น ๋ฅด๊ณ ์์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ โ ์์ง ๋ชปํ๋ ์ฝ๋๋ฅผ ์น์ฐ๊ธฐ ์ ์๋, ์ ๊ฑฐ๊ธฐ ์๋์ง๋ถํฐ ๋ด
๋๋ค. ์ด์ ๊ฐ ์ ๋ณด์ด๋ ๊ฒ์ด, ๊ทธ ์์ฒด๋ก ์น์ฐ์ง ๋ง์์ผ ํ ์ด์ ์ผ ๋๊ฐ ๋ง์ต๋๋ค.
Instructions
์์ด ์ ํ์ผ๋ก ๊ฐ๊ธฐ ์ ์, ์ฝ๋๋ฒ ์ด์ค ์์ ํ ๋ฒ ๋๋ฌ๋ณธ๋ค.
-
์๋ก ์ง๊ธฐ ์ ์ ๊ฐ์ ์ผ ํ๋ ๊ฒ ์๋์ง ๋ณธ๋ค.
GrepยทGlobยท๋๋ ํ ๋ฆฌ ํธ๋ฆฌยท์ ์ฌ๋ยท์ด์ PR. ๋น์ทํ ํจ์ยท์ ํธยท์ปดํฌ๋ํธ๊ฐ 80%๋ง ๋ง์๋ ๊ทธ์ชฝ์ ์ด์ง ๋๋ฆฌ๋ ๊ฒ, ์๋ก ์ง๋ ๊ฒ๋ณด๋ค ๊ฑฐ์ ํญ์ ๊ฐ๋ณ๋ค.
-
๋ชจ๋ฅด๋ ์ฝ๋๋ ์น์ฐ์ง ์๋๋ค.
"์ด๊ฑฐ ์ ์ฐ์ด๋ ๊ฒ ๊ฐ๋ค"๋ ๊ฑฐ์ ํญ์ ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฑฐ์ง ์ ์ฐ์ด๋ ๊ฒ ์๋๋ค. ์ง์ฐ๊ธฐ ์ ์ โ git blame์ผ๋ก ๋๊ฐยท์ธ์ ยท์ ๋ฃ์๋์ง, grep์ผ๋ก ํธ์ถ์ฒ๊ฐ ์ง์ง ์๋์ง, ์ปค๋ฐ ๋ฉ์์ง์ ๋จ์๊ฐ ์๋์ง ๋ณธ๋ค. 1~2๋ถ ์ดํผ๋ ๊ฒ ๋ฉฐ์น ์ง๋ฆฌ ์ฌ๊ณ ๋ฅผ ๋ง๋๋ค.
-
์ฌํ์ฉ์ด ์ด์ํ๋ฉด, ๊ทธ ์ด์ํจ์ ๋จ์๋ก ๋ณธ๋ค.
"์ฐ๋ ค๋๊น ์ด๋ฆ์ด ์ ๋ง์", "๊ฒฐํฉ์ด ๋๋ฌด ๋ง์์ ๊ฐ์ ธ๋ค ์ธ ์ ์์ด" ๊ฐ์ ์ด์ํจ์ ๊ทธ ์์ฒด๋ก ์ง๊ธ ์ฝ๋์ ์ฝํ ์๋ฆฌ๊ฐ ์ด๋์ธ์ง ์๋ ค์ค๋ค. ๊ทธ ์๋ฆฌ๋ฅผ ์ด์ง ๋ค๋ฌ์ผ๋ฉด โ ๋ค์ ์ฌ๋๋ ๊ฐ์ด ์ฌํ์ฉํ ์ ์๊ฒ ๋๋ค. ์๋ก ์ง์ ์์ ๋์ง ์๋๋ค.
-
"๋ด ์์ผ๋ก ๋ค์ ์ง๋ ๊ฒ ๋น ๋ฅด๋ค"๋ ์ถฉ๋์ ํ ๋ฒ ์์ฌํ๋ค.
AI๋ ์ฌ๋๋ ์๊ธฐ ์์ ์ต์ ํํ๋ก ๋ค์ ์ง๋ ์ชฝ์ผ๋ก ์์ฃผ ๊ธฐ์ด๋ค. ๋น ๋ฅธ ๊ฒ ๊ฐ์ง๋ง, ๋จ์ ์ฝ๋์์ ์ด์ง๊ฐยท๋ฆฌ๋ทฐ ๋ถ๋ดยท๊ธฐ์กด ํ
์คํธ์์ ์ถฉ๋๊น์ง ํฉ์น๋ฉด ๋ณดํต ๋ ๋๋ฆฌ๋ค. ์ ๋ง ๋ค์ ์ง์ผ ํ๋ค๋ฉด, ์ ๊ธฐ์กด ์ฝ๋๊ฐ ์ ๋ง๋์ง ํ ์ค๋ก ์ ์ ๋ค์ ์์ํ๋ค.
-
๋ฌด์์ ์ฌํ์ฉํ๊ณ , ๋ฌด์์ ์๋ก ์ง๋๊ฐ์ ๊ธฐ์ค.
- ์ฌํ์ฉ: ๊ฐ์ ์๋์ ์ฝ๋๊ฐ 70% ์ด์ ๋ง์ ๋, ์์ ์์ ์ผ๋ก ๋ ๋ค ๋ง์กฑ ๊ฐ๋ฅํ ๋.
- ์๋ก ์ง๊ธฐ: ์๋ ์์ฒด๊ฐ ๋ค๋ฅผ ๋, ๋ผ์ ๋ง์ถ๋ ๋น์ฉ์ด ์๋ก ์ง๋ ๋น์ฉ๋ณด๋ค ํด ๋, ๊ธฐ์กด ์ฝ๋๊ฐ ์ด๋ฏธ ์ ์๋์ง ๋ชจ๋ฅด๋ ์ํ๋ก ๋ถํจํด ์์ ๋ (์ด ๊ฒฝ์ฐ์ ์๋ฌด์๊ฒ๋ ๋ฏธ์ํ์ง ์๋ค).
Examples
"์ด๊ฑฐ ์ด๋ฏธ ์๋๋ฐ" ๋ฐ๊ฒฌ:
- ์ฌ์ฉ์: "์ฌ์ฉ์ ์ด๋ฉ์ผ ๊ฒ์ฆ ํจ์ ํ๋ ๋ง๋ค์ด์ค."
- Claude: "์ ๊น,
utils/validators.ts์ isValidEmail์ด ์ด๋ฏธ ์์ด. RFC 5322 ๊ธฐ๋ฐ์ผ๋ก ์ง๋ ๊ฑฐ๊ณ , ๋ค๋ฅธ ๋ ๊ตฐ๋ฐ์๋ ์ฐ๊ณ ์์ด. ์๋ก ์ง๋ ๋์ ์ด๊ฑธ importํด์ ์ฐ์. ๋ถ์กฑํ ๊ฒ ์์ผ๋ฉด ๊ทธ ํจ์๋ฅผ ์ด์ง ๋๋ฆฌ๋ฉด ๋ผ."
"์ ์ด๋ ๊ฒ ์ง์ฌ ์์ง" ๋ฉ์ถค:
- ์ฌ์ฉ์: "์ด
setTimeout(fn, 100) ์ด์ํด ๋ณด์ฌ. ์ง์์ค."
- Claude: "์ง์ฐ๊ธฐ ์ ์ โ
git blame์ผ๋ก ๋ดค๋๋ 6๊ฐ์ ์ ์ iOS Safari ๋ ๋ ํ์ด๋ฐ ์ด์ ๋๋ฌธ์ ์ถ๊ฐํ ๊ฑฐ์ผ (์ปค๋ฐ ๋ฉ์์ง์ ๋ช
์๋ผ ์์ด). ์ง๊ธ๋ ๊ทธ ์ด์๊ฐ ์ด์์๋์ง ํ ๋ฒ ํ์ธํ๊ณ ๊ฒฐ์ ํ์. ์๋๋ฉด ์ฐํ ์ด์ ํ ์ค์ ์ฃผ์์ผ๋ก ๋จ๊ธฐ๊ณ ๊ทธ๋๋ก ๋๋ ๊ฒ ๋ ์์ ํด."
์ฌํ์ฉ์ด ์ด์ํด์ ์ด์ง ๋ค๋ฌ์ด ์ฐ๊ธฐ:
- Claude: "๊ธฐ์กด
formatDate๊ฐ ๊ฑฐ์ ๋ง๋๋ฐ ํ์์กด ์ธ์๊ฐ ์์ด์ ๋ชป ์ฐ๊ณ ์์ด. ์ ํจ์ ๋ง๋ค์ง ๋ง๊ณ , formatDate์ ์ต์
์ธ์ ํ๋ ์ถ๊ฐํ์ โ ํ ์ค์ด๋ฉด ๋ผ. ๋ค์์ ๊ฐ์ ์ผ ํ๋ ์ฌ๋๋ ํ ๊ตฐ๋ฐ๋ง ๋ณด๋ฉด ๋๋๊น."
Pitfalls
- "์ด์ฐจํผ ๋ชจ๋ฅด๊ฒ ์ผ๋๊น ์๋ก ์ง์" โ ๊ฐ์ ์ผ ํ๋ ์ฝ๋๊ฐ ๋ ๋ฒ โ ๋ค์ ์ฌ๋์ด ์ด๋ ๊ฑธ ๋ด์ผ ํ ์ง ๋ชจ๋ฆ
- "์ ์ฐ์ด๋ ์ค ์์๋๋ฐ" โ ์ง์ด ๋ค์ production์์ ํธ์ถ์ฒ ๋ฐ๊ฒฌ
- ์ฌํ์ฉ ํ๊ณ๋ก ๋๋ฌด ์ ๋ง๋ ์ฝ๋๋ฅผ ์ต์ง๋ก ๋ผ์ ๋ง์ถ๊ธฐ (๋ฐ๋ํธ ํจ์ )
- ๋ณธ์ธ์ด ์ง ์ฝ๋๋ง ์ ๋ขฐํ๊ณ ๋จ์ด ์ง ์ฝ๋๋ ์ผ๋จ ์์ฌํ๊ธฐ
- "๋ฆฌํฉํฐ๋ง"์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ดํด ์ ๋๋ ์ฝ๋๋ฅผ ๋ด ์์ผ๋ก ๊ฐ์์๊ธฐ
์ด๋ฏธ ์๋ ์ฝ๋๋ ๋ก์ ๊ฒ ์๋๋ผ ์ด์๋จ์ ๊ฒ์ด๋ค. ์ด์๋จ์ ๋ฐ์๋ ์ด์ ๊ฐ ์๋ค. ๊ทธ ์ด์ ๋ฅผ ํ ๋ฒ ๋ณด๊ณ ๋ค์ด๊ฐ๋ ๊ฒ์ด, ์ฝ๋๋ฒ ์ด์ค์ ์๊ฐ์ ๊ฑฐ์ฌ๋ฌ ํจ๊ป ์์
ํ๋ ์์ธ๋ค.