Claude Code Custom Command

ํ•ญ์ƒ ์‚ฌ์šฉํ•˜๋Š” prompt๊ฐ€ ์žˆ๋‹ค๋ฉด slash command๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜์ž.

๊ธฐ๋ณธ slash command

  • https://code.claude.com/docs/en/slash-commands

์ปค์Šคํ…€ slash command ๋งŒ๋“ค๊ธฐ

ํŒŒ์ผ ์œ„์น˜

  • ์ „์ฒด ์ ์šฉ : ~/.claude/commands

  • Project ๋ณ„ ์ ์šฉ : ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์˜ .claude/commands

์ปค๋งจ๋“œ ๋งŒ๋“ค๊ธฐ

์Šฌ๋ž˜์‹œ ์ดํ›„์— ์“ธ ์ปค๋งจ๋“œ ์ด๋ฆ„์œผ๋กœ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.

mkdir -p ~/.claude/commands
echo "Review this code for security vulnerabilities:" > ~/.claude/commands/security-review.md

์™„๋ฃŒ

์‚ฌ์šฉํ•ด๋ณด์ž

/๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ปค๋งจ๋“œ๊ฐ€ ๋ณด์ด๊ณ  ์ด๊ฑธ ์„ ํƒํ•˜๋ฉด ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

alt text

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์‹ค์ „์˜ˆ์ œ

git commit / push command

git commit message๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  commit / push ๋ฅผ ํ•ด๋ณด์ž.

ํ•ต์‹ฌ์€ ํ”„ํผํ”„ํŠธ๋ฅผ ์ ๋‹นํžˆ ๋งŒ๋“ค๋ฉด๋˜๊ณ  frontmatter์— model์ด๋‚˜ allowed-tools๋ฅผ ์ง€์ •ํ• ์ˆ˜ ์žˆ๋‹ค.

alt text

command๊ฐ€ ํŒŒ์ผ๋ช…์œผ๋กœ ๋‚˜์˜ค๋Š”๊ฒƒ์„ ์•Œ์ˆ˜์žˆ๋‹ค.

alt text

ํ•œ๊ธ€๋กœ ํ•˜๊ณ ์‹ถ์œผ๋ฉด ์–ธ์–ด๋ฅผ ๊ณ ์ •ํ•˜์ž.

/git ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜ ์„ ํƒํ•  ์ฐฝ์ด ๋ณด์ด๋Š”๋ฐ git-commit์ด ์„ ํƒ๋˜์ž‡์„๊ฒƒ์ด๋‹ค ์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ๋ฐ”๋กœ ์‹คํ–‰์ด๋˜๊ณ  ํƒญ์„ ์น˜๋ฉด ์ปค๋งจ๋“œ์™„์„ฑํ›„ ์ถ”๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ „๋‹ฌํ• ์ˆ˜ ์žˆ๋‹ค.

alt text

arguments ์‚ฌ์šฉํ•˜๊ธฐ

$ARGUMENTS ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋งจ๋“œ์— ์ธ์ž๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ๋งˆํฌ๋‹ค์šด์„ ๋งŒ๋“ ํ›„ ๋‹ค์Œ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ํ”„๋กฌํ”„ํŠธ์— Fix issue #123 following our coding standards๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.

๊ฐœ๋ณ„ arguments with $1, $2

$1, $2 ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ณ„ ์ธ์ž์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

์ˆœ์ฐจ์ ์œผ๋กœ ์ธ์ž๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.

bash ์‚ฌ์šฉ

์Šฌ๋ž˜์‹œ ๋ช…๋ น์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— !์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ bash ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

allowed-tools frontmatter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • bash ๋ช…๋ น์„ ํ—ˆ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

alt text

frontmatter ์‚ฌ์šฉํ•˜๊ธฐ

frontmatter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ slash command์˜ ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†์„ฑ
์„ค๋ช…
๊ธฐ๋ณธ๊ฐ’

allowed-tools

์ปค๋งจ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ ๋ชฉ๋ก

๋Œ€ํ™”์—์„œ ์ƒ์†

argument-hint

์Šฌ๋ž˜์‹œ ์ปค๋งจ๋“œ์— ๋Œ€ํ•œ ์ธ์ž ํžŒํŠธ. ์˜ˆ: argument-hint: add [tagId] | remove [tagId] | list. ์‚ฌ์šฉ์ž๊ฐ€ ์Šฌ๋ž˜์‹œ ์ปค๋งจ๋“œ๋ฅผ ์ž๋™์™„์„ฑํ•  ๋•Œ ํ‘œ์‹œ๋จ

None

description

์ปค๋งจ๋“œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…

prompt์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์„ ์‚ฌ์šฉ

model

ํŠน์ • ๋ชจ๋ธ ๋ฌธ์ž์—ด (Models overview ์ฐธ์กฐ)

๋Œ€ํ™”์—์„œ ์ƒ์†

disable-model-invocation

SlashCommand ๋„๊ตฌ๊ฐ€ ์ด ์ปค๋งจ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ• ์ง€ ์—ฌ๋ถ€

false

Example using positional arguments:

mcp๋ฅผ slash command๋กœ ์‚ฌ์šฉํ•˜๊ธฐ (MCP ์„œ๋ฒ„๊ฐ€ prompts๋ฅผ ์ œ๊ณตํ•  ๋•Œ)

tool๋งŒ ์ œ๊ณตํ•˜๋ฉด ์ด๊ฒŒ ์•ˆ๋จ

๋ณดํ†ต ์ž๋™์œผ๋กœ ์‹คํ–‰๋จ.

์˜ˆ์‹œ

์ž๋™์œผ๋กœ ์‹คํ–‰๋จ

