2ํŽธ์—์„œ skills.sh๋กœ ์Šคํ‚ฌ์„ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด, ์ด์ œ ์ง„์งœ ์ค‘์š”ํ•œ ๋‹จ๊ณ„๋Š” โ€œํด๋กœ๋“œ์ฝ”๋“œ์—์„œ ๊ทธ ์Šคํ‚ฌ์„ ์–ด๋–ป๊ฒŒ ์ œ๋Œ€๋กœ ์“ฐ๋Š”๊ฐ€โ€๋‹ค. ํ•ต์‹ฌ์€ ์–ด๋ ต์ง€ ์•Š๋‹ค. ์Šคํ‚ฌ์€ AI์—๊ฒŒ ์ฃผ๋Š” ์ž‘์ „ ์นด๋“œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ํ•„์š”ํ•  ๋•Œ ์ž๋™์œผ๋กœ ๊บผ๋‚ด ์“ฐ๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ๋‚ด๊ฐ€ /์Šคํ‚ฌ์ด๋ฆ„์œผ๋กœ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด ๋œ๋‹ค.

์•ˆ๋‚ด: ๋ณธ๋ฌธ์—๋Š” ์ƒ์„ฑํ˜• AI ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•œ ์š”์•ฝ/์ •๋ฆฌ ๋‚ด์šฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

flowchart LR
A[2ํŽธ: ์Šคํ‚ฌ ์„ค์น˜] --> B[3ํŽธ: ํด๋กœ๋“œ์ฝ”๋“œ์—์„œ ํ˜ธ์ถœ]
B --> C{ํ˜ธ์ถœ ๋ฐฉ์‹}
C -->|์ž๋™| D[์„ค๋ช…๋ฌธ(description) ๋งค์นญ]
C -->|์ˆ˜๋™| E[/skill-name]
D --> F[๊ฒฐ๊ณผ ๊ฒ€์ฆ]
E --> F
F --> G[ํŒ€ ํ‘œ์ค€์œผ๋กœ ๊ณ ์ •]

๋จผ์ € ๊ทธ๋ฆผ๋ถ€ํ„ฐ: ์Šคํ‚ฌ์€ โ€œ์ง์—… ์นด๋“œโ€๋‹ค

๊ฒŒ์ž„์—์„œ ์บ๋ฆญํ„ฐ๊ฐ€ ๊ธฐ๋ณธ ๊ณต๊ฒฉ๋งŒ ํ•˜๋ฉด ๋А๋ฆฌ๊ณ  ์‹ค์ˆ˜๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ง์—… ์นด๋“œ(ํž๋Ÿฌ, ํƒฑ์ปค, ์ •์ฐฐ๋ณ‘)๋ฅผ ๋ถ™์ด๋ฉด ์ƒํ™ฉ์— ๋งž๋Š” ํ–‰๋™์„ ๋น ๋ฅด๊ฒŒ ํ•œ๋‹ค.

ํด๋กœ๋“œ์ฝ”๋“œ๋„ ๋˜‘๊ฐ™๋‹ค.

  • ๊ธฐ๋ณธ ๋ชจ๋ธ: โ€œ๋‘๋ฃจ๋‘๋ฃจ ์•„๋Š”โ€ ์ƒํƒœ
  • ์Šคํ‚ฌ ์ ์šฉ: โ€œ์ด ์ƒํ™ฉ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ผํ•ดโ€๊ฐ€ ๋ถ™์€ ์ƒํƒœ

์ฆ‰, ์Šคํ‚ฌ์€ ๋ชจ๋ธ์„ ๊ต์ฒดํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ผํ•˜๋Š” ์Šต๊ด€์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.


ํด๋กœ๋“œ์ฝ”๋“œ ์Šคํ‚ฌ์˜ ๊ณต์‹ ํ•ต์‹ฌ 4๊ฐ€์ง€

