• Claude Code์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ์ปค์Šคํ…€ ๋ช…๋ น์–ด ์‹œ์Šคํ…œ
  • SKILL.md ํŒŒ์ผ์— ์ง€์‹œ์‚ฌํ•ญ์„ ์ž‘์„ฑํ•˜๋ฉด, Claude๊ฐ€ ์ž๋™์œผ๋กœ ๋„๊ตฌ๋กœ ์ธ์‹
  • ์ƒํ™ฉ์— ๋งž๊ฒŒ Claude๊ฐ€ ์ž๋™ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๊ฐ€ /skill-name์œผ๋กœ ์ง์ ‘ ํ˜ธ์ถœ
  • Agent Skills ์˜คํ”ˆ ์Šคํƒ ๋‹ค๋“œ๋ฅผ ๋”ฐ๋ฅด๋ฉฐ, ์—ฌ๋Ÿฌ AI ๋„๊ตฌ์—์„œ ํ˜ธํ™˜

ํ•ด๋‹น ๊ฐœ๋…์ด ํ•„์š”ํ•œ ์ด์œ 

  • ๋ฐ˜๋ณต ์ž‘์—… ์ž๋™ํ™”: ์ปค๋ฐ‹, ๋ฐฐํฌ, PR ์ƒ์„ฑ ๋“ฑ ๋ฐ˜๋ณต์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ•œ ๋ฒˆ ์ •์˜ํ•˜๊ณ  ์žฌ์‚ฌ์šฉ
  • ํŒ€ ์ปจ๋ฒค์…˜ ๊ณต์œ : ํ”„๋กœ์ ํŠธ ์Šคํ‚ฌ์„ Git์— ์ปค๋ฐ‹ํ•˜๋ฉด ํŒ€ ์ „์ฒด๊ฐ€ ๋™์ผํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์‚ฌ์šฉ
  • Claude์˜ ๋งฅ๋ฝ ํ™•์žฅ: ๋„๋ฉ”์ธ ์ง€์‹, API ํŒจํ„ด, ์ฝ”๋”ฉ ๊ทœ์น™ ๋“ฑ์„ ์Šคํ‚ฌ๋กœ ์ •์˜ํ•˜์—ฌ Claude๊ฐ€ ์ž๋™์œผ๋กœ ์ฐธ์กฐ
  • ์•ˆ์ „ํ•œ ์‹คํ–‰ ์ œ์–ด: ๋ˆ„๊ฐ€ ์–ธ์ œ ์Šคํ‚ฌ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ด ๊ฐ€๋Šฅ

AS-IS

# ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ๋™์ผํ•œ ์ง€์‹œ๋ฅผ ๋ฐ˜๋ณต ์ž…๋ ฅ
User: "์ด PR ๋ฆฌ๋ทฐํ•ด์ค˜. ์ฝ”๋“œ ์Šคํƒ€์ผ ํ™•์ธํ•˜๊ณ ,
       ๋ณด์•ˆ ์ทจ์•ฝ์  ์ฒดํฌํ•˜๊ณ , ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋„ ๋ด์ค˜.
       ๊ฒฐ๊ณผ๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ..."

# ๋‹ค์Œ ๋ฒˆ์—๋„ ๋™์ผํ•œ ๋‚ด์šฉ์„ ๋˜ ์ž…๋ ฅ
User: "์ด PR ๋ฆฌ๋ทฐํ•ด์ค˜. ์ฝ”๋“œ ์Šคํƒ€์ผ ํ™•์ธํ•˜๊ณ ..."

TO-BE