Claude๊ฐ€ ์ž๋™์œผ๋กœ slash command๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž๋™ ์‹คํ–‰ ์กฐ๊ฑด

  • skill์˜ description์— ๋ช…ํ™•ํ•œ ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ ํฌํ•จ

  • ๋Œ€ํ™” ๋ฌธ๋งฅ๊ณผ skill ์„ค๋ช…์ด ๋งค์นญ๋  ๋•Œ

์ž๋™ ์‹คํ–‰ ์˜ˆ์‹œ

์‚ฌ์šฉ์ž๊ฐ€ "How does this code work?"๋ผ๊ณ  ๋ฌผ์œผ๋ฉด, Claude๊ฐ€ ์ž๋™์œผ๋กœ ์ด skill์„ ์‹คํ–‰ํ•œ๋‹ค.

์ž๋™ ์‹คํ–‰ ๋ง‰๊ธฐ

๋ฐฐํฌ๋‚˜ ์ปค๋ฐ‹์ฒ˜๋Ÿผ ๋ถ€์ž‘์šฉ์ด ์žˆ๋Š” ์ž‘์—…์€ ์ž๋™ ์‹คํ–‰์„ ๋ง‰๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

frontmatter์— ๋‹ค์Œ์„ ์ถ”๊ฐ€:

slash command vs skills

์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด (Slash Commands)

์‚ฌ์šฉ ๋Œ€์ƒ: ๋น ๋ฅด๊ณ  ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ

ํŠน์ง•:

  • ๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ ์Šค๋‹ˆํŽซ

  • ๋น ๋ฅธ ๋ฏธ๋ฆฌ ์•Œ๋ฆผ ๋˜๋Š” ํ…œํ”Œ๋ฆฟ

  • ํ•œ ํŒŒ์ผ์— ๋งž๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ง€์นจ

์˜ˆ์‹œ:

  • /review โ†’ "Review this code for bugs and suggest improvements"

  • /explain โ†’ "Explain this code in simple terms"

  • /optimize โ†’ "Analyze this code for performance issues"

์Šคํ‚ฌ (Skills)

์‚ฌ์šฉ ๋Œ€์ƒ: ๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š” ํฌ๊ด„์ ์ธ ๊ธฐ๋Šฅ

ํŠน์ง•:

  • ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๊ฐ€ ์žˆ๋Š” ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ

  • ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ

  • ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ๊ฑธ์ณ ๊ตฌ์„ฑ๋œ ์ง€์‹

  • ํ‘œ์ค€ํ™”ํ•˜๋ ค๋Š” ํŒ€ ์›Œํฌํ”Œ๋กœ์šฐ

์˜ˆ์‹œ:

  • ์–‘์‹ ์ž‘์„ฑ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ๊ฒ€์ฆ์ด ์žˆ๋Š” PDF ์ฒ˜๋ฆฌ ์Šคํ‚ฌ

  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์ฐธ์กฐ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„ ์Šคํ‚ฌ

  • ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ๋ฐ ํ…œํ”Œ๋ฆฟ์ด ์žˆ๋Š” ๋ฌธ์„œ ์Šคํ‚ฌ

์ฃผ์š” ์ฐจ์ด์ 

์ธก๋ฉด
์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด
์—์ด์ „ํŠธ ์Šคํ‚ฌ

๋ณต์žก์„ฑ

๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ

๋ณต์žกํ•œ ๊ธฐ๋Šฅ

๊ตฌ์กฐ

๋‹จ์ผ .md ํŒŒ์ผ

SKILL.md + ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ

๋ฐœ๊ฒฌ

๋ช…์‹œ์  ํ˜ธ์ถœ (/command)

์ž๋™ (์ปจํ…์ŠคํŠธ ๊ธฐ๋ฐ˜)

ํŒŒ์ผ

ํ•œ ํŒŒ์ผ๋งŒ

์—ฌ๋Ÿฌ ํŒŒ์ผ, ์Šคํฌ๋ฆฝํŠธ, ํ…œํ”Œ๋ฆฟ

์˜ˆ์ œ ๋น„๊ต

์Šฌ๋ž˜์‹œ ๋ช…๋ น์–ด๋กœ

ํŒŒ์ผ ๊ตฌ์กฐ:

๋‚ด์šฉ:

์‚ฌ์šฉ๋ฒ•: /review (์ˆ˜๋™ ํ˜ธ์ถœ)

skill

ํŒŒ์ผ ๊ตฌ์กฐ:

์‚ฌ์šฉ๋ฒ•: "Can you review this code?" (์ž๋™ ๋ฐœ๊ฒฌ)

๊ฒฐ๋ก : ์Šคํ‚ฌ์€ ๋” ํ’๋ถ€ํ•œ ์ปจํ…์ŠคํŠธ, ๊ฒ€์ฆ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ๊ตฌ์„ฑ๋œ ์ฐธ์กฐ ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์˜ ๊ฒฐ๋ก 

๋‚˜๋Š” ์•„์ง ์ž˜ ๊ตฌ๋ถ„์ด ์•ˆ๋จ. /command๋Š” ํ•ญ์ƒ ๋‚ด๊ฐ€ ํ•„์š”ํ• ๋•Œ ๊ฐ•์ œ๋กœ ์š”์ฒญ claude๊ฐ€ ์ž๋™์œผ๋กœ ์ด๊ฑธ ์‚ฌ์šฉํ•˜๋ฉด skills์™€ ๋น„์Šทํ•œ๊ฑฐ๊ฐ™์Œ.

๋‘˜๋‹ค ๋น„์Šทํ•œ๊ฑฐ๊ฐ™์Œ.

Last updated