Claude Code ๊ณต์‹ Skills ๋ฌธ์„œ ๊ธฐ์ค€์œผ๋กœ ์ดˆ๋ณด์ž๋Š” ์•„๋ž˜ 4๊ฐ€์ง€๋งŒ ๋จผ์ € ์žก์œผ๋ฉด ๋œ๋‹ค.

  1. ์Šคํ‚ฌ์€ SKILL.md๊ฐ€ ํ•ต์‹ฌ ํŒŒ์ผ์ด๋‹ค.
  2. ์Šคํ‚ฌ์€ ์ž๋™ ํ˜ธ์ถœ๋„ ๋˜๊ณ (/description ๋งค์นญ), ์ˆ˜๋™ ํ˜ธ์ถœ(/skill-name)๋„ ๋œ๋‹ค.
  3. ์Šคํ‚ฌ ํด๋” ์œ„์น˜์— ๋”ฐ๋ผ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.
  4. ์œ„ํ—˜ํ•œ ์ž‘์—…์€ disable-model-invocation, allowed-tools๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ œํ•œํ•œ๋‹ค.

1) ์–ด๋””์— ๋‘๋ฉด ์–ด๋””๊นŒ์ง€ ์ ์šฉ๋ ๊นŒ?

๊ณต์‹ ๋ฌธ์„œ ๊ธฐ์ค€ ๊ฒฝ๋กœ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์ดํ•ดํ•˜๋ฉด ๊ฐ€์žฅ ์‰ฝ๋‹ค.

  • ๊ฐœ์ธ ๊ณต์šฉ: ~/.claude/skills/<skill-name>/SKILL.md
    • ๋‚ด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ
  • ํ”„๋กœ์ ํŠธ ์ „์šฉ: .claude/skills/<skill-name>/SKILL.md
    • ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ

์–ด๋ฆฐ์ด ๋น„์œ ๋กœ ๋งํ•˜๋ฉด:

  • ๊ฐœ์ธ ๊ณต์šฉ = ๋‚ด ํ•„ํ†ต์— ๋„ฃ์€ ๊ณตํ†ต ๋„๊ตฌ
  • ํ”„๋กœ์ ํŠธ ์ „์šฉ = ์ด๋ฒˆ ๊ณผํ•™ ์ˆ™์ œ์—๋งŒ ์“ฐ๋Š” ํŠน๋ณ„ ์ค€๋น„๋ฌผ

์ฐธ๊ณ : ๊ฐ™์€ ์ด๋ฆ„ ์Šคํ‚ฌ์ด ์—ฌ๋Ÿฌ ๋ ˆ๋ฒจ์— ์žˆ์œผ๋ฉด ์šฐ์„ ์ˆœ์œ„ ๊ทœ์น™(enterprise > personal > project)์ด ์ ์šฉ๋œ๋‹ค. (๊ณต์‹ ๋ฌธ์„œ)


2) ๊ฐ€์žฅ ์ž‘์€ ์Šคํ‚ฌ 1๊ฐœ๋ถ€ํ„ฐ ๋งŒ๋“ค๊ธฐ

๊ณต์‹ ์˜ˆ์‹œ ํ๋ฆ„์„ ๊ทธ๋Œ€๋กœ ์ค„์ด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.

mkdir -p ~/.claude/skills/explain-code

~/.claude/skills/explain-code/SKILL.md

---
name: explain-code
description: ์ฝ”๋“œ ๋™์ž‘์„ ์‰ฌ์šด ๋น„์œ ์™€ ๋‹จ๊ณ„๋กœ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ
---
 
์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•  ๋•Œ ์•„๋ž˜ ์ˆœ์„œ๋ฅผ ์ง€์ผœ๋ผ.
1. ๋จผ์ € ์ผ์ƒ ๋น„์œ  1๊ฐœ
2. ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ๋‹จ๊ณ„๋กœ ์„ค๋ช…
3. ์ดˆ๋ณด์ž๊ฐ€ ์‹ค์ˆ˜ํ•˜๋Š” ํฌ์ธํŠธ 1๊ฐœ

์ดํ›„ ํ…Œ์ŠคํŠธ๋Š” 2๊ฐ€์ง€:

  • ์ž๋™ ํ˜ธ์ถœ: โ€œ์ด ์ฝ”๋“œ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•ด?โ€
  • ์ˆ˜๋™ ํ˜ธ์ถœ: /explain-code src/auth/login.ts

์น ํŒ ํŒ์„œํ˜• ์น˜ํŠธ์‹œํŠธ