# .claude/skills/review-pr/SKILL.md (ํ•œ ๋ฒˆ๋งŒ ์ •์˜)
---
name: review-pr
description: PR์„ ์ฝ”๋“œ ์Šคํƒ€์ผ, ๋ณด์•ˆ, ํ…Œ์ŠคํŠธ ๊ด€์ ์—์„œ ๋ฆฌ๋ทฐ
---
PR $ARGUMENTS๋ฅผ ๋‹ค์Œ ๊ด€์ ์—์„œ ๋ฆฌ๋ทฐํ•˜๋ผ:
1. ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ฐ ์ปจ๋ฒค์…˜
2. ๋ณด์•ˆ ์ทจ์•ฝ์ 
3. ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€
๊ฒฐ๊ณผ๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ.
# ์ดํ›„์—๋Š” ํ•œ ์ค„์ด๋ฉด ๋
/review-pr 123

์Šคํ‚ฌ ํŒŒ์ผ ๊ตฌ์กฐ

๋ชจ๋“  ์Šคํ‚ฌ์€ ๋””๋ ‰ํ† ๋ฆฌ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, SKILL.md๊ฐ€ ์ง„์ž…์ (entrypoint)์ด๋‹ค:

my-skill/
โ”œโ”€โ”€ SKILL.md           # ๋ฉ”์ธ ์ง€์‹œ์‚ฌํ•ญ (ํ•„์ˆ˜)
โ”œโ”€โ”€ template.md        # Claude๊ฐ€ ์ฑ„์šธ ํ…œํ”Œ๋ฆฟ
โ”œโ”€โ”€ examples/
โ”‚   โ””โ”€โ”€ sample.md      # ๊ธฐ๋Œ€ ์ถœ๋ ฅ ์˜ˆ์‹œ
โ”œโ”€โ”€ references/
โ”‚   โ””โ”€โ”€ api-docs.md    # ์ƒ์„ธ ์ฐธ์กฐ ๋ฌธ์„œ
โ””โ”€โ”€ scripts/
    โ””โ”€โ”€ helper.py      # Claude๊ฐ€ ์‹คํ–‰ํ•  ์Šคํฌ๋ฆฝํŠธ

SKILL.md๋Š” 500์ค„ ์ดํ•˜๋ฅผ ๊ถŒ์žฅํ•˜๋ฉฐ, ์ƒ์„ธ ๋‚ด์šฉ์€ ๋ณ„๋„ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.

SKILL.md ์ž‘์„ฑ๋ฒ•

SKILL.md๋Š” ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค:

  1. YAML Frontmatter (--- ์‚ฌ์ด): ์Šคํ‚ฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๋™์ž‘ ์„ค์ •
  2. Markdown Content: Claude๊ฐ€ ๋”ฐ๋ฅผ ์ง€์‹œ์‚ฌํ•ญ
---
name: fix-issue
description: GitHub ์ด์Šˆ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค
disable-model-invocation: true
allowed-tools: Read, Grep, Bash
---
 
GitHub ์ด์Šˆ $ARGUMENTS๋ฅผ ์ˆ˜์ •ํ•˜๋ผ:
1. ์ด์Šˆ ์„ค๋ช… ์ฝ๊ธฐ
2. ์š”๊ตฌ์‚ฌํ•ญ ํŒŒ์•…
3. ์ˆ˜์ • ๊ตฌํ˜„
4. ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
5. ์ปค๋ฐ‹ ์ƒ์„ฑ

Frontmatter ํ•„๋“œ ๋ ˆํผ๋Ÿฐ์Šค

