Claude๋ฅผ skills๋ก ํ์ฅํ๊ธฐ
Claude Code์์ skills๋ฅผ ์์ฑ, ๊ด๋ฆฌ, ๊ณต์ ํ์ฌ Claude์ ๊ธฐ๋ฅ์ ํ์ฅํฉ๋๋ค. ์ฌ์ฉ์ ์ ์ ๋ช ๋ น์ด์ ๋ฒ๋ค skills๋ฅผ ํฌํจํฉ๋๋ค.
Skills๋ Claude๊ฐ ํ ์ ์๋ ์์
์ ํ์ฅํฉ๋๋ค. SKILL.md ํ์ผ์ ์ง์นจ๊ณผ ํจ๊ป ์์ฑํ๋ฉด Claude๊ฐ ์ด๋ฅผ ์์ ์ ๋๊ตฌ ๋ชจ์์ ์ถ๊ฐํฉ๋๋ค. Claude๋ ๊ด๋ จ์ด ์์ ๋ skills๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ /skill-name์ผ๋ก ์ง์ ํธ์ถํ ์ ์์ต๋๋ค.
๊ฐ์ ์ง์นจ, ์ฒดํฌ๋ฆฌ์คํธ ๋๋ ๋ค๋จ๊ณ ์ ์ฐจ๋ฅผ ๊ณ์ ์ฑํ ์ ๋ถ์ฌ๋ฃ๊ฑฐ๋, CLAUDE.md์ ์น์ ์ด ์ฌ์ค์ด ์๋ ์ ์ฐจ๋ก ์ฑ์ฅํ์ ๋ skill์ ์์ฑํฉ๋๋ค. CLAUDE.md ์ฝํ ์ธ ์ ๋ฌ๋ฆฌ, skill์ ๋ณธ๋ฌธ์ ์ฌ์ฉํ ๋๋ง ๋ก๋๋๋ฏ๋ก ๊ธด ์ฐธ์กฐ ์๋ฃ๋ ํ์ํ ๋๊น์ง ๊ฑฐ์ ๋น์ฉ์ด ๋ค์ง ์์ต๋๋ค.
/help ๋ฐ /compact์ ๊ฐ์ ๊ธฐ๋ณธ ์ ๊ณต ๋ช
๋ น์ด์ /debug ๋ฐ /code-review์ ๊ฐ์ ๋ฒ๋ค skills๋ ๋ช
๋ น์ด ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์ ์ ์ ๋ช
๋ น์ด๊ฐ skills๋ก ๋ณํฉ๋์์ต๋๋ค. .claude/commands/deploy.md์ ํ์ผ๊ณผ .claude/skills/deploy/SKILL.md์ skill์ ๋ชจ๋ /deploy๋ฅผ ์์ฑํ๊ณ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค. ๊ธฐ์กด .claude/commands/ ํ์ผ์ ๊ณ์ ์๋ํฉ๋๋ค. Skills๋ ์ ํ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค: ์ง์ ํ์ผ์ ์ํ ๋๋ ํ ๋ฆฌ, skill์ ๋๊ฐ ํธ์ถํ๋์ง ์ ์ดํ๊ธฐ ์ํ frontmatter, ๊ทธ๋ฆฌ๊ณ Claude๊ฐ ๊ด๋ จ์ด ์์ ๋ ์๋์ผ๋ก ๋ก๋ํ ์ ์๋ ๊ธฐ๋ฅ์
๋๋ค.
Claude Code skills๋ Agent Skills ๊ฐ๋ฐฉํ ํ์ค์ ๋ฐ๋ฅด๋ฉฐ, ์ด๋ ์ฌ๋ฌ AI ๋๊ตฌ์์ ์๋ํฉ๋๋ค. Claude Code๋ ํธ์ถ ์ ์ด, subagent ์คํ, ๋์ ์ปจํ ์คํธ ์ฃผ์ ๊ณผ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ํ์ค์ ํ์ฅํฉ๋๋ค.
๋ฒ๋ค skills
Claude Code์๋ ๋ชจ๋ ์ธ์
์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฒ๋ค skills ์ธํธ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, disableBundledSkills ์ค์ ์ผ๋ก ๋นํ์ฑํํ์ง ์๋ ํ /doctor, /code-review, /batch, /debug, /loop, /claude-api๋ฅผ ํฌํจํฉ๋๋ค. ๊ณ ์ ๋ก์ง์ ์ง์ ์คํํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ณธ ์ ๊ณต ๋ช
๋ น์ด์ ๋ฌ๋ฆฌ, ๋ฒ๋ค skills๋ ํ๋กฌํํธ ๊ธฐ๋ฐ์
๋๋ค: Claude์ ์์ธํ ์ง์์ฌํญ์ ์ ๊ณตํ๊ณ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์
์ ์กฐ์จํ๋๋ก ํฉ๋๋ค. ๋ค๋ฅธ skill๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ํธ์ถํฉ๋๋ค: / ๋ค์์ skill ์ด๋ฆ์ ์
๋ ฅํฉ๋๋ค.
/doctor ์ค์ ์ ๊ฒ์ Claude Code v2.1.205 ์ด์์์ disableBundledSkills์ ์์ธ์
๋๋ค: ์ค์ ์ด ์ผ์ ธ ์์ ๋๋ ์
๋ ฅ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฅผ ์จ๊ธฐ๋ ค๋ฉด DISABLE_DOCTOR_COMMAND ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๊ฑฐ๋ skillOverrides ํญ๋ชฉ์์ "doctor": "off"๋ฅผ ์ค์ ํฉ๋๋ค. v2.1.205 ์ด์ ์๋ /doctor๊ฐ ๋ฒ๋ค skill์ด ์๋ ๊ธฐ๋ณธ ์ ๊ณต ๋ช
๋ น์ด์์ต๋๋ค.
๋ฒ๋ค skills๋ ๋ช ๋ น์ด ์ฐธ์กฐ์ ๋์ด๋์ด ์์ผ๋ฉฐ, ๋ชฉ์ ์ด์ Skill๋ก ํ์๋ฉ๋๋ค.
์ฑ ์คํ ๋ฐ ํ์ธ
์ธ ๊ฐ์ง ๋ฒ๋ค skills๋ ํจ๊ป ์๋ํ์ฌ ์ฑ์ ์์ํ๊ณ ํ ์คํธ๋ง์ด ์๋ ์คํ ์ค์ธ ์ฑ์ ๋ํด ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํฉ๋๋ค:
| Skill | ๋ชฉ์ |
|---|---|
/run |
์ฑ์ ์์ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฑ์ ์คํํฉ๋๋ค |
/verify |
์ฑ์ ๋น๋ํ๊ณ ์คํํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ํ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ฉฐ, ํ ์คํธ๋ ํ์ ์ฒดํฌ๋ก ๋์๊ฐ์ง ์์ต๋๋ค |
/run-skill-generator |
/run๊ณผ /verify์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ ์์ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ฅด์นฉ๋๋ค |
{/* min-version: 2.1.145 */}์ธ ๊ฐ์ง skills ๋ชจ๋ Claude Code v2.1.145 ์ด์์ด ํ์ํฉ๋๋ค.
/run๊ณผ /verify๋ ์ค์ ์์ด ์๋ํฉ๋๋ค. ํ๋ก์ ํธ ์ ํ(CLI, ์๋ฒ, TUI, ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ)๊ณผ README, package.json ๋๋ Makefile์ ๋ด์ฉ์ผ๋ก๋ถํฐ ์์์ ์ถ๋ก ํฉ๋๋ค. ์ด ์ถ๋ก ์ ํ์ค ์์ ์ด์์ ๊ฒ์ด ํ์ํ ํ๋ก์ ํธ(๋ฐ์ดํฐ๋ฒ ์ด์ค, env ํ์ผ, ๊ทธ๋ํฝ ์ธ์
, ๋ค๋จ๊ณ ๋น๋)์ ๋ํด์๋ ์ ๋ขฐํ ์ ์๊ฒ ๋ฉ๋๋ค.
/run-skill-generator๋ ๋์ ๋ ์ํผ๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๊นจ๋ํ ํ๊ฒฝ์์ ์ฑ์ ์คํํ๊ณ , ์๋ํ ๊ฒ(์ค์น ๋ช
๋ น์ด, env ๋ณ์, ์์ ์คํฌ๋ฆฝํธ)์ ์บก์ฒํ๊ณ , ํ๋ก์ ํธ๋ณ skill๋ก .claude/skills/run-<name>/์ ์ปค๋ฐํฉ๋๋ค. ๊ทธ ํ /run, /verify ๋ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ค๋ฅธ ๋ชจ๋ ์์ด์ ํธ๋ ๋ ์ํผ๋ฅผ ๋ค์ ๋ฐ๊ฒฌํ๋ ๋์ ๊ธฐ๋ก๋ ๋ ์ํผ๋ฅผ ๋ฐ๋ฆ
๋๋ค. ํ๋ก์ ํธ๋น ํ ๋ฒ /run-skill-generator๋ฅผ ์คํํ๊ณ , ๋น๋ ๋๋ ์์ ํ๋ก์ธ์ค๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ค์ ์คํํฉ๋๋ค.
์์ํ๊ธฐ
์ฒซ ๋ฒ์งธ skill ์์ฑ
์ด ์์ ๋ git ์ ์ฅ์์ ์ปค๋ฐ๋์ง ์์ ๋ณ๊ฒฝ ์ฌํญ์ ์์ฝํ๊ณ ์ํํ ํญ๋ชฉ์ ํ์ํ๋ skill์ ์์ฑํฉ๋๋ค. ๋ผ์ด๋ธ diff๋ฅผ Claude๊ฐ ์ฝ๊ธฐ ์ ์ ํ๋กฌํํธ๋ก ๊ฐ์ ธ์ค๋ฏ๋ก, ์๋ต์ Claude๊ฐ ์ด๋ฆฐ ํ์ผ์์ ์ถ์ธกํ ์ ์๋ ๊ฒ์ด ์๋๋ผ ์ค์ ์์
ํธ๋ฆฌ์ ๊ธฐ๋ฐํฉ๋๋ค. Claude๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๋ฌผ์ด๋ณผ ๋ ์๋์ผ๋ก skill์ ๋ก๋ํ๊ฑฐ๋ /summarize-changes๋ก ์ง์ ํธ์ถํ ์ ์์ต๋๋ค.
skill ๋๋ ํ ๋ฆฌ ์์ฑ
๊ฐ์ธ skills ํด๋์ skill์ ์ํ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ๊ฐ์ธ skills๋ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
mkdir -p ~/.claude/skills/summarize-changes
SKILL.md ์์ฑ
๋ชจ๋ skill์๋ ๋ ๋ถ๋ถ์ด ์๋ SKILL.md ํ์ผ์ด ํ์ํฉ๋๋ค: Claude์๊ฒ skill์ ์ธ์ ์ฌ์ฉํ ์ง ์๋ ค์ฃผ๋ YAML frontmatter (--- ๋ง์ปค ์ฌ์ด)์ skill์ด ์คํ๋ ๋ Claude๊ฐ ๋ฐ๋ฅด๋ ์ง์นจ์ด ์๋ markdown ์ฝํ
์ธ ์
๋๋ค. ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ด ์
๋ ฅํ๋ ๋ช
๋ น์ด๊ฐ ๋๊ณ , description์ Claude๊ฐ ์๋์ผ๋ก skill์ ๋ก๋ํ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ด๋ฅผ ~/.claude/skills/summarize-changes/SKILL.md์ ์ ์ฅํฉ๋๋ค:
---
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---
## Current changes
!`git diff HEAD`
## Instructions
Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating. If the diff is empty, say there are no uncommitted changes.
!`git diff HEAD` ์ค์ ๋์ ์ปจํ
์คํธ ์ฃผ์
์ ์ฌ์ฉํฉ๋๋ค: Claude Code๋ ๋ช
๋ น์ด๋ฅผ ์คํํ๊ณ Claude๊ฐ skill ์ฝํ
์ธ ๋ฅผ ๋ณด๊ธฐ ์ ์ ์ค์ ์ถ๋ ฅ์ผ๋ก ๋ฐ๊พธ๋ฏ๋ก, ์ง์นจ์ ํ์ฌ diff๊ฐ ์ด๋ฏธ ์ธ๋ผ์ธ๋ ์ํ๋ก ๋์ฐฉํฉ๋๋ค.
skill ํ ์คํธ
git ํ๋ก์ ํธ๋ฅผ ์ด๊ณ , ํ์ผ์ ์ฝ๊ฐ ํธ์งํ ํ, claude๋ฅผ ์คํํ์ฌ Claude Code๋ฅผ ์์ํฉ๋๋ค. ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก skill์ ํ
์คํธํ ์ ์์ต๋๋ค.
Claude๊ฐ ์๋์ผ๋ก ํธ์ถํ๋๋ก ํ๊ธฐ - ์ค๋ช ๊ณผ ์ผ์นํ๋ ํญ๋ชฉ์ ๋ฌผ์ด๋ด ๋๋ค:
What did I change?
๋๋ skill ์ด๋ฆ์ผ๋ก ์ง์ ํธ์ถํ๊ธฐ:
/summarize-changes
์ด๋ ์ชฝ์ด๋ Claude๋ ํธ์ง์ ์งง์ ์์ฝ๊ณผ ์ํ ๋ชฉ๋ก์ผ๋ก ์๋ตํด์ผ ํฉ๋๋ค.
Skills๊ฐ ์๋ ์์น
skill์ ์ ์ฅํ๋ ์์น์ ๋ฐ๋ผ ๋๊ฐ ์ฌ์ฉํ ์ ์๋์ง๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค:
| ์์น | ๊ฒฝ๋ก | ์ ์ฉ ๋์ |
|---|---|---|
| Enterprise | ๊ด๋ฆฌ ์ค์ ์ฐธ์กฐ | ์กฐ์ง์ ๋ชจ๋ ์ฌ์ฉ์ |
| Personal | ~/.claude/skills/<skill-name>/SKILL.md |
๋ชจ๋ ํ๋ก์ ํธ |
| Project | .claude/skills/<skill-name>/SKILL.md |
์ด ํ๋ก์ ํธ๋ง |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md |
ํ๋ฌ๊ทธ์ธ์ด ํ์ฑํ๋ ์์น |
skills๊ฐ ์ฌ๋ฌ ์์ค์์ ๊ฐ์ ์ด๋ฆ์ ๊ณต์ ํ ๋, enterprise๊ฐ personal์ ์ฌ์ ์ํ๊ณ , personal์ด project๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ์ .claude/skills/์ ์๋ code-review skill์ ๋ฒ๋ค๋ /code-review๋ฅผ ๋์ฒดํฉ๋๋ค. Plugin skills๋ plugin-name:skill-name ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ค๋ฅธ ์์ค๊ณผ ์ถฉ๋ํ ์ ์์ต๋๋ค. .claude/commands/์ ํ์ผ์ด ์์ผ๋ฉด ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํ์ง๋ง, skill๊ณผ ๋ช
๋ น์ด๊ฐ ๊ฐ์ ์ด๋ฆ์ ๊ณต์ ํ๋ฉด skill์ด ์ฐ์ ํฉ๋๋ค.
Skills๋ ๋ํ ์์
๋๋ ํ ๋ฆฌ ์๋์ ์ค์ฒฉ๋ .claude/skills/ ๋๋ ํ ๋ฆฌ์์ ๋ก๋๋ฉ๋๋ค. Claude๊ฐ ํ์ ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ์ฝ๊ฑฐ๋ ํธ์งํ ๋, ํด๋น ํ์ ๋๋ ํ ๋ฆฌ์ .claude/skills/์ ์๋ skills๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํด์ง๋๋ค. ์ด๋ฅผ ํตํด monorepo ํจํค์ง๊ฐ ์์ ์ skills๋ฅผ ์ ๊ณตํ ์ ์์ผ๋ฉฐ, ์ธ์
์ด ์ ์ฅ์ ๋ฃจํธ์์ ์์๋์๋๋ผ๋ ํด๋น ํจํค์ง์์ ์์
ํ ๋ ์ ์ฉ๋ฉ๋๋ค.
์ค์ฒฉ๋ skill์ด ๋ค๋ฅธ skill๊ณผ ๊ฐ์ ์ด๋ฆ์ ๊ณต์ ํ๋ฉด, ๋ ๋ค ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ ๋ฃจํธ์ deploy skill์ด ์๊ณ apps/web/.claude/skills/์ ๋ค๋ฅธ skill์ด ์๋ ๊ฒฝ์ฐ:
- ์ค์ฒฉ๋ skill์ ๋๋ ํ ๋ฆฌ ํ์ ์ด๋ฆ
apps/web:deploy์๋์ ๋ํ๋ฉ๋๋ค. - ํด๋น ์ค๋ช ์ ์ด๋ ๋๋ ํ ๋ฆฌ์ ์ ์ฉ๋๋์ง ๋ํ๋ ๋๋ค.
- Claude๋ ์์ ์ค์ธ ํ์ผ๊ณผ ์ผ์นํ๋ ๋ณํ์ ์ ํํฉ๋๋ค.
/deploy๋ฅผ ์
๋ ฅํ๋ฉด ํ๋ก์ ํธ ๋ฃจํธ skill์ด ์คํ๋ฉ๋๋ค. ์ค์ฒฉ๋ ๋ณํ์ ๋ช
์์ ์ผ๋ก ์คํํ๋ ค๋ฉด ํ์ ๋ ์ด๋ฆ /apps/web:deploy๋ฅผ ์
๋ ฅํฉ๋๋ค.
ํ์ ๋์ง ์์ ์ด๋ฆ์ ํธ์ถํ๊ฑฐ๋ Claude๊ฐ ํธ์ถํ ๋, ํ๋ก์ ํธ ๋ฃจํธ skill์ด ๋ก๋๋๊ณ , Claude Code๋ ๋๋ ํ ๋ฆฌ ํ์ ๋ณํ ๋ชฉ๋ก์ ํด๋น ์ฝํ ์ธ ์ ์ถ๊ฐํ๋ฉฐ, Claude๊ฐ ์์ ์ค์ธ ํ์ผ์ ๋ณด์ ํ ๋ณํ๋ ํธ์ถํ๋๋ก ์ง์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ค์ฒฉ๋ skill์ ํ์ ๋์ง ์์ ์ด๋ฆ๋ง ํธ์ถํ ๋๋ ํด๋น ๋๋ ํ ๋ฆฌ์ ์์ ์ ๊ณ์ ์ ์ฉ๋ฉ๋๋ค. Claude Code v2.1.203 ์ด์์ด ํ์ํฉ๋๋ค.
<skill-name> ํญ๋ชฉ์ด enterprise, personal ๋๋ project ์์น์ ์์ ์ ์์ผ๋ฉฐ, ๋์คํฌ์ ๋ค๋ฅธ ๊ณณ์ ์๋ ๋๋ ํ ๋ฆฌ๋ก์ symlink์ผ ์ ์์ต๋๋ค. Claude Code๋ symlink๋ฅผ ๋ฐ๋ผ๊ฐ๊ณ ๋์ ๋๋ ํ ๋ฆฌ์์ SKILL.md๋ฅผ ์ฝ์ผ๋ฉฐ, ๊ฐ์ ๋์์ ๋ ์ด์์ ์์น์์ ๋๋ฌํ ์ ์์ผ๋ฉด Claude Code๋ skill์ ํ ๋ฒ๋ง ๋ก๋ํฉ๋๋ค. Plugin skills๋ symlinks๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค. ๋ง์ผํ๋ ์ด์ค ๋ด์์ symlinks๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ๊ณต์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
.claude-plugin/plugin.json์ skill ํด๋์ ์ถ๊ฐํ๋ฉด <name>@skills-dir์ด๋ผ๋ ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋ก๋๋๋ฏ๋ก, agents, hooks ๋ฐ MCP ์๋ฒ๋ฅผ ๋ฒ๋ค๋ก ์ ๊ณตํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ์ .claude/skills/์์๋ ๋จผ์ ์์
๊ณต๊ฐ ์ ๋ขฐ ๋ํ๋ฅผ ์๋ฝํด์ผ ํฉ๋๋ค.
๋ผ์ด๋ธ ๋ณ๊ฒฝ ๊ฐ์ง
Claude Code๋ skill ๋๋ ํ ๋ฆฌ์ ํ์ผ ๋ณ๊ฒฝ์ ๊ฐ์ํฉ๋๋ค. ~/.claude/skills/, ํ๋ก์ ํธ .claude/skills/, ๋๋ --add-dir ๋๋ ํ ๋ฆฌ ๋ด์ .claude/skills/ ์๋์์ skill์ ์ถ๊ฐ, ํธ์ง ๋๋ ์ ๊ฑฐํ๋ฉด Claude Code๋ฅผ ๋ค์ ์์ํ์ง ์๊ณ ๋ ํ์ฌ ์ธ์
๋ด์์ ์ ์ฉ๋ฉ๋๋ค. ์ธ์
์ด ์์๋์์ ๋ ์กด์ฌํ์ง ์์๋ ์ต์์ skills ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๋ ค๋ฉด Claude Code๋ฅผ ๋ค์ ์์ํด์ผ ์ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ์ํ ์ ์์ต๋๋ค.
๋ผ์ด๋ธ ๋ณ๊ฒฝ ๊ฐ์ง๋ SKILL.md ํ
์คํธ๋ง ํฌํจํฉ๋๋ค. skill ํด๋๊ฐ ํ๋ฌ๊ทธ์ธ์ด๊ธฐ๋ ํ ๊ฒฝ์ฐ, hooks/, .mcp.json, agents/ ๋ฐ output-styles/์ ๋ณ๊ฒฝ ์ฌํญ์ /reload-plugins๋ฅผ ์คํํด์ผ ์ ์ฉ๋ฉ๋๋ค.
์์ ๋ฐ ์ค์ฒฉ๋ ๋๋ ํ ๋ฆฌ์์ ์๋ ๊ฒ์
ํ๋ก์ ํธ skills๋ ์์ ๋๋ ํ ๋ฆฌ์ .claude/skills/์ ์ ์ฅ์ ๋ฃจํธ๊น์ง์ ๋ชจ๋ ์์ ๋๋ ํ ๋ฆฌ์์ ๋ก๋๋๋ฏ๋ก, ํ์ ๋๋ ํ ๋ฆฌ์์ Claude๋ฅผ ์์ํด๋ ๋ฃจํธ์์ ์ ์๋ skills๋ฅผ ์ ํํฉ๋๋ค. ์์ ๋๋ ํ ๋ฆฌ ์๋์ ํ์ ๋๋ ํ ๋ฆฌ์ ์๋ ํ์ผ๋ก ์์
ํ ๋, Claude Code๋ ํ์์ ๋ฐ๋ผ ์ค์ฒฉ๋ .claude/skills/ ๋๋ ํ ๋ฆฌ์์ skills๋ฅผ ๊ฒ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, packages/frontend/์ ํ์ผ์ ํธ์งํ๋ ๊ฒฝ์ฐ, Claude Code๋ packages/frontend/.claude/skills/์์๋ skills๋ฅผ ์ฐพ์ต๋๋ค. ์ด๋ ํจํค์ง๊ฐ ์์ ์ skills๋ฅผ ๊ฐ์ง monorepo ์ค์ ์ ์ง์ํฉ๋๋ค.
๊ฐ skill์ SKILL.md๋ฅผ ์ง์
์ ์ผ๋ก ํ๋ ๋๋ ํ ๋ฆฌ์
๋๋ค:
my-skill/
โโโ SKILL.md # ์ฃผ์ ์ง์นจ (ํ์)
โโโ template.md # Claude๊ฐ ์ฑ์ธ ํ
ํ๋ฆฟ
โโโ examples/
โ โโโ sample.md # ์์ ํ์์ ๋ณด์ฌ์ฃผ๋ ์์ ์ถ๋ ฅ
โโโ scripts/
โโโ validate.sh # Claude๊ฐ ์คํํ ์ ์๋ ์คํฌ๋ฆฝํธ
SKILL.md๋ ์ฃผ์ ์ง์นจ์ ํฌํจํ๋ฉฐ ํ์์
๋๋ค. ๋ค๋ฅธ ํ์ผ์ ์ ํ์ ์ด๋ฉฐ ๋ ๊ฐ๋ ฅํ skills๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค: Claude๊ฐ ์ฑ์ธ ํ
ํ๋ฆฟ, ์์ ํ์์ ๋ณด์ฌ์ฃผ๋ ์์ ์ถ๋ ฅ, Claude๊ฐ ์คํํ ์ ์๋ ์คํฌ๋ฆฝํธ ๋๋ ์์ธํ ์ฐธ์กฐ ๋ฌธ์. SKILL.md์์ ์ด๋ฌํ ํ์ผ์ ์ฐธ์กฐํ์ฌ Claude๊ฐ ๊ฐ ํ์ผ์ ๋ด์ฉ๊ณผ ๋ก๋ ์๊ธฐ๋ฅผ ์ ์ ์๋๋ก ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ง์ ํ์ผ ์ถ๊ฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
.claude/commands/์ ํ์ผ์ ๊ณ์ ์๋ํ๋ฉฐ ๋์ผํ frontmatter๋ฅผ ์ง์ํฉ๋๋ค. Skills๋ ์ง์ ํ์ผ๊ณผ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ง์ํ๋ฏ๋ก ๊ถ์ฅ๋ฉ๋๋ค.
์ถ๊ฐ ๋๋ ํ ๋ฆฌ์ Skills
--add-dir ํ๋๊ทธ์ /add-dir ๋ช
๋ น์ด๋ ํ์ผ ์ก์ธ์ค๋ฅผ ๋ถ์ฌํ์ง๋ง ๊ตฌ์ฑ ๊ฒ์์ ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ skills๋ ์์ธ์
๋๋ค: ์ถ๊ฐ๋ ๋๋ ํ ๋ฆฌ ๋ด์ .claude/skills/๋ ์๋์ผ๋ก ๋ก๋๋ฉ๋๋ค. ์ด ์์ธ๋ --add-dir๊ณผ /add-dir์๋ง ์ ์ฉ๋ฉ๋๋ค. settings.json์ permissions.additionalDirectories ์ค์ ์ ํ์ผ ์ก์ธ์ค๋ง ๋ถ์ฌํ๋ฉฐ skills๋ฅผ ๋ก๋ํ์ง ์์ต๋๋ค. ๋ผ์ด๋ธ ๋ณ๊ฒฝ ๊ฐ์ง๋ฅผ ์ฐธ์กฐํ์ฌ ์ธ์
์ค์ ํธ์ง์ด ์ด๋ป๊ฒ ์ ํ๋๋์ง ํ์ธํ์ธ์.
๋ค๋ฅธ .claude/ ๊ตฌ์ฑ(์: ๋ช
๋ น์ด ๋ฐ ์ถ๋ ฅ ์คํ์ผ)์ ์ถ๊ฐ ๋๋ ํ ๋ฆฌ์์ ๋ก๋๋์ง ์์ต๋๋ค. ๋ก๋๋๋ ํญ๋ชฉ๊ณผ ๋ก๋๋์ง ์๋ ํญ๋ชฉ์ ์ ์ฒด ๋ชฉ๋ก๊ณผ ํ๋ก์ ํธ ๊ฐ ๊ตฌ์ฑ์ ๊ณต์ ํ๋ ๊ถ์ฅ ๋ฐฉ๋ฒ์ ์์ธ ํ๋ฅผ ์ฐธ์กฐํ์ธ์.
--add-dir ๋๋ ํ ๋ฆฌ์ CLAUDE.md ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ก๋๋์ง ์์ต๋๋ค. ๋ก๋ํ๋ ค๋ฉด CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1์ ์ค์ ํ์ธ์. ์ถ๊ฐ ๋๋ ํ ๋ฆฌ์์ ๋ก๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Skills ๊ตฌ์ฑ
Skills๋ SKILL.md ์๋จ์ YAML frontmatter์ ๊ทธ ๋ค์ markdown ์ฝํ
์ธ ๋ฅผ ํตํด ๊ตฌ์ฑ๋ฉ๋๋ค.
Skill ์ฝํ ์ธ ์ ํ
Skill ํ์ผ์ ๋ชจ๋ ์ง์นจ์ ํฌํจํ ์ ์์ง๋ง, ํธ์ถ ๋ฐฉ์์ ์๊ฐํ๋ฉด ํฌํจํ ๋ด์ฉ์ ์๋ดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค:
์ฐธ์กฐ ์ฝํ ์ธ ๋ Claude๊ฐ ํ์ฌ ์์ ์ ์ ์ฉํ๋ ์ง์์ ์ถ๊ฐํฉ๋๋ค. ๊ท์น, ํจํด, ์คํ์ผ ๊ฐ์ด๋, ๋๋ฉ์ธ ์ง์. ์ด ์ฝํ ์ธ ๋ ์ธ๋ผ์ธ์ผ๋ก ์คํ๋๋ฏ๋ก Claude๊ฐ ๋ํ ์ปจํ ์คํธ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
---
name: api-conventions
description: API design patterns for this codebase
---
When writing API endpoints:
- Use RESTful naming conventions
- Return consistent error formats
- Include request validation
์์
์ฝํ
์ธ ๋ ๋ฐฐํฌ, ์ปค๋ฐ ๋๋ ์ฝ๋ ์์ฑ๊ณผ ๊ฐ์ ํน์ ์์
์ ๋ํ ๋จ๊ณ๋ณ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ Claude๊ฐ ์๋์ผ๋ก ์คํํ๋๋ก ํ๊ธฐ๋ณด๋ค๋ /skill-name์ผ๋ก ์ง์ ํธ์ถํ๋ ค๋ ์์
์
๋๋ค. disable-model-invocation: true๋ฅผ ์ถ๊ฐํ์ฌ Claude๊ฐ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
---
name: deploy
description: Deploy the application to production
context: fork
disable-model-invocation: true
---
Deploy the application:
1. Run the test suite
2. Build the application
3. Push to the deployment target
SKILL.md๋ ๋ชจ๋ ๊ฒ์ ํฌํจํ ์ ์์ง๋ง, skill์ ํธ์ถํ๋ ๋ฐฉ์(์ฌ์ฉ์, Claude ๋๋ ๋ ๋ค)๊ณผ ์คํ ์์น(์ธ๋ผ์ธ ๋๋ subagent)๋ฅผ ์๊ฐํ๋ฉด ํฌํจํ ๋ด์ฉ์ ์๋ดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ณต์กํ skills์ ๊ฒฝ์ฐ, ์ง์ ํ์ผ์ ์ถ๊ฐํ์ฌ ์ฃผ์ skill์ ์ง์ค์ ์ผ๋ก ์ ์งํ ์๋ ์์ต๋๋ค.
๋ณธ๋ฌธ ์์ฒด๋ ๊ฐ๊ฒฐํ๊ฒ ์ ์งํฉ๋๋ค. Skill์ด ๋ก๋๋๋ฉด, ๊ทธ ์ฝํ ์ธ ๋ ํด ์ ์ฒด์ ๊ฑธ์ณ ์ปจํ ์คํธ์ ์ ์ง๋๋ฏ๋ก, ๋ชจ๋ ์ค์ด ๋ฐ๋ณต๋๋ ํ ํฐ ๋น์ฉ์ ๋๋ค. ์ด๋ป๊ฒ ๋๋ ์์ธ์ง ์ค๋ช ํ๊ธฐ๋ณด๋ค๋ ๋ฌด์์ ํ ์ง ๋ช ์ํ๊ณ , CLAUDE.md ์ฝํ ์ธ ์ ์ ์ฉํ ๋์ผํ ๊ฐ๊ฒฐ์ฑ ํ ์คํธ๋ฅผ ์ ์ฉํฉ๋๋ค.
Frontmatter ์ฐธ์กฐ
markdown ์ฝํ
์ธ ์ธ์๋, SKILL.md ํ์ผ ์๋จ์ --- ๋ง์ปค ์ฌ์ด์ YAML frontmatter ํ๋๋ฅผ ์ฌ์ฉํ์ฌ skill ๋์์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
---
name: my-skill
description: What this skill does
disable-model-invocation: true
allowed-tools: Read Grep
---
Your skill instructions here...
๋ชจ๋ ํ๋๋ ์ ํ์ ์
๋๋ค. Claude๊ฐ skill์ ์ธ์ ์ฌ์ฉํ ์ง ์ ์ ์๋๋ก description๋ง ๊ถ์ฅ๋ฉ๋๋ค.
| ํ๋ | ํ์ | ์ค๋ช |
|---|---|---|
name |
์๋์ค | skill ๋ชฉ๋ก์ ํ์๋๋ ํ์ ์ด๋ฆ์ ๋๋ค. ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ด ์ค์ ๋ฉ๋๋ค. skill์ ํธ์ถํ๊ธฐ ์ํด ์ ๋ ฅํ๋ ์ด๋ฆ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง๋ skill์ด ๋ช ๋ น์ด ์ด๋ฆ์ ์ป๋ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ์ธ์. |
description |
๊ถ์ฅ | skill์ด ๋ฌด์์ ํ๋์ง, ์ธ์ ์ฌ์ฉํ ์ง. Claude๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ skill์ ์๋์ผ๋ก ์ ์ฉํ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์๋ตํ๋ฉด markdown ์ฝํ
์ธ ์ ์ฒซ ๋ฒ์งธ ๋จ๋ฝ์ ์ฌ์ฉํฉ๋๋ค. ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ๋ฐฐ์นํฉ๋๋ค: ๊ฒฐํฉ๋ description ๋ฐ when_to_use ํ
์คํธ๋ ์ปจํ
์คํธ ์ฌ์ฉ์ ์ค์ด๊ธฐ ์ํด skill ๋ชฉ๋ก์์ 1,536์๋ก ์๋ฆฝ๋๋ค. |
when_to_use |
์๋์ค | Claude๊ฐ skill์ ํธ์ถํด์ผ ํ ๋์ ๋ํ ์ถ๊ฐ ์ปจํ
์คํธ(์: ํธ๋ฆฌ๊ฑฐ ๊ตฌ๋ฌธ ๋๋ ์์ ์์ฒญ). skill ๋ชฉ๋ก์์ description์ ์ถ๊ฐ๋๋ฉฐ 1,536์ ์ ํ์ ํฌํจ๋ฉ๋๋ค. |
argument-hint |
์๋์ค | ์์ ์ธ์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์๋ ์์ฑ ์ค์ ํ์๋๋ ํํธ. ์: [issue-number] ๋๋ [filename] [format]. |
arguments |
์๋์ค | skill ์ฝํ
์ธ ์์ $name ์นํ์ ์ํ ๋ช
๋ช
๋ ์์น ์ธ์. ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด ๋๋ YAML ๋ชฉ๋ก์ ํ์ฉํฉ๋๋ค. ์ด๋ฆ์ ์์๋๋ก ์ธ์ ์์น์ ๋งคํ๋ฉ๋๋ค. |
disable-model-invocation |
์๋์ค | Claude๊ฐ ์ด skill์ ์๋์ผ๋ก ๋ก๋ํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ฉด true๋ก ์ค์ ํฉ๋๋ค. /name์ผ๋ก ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐํ๋ ค๋ ์ํฌํ๋ก์ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋ํ skill์ด subagents์ ๋ฏธ๋ฆฌ ๋ก๋๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. v2.1.196๋ถํฐ๋ ์์ฝ๋ ์์
์ด skill์ ํ๋กฌํํธ๋ก ํ์ฌ ์คํ๋ ๋ skill์ด ์คํ๋๋ ๊ฒ๋ ๋ฐฉ์งํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: false. |
user-invocable |
์๋์ค | / ๋ฉ๋ด์์ ์จ๊ธฐ๋ ค๋ฉด false๋ก ์ค์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ง์ ํธ์ถํ์ง ์์์ผ ํ๋ ๋ฐฐ๊ฒฝ ์ง์์ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: true. |
allowed-tools |
์๋์ค | ์ด skill์ด ํ์ฑํ๋์์ ๋ Claude๊ฐ ๊ถํ์ ์์ฒญํ์ง ์๊ณ ์ฌ์ฉํ ์ ์๋ ๋๊ตฌ. ๊ณต๋ฐฑ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด ๋๋ YAML ๋ชฉ๋ก์ ํ์ฉํฉ๋๋ค. |
disallowed-tools |
์๋์ค | ์ด skill์ด ํ์ฑํ๋์์ ๋ Claude์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ ํ์์ ์ ๊ฑฐ๋๋ ๋๊ตฌ. AskUserQuestion๊ณผ ๊ฐ์ด ๋ฐฐ๊ฒฝ ๋ฃจํ์ ๋ํด ํน์ ๋๊ตฌ๋ฅผ ํธ์ถํ์ง ์์์ผ ํ๋ ์์จ skills์ ์ฌ์ฉํฉ๋๋ค. ๊ณต๋ฐฑ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด ๋๋ YAML ๋ชฉ๋ก์ ํ์ฉํฉ๋๋ค. ๋ค์ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋ ์ ํ์ด ํด์ ๋ฉ๋๋ค. |
model |
์๋์ค | ์ด skill์ด ํ์ฑํ๋์์ ๋ ์ฌ์ฉํ ๋ชจ๋ธ. ์ฌ์ ์๋ ํ์ฌ ํด์ ๋๋จธ์ง ๋ถ๋ถ์ ์ ์ฉ๋๋ฉฐ ์ค์ ์ ์ ์ฅ๋์ง ์์ต๋๋ค. ๋ค์ ํ๋กฌํํธ์์ ์ธ์
๋ชจ๋ธ์ด ์ฌ๊ฐ๋ฉ๋๋ค. /model๊ณผ ๋์ผํ ๊ฐ์ ํ์ฉํ๊ฑฐ๋ ํ์ฑ ๋ชจ๋ธ์ ์ ์งํ๋ ค๋ฉด inherit์ ํ์ฉํฉ๋๋ค. ์กฐ์ง์ availableModels ํ์ฉ ๋ชฉ๋ก์์ ์ ์ธ๋ ๊ฐ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์ธ์
์ ํ์ฌ ๋ชจ๋ธ์ ์ ์งํฉ๋๋ค. |
effort |
์๋์ค | ๋
ธ๋ ฅ ์์ค - ์ด skill์ด ํ์ฑํ๋์์ ๋. ์ธ์
๋
ธ๋ ฅ ์์ค์ ์ฌ์ ์ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ: ์ธ์
์์ ์์. ์ต์
: low, medium, high, xhigh, max; ์ฌ์ฉ ๊ฐ๋ฅํ ์์ค์ ๋ชจ๋ธ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. |
context |
์๋์ค | forked subagent ์ปจํ
์คํธ์์ ์คํํ๋ ค๋ฉด fork๋ก ์ค์ ํฉ๋๋ค. |
agent |
์๋์ค | context: fork๊ฐ ์ค์ ๋์์ ๋ ์ฌ์ฉํ subagent ์ ํ. |
hooks |
์๋์ค | ์ด skill์ ๋ผ์ดํ์ฌ์ดํด์ ๋ฒ์๊ฐ ์ง์ ๋ hooks. ๊ตฌ์ฑ ํ์์ Skills ๋ฐ agents์ Hooks๋ฅผ ์ฐธ์กฐํ์ธ์. |
paths |
์๋์ค | ์ด skill์ด ํ์ฑํ๋๋ ์๊ธฐ๋ฅผ ์ ํํ๋ Glob ํจํด. ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด ๋๋ YAML ๋ชฉ๋ก์ ํ์ฉํฉ๋๋ค. ์ค์ ํ๋ฉด Claude๋ ํจํด๊ณผ ์ผ์นํ๋ ํ์ผ๋ก ์์ ํ ๋๋ง ์๋์ผ๋ก skill์ ๋ก๋ํฉ๋๋ค. ๊ฒฝ๋ก๋ณ ๊ท์น๊ณผ ๋์ผํ ํ์์ ์ฌ์ฉํฉ๋๋ค. |
shell |
์๋์ค | ์ด skill์ !`command` ๋ฐ ```! ๋ธ๋ก์ ์ฌ์ฉํ shell. bash(๊ธฐ๋ณธ๊ฐ) ๋๋ powershell์ ํ์ฉํฉ๋๋ค. powershell์ ์ค์ ํ๋ฉด Windows์์ PowerShell์ ํตํด ์ธ๋ผ์ธ shell ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค. CLAUDE_CODE_USE_POWERSHELL_TOOL=1์ด ํ์ํฉ๋๋ค. |
Skill์ด ๋ช ๋ น์ด ์ด๋ฆ์ ์ป๋ ๋ฐฉ๋ฒ
skill์ ํธ์ถํ๊ธฐ ์ํด ์
๋ ฅํ๋ ๋ช
๋ น์ด๋ skill ํ์ผ์ด ์๋ ์์น์์ ๋์ต๋๋ค. frontmatter name ํ๋๋ skill ๋ชฉ๋ก์ ํ์๋๋ ํ์ ๋ ์ด๋ธ์ ์ค์ ํ๋ฉฐ, plugin ๋ฃจํธ SKILL.md๋ฅผ ์ ์ธํ๊ณ ๋ / ๋ค์ ์
๋ ฅํ๋ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
์๋ ํ๋ ๊ฐ ๋ ์ด์์์ ๋ํด ๋ช ๋ น์ด ์ด๋ฆ์ด ์ด๋์์ ๋์ค๋์ง ๋ณด์ฌ์ค๋๋ค:
| Skill ์์น | ๋ช ๋ น์ด ์ด๋ฆ ์์ค | ์์ |
|---|---|---|
~/.claude/skills/ ๋๋ .claude/skills/ ์๋์ Skill ๋๋ ํ ๋ฆฌ |
๋๋ ํ ๋ฆฌ ์ด๋ฆ | .claude/skills/deploy-staging/SKILL.md โ /deploy-staging |
์ค์ฒฉ๋ .claude/skills/ ๋๋ ํ ๋ฆฌ, ๋ค๋ฅธ skill๊ณผ ์ด๋ฆ์ด ์ถฉ๋ํ ๋ |
์์ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ํ์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก, ๊ทธ ๋ค์ skill ๋๋ ํ ๋ฆฌ ์ด๋ฆ | apps/web/.claude/skills/deploy/SKILL.md โ /apps/web:deploy |
.claude/commands/ ์๋์ ํ์ผ |
ํ์ฅ์ ์๋ ํ์ผ ์ด๋ฆ | .claude/commands/deploy.md โ /deploy |
Plugin skills/ ํ์ ๋๋ ํ ๋ฆฌ |
๋๋ ํ ๋ฆฌ ์ด๋ฆ, plugin์ผ๋ก ๋ค์์คํ์ด์ค๋จ | my-plugin/skills/review/SKILL.md โ /my-plugin:review |
Plugin ๋ฃจํธ SKILL.md |
Frontmatter name, plugin ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ ํด๋ฐฑ์ผ๋ก ์ฌ์ฉ |
my-plugin/SKILL.md์์ name: review โ /my-plugin:review. ๊ฒฝ๋ก ๋์ ๊ท์น ์ฐธ์กฐ |
plugin ๋ฃจํธ ๊ฒฝ์ฐ๋ name์ด ๋ช
๋ น์ด ์ด๋ฆ์ ์ค์ ํ๋ ์ ์ผํ ๊ฒฝ์ฐ์
๋๋ค. skill ๋๋ ํ ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค. frontmatter์์ name์ด ์ค์ ๋์ง ์์ผ๋ฉด plugin์ ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ด ๋์ ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌธ์์ด ์นํ
Skills๋ skill ์ฝํ ์ธ ์ ๋์ ๊ฐ์ ๋ํ ๋ฌธ์์ด ์นํ์ ์ง์ํฉ๋๋ค:
| ๋ณ์ | ์ค๋ช |
|---|---|
$ARGUMENTS |
skill์ ํธ์ถํ ๋ ์ ๋ฌ๋ ๋ชจ๋ ์ธ์. $ARGUMENTS๊ฐ ์ฝํ
์ธ ์ ์์ผ๋ฉด ์ธ์๊ฐ ARGUMENTS: <value>๋ก ์ถ๊ฐ๋ฉ๋๋ค. |
$ARGUMENTS[N] |
0 ๊ธฐ๋ฐ ์ธ๋ฑ์ค๋ก ํน์ ์ธ์์ ์ก์ธ์คํฉ๋๋ค(์: $ARGUMENTS[0]์ ์ฒซ ๋ฒ์งธ ์ธ์). |
$N |
$ARGUMENTS[N]์ ์ฝ์(์: $0์ ์ฒซ ๋ฒ์งธ ์ธ์, $1์ ๋ ๋ฒ์งธ ์ธ์). |
$name |
arguments frontmatter ๋ชฉ๋ก์์ ์ ์ธ๋ ๋ช
๋ช
๋ ์ธ์. ์ด๋ฆ์ ์์๋๋ก ์์น์ ๋งคํ๋๋ฏ๋ก, arguments: [issue, branch]๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ ์ด์คํ๋ $issue๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ก ํ์ฅ๋๊ณ $branch๋ ๋ ๋ฒ์งธ ์ธ์๋ก ํ์ฅ๋ฉ๋๋ค. |
${CLAUDE_SESSION_ID} |
ํ์ฌ ์ธ์ ID. ๋ก๊น , ์ธ์ ๋ณ ํ์ผ ์์ฑ ๋๋ skill ์ถ๋ ฅ์ ์ธ์ ๊ณผ ์ฐ๊ด์ํค๋ ๋ฐ ์ ์ฉํฉ๋๋ค. |
${CLAUDE_EFFORT} |
ํ์ฌ ๋
ธ๋ ฅ ์์ค: low, medium, high, xhigh, ๋๋ max. Ultracode๋ ๋ณ๊ฐ์ ์์ค์ด ์๋๋ฉฐ xhigh๋ก ๋ณด๊ณ ๋ฉ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฑ ๋
ธ๋ ฅ ์ค์ ์ ๋ง๊ฒ skill ์ง์นจ์ ์กฐ์ ํฉ๋๋ค. |
${CLAUDE_SKILL_DIR} |
skill์ SKILL.md ํ์ผ์ ํฌํจํ๋ ๋๋ ํ ๋ฆฌ. plugin skills์ ๊ฒฝ์ฐ, ์ด๋ plugin ๋ฃจํธ๊ฐ ์๋ plugin ๋ด์ skill ํ์ ๋๋ ํ ๋ฆฌ์
๋๋ค. bash ์ฃผ์
๋ช
๋ น์ด์์ ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์ ๊ด๊ณ์์ด skill๊ณผ ํจ๊ป ๋ฒ๋ค๋ ์คํฌ๋ฆฝํธ ๋๋ ํ์ผ์ ์ฐธ์กฐํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค. |
${CLAUDE_PROJECT_DIR} |
ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ. ์ด๋ hooks์ MCP ์๋ฒ๊ฐ CLAUDE_PROJECT_DIR๋ก ๋ฐ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฝ๋ก์
๋๋ค. ํ๋ก์ ํธ ๋ก์ปฌ ์คํฌ๋ฆฝํธ ๋๋ ํ์ผ(์: ${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh)์ ์ฐธ์กฐํ๋ ๋ฐ ์ฌ์ฉํ์ฌ skill์ด ์ค์น๋ ์์น์ ๊ด๊ณ์์ด ์ฌ์ฉํฉ๋๋ค. |
${CLAUDE_PROJECT_DIR} ์นํ์ Claude Code v2.1.196 ์ด์์ด ํ์ํฉ๋๋ค. skill ๋ณธ๋ฌธ๊ณผ allowed-tools frontmatter ๋ชจ๋์ ์ ์ฉ๋๋ฏ๋ก, Bash(${CLAUDE_PROJECT_DIR}/scripts/lint.sh *) ๊ฐ์ ๊ถํ ๊ท์น์ skill ๋ณธ๋ฌธ์ด ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒฝ๋ก๋ก ํ์ธ๋ฉ๋๋ค.
์ธ๋ฑ์ฑ๋ ์ธ์๋ shell ์คํ์ผ ์ธ์ฉ์ ์ฌ์ฉํ๋ฏ๋ก ๋ค์ค ๋จ์ด ๊ฐ์ ๋ฐ์ดํ๋ก ๊ฐ์ธ์ ๋จ์ผ ์ธ์๋ก ์ ๋ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด, /my-skill "hello world" second๋ $0์ hello world๋ก, $1์ second๋ก ํ์ฅํฉ๋๋ค. $ARGUMENTS ํ๋ ์ด์คํ๋๋ ํญ์ ์
๋ ฅํ ์ ์ฒด ์ธ์ ๋ฌธ์์ด๋ก ํ์ฅ๋ฉ๋๋ค.
๋ฆฌํฐ๋ด $๋ฅผ ์ซ์, ARGUMENTS ๋๋ ์ ์ธ๋ ์ธ์ ์ด๋ฆ ์์ ํฌํจํ๋ ค๋ฉด(์: ์ฐ๋ฌธ์์ $1.00), ๋ฐฑ์ฌ๋์๋ก ์ด์ค์ผ์ดํํฉ๋๋ค: \$1.00. ๋ค๋ฅธ $ ์์ ๋ฐฑ์ฌ๋์๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ํ ํฐ ๋ฐ๋ก ์์ ๋จ์ผ ๋ฐฑ์ฌ๋์๋ง ์ด์ค์ผ์ดํํฉ๋๋ค. \\$1๊ณผ ๊ฐ์ ์ด์ค ๋ฐฑ์ฌ๋์๋ ๋ ๋ฐฑ์ฌ๋์๋ฅผ ์ ์๋ฆฌ์ ๋๊ณ , $1์ ์ฌ์ ํ ์ธ์ ๊ฐ์ผ๋ก ํ์ฅ๋ฉ๋๋ค.
์นํ์ ์ฌ์ฉํ ์์ :
---
name: session-logger
description: Log activity for this session
---
Log the following to logs/${CLAUDE_SESSION_ID}.log:
$ARGUMENTS
์ง์ ํ์ผ ์ถ๊ฐ
Skills๋ ๋๋ ํ ๋ฆฌ์ ์ฌ๋ฌ ํ์ผ์ ํฌํจํ ์ ์์ต๋๋ค. ์ด๋ SKILL.md๋ฅผ ํ์ ํญ๋ชฉ์ ์ง์คํ๊ฒ ํ๋ฉด์ Claude๊ฐ ํ์ํ ๋๋ง ์์ธํ ์ฐธ์กฐ ์๋ฃ์ ์ก์ธ์คํ ์ ์๊ฒ ํฉ๋๋ค. ํฐ ์ฐธ์กฐ ๋ฌธ์, API ์ฌ์ ๋๋ ์์ ์ปฌ๋ ์
์ skill์ด ์คํ๋ ๋๋ง๋ค ์ปจํ
์คํธ์ ๋ก๋๋ ํ์๊ฐ ์์ต๋๋ค.
my-skill/
โโโ SKILL.md (required - overview and navigation)
โโโ reference.md (detailed API docs - loaded when needed)
โโโ examples.md (usage examples - loaded when needed)
โโโ scripts/
โโโ helper.py (utility script - executed, not loaded)
SKILL.md์์ ์ง์ ํ์ผ์ ์ฐธ์กฐํ์ฌ Claude๊ฐ ๊ฐ ํ์ผ์ ๋ด์ฉ๊ณผ ๋ก๋ ์๊ธฐ๋ฅผ ์ ์ ์๋๋ก ํฉ๋๋ค:
## Additional resources
- For complete API details, see [reference.md](/anthropic/claude-code/history/docs/ko/2026-07-09-2358..2026-07-10-1700/reference/)
- For usage examples, see [examples.md](/anthropic/claude-code/history/docs/ko/2026-07-09-2358..2026-07-10-1700/examples/)
SKILL.md๋ฅผ 500์ค ์ดํ๋ก ์ ์งํฉ๋๋ค. ์์ธํ ์ฐธ์กฐ ์๋ฃ๋ฅผ ๋ณ๋ ํ์ผ๋ก ์ด๋ํฉ๋๋ค.
Skill์ ํธ์ถํ๋ ์ฌ๋ ์ ์ด
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์์ Claude ๋ชจ๋ ๋ชจ๋ skill์ ํธ์ถํ ์ ์์ต๋๋ค. /skill-name์ ์
๋ ฅํ์ฌ ์ง์ ํธ์ถํ ์ ์๊ณ , Claude๋ ๋ํ์ ๊ด๋ จ์ด ์์ ๋ ์๋์ผ๋ก ๋ก๋ํ ์ ์์ต๋๋ค. ๋ frontmatter ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค:
-
disable-model-invocation: true: ์ฌ์ฉ์๋ง skill์ ํธ์ถํ ์ ์์ต๋๋ค. ๋ถ์์ฉ์ด ์๊ฑฐ๋ ํ์ด๋ฐ์ ์ ์ดํ๋ ค๋ ์ํฌํ๋ก์ฐ(์:/commit,/deploy๋๋/send-slack-message)์ ์ฌ์ฉํฉ๋๋ค. Claude๊ฐ ์ฝ๋๊ฐ ์ค๋น๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค๊ณ ํด์ ๋ฐฐํฌํ๊ธฐ๋ก ๊ฒฐ์ ํ์ง ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. -
user-invocable: false: Claude๋ง skill์ ํธ์ถํ ์ ์์ต๋๋ค. ๋ช ๋ น์ด๋ก ์คํํ ์ ์๋ ๋ฐฐ๊ฒฝ ์ง์์ ์ฌ์ฉํฉ๋๋ค.legacy-system-contextskill์ ์ค๋๋ ์์คํ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค๋ช ํฉ๋๋ค. Claude๋ ๊ด๋ จ์ด ์์ ๋ ์ด๋ฅผ ์์์ผ ํ์ง๋ง,/legacy-system-context๋ ์ฌ์ฉ์๊ฐ ์ทจํ ์๋ฏธ ์๋ ์์ ์ด ์๋๋๋ค.
์ด ์์ ๋ ์ฌ์ฉ์๋ง ํธ๋ฆฌ๊ฑฐํ ์ ์๋ ๋ฐฐํฌ skill์ ์์ฑํฉ๋๋ค. disable-model-invocation: true ํ๋๋ Claude๊ฐ ์๋์ผ๋ก ์คํํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค:
---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
---
Deploy $ARGUMENTS to production:
1. Run the test suite
2. Build the application
3. Push to the deployment target
4. Verify the deployment succeeded
๋ ํ๋๊ฐ ํธ์ถ ๋ฐ ์ปจํ ์คํธ ๋ก๋ฉ์ ๋ฏธ์น๋ ์ํฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
| Frontmatter | ์ฌ์ฉ์๊ฐ ํธ์ถ ๊ฐ๋ฅ | Claude๊ฐ ํธ์ถ ๊ฐ๋ฅ | ์ปจํ ์คํธ์ ๋ก๋๋๋ ์๊ธฐ |
|---|---|---|---|
| (๊ธฐ๋ณธ๊ฐ) | ์ | ์ | ์ค๋ช ์ ํญ์ ์ปจํ ์คํธ์ ์๊ณ , ํธ์ถ๋ ๋ ์ ์ฒด skill์ด ๋ก๋๋จ |
disable-model-invocation: true |
์ | ์๋์ค | ์ค๋ช ์ ์ปจํ ์คํธ์ ์๊ณ , ์ฌ์ฉ์๊ฐ ํธ์ถํ ๋ ์ ์ฒด skill์ด ๋ก๋๋จ |
user-invocable: false |
์๋์ค | ์ | ์ค๋ช ์ ํญ์ ์ปจํ ์คํธ์ ์๊ณ , ํธ์ถ๋ ๋ ์ ์ฒด skill์ด ๋ก๋๋จ |
์ผ๋ฐ ์ธ์ ์์ skill ์ค๋ช ์ Claude๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ํญ๋ชฉ์ ์ ์ ์๋๋ก ์ปจํ ์คํธ์ ๋ก๋๋์ง๋ง, ์ ์ฒด skill ์ฝํ ์ธ ๋ ํธ์ถ๋ ๋๋ง ๋ก๋๋ฉ๋๋ค. ๋ฏธ๋ฆฌ ๋ก๋๋ skills๊ฐ ์๋ Subagents๋ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค: ์ ์ฒด skill ์ฝํ ์ธ ๋ ์์ ์ ์ฃผ์ ๋ฉ๋๋ค.
Skill ์ฝํ ์ธ ๋ผ์ดํ์ฌ์ดํด
์ฌ์ฉ์ ๋๋ Claude๊ฐ skill์ ํธ์ถํ๋ฉด, ๋ ๋๋ง๋ SKILL.md ์ฝํ
์ธ ๋ ๋ํ์ ๋จ์ผ ๋ฉ์์ง๋ก ๋ค์ด๊ฐ๊ณ ์ธ์
์ ๋๋จธ์ง ๋ถ๋ถ ๋์ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. Claude Code๋ ๋์ค์ ํด์์ skill ํ์ผ์ ๋ค์ ์ฝ์ง ์์ผ๋ฏ๋ก, ์์
์ ์ฒด์ ์ ์ฉ๋์ด์ผ ํ๋ ์ง์นจ์ ์ผํ์ฑ ๋จ๊ณ๊ฐ ์๋ ์์ ์ง์นจ์ผ๋ก ์์ฑํฉ๋๋ค.
๋ ๋๋ง๋ ์ฝํ ์ธ ๊ฐ ์ด๋ฏธ ์ปจํ ์คํธ์ ์๋ ๋ณต์ฌ๋ณธ๊ณผ ๋์ผํ skill์ Claude๊ฐ ๋ค์ ํธ์ถํ ๋, Claude Code๋ ์ฝํ ์ธ ์ ๋ ๋ฒ์งธ ๋ณต์ฌ๋ณธ ๋์ skill์ด ์ด๋ฏธ ๋ก๋๋์๋ค๋ ์งง์ ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ ๋๋ง๋ ์ฝํ ์ธ ๊ฐ ๋ค๋ฅผ ๋(์ธ์๊ฐ ๋ณ๊ฒฝ๋์๊ฑฐ๋ ๋์ ์ปจํ ์คํธ ๋ช ๋ น์ด๊ฐ ์๋ก์ด ์ถ๋ ฅ์ ์์ฑํ๊ธฐ ๋๋ฌธ์), Claude Code๋ ์ ์ฒด ์ฝํ ์ธ ๋ฅผ ๋ค์ ์ถ๊ฐํฉ๋๋ค. v2.1.202 ์ด์ ์๋ ๋ชจ๋ ์ฌํธ์ถ์ด skill์ ์ง์นจ์ ๋ ๋ค๋ฅธ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ์ถ๊ฐํ์ต๋๋ค.
์๋ ์์ถ์ ํ ํฐ ์์ฐ ๋ด์์ ํธ์ถ๋ skills๋ฅผ ์ ๋ฌํฉ๋๋ค. ๋ํ๊ฐ ์์ฝ๋์ด ์ปจํ ์คํธ๋ฅผ ํ๋ณดํ๋ฉด, Claude Code๋ ์์ฝ ํ ๊ฐ skill์ ๊ฐ์ฅ ์ต๊ทผ ํธ์ถ์ ๋ค์ ์ฒจ๋ถํ์ฌ ์ฒ์ 5,000ํ ํฐ์ ์ ์งํฉ๋๋ค. ๋ค์ ์ฒจ๋ถ๋ skills๋ 25,000ํ ํฐ์ ๊ฒฐํฉ ์์ฐ์ ๊ณต์ ํฉ๋๋ค. Claude Code๋ ๊ฐ์ฅ ์ต๊ทผ์ ํธ์ถ๋ skill๋ถํฐ ์์ํ์ฌ ์ด ์์ฐ์ ์ฑ์ฐ๋ฏ๋ก, ํ ์ธ์ ์์ ๋ง์ skills๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ ์์ถ ํ ์ด์ skills๊ฐ ์์ ํ ์ญ์ ๋ ์ ์์ต๋๋ค.
skill์ด ์ฒซ ๋ฒ์งธ ์๋ต ํ ๋์์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉด, ์ฝํ
์ธ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ ํ ์กด์ฌํ๋ฉฐ ๋ชจ๋ธ์ด ๋ค๋ฅธ ๋๊ตฌ๋ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๊ณ ์์ต๋๋ค. skill์ description ๋ฐ ์ง์นจ์ ๊ฐํํ์ฌ ๋ชจ๋ธ์ด ๊ณ์ ์ ํธํ๋๋ก ํ๊ฑฐ๋, hooks๋ฅผ ์ฌ์ฉํ์ฌ ๋์์ ๊ฒฐ์ ๋ก ์ ์ผ๋ก ์ ์ฉํฉ๋๋ค. skill์ด ํฌ๊ฑฐ๋ ๊ทธ ํ์ ๋ค๋ฅธ ์ฌ๋ฌ skills๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ, ์์ถ ํ ์ ์ฒด ์ฝํ
์ธ ๋ฅผ ๋ณต์ํ๋ ค๋ฉด ๋ค์ ํธ์ถํฉ๋๋ค.
Skill์ ๋ํ ๋๊ตฌ ์ฌ์ ์น์ธ
allowed-tools ํ๋๋ skill์ด ํ์ฑํ๋์์ ๋ ๋์ด๋ ๋๊ตฌ์ ๋ํ ๊ถํ์ ๋ถ์ฌํ๋ฏ๋ก Claude๋ ์น์ธ์ ์์ฒญํ์ง ์๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ์ ํํ์ง ์์ต๋๋ค: ๋ชจ๋ ๋๊ตฌ๋ ํธ์ถ ๊ฐ๋ฅํ๊ฒ ์ ์ง๋๋ฉฐ, ๊ถํ ์ค์ ์ ๋์ด๋์ง ์์ ๋๊ตฌ์ ๋ํ ๋๊ตฌ๋ฅผ ๊ณ์ ๊ด๋ฆฌํฉ๋๋ค.
ํ๋ก์ ํธ์ .claude/skills/ ๋๋ ํ ๋ฆฌ์ ์ฒดํฌ์ธ๋ skills์ ๊ฒฝ์ฐ, allowed-tools๋ ํด๋น ํด๋์ ๋ํ ์์
๊ณต๊ฐ ์ ๋ขฐ ๋ํ๋ฅผ ์๋ฝํ ํ ์ ์ฉ๋๋ฉฐ, .claude/settings.json์ ๊ถํ ๊ท์น๊ณผ ๋์ผํฉ๋๋ค. ํ๋ก์ ํธ skills๋ฅผ ์ ๋ขฐํ๊ธฐ ์ ์ ๊ฒํ ํ์ธ์. skill์ ์์ ์๊ฒ ๊ด๋ฒ์ํ ๋๊ตฌ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
์ด skill์ skill์ ํธ์ถํ ๋๋ง๋ค Claude๊ฐ ์น์ธ์ ์์ฒญํ์ง ์๊ณ git ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๊ฒ ํฉ๋๋ค:
---
name: commit
description: Stage and commit the current changes
disable-model-invocation: true
allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *)
---
skill์ด ํ์ฑํ๋์์ ๋ Claude์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ์์ ๋๊ตฌ๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด, skill์ frontmatter์์ disallowed-tools์ ๋์ดํฉ๋๋ค. ๋ค์ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋ ์ ํ์ด ํด์ ๋ฉ๋๋ค. ๋ชจ๋ skills ๋ฐ ํ๋กฌํํธ์์ ๋๊ตฌ๋ฅผ ์ฐจ๋จํ๋ ค๋ฉด, ๊ถํ ์ค์ ์ ๊ฑฐ๋ถ ๊ท์น์ ์ถ๊ฐํฉ๋๋ค.
Skills์ ์ธ์ ์ ๋ฌ
์ฌ์ฉ์์ Claude ๋ชจ๋ skill์ ํธ์ถํ ๋ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ธ์๋ $ARGUMENTS ํ๋ ์ด์คํ๋๋ฅผ ํตํด ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
์ด skill์ GitHub ์ด์๋ฅผ ๋ฒํธ๋ก ์์ ํฉ๋๋ค. $ARGUMENTS ํ๋ ์ด์คํ๋๋ skill ์ด๋ฆ ๋ค์ ์ค๋ ๋ชจ๋ ๊ฒ์ผ๋ก ๋์ฒด๋ฉ๋๋ค:
---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---
Fix GitHub issue $ARGUMENTS following our coding standards.
1. Read the issue description
2. Understand the requirements
3. Implement the fix
4. Write tests
5. Create a commit
/fix-issue 123์ ์คํํ๋ฉด Claude๋ "Fix GitHub issue 123 following our coding standards..."๋ฅผ ๋ฐ์ต๋๋ค.
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ skill์ ํธ์ถํ์ง๋ง skill์ $ARGUMENTS๊ฐ ํฌํจ๋์ง ์์ผ๋ฉด, Claude Code๋ ARGUMENTS: <your input>์ skill ์ฝํ
์ธ ์ ๋์ ์ถ๊ฐํ๋ฏ๋ก Claude๋ ์ฌ์ ํ ์
๋ ฅํ ๋ด์ฉ์ ๋ด
๋๋ค.
ํ ๋ฉ์์ง์ ์์ ๋ถ๋ถ์ ์ฌ๋ฌ skills๋ฅผ ์คํํ ์๋ ์์ต๋๋ค. v2.1.199๋ถํฐ๋ /code-review /fix-issue 123์ ์
๋ ฅํ๋ฉด ๋ skill์ด ๋ชจ๋ ๋ก๋๋๊ณ ๋ค๋ฐ๋ฅด๋ ํ
์คํธ 123์ด ๊ฐ๊ฐ์ $ARGUMENTS๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ด์ ๋ฒ์ ์์๋ ์ฒซ ๋ฒ์งธ skill๋ง ๋ก๋๋๊ณ /fix-issue 123์ ๋ฆฌํฐ๋ด ์ธ์ ํ
์คํธ๋ก ๋ฐ์์ต๋๋ค.
Claude Code๋ ์ฒซ ๋ฒ์งธ skill๊ณผ ๊ทธ ๋ค์ ์คํ๋ ์ต๋ 5๊ฐ์ skill์ ํ์ฅํฉ๋๋ค. ํ์ฅ์ ์ธ๋ผ์ธ ์ฌ์ฉ์ ํธ์ถ ๊ฐ๋ฅ skill์ด ์๋ ์ฒซ ๋ฒ์งธ ํ ํฐ์์ ์ค์ง๋๋ฏ๋ก, forked subagent๋ก ์คํ๋๋ skill์ด๋ ์ธ์ ์์ฒด๊ฐ /loop์ ๊ฐ์ slash ๋ช
๋ น์ด๋ก ์์ํ ์ ์๋ skill๋ ๊ฑฐ๊ธฐ์ ๋๋๊ณ , ๊ทธ ํ ํฐ๊ณผ ๊ทธ ๋ค์ ๋ชจ๋ ๊ฒ์ด ๋ชจ๋ ํ์ฅ๋ skill์ ๋ํ ์ธ์ ํ
์คํธ๊ฐ ๋ฉ๋๋ค.
์์น๋ณ๋ก ๊ฐ๋ณ ์ธ์์ ์ก์ธ์คํ๋ ค๋ฉด $ARGUMENTS[N] ๋๋ ๋ ์งง์ $N์ ์ฌ์ฉํฉ๋๋ค:
---
name: migrate-component
description: Migrate a component from one framework to another
---
Migrate the $ARGUMENTS[0] component from $ARGUMENTS[1] to $ARGUMENTS[2].
Preserve all existing behavior and tests.
/migrate-component SearchBar React Vue๋ฅผ ์คํํ๋ฉด $ARGUMENTS[0]์ SearchBar๋ก, $ARGUMENTS[1]์ React๋ก, $ARGUMENTS[2]๋ฅผ Vue๋ก ๋์ฒดํฉ๋๋ค. $N ์ฝ์๋ฅผ ์ฌ์ฉํ๋ ๋์ผํ skill:
---
name: migrate-component
description: Migrate a component from one framework to another
---
Migrate the $0 component from $1 to $2.
Preserve all existing behavior and tests.
๊ณ ๊ธ ํจํด
๋์ ์ปจํ ์คํธ ์ฃผ์
!`<command>` ๊ตฌ๋ฌธ์ skill ์ฝํ
์ธ ๊ฐ Claude๋ก ์ ์ก๋๊ธฐ ์ ์ shell ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค. ๋ช
๋ น์ด ์ถ๋ ฅ์ด ํ๋ ์ด์คํ๋๋ฅผ ๋์ฒดํ๋ฏ๋ก Claude๋ ๋ช
๋ น์ด ์์ฒด๊ฐ ์๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ต๋๋ค.
์ด skill์ GitHub CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ด๋ธ PR ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ pull request๋ฅผ ์์ฝํฉ๋๋ค. !`gh pr diff` ๋ฐ ๊ธฐํ ๋ช
๋ น์ด๊ฐ ๋จผ์ ์คํ๋๊ณ , ์ถ๋ ฅ์ด ํ๋กฌํํธ์ ์ฝ์
๋ฉ๋๋ค:
---
name: pr-summary
description: Summarize changes in a pull request
context: fork
agent: Explore
allowed-tools: Bash(gh *)
---
## Pull request context
- PR diff: !`gh pr diff`
- PR comments: !`gh pr view --comments`
- Changed files: !`gh pr diff --name-only`
## Your task
Summarize this pull request...
์ด skill์ด ์คํ๋ ๋:
- ๊ฐ
!`<command>`๊ฐ ์ฆ์ ์คํ๋ฉ๋๋ค(Claude๊ฐ ๋ณด๊ธฐ ์ ์). - ์ถ๋ ฅ์ด skill ์ฝํ ์ธ ์ ํ๋ ์ด์คํ๋๋ฅผ ๋์ฒดํฉ๋๋ค.
- Claude๋ ์ค์ PR ๋ฐ์ดํฐ๊ฐ ์๋ ์์ ํ ๋ ๋๋ง๋ ํ๋กฌํํธ๋ฅผ ๋ฐ์ต๋๋ค.
์ด๋ ์ ์ฒ๋ฆฌ์ด๋ฉฐ, Claude๊ฐ ์คํํ๋ ๊ฒ์ด ์๋๋๋ค. Claude๋ ์ต์ข ๊ฒฐ๊ณผ๋ง ๋ด ๋๋ค.
๋์ฒด๋ ์๋ณธ ํ์ผ์ ๋ํด ํ ๋ฒ ์คํ๋ฉ๋๋ค. ๋ช
๋ น์ด ์ถ๋ ฅ์ ์ผ๋ฐ ํ
์คํธ๋ก ์ฝ์
๋๋ฉฐ ์ถ๊ฐ !`<command>` ํ๋ ์ด์คํ๋์ ๋ํด ๋ค์ ์ค์บ๋์ง ์์ผ๋ฏ๋ก, ๋ช
๋ น์ด๋ ๋์ค์ ํจ์ค์์ ํ์ฅํ ํ๋ ์ด์คํ๋๋ฅผ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
์ธ๋ผ์ธ ํ์์ !์ด ์ค์ ์์ ๋๋ ๊ณต๋ฐฑ ์งํ์ ๋ํ๋ ๋๋ง ์ธ์๋ฉ๋๋ค. !์ด KEY=!`cmd`์ฒ๋ผ ๋ค๋ฅธ ๋ฌธ์ ๋ค์ ์ค๋ฉด, ํ๋ ์ด์คํ๋๋ ๋ฆฌํฐ๋ด ํ
์คํธ๋ก ๋จ๊ฒจ์ง๊ณ ๋ช
๋ น์ด๋ ์คํ๋์ง ์์ต๋๋ค.
๋ค์ค ๋ผ์ธ ๋ช
๋ น์ด์ ๊ฒฝ์ฐ, ์ธ๋ผ์ธ ํ์ ๋์ ```!๋ก ์ด๋ฆฐ ํ์ค ์ฝ๋ ๋ธ๋ก์ ์ฌ์ฉํฉ๋๋ค:
## Environment
```!
node --version
npm --version
git status --short
```
์ฌ์ฉ์, ํ๋ก์ ํธ, ํ๋ฌ๊ทธ์ธ ๋๋ ์ถ๊ฐ ๋๋ ํ ๋ฆฌ ์์ค์ skills ๋ฐ ์ฌ์ฉ์ ์ ์ ๋ช
๋ น์ด์ ๋ํด ์ด ๋์์ ๋นํ์ฑํํ๋ ค๋ฉด, ์ค์ ์์ "disableSkillShellExecution": true๋ฅผ ์ค์ ํฉ๋๋ค. ๊ฐ ๋ช
๋ น์ด๋ ์คํ๋๋ ๋์ [shell command execution disabled by policy]๋ก ๋์ฒด๋ฉ๋๋ค. ๋ฒ๋ค ๋ฐ ๊ด๋ฆฌ skills๋ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ์ด ์ค์ ์ ์ฌ์ฉ์๊ฐ ์ฌ์ ์ํ ์ ์๋ ๊ด๋ฆฌ ์ค์ ์์ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค.
skill์์ ๋ ๊น์ ์ถ๋ก ์ ์์ฒญํ๋ ค๋ฉด skill ์ฝํ
์ธ ์ ์ด๋๋ ultrathink๋ฅผ ํฌํจํฉ๋๋ค. ์ผํ์ฑ ๊น์ ์ถ๋ก ์ ์ํด ultrathink ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
Subagent์์ Skills ์คํ
skill์ ๊ฒฉ๋ฆฌ ์ํ์์ ์คํํ๋ ค๋ฉด frontmatter์ context: fork๋ฅผ ์ถ๊ฐํฉ๋๋ค. skill ์ฝํ
์ธ ๋ subagent๋ฅผ ๊ตฌ๋ํ๋ ํ๋กฌํํธ๊ฐ ๋ฉ๋๋ค. ๋ํ ๊ธฐ๋ก์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
context: fork๋ ๋ช
์์ ์ง์นจ์ด ์๋ skills์๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. skill์ ์์
์์ด "์ด API ๊ท์น์ ์ฌ์ฉํ์ธ์"์ ๊ฐ์ ์ง์นจ์ด ํฌํจ๋์ด ์์ผ๋ฉด, subagent๋ ์ง์นจ์ ๋ฐ์ง๋ง ์คํ ๊ฐ๋ฅํ ํ๋กฌํํธ๊ฐ ์์ผ๋ฏ๋ก ์๋ฏธ ์๋ ์ถ๋ ฅ ์์ด ๋ฐํ๋ฉ๋๋ค.
Skills์ subagents๋ ๋ ๋ฐฉํฅ์ผ๋ก ํจ๊ป ์๋ํฉ๋๋ค:
| ์ ๊ทผ ๋ฐฉ์ | ์์คํ ํ๋กฌํํธ | ์์ | ๋ํ ๋ก๋ |
|---|---|---|---|
context: fork๊ฐ ์๋ Skill |
์์ด์ ํธ ์ ํ์์ | SKILL.md ์ฝํ ์ธ | CLAUDE.md, ์์ด์ ํธ๊ฐ Explore ๋๋ Plan์ธ ๊ฒฝ์ฐ ์ ์ธ |
skills ํ๋๊ฐ ์๋ Subagent |
Subagent์ markdown ๋ณธ๋ฌธ | Claude์ ์์ ๋ฉ์์ง | ๋ฏธ๋ฆฌ ๋ก๋๋ skills + CLAUDE.md |
context: fork๋ฅผ ์ฌ์ฉํ๋ฉด skill์ ์์
์ ์์ฑํ๊ณ ์คํํ ์์ด์ ํธ ์ ํ์ ์ ํํฉ๋๋ค. ๊ธฐ๋ณธ ์ ๊ณต Explore ๋ฐ Plan ์์ด์ ํธ๋ ์ปจํ
์คํธ๋ฅผ ์๊ฒ ์ ์งํ๊ธฐ ์ํด CLAUDE.md ๋ฐ git status๋ฅผ ๊ฑด๋๋๋๋ค. ๋ฐ๋ผ์ agent: Explore๋ฅผ ์ฌ์ฉํ๋ forked skill์ SKILL.md ์ฝํ
์ธ ์ ์์ด์ ํธ ์์ฒด์ ์์คํ
ํ๋กฌํํธ๋ง ๋ด
๋๋ค. ์ญ๋ฐฉํฅ(skills๋ฅผ ์ฐธ์กฐ ์๋ฃ๋ก ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์ ์ subagent ์ ์)์ Subagents๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ : Explore ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ๋ Research Skill
์ด skill์ forked Explore ์์ด์ ํธ์์ ์ฐ๊ตฌ๋ฅผ ์คํํฉ๋๋ค. skill ์ฝํ ์ธ ๋ ์์ ์ด ๋๊ณ , ์์ด์ ํธ๋ ์ฝ๋๋ฒ ์ด์ค ํ์์ ์ต์ ํ๋ ์ฝ๊ธฐ ์ ์ฉ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค:
---
name: deep-research
description: Research a topic thoroughly
context: fork
agent: Explore
---
Research $ARGUMENTS thoroughly:
1. Find relevant files using Glob and Grep
2. Read and analyze the code
3. Summarize findings with specific file references
์ด skill์ด ์คํ๋ ๋:
- ์๋ก์ด ๊ฒฉ๋ฆฌ๋ ์ปจํ ์คํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
- subagent๋ skill ์ฝํ ์ธ ๋ฅผ ํ๋กฌํํธ๋ก ๋ฐ์ต๋๋ค("Research $ARGUMENTS thoroughly...").
agentํ๋๋ ์คํ ํ๊ฒฝ(๋ชจ๋ธ, ๋๊ตฌ ๋ฐ ๊ถํ)์ ๊ฒฐ์ ํฉ๋๋ค.- ๊ฒฐ๊ณผ๋ ์์ฝ๋์ด ์ฃผ ๋ํ๋ก ๋ฐํ๋ฉ๋๋ค.
agent ํ๋๋ ์ฌ์ฉํ subagent ๊ตฌ์ฑ์ ์ง์ ํฉ๋๋ค. ์ต์
์๋ ๊ธฐ๋ณธ ์ ๊ณต ์์ด์ ํธ(Explore, Plan, general-purpose) ๋๋ .claude/agents/์ ๋ชจ๋ ์ฌ์ฉ์ ์ ์ subagent๊ฐ ํฌํจ๋ฉ๋๋ค. ์๋ตํ๋ฉด general-purpose๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Claude์ Skill ์ก์ธ์ค ์ ํ
๊ธฐ๋ณธ์ ์ผ๋ก Claude๋ disable-model-invocation: true๊ฐ ์ค์ ๋์ง ์์ ๋ชจ๋ skill์ ํธ์ถํ ์ ์์ต๋๋ค. allowed-tools๋ฅผ ์ ์ํ๋ Skills๋ skill์ด ํ์ฑํ๋์์ ๋ ์ฌ์ฉ์๋ณ ์น์ธ ์์ด Claude์๊ฒ ์ด๋ฌํ ๋๊ตฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ๋ถ์ฌํฉ๋๋ค. ๊ถํ ์ค์ ์ ์ฌ์ ํ ๋ค๋ฅธ ๋ชจ๋ ๋๊ตฌ์ ๋ํ ๊ธฐ๋ณธ ์น์ธ ๋์์ ๊ด๋ฆฌํฉ๋๋ค. /init, /review, /security-review๋ฅผ ํฌํจํ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ ๊ณต ๋ช
๋ น์ด๋ Skill ๋๊ตฌ๋ฅผ ํตํด ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. /compact์ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ๋ณธ ์ ๊ณต ๋ช
๋ น์ด๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
Claude๊ฐ ํธ์ถํ ์ ์๋ skills๋ฅผ ์ ์ดํ๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ:
/permissions์์ Skill ๋๊ตฌ๋ฅผ ๊ฑฐ๋ถํ์ฌ ๋ชจ๋ skills๋ฅผ ๋นํ์ฑํํฉ๋๋ค:
# Add to deny rules:
Skill
๊ถํ ๊ท์น์ ์ฌ์ฉํ์ฌ ํน์ skills๋ฅผ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํฉ๋๋ค:
# Allow only specific skills
Skill(commit)
Skill(review-pr *)
# Deny specific skills
Skill(deploy *)
๊ถํ ๊ตฌ๋ฌธ: ์ ํํ ์ผ์น๋ Skill(name), ๋ชจ๋ ์ธ์๋ฅผ ์ฌ์ฉํ ์ ๋์ฌ ์ผ์น๋ Skill(name *).
๊ฐ๋ณ skills๋ฅผ ์จ๊ธฐ๊ธฐ - frontmatter์ disable-model-invocation: true๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๋ Claude์ ์ปจํ
์คํธ์์ skill์ ์์ ํ ์ ๊ฑฐํฉ๋๋ค.
user-invocable ํ๋๋ ๋ฉ๋ด ๊ฐ์์ฑ๋ง ์ ์ดํ๊ณ Skill ๋๊ตฌ ์ก์ธ์ค๋ ์ ์ดํ์ง ์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ํธ์ถ์ ์ฐจ๋จํ๋ ค๋ฉด disable-model-invocation: true๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ค์ ์์ Skill ๊ฐ์์ฑ ์ฌ์ ์
skillOverrides ์ค์ ์ skill์ ์์ฒด frontmatter ๋์ ์ค์ ์์ skill ๊ฐ์์ฑ์ ์ ์ดํฉ๋๋ค. ๊ณต์ ํ๋ก์ ํธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฒดํฌ์ธ๋๊ฑฐ๋ MCP ์๋ฒ์์ ์ ๊ณตํ๋ ๊ฒ์ฒ๋ผ SKILL.md๋ฅผ ํธ์งํ๊ณ ์ถ์ง ์์ skills์ ์ฌ์ฉํฉ๋๋ค. /skills ๋ฉ๋ด๊ฐ ์ด๋ฅผ ์์ฑํฉ๋๋ค: skill์ ๊ฐ์กฐํ๊ณ Space๋ฅผ ๋๋ฌ ์ํ๋ฅผ ์ํํ ๋ค์ Enter๋ฅผ ๋๋ฌ .claude/settings.local.json์ ์ ์ฅํฉ๋๋ค.
๊ฐ ํค๋ skill ์ด๋ฆ์ด๊ณ ๊ฐ ๊ฐ์ ๋ค์ ๋ค ๊ฐ์ง ์ํ ์ค ํ๋์ ๋๋ค:
| ๊ฐ | Claude์ ๋์ด๋จ | / ๋ฉ๋ด์์ |
|---|---|---|
"on" |
์ด๋ฆ ๋ฐ ์ค๋ช | ์ |
"name-only" |
์ด๋ฆ๋ง | ์ |
"user-invocable-only" |
์จ๊น | ์ |
"off" |
์จ๊น | ์จ๊น |
skillOverrides์ ์๋ skill์ "on"์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ์๋ ์์ ๋ ํ skill์ ์ด๋ฆ์ผ๋ก ์ถ์ํ๊ณ ๋ค๋ฅธ skill์ ์์ ํ ๋๋๋ค:
{
"skillOverrides": {
"legacy-context": "name-only",
"deploy": "off"
}
}
ํ๋ฌ๊ทธ์ธ skills์ skillOverrides์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. /plugin์ ํตํด ์ด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
Skills ํ๊ฐ ๋ฐ ๋ฐ๋ณต
skill์ด ํธ๋ฆฌ๊ฑฐ๋๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ Claude๊ฐ ์ด๋ฅผ ์ฐพ์๋ค๋ ๋ป์ด์ง, ์๋ํ ๋๋ก ์๋ํ๋ค๋ ๋ป์ด ์๋๋๋ค. skill์ด ์๋ํ๋์ง ์๊ธฐ ์ํด ๋ ๊ฐ์ง๋ฅผ ๋ณ๋๋ก ์ธก์ ํฉ๋๋ค: Claude๊ฐ ํธ์ถํด์ผ ํ๋ ํ๋กฌํํธ์์ ํธ์ถํ๋์ง ์ฌ๋ถ, ๊ทธ๋ฆฌ๊ณ ํธ์ถํ ๋ ์ถ๋ ฅ์ด ์์๊ณผ ์ผ์นํ๋์ง ์ฌ๋ถ์ ๋๋ค.
๋ ๋ค์ ๋ํ ํ์ธ์ ๊ธฐ์ค์ ๋น๊ต์ ๋๋ค. ๋ช ๊ฐ์ง ํ์ค์ ์ธ ํ๋กฌํํธ๋ฅผ ์์งํ๊ณ , skill์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํ ์๋ก์ด ์ธ์ ์์ ๊ฐ๊ฐ์ ์คํํ ๋ค์ ๋นํ์ฑํ๋ ์ํ์์ ๋ค์ ์คํํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํฉ๋๋ค. ์๋ก์ด ์ธ์ ์ด ์ค์ํฉ๋๋ค. skill ์์ฑ์ ๋จ์ ์ปจํ ์คํธ๊ฐ ์์ฑ๋ ์ง์นจ์ ๊ฐ๊ฒฉ์ ์จ๊ธฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.
skill-creator๋ก evals ์คํ
skill-creator ํ๋ฌ๊ทธ์ธ์ Claude Code ๋ด์์ ๋น๊ต ๋ฃจํ๋ฅผ ์๋ํํฉ๋๋ค. ๊ณต์ ๋ง์ผํ๋ ์ด์ค์์ ์ค์นํฉ๋๋ค:
/plugin install skill-creator@claude-plugins-official
Claude Code๊ฐ ํ๋ฌ๊ทธ์ธ์ ๋ง์ผํ๋ ์ด์ค์์ ์ฐพ์ ์ ์๋ค๊ณ ๋ณด๊ณ ํ๋ฉด, ๋ง์ผํ๋ ์ด์ค๊ฐ ๋๋ฝ๋์๊ฑฐ๋ ์ค๋๋์์ต๋๋ค. /plugin marketplace update claude-plugins-official๋ฅผ ์คํํ์ฌ ์๋ก ๊ณ ์น๊ฑฐ๋, ์์ง ์ถ๊ฐํ์ง ์์๋ค๋ฉด /plugin marketplace add anthropics/claude-plugins-official๋ฅผ ์คํํฉ๋๋ค. ๊ทธ ๋ค์ ์ค์น๋ฅผ ๋ค์ ์๋ํฉ๋๋ค.
์ค์น ํ /reload-plugins๋ฅผ ์คํํ์ฌ ํ์ฌ ์ธ์
์์ ํ๋ฌ๊ทธ์ธ์ skills๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๊ทธ ๋ค์ Claude์๊ฒ ๊ธฐ์กด skill์ ํ๊ฐํ๋๋ก ์์ฒญํฉ๋๋ค. ์๋ฅผ ๋ค์ด evaluate my summarize-changes skill with skill-creator. ํ๋ฌ๊ทธ์ธ์ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ ๋ฃจํ๋ฅผ ์คํํ๋๋ก ์๋ดํฉ๋๋ค:
- ํ
์คํธ ์ผ์ด์ค: skill ๋๋ ํ ๋ฆฌ ๋ด์
evals/evals.json์ ํ๋กฌํํธ, ์ ๋ ฅ ํ์ผ ๋ฐ ์์ ๋์์ ์ ์ฅํฉ๋๋ค. - ๊ฒฉ๋ฆฌ๋ ์คํ: ๊ฐ ํ ์คํธ ์ผ์ด์ค๋น subagent๋ฅผ ์์ฑํ๋ฏ๋ก ๊ฐ ์คํ์ด ๊นจ๋ํ ์ปจํ ์คํธ๋ก ์์๋๊ณ , ํ ํฐ ์์ ๊ธฐ๊ฐ์ ๊ธฐ๋กํฉ๋๋ค.
- ์ฑ์ : ๊ฐ ์ด์ค์
์ ์ถ๋ ฅ์ ๋ํด ํ์ธํ๊ณ
grading.json์ ์ฆ๊ฑฐ์ ํจ๊ป ํต๊ณผ ๋๋ ์คํจ๋ฅผ ์์ฑํฉ๋๋ค. - ๋ฒค์น๋งํฌ: skill ์์ ๋ skill ์์์ ๋ํ ํต๊ณผ์จ, ์๊ฐ ๋ฐ ํ ํฐ์
benchmark.json์ ์ง๊ณํ๋ฏ๋ก ํ ํฐ ๋ฐ ์๊ฐ ์ค๋ฒํค๋์ ๋ํ ํต๊ณผ์จ ๊ฐ์ ์ ๋น๊ตํ ์ ์์ต๋๋ค. - ๋ฒ์ ๋น๊ต: skill์ ๋ ๋ฒ์ ๊ฐ์ ๋ธ๋ผ์ธ๋ A/B๋ฅผ ์คํํ๋ฏ๋ก ์ปค๋ฐํ๊ธฐ ์ ์ ํธ์ง์ด ๊ฐ์ ์ธ์ง ํ์ธํ ์ ์์ต๋๋ค.
- ์ค๋ช ํ๋: ํธ๋ฆฌ๊ฑฐํด์ผ ํ๊ณ ํธ๋ฆฌ๊ฑฐํ์ง ์์์ผ ํ๋ ํ๋กฌํํธ๋ฅผ ์์ฑํ๊ณ , ํํธ์จ์ ์ธก์ ํ๊ณ , skill์ด ์๋ชป๋ ์์ฒญ์์ ํ์ฑํ๋ ๋ ์ค๋ช ํธ์ง์ ์ ์ํฉ๋๋ค.
- ๋ฆฌ๋ทฐ ๋ทฐ์ด: ๊ฐ ์ถ๋ ฅ์ ๊ฒ์ฌํ๊ณ ๋ค์ ๋ฐ๋ณต์ด ์ฝ์ ์ ์ฑ์ ํผ๋๋ฐฑ์ ๊ธฐ๋กํ ์ ์๋ HTML ๋ณด๊ณ ์๋ฅผ ์ฝ๋๋ค.
eval ํ์ผ ํ์ ๋ฐ ์ ์ฒด ๋ฐ๋ณต ์ํฌํ๋ก์ฐ๋ agentskills.io์ Evaluating skill output quality๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ฒค์น๋งํฌ ๋ฐ ๋น๊ต ๋ชจ๋์ ๋ฐฐ๊ฒฝ์ skill-creator ๊ณต์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
Skills ๊ณต์
Skills๋ ๋์์ ๋ฐ๋ผ ๋ค์ํ ๋ฒ์์์ ๋ฐฐํฌํ ์ ์์ต๋๋ค:
- ํ๋ก์ ํธ skills:
.claude/skills/๋ฅผ ๋ฒ์ ์ ์ด์ ์ปค๋ฐํฉ๋๋ค. - ํ๋ฌ๊ทธ์ธ: ํ๋ฌ๊ทธ์ธ์์
skills/๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. - ๊ด๋ฆฌ: ๊ด๋ฆฌ ์ค์ ์ ํตํด ์กฐ์ง ์ ์ฒด์ ๋ฐฐํฌํฉ๋๋ค.
์๊ฐ์ ์ถ๋ ฅ ์์ฑ
Skills๋ ๋ชจ๋ ์ธ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฒ๋คํ๊ณ ์คํํ ์ ์์ผ๋ฏ๋ก Claude์๊ฒ ๋จ์ผ ํ๋กฌํํธ๋ก ๊ฐ๋ฅํ ๊ฒ ์ด์์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ ฅํ ํจํด ์ค ํ๋๋ ์๊ฐ์ ์ถ๋ ฅ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค: ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฆฌ๋ ๋ํํ HTML ํ์ผ๋ก ๋ฐ์ดํฐ ํ์, ๋๋ฒ๊น ๋๋ ๋ณด๊ณ ์ ์์ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
์ด ์์ ๋ ์ฝ๋๋ฒ ์ด์ค ํ์๊ธฐ๋ฅผ ์์ฑํฉ๋๋ค: ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ฅ ๋ฐ ์ถ์ํ ์ ์๋ ๋ํํ ํธ๋ฆฌ ๋ณด๊ธฐ๋ก, ํ๋์ ํ์ผ ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ , ์์์ผ๋ก ํ์ผ ์ ํ์ ์๋ณํ ์ ์์ต๋๋ค.
Skill ๋๋ ํ ๋ฆฌ ์์ฑ:
mkdir -p ~/.claude/skills/codebase-visualizer/scripts
~/.claude/skills/codebase-visualizer/SKILL.md์ ์ ์ฅํฉ๋๋ค. ์ค๋ช
์ Claude์๊ฒ ์ด Skill์ ์ธ์ ํ์ฑํํ ์ง ์๋ ค์ฃผ๊ณ , ์ง์นจ์ Claude์๊ฒ ๋ฒ๋ค ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋๋ก ์๋ ค์ค๋๋ค. ์คํฌ๋ฆฝํธ ๊ฒฝ๋ก๋ ${CLAUDE_SKILL_DIR}๋ฅผ ์ฌ์ฉํ๋ฏ๋ก skill์ด ๊ฐ์ธ, ํ๋ก์ ํธ ๋๋ ํ๋ฌ๊ทธ์ธ ์์ค์์ ์ค์น๋์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ฌ๋ฐ๋ฅด๊ฒ ํด์๋ฉ๋๋ค:
---
name: codebase-visualizer
description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.
allowed-tools: Bash(python3 *)
---
# Codebase Visualizer
Generate an interactive HTML tree view that shows your project's file structure with collapsible directories.
## Usage
Run the visualization script from your project root:
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/visualize.py .
```
This creates `codebase-map.html` in the current directory and opens it in your default browser.
## What the visualization shows
- **Collapsible directories**: Click folders to expand/collapse
- **File sizes**: Displayed next to each file
- **Colors**: Different colors for different file types
- **Directory totals**: Shows aggregate size of each folder
~/.claude/skills/codebase-visualizer/scripts/visualize.py์ ์ ์ฅํฉ๋๋ค. ์ด ์คํฌ๋ฆฝํธ๋ ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ๋ฅผ ์ค์บํ๊ณ ๋ค์์ ํฌํจํ๋ ์์ฒด ํฌํจ HTML ํ์ผ์ ์์ฑํฉ๋๋ค:
- ํ์ผ ์, ๋๋ ํ ๋ฆฌ ์, ์ด ํฌ๊ธฐ ๋ฐ ํ์ผ ์ ํ ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ฝ ์ฌ์ด๋๋ฐ
- ํ์ผ ์ ํ๋ณ๋ก ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ถ์ํ๋ ๋ง๋ ์ฐจํธ(ํฌ๊ธฐ ๊ธฐ์ค ์์ 8๊ฐ)
- ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ฅ ๋ฐ ์ถ์ํ ์ ์๋ ์ถ์ ๊ฐ๋ฅํ ํธ๋ฆฌ๋ก, ์์์ผ๋ก ์ฝ๋ฉ๋ ํ์ผ ์ ํ ํ์๊ธฐ ํฌํจ
์คํฌ๋ฆฝํธ๋ Python 3์ด ํ์ํ์ง๋ง ๊ธฐ๋ณธ ์ ๊ณต ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ฌ์ฉํ๋ฏ๋ก ์ค์นํ ํจํค์ง๊ฐ ์์ต๋๋ค:
#!/usr/bin/env python3
"""Generate an interactive collapsible tree visualization of a codebase."""
import json
import sys
import webbrowser
from html import escape
from pathlib import Path
from collections import Counter
IGNORE = {'.git', 'node_modules', '__pycache__', '.venv', 'venv', 'dist', 'build'}
def scan(path: Path, stats: dict) -> dict:
result = {"name": path.name, "children": [], "size": 0}
try:
for item in sorted(path.iterdir()):
if item.name in IGNORE or item.name.startswith('.'):
continue
if item.is_file():
size = item.stat().st_size
ext = item.suffix.lower() or '(no ext)'
result["children"].append({"name": item.name, "size": size, "ext": ext})
result["size"] += size
stats["files"] += 1
stats["extensions"][ext] += 1
stats["ext_sizes"][ext] += size
elif item.is_dir():
stats["dirs"] += 1
child = scan(item, stats)
if child["children"]:
result["children"].append(child)
result["size"] += child["size"]
except PermissionError:
pass
return result
def generate_html(data: dict, stats: dict, output: Path) -> None:
ext_sizes = stats["ext_sizes"]
total_size = sum(ext_sizes.values()) or 1
sorted_exts = sorted(ext_sizes.items(), key=lambda x: -x[1])[:8]
colors = {
'.js': '#f7df1e', '.ts': '#3178c6', '.py': '#3776ab', '.go': '#00add8',
'.rs': '#dea584', '.rb': '#cc342d', '.css': '#264de4', '.html': '#e34c26',
'.json': '#6b7280', '.md': '#083fa1', '.yaml': '#cb171e', '.yml': '#cb171e',
'.mdx': '#083fa1', '.tsx': '#3178c6', '.jsx': '#61dafb', '.sh': '#4eaa25',
}
lang_bars = "".join(
f'<div class="bar-row"><span class="bar-label">{ext}</span>'
f'<div class="bar" style="width:{(size/total_size)*100}%;background:{colors.get(ext,"#6b7280")}"></div>'
f'<span class="bar-pct">{(size/total_size)*100:.1f}%</span></div>'
for ext, size in sorted_exts
)
def fmt(b):
if b < 1024: return f"{b} B"
if b < 1048576: return f"{b/1024:.1f} KB"
return f"{b/1048576:.1f} MB"
html = f'''<!DOCTYPE html>
<html><head>
<meta charset="utf-8"><title>Codebase Explorer</title>
<style>
body {{ font: 14px/1.5 system-ui, sans-serif; margin: 0; background: #1a1a2e; color: #eee; }}
.container {{ display: flex; height: 100vh; }}
.sidebar {{ width: 280px; background: #252542; padding: 20px; border-right: 1px solid #3d3d5c; overflow-y: auto; flex-shrink: 0; }}
.main {{ flex: 1; padding: 20px; overflow-y: auto; }}
h1 {{ margin: 0 0 10px 0; font-size: 18px; }}
h2 {{ margin: 20px 0 10px 0; font-size: 14px; color: #888; text-transform: uppercase; }}
.stat {{ display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #3d3d5c; }}
.stat-value {{ font-weight: bold; }}
.bar-row {{ display: flex; align-items: center; margin: 6px 0; }}
.bar-label {{ width: 55px; font-size: 12px; color: #aaa; }}
.bar {{ height: 18px; border-radius: 3px; }}
.bar-pct {{ margin-left: 8px; font-size: 12px; color: #666; }}
.tree {{ list-style: none; padding-left: 20px; }}
details {{ cursor: pointer; }}
summary {{ padding: 4px 8px; border-radius: 4px; }}
summary:hover {{ background: #2d2d44; }}
.folder {{ color: #ffd700; }}
.file {{ display: flex; align-items: center; padding: 4px 8px; border-radius: 4px; }}
.file:hover {{ background: #2d2d44; }}
.size {{ color: #888; margin-left: auto; font-size: 12px; }}
.dot {{ width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; }}
</style>
</head><body>
<div class="container">
<div class="sidebar">
<h1>๐ Summary</h1>
<div class="stat"><span>Files</span><span class="stat-value">{stats["files"]:,}</span></div>
<div class="stat"><span>Directories</span><span class="stat-value">{stats["dirs"]:,}</span></div>
<div class="stat"><span>Total size</span><span class="stat-value">{fmt(data["size"])}</span></div>
<div class="stat"><span>File types</span><span class="stat-value">{len(stats["extensions"])}</span></div>
<h2>By file type</h2>
{lang_bars}
</div>
<div class="main">
<h1>๐ {escape(data["name"])}</h1>
<ul class="tree" id="root"></ul>
</div>
</div>
</body></html>'''
output.write_text(html)
if __name__ == '__main__':
target = Path(sys.argv[1] if len(sys.argv) > 1 else '.').resolve()
stats = {"files": 0, "dirs": 0, "extensions": Counter(), "ext_sizes": Counter()}
data = scan(target, stats)
out = Path('codebase-map.html')
generate_html(data, stats, out)
print(f'Generated {out.absolute()}')
webbrowser.open(f'file://{out.absolute()}')
ํ
์คํธํ๋ ค๋ฉด ๋ชจ๋ ํ๋ก์ ํธ์์ Claude Code๋ฅผ ์ด๊ณ "Visualize this codebase"๋ฅผ ์์ฒญํฉ๋๋ค. Claude๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ , codebase-map.html์ ์์ฑํ๊ณ , ๋ธ๋ผ์ฐ์ ์์ ์ฝ๋๋ค.
์ด ํจํด์ ๋ชจ๋ ์๊ฐ์ ์ถ๋ ฅ์ ์๋ํฉ๋๋ค: ์ข ์์ฑ ๊ทธ๋ํ, ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ๋ณด๊ณ ์, API ๋ฌธ์ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ์๊ฐํ. ๋ฒ๋ค ์คํฌ๋ฆฝํธ๊ฐ ๋ฌด๊ฑฐ์ด ์์ ์ ์ํํ๋ ๋์ Claude๋ ์กฐ์จ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ
Skill์ด ํธ๋ฆฌ๊ฑฐ๋์ง ์์
Claude๊ฐ ์์๋๋ก skill์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ:
- ์ค๋ช ์ ์ฌ์ฉ์๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๋งํ ํค์๋๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
- skill์ด
What skills are available?์ ๋ํ๋๋์ง ํ์ธํฉ๋๋ค. - ์ค๋ช ๊ณผ ๋ ๊ฐ๊น๊ฒ ์ผ์นํ๋๋ก ์์ฒญ์ ๋ค์ ํํํด๋ด ๋๋ค.
- skill์ด ์ฌ์ฉ์ ํธ์ถ ๊ฐ๋ฅํ๋ฉด
/skill-name์ผ๋ก ์ง์ ํธ์ถํฉ๋๋ค.
frontmatter YAML์ด ์๋ชป๋ ํ์์ด๋ฉด, Claude Code๋ skill ๋ณธ๋ฌธ์ ๋น ๋ฉํ๋ฐ์ดํฐ๋ก ๋ก๋ํ๋ฏ๋ก /skill-name์ ์ฌ์ ํ ์๋ํ์ง๋ง Claude๋ ์ผ์น์ํฌ description์ด ์์ต๋๋ค. --debug๋ก ์คํํ์ฌ ๊ตฌ๋ฌธ ๋ถ์ ์ค๋ฅ๋ฅผ ํ์ธํฉ๋๋ค.
Skill์ด ๋๋ฌด ์์ฃผ ํธ๋ฆฌ๊ฑฐ๋จ
Claude๊ฐ ์ํ์ง ์์ ๋ skill์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
- ์ค๋ช ์ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ญ๋๋ค.
- ์๋ ํธ์ถ๋ง ์ํ๋ฉด
disable-model-invocation: true๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Skill ์ค๋ช ์ด ์๋ฆผ
Claude Code๋ skill ์ด๋ฆ๊ณผ ์ค๋ช ๋ชฉ๋ก์ ์ปจํ ์คํธ์ ๋ก๋ํ์ฌ Claude๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ํญ๋ชฉ์ ์ ์ ์๋๋ก ํฉ๋๋ค. ๋ชฉ๋ก์๋ ํญ์ ๋ชจ๋ skill ์ด๋ฆ์ด ํฌํจ๋์ง๋ง, skill์ด ๋ง์ผ๋ฉด Claude Code๋ ์ค๋ช ์ ๋จ์ถํ์ฌ ๋ชฉ๋ก์ ๋ฌธ์ ์์ฐ์ ๋ง์ถ๋ฉฐ, ์ด๋ Claude๊ฐ ์์ฒญ๊ณผ ์ผ์นํ๋ ๋ฐ ํ์ํ ํค์๋๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์์ฐ์ ๋ชจ๋ธ์ ์ปจํ ์คํธ ์๋์ฐ์ 1%์์ ํ์ฅ๋ฉ๋๋ค. ๋ชฉ๋ก์ด ์์ฐ์ ์ด๊ณผํ๋ฉด, Claude Code๋ ๊ฐ์ฅ ์ ๊ฒ ํธ์ถํ๋ skill๋ถํฐ ์ค๋ช ์ ์ญ์ ํ๋ฏ๋ก ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉํ๋ skill์ ์ ์ฒด ํ ์คํธ๋ฅผ ์ ์งํฉ๋๋ค.
/doctor๋ฅผ ์คํํ์ฌ ๋ชฉ๋ก์ ์ปจํ
์คํธ ๋น์ฉ ์ถ์ ์น์ ๊ฐ์ฅ ํฐ ๊ธฐ์ฌ์๋ฅผ ํ์ธํฉ๋๋ค. ๋ชฉ๋ก์ด ์์ฐ์ ์ด๊ณผํ๋ฉด, Claude Code๋ --debug๋ก ๋ณผ ์ ์๋ ๋๋ฒ๊ทธ ๋ก๊ทธ์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํฉ๋๋ค.
/context์ Skills ํ์ ์์ฐ์ด ์ ์ฉ๋ ํ์ ๋ชฉ๋ก ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ ํ๋ฏ๋ก ๋ชจ๋ธ์ด ์์ ํ๋ ๊ฒ๊ณผ ์ผ์นํฉ๋๋ค. v2.1.196 ์ด์ ์๋ ํ์ด ๋ชจ๋ ์ค๋ช
์ ์ ์ฒด ํ
์คํธ๋ฅผ ๊ณ์ฐํ์ผ๋ฏ๋ก ๊ตฌ์ฑ๋ ์์ฐ๋ณด๋ค ๋ช ๋ฐฐ ๋ ํฐ ๊ฐ์ ํ์ํ ์ ์์์ต๋๋ค.
์์ฐ์ ๋์ด๋ ค๋ฉด skillListingBudgetFraction ์ค์ (์: 0.02 = 2%)์ ์ค์ ํ๊ฑฐ๋ SLASH_COMMAND_TOOL_CHAR_BUDGET ํ๊ฒฝ ๋ณ์๋ฅผ ๊ณ ์ ๋ฌธ์ ์๋ก ์ค์ ํฉ๋๋ค. ๋ค๋ฅธ skill์ ์ํด ์์ฐ์ ํ๋ณดํ๋ ค๋ฉด skillOverrides์์ ๋ฎ์ ์ฐ์ ์์ ํญ๋ชฉ์ "name-only"๋ก ์ค์ ํ์ฌ ์ค๋ช
์์ด ๋์ด๋๋๋ก ํฉ๋๋ค. ๋ํ ์์ค์์ description ๋ฐ when_to_use ํ
์คํธ๋ฅผ ์๋ฅผ ์ ์์ต๋๋ค: ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋จผ์ ๋ฐฐ์นํฉ๋๋ค. ๊ฐ ํญ๋ชฉ์ ๊ฒฐํฉ๋ ํ
์คํธ๋ ์์ฐ๊ณผ ๊ด๊ณ์์ด 1,536์๋ก ์ ํ๋๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด ์ ํ์ skillListingMaxDescChars๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๊ด๋ จ ๋ฆฌ์์ค
- ๊ตฌ์ฑ ๋๋ฒ๊น : skill์ด ๋ํ๋์ง ์๊ฑฐ๋ ํธ๋ฆฌ๊ฑฐ๋์ง ์๋ ์ด์ ์ง๋จ
- Skill ์ถ๋ ฅ ํ์ง ํ๊ฐ: agentskills.io์ eval ํ์ผ ํ์ ๋ฐ ๋ฐ๋ณต ์ํฌํ๋ก์ฐ
- Skill ์์ฑ ๋ชจ๋ฒ ์ฌ๋ก: Claude ์ ํ ์ ์ฒด์ ์ ์ฉ๋๋ ์์ฑ ์ง์นจ
- Subagents: ํนํ๋ ์์ด์ ํธ์ ์์ ์์
- ํ๋ฌ๊ทธ์ธ: ๋ค๋ฅธ ํ์ฅ๊ณผ ํจ๊ป skills ํจํค์ง ๋ฐ ๋ฐฐํฌ
- Hooks: ๋๊ตฌ ์ด๋ฒคํธ ์ฃผ๋ณ ์ํฌํ๋ก์ฐ ์๋ํ
- ๋ฉ๋ชจ๋ฆฌ: ์ง์์ ์ธ ์ปจํ ์คํธ๋ฅผ ์ํ CLAUDE.md ํ์ผ ๊ด๋ฆฌ
- ๋ช ๋ น์ด: ๊ธฐ๋ณธ ์ ๊ณต ๋ช ๋ น์ด ๋ฐ ๋ฒ๋ค skills ์ฐธ์กฐ
- ๊ถํ: ๋๊ตฌ ๋ฐ skill ์ก์ธ์ค ์ ์ด
- Claude Tag skills: ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ปค๋ฐ๋ ํ๋ก์ ํธ skills๋ ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ Claude Tag ์ฑ๋์์ ์ฌ์ฉ๋ ๋๋ ๋ก๋๋ฉ๋๋ค