ํด๋กœ๋“œ์ฝ”๋“œ ์Šคํ‚ฌ 5์ค„ ์š”์•ฝ

  1. ์Šคํ‚ฌ = SKILL.md ํ•œ ์žฅ์œผ๋กœ ์‹œ์ž‘
  2. description์ด ์ž๋™ ํ˜ธ์ถœ ํžŒํŠธ ์—ญํ• 
  3. ๊ธ‰ํ•˜๋ฉด /skill-name์œผ๋กœ ์ง์ ‘ ํ˜ธ์ถœ
  4. ์œ„ํ—˜ ์ž‘์—…์€ disable-model-invocation: true
  5. ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ โ€œ์ „/ํ›„ ๋น„๊ตโ€๋กœ ๊ฒ€์ฆ

3) ์ž๋™ ํ˜ธ์ถœ vs ์ˆ˜๋™ ํ˜ธ์ถœ, ์–ธ์ œ ๋ญ˜ ์“ฐ๋ฉด ์ข‹๋‚˜?

flowchart TD
A[๋ฌธ์ œ ์ธ์ง€: ๋งค๋ฒˆ ๊ฐ™์€ ์š”์ฒญ ๋ฐ˜๋ณต?] --> B{์˜ํ–ฅ๋„}
B -->|๋ถ€์ž‘์šฉ ๊ฑฐ์˜ ์—†์Œ| C[์ž๋™ ํ˜ธ์ถœ ํ—ˆ์šฉ]
B -->|๋ฐฐํฌ/์ปค๋ฐ‹/์™ธ๋ถ€์ „์†ก ํฌํ•จ| D[์ˆ˜๋™ ํ˜ธ์ถœ ์ „์šฉ]
C --> E[description ๊ตฌ์ฒดํ™”]
D --> F[disable-model-invocation true]
E --> G[์‹คํ–‰/๊ฒ€์ฆ]
F --> G

์ž๋™ ํ˜ธ์ถœ์ด ์ข‹์€ ๊ฒฝ์šฐ

  • ์ฝ”๋“œ ์„ค๋ช…
  • ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ๋ฐ˜์˜
  • ๋ฌธ์„œ ํฌ๋งท ์ •๋ฆฌ

์ˆ˜๋™ ํ˜ธ์ถœ์ด ์ข‹์€ ๊ฒฝ์šฐ

  • ๋ฐฐํฌ
  • ์ปค๋ฐ‹ ์ƒ์„ฑ
  • ์™ธ๋ถ€ ์‹œ์Šคํ…œ ์ „์†ก

๊ณต์‹ ๋ฌธ์„œ์˜ ํ•ต์‹ฌ ํ•„๋“œ:

  • disable-model-invocation: true โ†’ ๋ชจ๋ธ ์ž๋™ ํ˜ธ์ถœ ์ฐจ๋‹จ
  • user-invocable: false โ†’ / ๋ฉ”๋‰ด์—์„œ ์ˆจ๊ธฐ๊ณ  ๋ชจ๋ธ๋งŒ ์“ฐ๊ฒŒ ํ•จ

4) ์ดˆ๋ณด์ž๊ฐ€ ๋ฐ”๋กœ ์“ฐ๋Š” ์•ˆ์ „ ์„ค์ • 3์ข…

A. ์ž๋™ ํ˜ธ์ถœ ์ฐจ๋‹จ

---
name: deploy
description: ์šด์˜ ๋ฐฐํฌ ์ˆ˜ํ–‰
disable-model-invocation: true
---

B. ๋„๊ตฌ ์ œํ•œ

---
name: safe-reader
description: ์ฝ๊ธฐ ์ „์šฉ ํƒ์ƒ‰
allowed-tools: Read Grep Glob
---

C. ์ธ์ž ๋ฐ›๊ธฐ

---
name: fix-issue
description: ์ด์Šˆ ๋ฒˆํ˜ธ ๊ธฐ๋ฐ˜ ์ˆ˜์ •
---
 
์ด์Šˆ $ARGUMENTS ๋ฅผ ํ•ด๊ฒฐํ•˜๋ผ.

์˜ˆ: /fix-issue 123


5) 2ํŽธ๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ์‹ค์ „ ๋ฃจํ‹ด (20๋ถ„)