ํ•„๋“œํ•„์ˆ˜์„ค๋ช…
nameNo์Šคํ‚ฌ ์ด๋ฆ„ (= slash command๋ช…). ์ƒ๋žต ์‹œ ๋””๋ ‰ํ† ๋ฆฌ๋ช… ์‚ฌ์šฉ
description๊ถŒ์žฅ์Šคํ‚ฌ ์šฉ๋„. Claude๊ฐ€ ์ž๋™ ํ˜ธ์ถœ ํŒ๋‹จ์— ์‚ฌ์šฉ
argument-hintNo์ž๋™์™„์„ฑ ์‹œ ํ‘œ์‹œํ•  ์ธ์ˆ˜ ํžŒํŠธ (์˜ˆ: [issue-number])
disable-model-invocationNotrue: Claude ์ž๋™ ํ˜ธ์ถœ ์ฐจ๋‹จ, ์‚ฌ์šฉ์ž๋งŒ /name์œผ๋กœ ํ˜ธ์ถœ
user-invocableNofalse: / ๋ฉ”๋‰ด์—์„œ ์ˆจ๊น€. Claude๋งŒ ์ž๋™ ํ˜ธ์ถœ ๊ฐ€๋Šฅ
allowed-toolsNo์Šคํ‚ฌ ํ™œ์„ฑ ์‹œ ์Šน์ธ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ๋ชฉ๋ก
modelNo์Šคํ‚ฌ ์‹คํ–‰ ์‹œ ์‚ฌ์šฉํ•  ๋ชจ๋ธ
contextNofork: ๊ฒฉ๋ฆฌ๋œ subagent ์ปจํ…์ŠคํŠธ์—์„œ ์‹คํ–‰
agentNocontext: fork ์‹œ ์‚ฌ์šฉํ•  subagent ์œ ํ˜•
HooksNo์Šคํ‚ฌ ๋ผ์ดํ”„์‚ฌ์ดํด์— ์Šค์ฝ”ํ•‘๋œ ํ›…

์Šคํ‚ฌ ์ €์žฅ ์œ„์น˜์™€ ์ ์šฉ ๋ฒ”์œ„

์œ„์น˜๊ฒฝ๋กœ์ ์šฉ ๋ฒ”์œ„
EnterpriseManaged settings์กฐ์ง ์ „์ฒด
Personal~/.claude/skills/<name>/SKILL.md๋‚ด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ
Project.claude/skills/<name>/SKILL.mdํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋งŒ
Plugins<plugin>/skills/<name>/SKILL.mdํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™”๋œ ๊ณณ

์šฐ์„ ์ˆœ์œ„: Enterprise > Personal > Project. ๋™๋ช… ์Šคํ‚ฌ์€ ์ƒ์œ„๊ฐ€ ์šฐ์„ .

๋ชจ๋…ธ๋ ˆํฌ์—์„œ๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ .claude/skills/๋„ ์ž๋™ ํƒ์ƒ‰๋œ๋‹ค.

ํ˜ธ์ถœ ์ œ์–ด ๋งคํŠธ๋ฆญ์Šค

Frontmatter ์„ค์ •์‚ฌ์šฉ์ž ํ˜ธ์ถœClaude ์ž๋™ ํ˜ธ์ถœ์ปจํ…์ŠคํŠธ ๋กœ๋”ฉ
(๊ธฐ๋ณธ๊ฐ’)OOdescription ํ•ญ์ƒ ๋กœ๋“œ, ํ˜ธ์ถœ ์‹œ ์ „์ฒด ๋กœ๋“œ
disable-model-invocation: trueOX์ปจํ…์ŠคํŠธ์— ๋ฏธํฌํ•จ
user-invocable: falseXOdescription ํ•ญ์ƒ ๋กœ๋“œ, ํ˜ธ์ถœ ์‹œ ์ „์ฒด ๋กœ๋“œ

์Šคํ‚ฌ ์ฝ˜ํ…์ธ ์˜ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•

Reference ์Šคํ‚ฌ (์ง€์‹ ์ฃผ์ž…ํ˜•)

ํ˜„์žฌ ์ž‘์—…์— ์ ์šฉํ•  ์ง€์‹์„ ์ œ๊ณตํ•œ๋‹ค. ์ปจ๋ฒค์…˜, ํŒจํ„ด, ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ๋“ฑ.

