Claude Code Skills는 AI 코딩 어시스턴트인 Claude Code의 기능을 확장하는 강력한 시스템입니다. SKILL.md 파일에 지시사항을 작성하면 Claude가 이를 도구로 활용하며, 상황에 맞게 자동으로 적용하거나 /skill-name 형태로 직접 호출할 수 있습니다.

Skills와 Slash Commands의 통합
2026년 현재 Claude Code에서는 Skills와 Slash Commands가 하나의 통합된 시스템으로 운영됩니다. 기존에 .claude/commands/review.md에 있던 파일과 .claude/skills/review/SKILL.md에 있는 스킬 모두 /review로 동작합니다.
기존 .claude/commands/ 파일들도 계속 작동하지만, Skills는 추가적인 기능을 제공합니다:
- 지원 파일을 위한 디렉토리 구조
- 호출 제어를 위한 frontmatter
- 상황에 맞는 자동 로딩

SKILL.md 파일 구조
모든 스킬은 두 부분으로 구성된 SKILL.md 파일이 필요합니다:
1. YAML Frontmatter
--- 마커 사이에 작성하며, Claude에게 스킬을 언제 사용할지 알려줍니다.
2. Markdown 본문
스킬이 호출되었을 때 Claude가 따르는 지시사항입니다.
기본 예제
---
name: explain-code
description: 코드를 시각적 다이어그램과 비유로 설명합니다. 코드 작동 방식을 설명하거나 "이게 어떻게 동작해?"라고 물을 때 사용합니다.
---
코드를 설명할 때 항상 다음을 포함하세요:
1. **비유로 시작**: 코드를 일상생활의 무언가와 비교
2. **다이어그램 그리기**: ASCII 아트로 흐름, 구조, 관계 표시
3. **코드 워크스루**: 단계별로 무슨 일이 일어나는지 설명
4. **주의점 강조**: 흔한 실수나 오해는 무엇인가?
Frontmatter 필드 레퍼런스
| 필드 | 필수 여부 | 설명 |
|---|---|---|
name |
선택 | 스킬 표시 이름. 생략 시 디렉토리 이름 사용 |
description |
권장 | 스킬의 기능과 사용 시점. Claude가 자동 적용 판단에 활용 |
argument-hint |
선택 | 자동완성 시 표시되는 인자 힌트 (예: [issue-number]) |
disable-model-invocation |
선택 | true 설정 시 Claude 자동 로딩 방지. 수동 호출만 허용 |
user-invocable |
선택 | false 설정 시 / 메뉴에서 숨김. 백그라운드 지식용 |
allowed-tools |
선택 | 스킬 활성화 시 Claude가 승인 없이 사용할 수 있는 도구 |
model |
선택 | 스킬 활성화 시 사용할 모델 |
context |
선택 | fork 설정 시 분리된 서브에이전트 컨텍스트에서 실행 |
agent |
선택 | context: fork 사용 시 서브에이전트 유형 지정 |
스킬 저장 위치
스킬을 어디에 저장하느냐에 따라 사용 범위가 결정됩니다:
| 위치 | 경로 | 적용 범위 |
|---|---|---|
| Enterprise | 관리 설정 참조 | 조직 전체 사용자 |
| Personal | ~/.claude/skills/<skill-name>/SKILL.md |
모든 개인 프로젝트 |
| Project | .claude/skills/<skill-name>/SKILL.md |
해당 프로젝트만 |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md |
플러그인 활성화된 곳 |
동일한 이름의 스킬이 여러 레벨에 있으면 우선순위가 높은 것이 적용됩니다: enterprise > personal > project
스킬 디렉토리 구조
my-skill/
├── SKILL.md # 메인 지시사항 (필수)
├── template.md # Claude가 채울 템플릿
├── examples/
│ └── sample.md # 예상 출력 형식 예제
└── scripts/
└── validate.sh # Claude가 실행할 수 있는 스크립트
호출 제어하기
기본적으로 사용자와 Claude 모두 스킬을 호출할 수 있습니다. 두 가지 frontmatter 필드로 제한할 수 있습니다:
사용자만 호출 가능
---
name: deploy
description: 프로덕션에 애플리케이션 배포
disable-model-invocation: true
---
배포, 커밋, 메시지 전송 등 부작용이 있는 워크플로우에 사용합니다.
Claude만 호출 가능
---
name: legacy-system-context
description: 레거시 시스템 작동 방식 설명
user-invocable: false
---
백그라운드 지식으로 Claude가 필요할 때 참조하되, 사용자가 직접 호출할 필요 없는 경우에 사용합니다.
인자 전달하기
$ARGUMENTS 플레이스홀더로 인자를 받을 수 있습니다:
---
name: fix-issue
description: GitHub 이슈 수정
disable-model-invocation: true
---
GitHub 이슈 $ARGUMENTS를 코딩 표준에 따라 수정하세요.
1. 이슈 설명 읽기
2. 요구사항 이해
3. 수정 구현
4. 테스트 작성
5. 커밋 생성
/fix-issue 123 실행 시 Claude는 "GitHub 이슈 123을 코딩 표준에 따라 수정하세요..."를 받습니다.
개별 인자 접근
---
name: migrate-component
description: 컴포넌트를 한 프레임워크에서 다른 프레임워크로 마이그레이션
---
$0 컴포넌트를 $1에서 $2로 마이그레이션하세요.
/migrate-component SearchBar React Vue 실행 시 각각 대체됩니다.
동적 컨텍스트 주입
!`command` 문법으로 스킬 내용이 Claude에게 전달되기 전에 셸 명령을 실행할 수 있습니다:
---
name: pr-summary
description: Pull Request 변경사항 요약
context: fork
agent: Explore
allowed-tools: Bash(gh *)
---
## Pull Request 컨텍스트
- PR diff: !`gh pr diff`
- PR 코멘트: !`gh pr view --comments`
- 변경된 파일: !`gh pr diff --name-only`
## 할 일
이 Pull Request를 요약하세요...
이 스킬이 실행되면:
- 각
!`command`가 즉시 실행됨 - 출력이 스킬 내용의 플레이스홀더를 대체
- Claude는 실제 PR 데이터가 포함된 최종 프롬프트를 받음
서브에이전트에서 실행하기
context: fork를 frontmatter에 추가하면 스킬이 분리된 환경에서 실행됩니다:
---
name: deep-research
description: 주제를 철저히 조사
context: fork
agent: Explore
---
$ARGUMENTS를 철저히 조사하세요:
1. Glob과 Grep으로 관련 파일 찾기
2. 코드 읽고 분석
3. 특정 파일 참조와 함께 발견사항 요약
이 방식으로 대화 히스토리와 분리된 환경에서 집중적인 작업을 수행할 수 있습니다.
도구 접근 제한
allowed-tools 필드로 스킬 활성화 시 사용 가능한 도구를 제한할 수 있습니다:
---
name: safe-reader
description: 변경 없이 파일만 읽기
allowed-tools: Read, Grep, Glob
---
이렇게 하면 읽기 전용 모드로 탐색만 가능하고 수정은 불가능합니다.
스킬 문자 예산
스킬 설명은 컨텍스트에 로드되어 Claude가 무엇이 가능한지 알 수 있습니다. 많은 스킬이 있으면 문자 예산을 초과할 수 있습니다:
- 예산은 컨텍스트 윈도우의 2%로 동적 확장
- 폴백 값은 16,000자
/context명령으로 제외된 스킬 경고 확인 가능SLASH_COMMAND_TOOL_CHAR_BUDGET환경변수로 제한 재정의 가능
베스트 프랙티스
1. description을 명확하게 작성
description은 스킬의 주요 트리거 메커니즘입니다. 스킬이 무엇을 하는지와 언제 사용할지 모두 포함하세요.
2. SKILL.md는 500줄 이하로 유지
상세한 참조 자료는 별도 파일로 분리하세요.
3. 부작용 있는 스킬은 수동 호출로
disable-model-invocation: true를 사용해 배포, 삭제, 전송 등의 작업은 사용자가 명시적으로 호출하도록 합니다.
4. YAML 포맷 주의
- 일관된 들여쓰기 사용 (탭 아닌 스페이스 2칸)
- 필드 이름에 특수문자 피하기
---마커로 frontmatter 감싸기
마무리
Claude Code Skills는 반복적인 워크플로우를 자동화하고 Claude의 기능을 프로젝트에 맞게 확장하는 강력한 도구입니다. 간단한 코딩 컨벤션부터 복잡한 배포 파이프라인까지, Skills를 통해 AI 어시스턴트를 팀의 요구에 맞게 커스터마이징할 수 있습니다.
Skills는 Agent Skills 오픈 스탠다드를 따르므로 여러 AI 도구에서 호환됩니다.
이 글은 Claude Code를 활용하여 작성되었습니다.
'claude code' 카테고리의 다른 글
| [공식문서읽기] Claude Code의 핵심: 에이전트 루프와 도구 완벽 이해 (0) | 2026.02.25 |
|---|---|
| [공식문서읽기] Claude Code Plugins 완벽 가이드 - 확장 기능으로 개발 생산성 극대화하기 (0) | 2026.02.24 |
| [공식문서읽기] 클로드 코드 에이전트 팀 - 여러 AI가 협업하는 새로운 개발 패러다임 (0) | 2026.02.24 |
| [공식문서읽기] Claude Code Agent 완벽 가이드 - AI 서브에이전트로 개발 생산성 높이기 (0) | 2026.02.24 |
| [공식문서읽기] Claude Code Hooks 완벽 가이드 - 자동화의 핵심 (0) | 2026.02.19 |