2ํŽธ์—์„œ ์„ค์น˜ํ•œ ์Šคํ‚ฌ์ด ์žˆ๋‹ค๋ฉด, ์•„๋ž˜ ๋ฃจํ‹ด์œผ๋กœ ๋ฐ”๋กœ โ€œ์‚ฌ์šฉ ๋‹จ๊ณ„โ€๊นŒ์ง€ ์™„์„ฑ๋œ๋‹ค.

0~5๋ถ„: ์Šคํ‚ฌ 1๊ฐœ ์„ ํƒ

  • ์„ค์น˜๋œ ์Šคํ‚ฌ ์ค‘ ์‹ค์ œ๋กœ ์ž์ฃผ ์“ธ 1๊ฐœ ์„ ํƒ
  • ์„ ํƒ ๊ธฐ์ค€: ๋ฐ˜๋ณต ๋นˆ๋„ + ์œ„ํ—˜๋„ ๋‚ฎ์Œ

5~10๋ถ„: description ๋ฌธ์žฅ ๋ณด์ •

  • ๋„ˆ๋ฌด ๋„“์€ ์„ค๋ช…์€ ์ž๋™ ์˜ค์ž‘๋™์„ ๋งŒ๋“ ๋‹ค
  • โ€œ์–ธ์ œ ์“ฐ๋Š”์ง€โ€๋ฅผ ๋ฌธ์žฅ์— ๋„ฃ๋Š”๋‹ค

์˜ˆ)

  • ๋‚˜์œ ์„ค๋ช…: ์ฝ”๋“œ๋ฅผ ๋„์™€์ค€๋‹ค
  • ์ข‹์€ ์„ค๋ช…: ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ๋ฆฌํŒฉํ„ฐ๋ง ์š”์ฒญ์ผ ๋•Œ๋งŒ ์‚ฌ์šฉ

10~15๋ถ„: ์ž๋™/์ˆ˜๋™ ๋‘˜ ๋‹ค ํ…Œ์ŠคํŠธ

  • ์ž๋™: ์ž์—ฐ์–ด ์งˆ๋ฌธ์œผ๋กœ ํ˜ธ์ถœ
  • ์ˆ˜๋™: /skill-name ์ง์ ‘ ํ˜ธ์ถœ

15~20๋ถ„: ์ „/ํ›„ ๋น„๊ต ๊ธฐ๋ก

  • ์ •ํ™•์„ฑ
  • ์ผ๊ด€์„ฑ
  • ์ˆ˜์ • ํšŸ์ˆ˜
  • ์žฌํ˜„์„ฑ

์‹ค๋ฌด ๋ฏธ๋‹ˆ ์‚ฌ๋ก€ 2๊ฐœ

์‚ฌ๋ก€ 1) ์„ฑ๊ณต: ์ฝ”๋“œ ์„ค๋ช… ์Šคํ‚ฌ

  • Before: ํŒ€๋งˆ๋‹ค ์„ค๋ช… ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง
  • After: explain-code ์Šคํ‚ฌ๋กœ ๋น„์œ  + ํ๋ฆ„ + ์ฃผ์˜์  ํฌ๋งท ๊ณ ์ •
  • ํšจ๊ณผ: ์˜จ๋ณด๋”ฉ ๋ฌธ์„œ ํ’ˆ์งˆ์ด ์ผ์ •ํ•ด์ง

์‚ฌ๋ก€ 2) ์‹คํŒจ ํ›„ ๊ฐœ์„ : ๋ฐฐํฌ ์Šคํ‚ฌ ์ž๋™ ํ˜ธ์ถœ

  • Before: ๋ฐฐํฌ ์Šคํ‚ฌ์„ ์ž๋™ ํ˜ธ์ถœ ํ—ˆ์šฉํ•ด ๋ถˆํ•„์š”ํ•œ ๋ฐฐํฌ ์‹œ๋„ ๋ฐœ์ƒ
  • ์กฐ์น˜: disable-model-invocation: true ์„ค์ •
  • ๊ฒฐ๊ณผ: ๋ฐฐํฌ๋Š” ์‚ฌ๋žŒ ์Šน์ธ ํ›„ /deploy๋กœ๋งŒ ์‹คํ–‰