---
name: api-conventions
description: ์ด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ API ์„ค๊ณ„ ํŒจํ„ด
---
API ์—”๋“œํฌ์ธํŠธ ์ž‘์„ฑ ์‹œ:
- RESTful ๋„ค์ด๋ฐ ๊ทœ์น™ ์‚ฌ์šฉ
- ์ผ๊ด€๋œ ์—๋Ÿฌ ํ˜•์‹ ๋ฐ˜ํ™˜
- ์š”์ฒญ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํฌํ•จ

Task ์Šคํ‚ฌ (์ž‘์—… ์‹คํ–‰ํ˜•)

ํŠน์ • ์ž‘์—…์˜ ๋‹จ๊ณ„๋ณ„ ์ง€์‹œ์‚ฌํ•ญ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฐฐํฌ, ์ปค๋ฐ‹, ์ฝ”๋“œ ์ƒ์„ฑ ๋“ฑ.

---
name: deploy
description: ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ
disable-model-invocation: true
context: fork
---
๋ฐฐํฌ ์ˆ˜ํ–‰:
1. ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ ์‹คํ–‰
2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œ
3. ๋ฐฐํฌ ํƒ€๊ฒŸ์— ํ‘ธ์‹œ

๋ฌธ์ž์—ด ์น˜ํ™˜ (String Substitution)

์Šคํ‚ฌ ๋‚ด์šฉ์—์„œ ๋™์  ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค:

๋ณ€์ˆ˜์„ค๋ช…
$ARGUMENTSํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋œ ๋ชจ๋“  ์ธ์ˆ˜
$ARGUMENTS[N]N๋ฒˆ์งธ ์ธ์ˆ˜ (0-based)
$N$ARGUMENTS[N]์˜ ์ถ•์•ฝํ˜•
${CLAUDE_SESSION_ID}ํ˜„์žฌ ์„ธ์…˜ ID
---
name: migrate-component
description: ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
---
$0 ์ปดํฌ๋„ŒํŠธ๋ฅผ $1์—์„œ $2๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ผ.
/migrate-component SearchBar React Vue
# โ†’ "SearchBar ์ปดํฌ๋„ŒํŠธ๋ฅผ React์—์„œ Vue๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ผ."

๋™์  ์ปจํ…์ŠคํŠธ ์ฃผ์ž… (!commandโ€œ)

์…ธ ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ์Šคํ‚ฌ ์ฝ˜ํ…์ธ ์— ์‚ฝ์ž…ํ•˜๋Š” ์ „์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด๋‹ค. Claude๊ฐ€ ๋ณด๊ธฐ ์ „์— ๋ช…๋ น์ด ์‹คํ–‰๋˜์–ด ๊ฒฐ๊ณผ๋กœ ๋Œ€์ฒด๋œ๋‹ค.

---
name: pr-summary
description: PR ๋ณ€๊ฒฝ์‚ฌํ•ญ ์š”์•ฝ
context: fork
agent: Explore
---
## PR ์ปจํ…์ŠคํŠธ
- PR diff: !`gh pr diff`
- PR ์ฝ”๋ฉ˜ํŠธ: !`gh pr view --comments`
- ๋ณ€๊ฒฝ ํŒŒ์ผ: !`gh pr diff --name-only`
 
## ์ž‘์—…
์ด PR์„ ์š”์•ฝํ•˜๋ผ...

์‹คํ–‰ ํ๋ฆ„:

  1. ๊ฐ !`command`๊ฐ€ ์ฆ‰์‹œ ์‹คํ–‰๋จ
  2. ์ถœ๋ ฅ์ด ์Šคํ‚ฌ ์ฝ˜ํ…์ธ ์˜ ํ•ด๋‹น ์œ„์น˜๋ฅผ ๋Œ€์ฒด
  3. Claude๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋œ ์ตœ์ข… ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆ˜์‹ 

Subagent์—์„œ ์‹คํ–‰ (context: fork)

context: fork๋ฅผ ์„ค์ •ํ•˜๋ฉด ์Šคํ‚ฌ์ด **๊ฒฉ๋ฆฌ๋œ subagent**์—์„œ ์‹คํ–‰๋œ๋‹ค. ๋ฉ”์ธ ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ์— ์ ‘๊ทผํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์Šคํ‚ฌ ์ฝ˜ํ…์ธ ๊ฐ€ subagent์˜ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋œ๋‹ค.

---
name: deep-research
description: ์ฃผ์ œ๋ฅผ ๊นŠ์ด ์กฐ์‚ฌ
context: fork
agent: Explore
---
$ARGUMENTS๋ฅผ ์ฒ ์ €ํžˆ ์กฐ์‚ฌํ•˜๋ผ:
1. Glob๊ณผ Grep์œผ๋กœ ๊ด€๋ จ ํŒŒ์ผ ํƒ์ƒ‰
2. ์ฝ”๋“œ ๋ถ„์„
3. ํŒŒ์ผ ์ฐธ์กฐ์™€ ํ•จ๊ป˜ ์š”์•ฝ

agent ํ•„๋“œ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’: Explore, Plan, general-purpose, ๋˜๋Š” .claude/agents/์˜ ์ปค์Šคํ…€ ์—์ด์ „ํŠธ.

๊ถŒํ•œ ์ œ์–ด

์Šคํ‚ฌ์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค:

# 1. ๋ชจ๋“  ์Šคํ‚ฌ ๋น„ํ™œ์„ฑํ™” (/permissions์˜ deny rules)
Skill
 
# 2. ํŠน์ • ์Šคํ‚ฌ๋งŒ ํ—ˆ์šฉ/์ฐจ๋‹จ
Skill(commit)         # ์ •ํ™•ํžˆ 'commit'๋งŒ ํ—ˆ์šฉ
Skill(review-pr *)    # 'review-pr'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ ํ—ˆ์šฉ
Skill(deploy *)       # 'deploy'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ ์ฐจ๋‹จ
 
# 3. ๊ฐœ๋ณ„ ์Šคํ‚ฌ์— disable-model-invocation: true ์„ค์ •

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๋ฌธ์ œํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
์Šคํ‚ฌ์ด ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€ ์•Š์Œdescription์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งํ•  ํ‚ค์›Œ๋“œ ํฌํ•จ. /skill-name์œผ๋กœ ์ง์ ‘ ํ˜ธ์ถœ ์‹œ๋„
์Šคํ‚ฌ์ด ๋„ˆ๋ฌด ์ž์ฃผ ํŠธ๋ฆฌ๊ฑฐ๋จdescription์„ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์ˆ˜์ •. disable-model-invocation: true ์„ค์ •
Claude๊ฐ€ ๋ชจ๋“  ์Šคํ‚ฌ์„ ์ธ์‹ ๋ชปํ•จ์Šคํ‚ฌ์ด ๋งŽ์œผ๋ฉด character budget ์ดˆ๊ณผ ๊ฐ€๋Šฅ. /context๋กœ ํ™•์ธ. SLASH_COMMAND_TOOL_CHAR_BUDGET ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ํ•œ๋„ ์กฐ์ •

์ฐธ๊ณ  ๋ฌธ์„œ

  • Claude Code Skills ๊ณต์‹ ๋ฌธ์„œ
  • Subagents - ์ž‘์—…์„ ์œ„์ž„ํ•˜๋Š” ํ•˜์œ„ ์—์ด์ „ํŠธ
  • Plugins - ์Šคํ‚ฌ/์—์ด์ „ํŠธ/ํ›…์„ ํŒจํ‚ค์ง•ํ•˜์—ฌ ๋ฐฐํฌ
  • Hooks - ๋„๊ตฌ ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๋Š” ์ž๋™ํ™”
  • Memory (CLAUDE.md) - ์˜๊ตฌ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ
  • Permissions - ๋„๊ตฌ ๋ฐ ์Šคํ‚ฌ ์ ‘๊ทผ ์ œ์–ด