MECE ํ•œ๋ˆˆ์— ์ •๋ฆฌ (๊ฐœ๋…/์›์ธ/๋Œ€์‘/์‹คํ–‰)

  • ๊ฐœ๋…: ์Šคํ‚ฌ์€ ๋ชจ๋ธ์„ ๋ฐ”๊พธ๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ, ์ž‘์—… ์ ˆ์ฐจ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ์šด์˜ ๋ ˆ์ด์–ด๋‹ค.
  • ์›์ธ: ์„ค์น˜๋งŒ ํ•˜๊ณ  ํ˜ธ์ถœ ๊ทœ์น™์„ ์•ˆ ์ •ํ•˜๋ฉด ์ž๋™ ์˜ค์ž‘๋™(๊ณผํ˜ธ์ถœ/๋ˆ„๋ฝ)์ด ์ƒ๊ธด๋‹ค.
  • ๋Œ€์‘: description ๊ตฌ์ฒดํ™” + disable-model-invocation/allowed-tools๋กœ ์•ˆ์ „์„  ์„ค์ •.
  • ์‹คํ–‰: 20๋ถ„ ๋ฃจํ‹ด์œผ๋กœ ์ž๋™/์ˆ˜๋™ ํ…Œ์ŠคํŠธ ํ›„ ์ „ยทํ›„ ์ง€ํ‘œ๋ฅผ ๊ธฐ๋กํ•ด ํŒ€ ํ‘œ์ค€์œผ๋กœ ๊ณ ์ •.

๋งŽ์ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ํฌ์ธํŠธ ์ •๋ฆฌ

Q1. .claude/commands์™€ .claude/skills๋Š” ๋ญ๊ฐ€ ๋‹ฌ๋ผ?

๊ณต์‹ ๋ฌธ์„œ ๊ธฐ์ค€์œผ๋กœ ์ง€๊ธˆ์€ ์ปค์Šคํ…€ ์ปค๋งจ๋“œ๊ฐ€ ์Šคํ‚ฌ ๊ฐœ๋…์œผ๋กœ ํ†ตํ•ฉ๋˜์—ˆ๋‹ค. ๊ธฐ์กด .claude/commands/*.md๋„ ๋™์ž‘ํ•˜์ง€๋งŒ, ์ƒˆ ๊ตฌ์„ฑ์€ .claude/skills/<name>/SKILL.md๊ฐ€ ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค.

Q2. ์Šคํ‚ฌ์ด ๋„ˆ๋ฌด ์ž์ฃผ ํŠ€์–ด๋‚˜์™€์š”

  • description์„ ๋” ์ข๊ฒŒ ์“ด๋‹ค
  • ํ•„์š”ํ•˜๋ฉด disable-model-invocation: true

Q3. ์™œ ์–ด๋–ค ์Šคํ‚ฌ์€ ์•ˆ ๋ณด์ด์ง€?

๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์Šคํ‚ฌ ์„ค๋ช…๋„ ์ปจํ…์ŠคํŠธ ์˜ˆ์‚ฐ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋œ๋‹ค. ์Šคํ‚ฌ ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฉด ์ผ๋ถ€๊ฐ€ ์ œ์™ธ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์Šคํ‚ฌ ์ˆ˜๋ฅผ ์ค„์ด๊ฑฐ๋‚˜ ๊ตฌ์ฒด์ ์œผ๋กœ ์ •๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.


2ํŽธ โ†’ 3ํŽธ ์—ฐ๊ฒฐ ํ•œ ์ค„ ์ •๋ฆฌ

2ํŽธ์ด โ€œ์„ค์น˜โ€์˜€๋‹ค๋ฉด, 3ํŽธ์€ โ€œ์šด์˜โ€์ด๋‹ค. ์„ค์น˜๋งŒ ํ•˜๋ฉด ๋ฐ˜์ชฝ์ด๊ณ , ํ˜ธ์ถœ ๊ทœ์น™ + ์•ˆ์ „ ์„ค์ • + ๊ฒ€์ฆ ๋ฃจํ‹ด๊นŒ์ง€ ๋ถ™์—ฌ์•ผ ์ง„์งœ ์‹ค๋ฌด ํ’ˆ์งˆ์ด ๋‚˜์˜จ๋‹ค.

๋‹ค์Œ ์ฝ๊ธฐ


์ถœ์ฒ˜ (๊ณต์‹/์ฐธ๊ณ )

๊ณต์‹ ์†Œ์Šค

์ฐธ๊ณ  ํŽ˜์ด์ง€