이 가이드는 Claude Code에서 Agent Skills를 생성, 사용 및 관리하는 방법을 보여줍니다. Skills는 지침, 스크립트 및 리소스가 포함된 구성된 폴더를 통해 Claude의 기능을 확장하는 모듈식 기능입니다.

전제 조건

  • Claude Code 버전 1.0 이상
  • Claude Code에 대한 기본적인 이해

Agent Skills란 무엇인가요?

Agent Skills는 전문 지식을 발견 가능한 기능으로 패키징합니다. 각 Skill은 Claude가 관련성이 있을 때 읽는 지침이 포함된 SKILL.md 파일과 스크립트 및 템플릿과 같은 선택적 지원 파일로 구성됩니다. Skills가 호출되는 방법: Skills는 모델 호출됩니다—Claude는 귀하의 요청과 Skill의 설명을 기반으로 언제 사용할지 자율적으로 결정합니다. 이는 사용자 호출되는 슬래시 명령(명시적으로 /command를 입력하여 트리거)과는 다릅니다. 이점:
  • 특정 워크플로우에 대한 Claude의 기능 확장
  • git을 통해 팀 전체에서 전문 지식 공유
  • 반복적인 프롬프팅 감소
  • 복잡한 작업을 위한 여러 Skills 구성
Agent Skills 개요에서 자세히 알아보세요.
Agent Skills의 아키텍처와 실제 응용 프로그램에 대한 심층 분석은 엔지니어링 블로그를 읽어보세요: Equipping agents for the real world with Agent Skills.

Skill 생성

Skills는 SKILL.md 파일이 포함된 디렉터리로 저장됩니다.

개인 Skills

개인 Skills는 모든 프로젝트에서 사용할 수 있습니다. ~/.claude/skills/에 저장하세요:
mkdir -p ~/.claude/skills/my-skill-name
개인 Skills 사용 용도:
  • 개인 워크플로우 및 선호도
  • 개발 중인 실험적 Skills
  • 개인 생산성 도구

프로젝트 Skills

프로젝트 Skills는 팀과 공유됩니다. 프로젝트 내의 .claude/skills/에 저장하세요:
mkdir -p .claude/skills/my-skill-name
프로젝트 Skills 사용 용도:
  • 팀 워크플로우 및 규칙
  • 프로젝트별 전문 지식
  • 공유 유틸리티 및 스크립트
프로젝트 Skills는 git에 체크인되어 팀 구성원에게 자동으로 제공됩니다.

플러그인 Skills

Skills는 Claude Code 플러그인에서도 제공될 수 있습니다. 플러그인은 플러그인이 설치될 때 자동으로 사용할 수 있는 Skills를 번들로 제공할 수 있습니다. 이러한 Skills는 개인 및 프로젝트 Skills와 동일한 방식으로 작동합니다.

SKILL.md 작성

YAML frontmatter와 Markdown 콘텐츠가 포함된 SKILL.md 파일을 생성하세요:
---
name: Your Skill Name
description: Brief description of what this Skill does and when to use it
---

# Your Skill Name

## Instructions
Provide clear, step-by-step guidance for Claude.

## Examples
Show concrete examples of using this Skill.
description 필드는 Claude가 언제 Skill을 사용할지 발견하는 데 중요합니다. Skill이 무엇을 하는지와 Claude가 언제 사용해야 하는지를 모두 포함해야 합니다. 완전한 작성 지침은 모범 사례 가이드를 참조하세요.

지원 파일 추가

SKILL.md와 함께 추가 파일을 생성하세요:
my-skill/
├── SKILL.md (필수)
├── reference.md (선택적 문서)
├── examples.md (선택적 예제)
├── scripts/
│   └── helper.py (선택적 유틸리티)
└── templates/
    └── template.txt (선택적 템플릿)
SKILL.md에서 이러한 파일을 참조하세요:
고급 사용법은 [reference.md](reference.md)를 참조하세요.

도우미 스크립트 실행:
```bash
python scripts/helper.py input.txt
```
Claude는 필요할 때만 이러한 파일을 읽어 점진적 공개를 사용하여 컨텍스트를 효율적으로 관리합니다.

allowed-tools로 도구 액세스 제한

allowed-tools frontmatter 필드를 사용하여 Skill이 활성화될 때 Claude가 사용할 수 있는 도구를 제한하세요:
---
name: Safe File Reader
description: Read files without making changes. Use when you need read-only file access.
allowed-tools: Read, Grep, Glob
---

# Safe File Reader

This Skill provides read-only file access.

## Instructions
1. Use Read to view file contents
2. Use Grep to search within files
3. Use Glob to find files by pattern
이 Skill이 활성화되면 Claude는 권한을 요청하지 않고도 지정된 도구(Read, Grep, Glob)만 사용할 수 있습니다. 이는 다음과 같은 경우에 유용합니다:
  • 파일을 수정하지 않아야 하는 읽기 전용 Skills
  • 제한된 범위의 Skills (예: 데이터 분석만, 파일 쓰기 없음)
  • 기능을 제한하려는 보안에 민감한 워크플로우
allowed-tools가 지정되지 않은 경우 Claude는 표준 권한 모델에 따라 평소와 같이 도구 사용 권한을 요청합니다.
allowed-tools는 Claude Code의 Skills에서만 지원됩니다.

사용 가능한 Skills 보기

Skills는 세 가지 소스에서 Claude에 의해 자동으로 발견됩니다:
  • 개인 Skills: ~/.claude/skills/
  • 프로젝트 Skills: .claude/skills/
  • 플러그인 Skills: 설치된 플러그인과 함께 번들됨
모든 사용 가능한 Skills를 보려면 Claude에게 직접 물어보세요:
What Skills are available?
또는
List all available Skills
이렇게 하면 플러그인 Skills를 포함하여 모든 소스의 모든 Skills가 표시됩니다. 특정 Skill을 검사하려면 파일 시스템을 확인할 수도 있습니다:
# 개인 Skills 목록
ls ~/.claude/skills/

# 프로젝트 Skills 목록 (프로젝트 디렉터리에 있는 경우)
ls .claude/skills/

# 특정 Skill의 내용 보기
cat ~/.claude/skills/my-skill/SKILL.md

Skill 테스트

Skill을 생성한 후 설명과 일치하는 질문을 하여 테스트하세요. 예제: 설명에 “PDF 파일”이 언급된 경우:
Can you help me extract text from this PDF?
Claude는 요청과 일치하는 경우 자율적으로 Skill을 사용하기로 결정합니다—명시적으로 호출할 필요가 없습니다. Skill은 질문의 컨텍스트에 따라 자동으로 활성화됩니다.

Skill 디버그

Claude가 Skill을 사용하지 않는 경우 다음과 같은 일반적인 문제를 확인하세요:

설명을 구체적으로 작성

너무 모호함:
description: Helps with documents
구체적:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
설명에 Skill이 무엇을 하는지와 언제 사용할지를 모두 포함하세요.

파일 경로 확인

개인 Skills: ~/.claude/skills/skill-name/SKILL.md 프로젝트 Skills: .claude/skills/skill-name/SKILL.md 파일이 존재하는지 확인하세요:
# 개인
ls ~/.claude/skills/my-skill/SKILL.md

# 프로젝트
ls .claude/skills/my-skill/SKILL.md

YAML 구문 확인

잘못된 YAML은 Skill이 로드되지 않도록 합니다. frontmatter를 확인하세요:
cat SKILL.md | head -n 10
다음을 확인하세요:
  • 1행에 여는 ---
  • Markdown 콘텐츠 전에 닫는 ---
  • 유효한 YAML 구문 (탭 없음, 올바른 들여쓰기)

오류 보기

디버그 모드로 Claude Code를 실행하여 Skill 로딩 오류를 확인하세요:
claude --debug

팀과 Skills 공유

권장 방법: 플러그인을 통해 Skills를 배포하세요. 플러그인을 통해 Skills를 공유하려면:
  1. skills/ 디렉터리에 Skills가 있는 플러그인 생성
  2. 마켓플레이스에 플러그인 추가
  3. 팀 구성원이 플러그인 설치
완전한 지침은 플러그인에 Skills 추가를 참조하세요. 프로젝트 저장소를 통해 Skills를 직접 공유할 수도 있습니다:

1단계: 프로젝트에 Skill 추가

프로젝트 Skill 생성:
mkdir -p .claude/skills/team-skill
# SKILL.md 생성

2단계: git에 커밋

git add .claude/skills/
git commit -m "Add team Skill for PDF processing"
git push

3단계: 팀 구성원이 자동으로 Skills 받기

팀 구성원이 최신 변경 사항을 가져오면 Skills를 즉시 사용할 수 있습니다:
git pull
claude  # Skills를 이제 사용할 수 있습니다

Skill 업데이트

SKILL.md를 직접 편집하세요:
# 개인 Skill
code ~/.claude/skills/my-skill/SKILL.md

# 프로젝트 Skill
code .claude/skills/my-skill/SKILL.md
다음에 Claude Code를 시작할 때 변경 사항이 적용됩니다. Claude Code가 이미 실행 중인 경우 업데이트를 로드하려면 다시 시작하세요.

Skill 제거

Skill 디렉터리를 삭제하세요:
# 개인
rm -rf ~/.claude/skills/my-skill

# 프로젝트
rm -rf .claude/skills/my-skill
git commit -m "Remove unused Skill"

모범 사례

Skills를 집중적으로 유지

하나의 Skill은 하나의 기능을 다뤄야 합니다: 집중적:
  • “PDF 양식 작성”
  • “Excel 데이터 분석”
  • “Git 커밋 메시지”
너무 광범위함:
  • “문서 처리” (별도의 Skills로 분할)
  • “데이터 도구” (데이터 유형 또는 작업별로 분할)

명확한 설명 작성

설명에 특정 트리거를 포함하여 Claude가 언제 Skills를 사용할지 발견할 수 있도록 도와주세요: 명확함:
description: Analyze Excel spreadsheets, create pivot tables, and generate charts. Use when working with Excel files, spreadsheets, or analyzing tabular data in .xlsx format.
모호함:
description: For files

팀과 함께 테스트

팀원들이 Skills를 사용하고 피드백을 제공하도록 하세요:
  • Skill이 예상대로 활성화되나요?
  • 지침이 명확한가요?
  • 누락된 예제나 엣지 케이스가 있나요?

Skill 버전 문서화

시간이 지남에 따라 변경 사항을 추적하기 위해 SKILL.md 콘텐츠에 Skill 버전을 문서화할 수 있습니다. 버전 기록 섹션을 추가하세요:
# My Skill

## Version History
- v2.0.0 (2025-10-01): Breaking changes to API
- v1.1.0 (2025-09-15): Added new features
- v1.0.0 (2025-09-01): Initial release
이는 팀 구성원이 버전 간에 무엇이 변경되었는지 이해하는 데 도움이 됩니다.

문제 해결

Claude가 내 Skill을 사용하지 않음

증상: 관련 질문을 하지만 Claude가 Skill을 사용하지 않습니다. 확인: 설명이 충분히 구체적인가요? 모호한 설명은 발견을 어렵게 만듭니다. Skill이 무엇을 하는지와 언제 사용할지를 모두 포함하고, 사용자가 언급할 수 있는 핵심 용어를 포함하세요. 너무 일반적:
description: Helps with data
구체적:
description: Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with Excel files, spreadsheets, or .xlsx files.
확인: YAML이 유효한가요? 구문 오류를 확인하기 위해 유효성 검사를 실행하세요:
# frontmatter 보기
cat .claude/skills/my-skill/SKILL.md | head -n 15

# 일반적인 문제 확인
# - 여는 또는 닫는 --- 누락
# - 공백 대신 탭
# - 특수 문자가 있는 따옴표 없는 문자열
확인: Skill이 올바른 위치에 있나요?
# 개인 Skills
ls ~/.claude/skills/*/SKILL.md

# 프로젝트 Skills
ls .claude/skills/*/SKILL.md

Skill에 오류가 있음

증상: Skill이 로드되지만 올바르게 작동하지 않습니다. 확인: 종속성이 사용 가능한가요? Claude는 필요할 때 필요한 종속성을 자동으로 설치하거나 설치 권한을 요청합니다. 확인: 스크립트에 실행 권한이 있나요?
chmod +x .claude/skills/my-skill/scripts/*.py
확인: 파일 경로가 올바른가요? 모든 경로에서 슬래시(Unix 스타일)를 사용하세요: 올바름: scripts/helper.py 잘못됨: scripts\helper.py (Windows 스타일)

여러 Skills가 충돌함

증상: Claude가 잘못된 Skill을 사용하거나 유사한 Skills 간에 혼란스러워 보입니다. 설명에서 구체적으로 작성: 설명에서 고유한 트리거 용어를 사용하여 Claude가 올바른 Skill을 선택할 수 있도록 도와주세요. 다음 대신:
# Skill 1
description: For data analysis

# Skill 2
description: For analyzing data
다음을 사용하세요:
# Skill 1
description: Analyze sales data in Excel files and CRM exports. Use for sales reports, pipeline analysis, and revenue tracking.

# Skill 2
description: Analyze log files and system metrics data. Use for performance monitoring, debugging, and system diagnostics.

예제

간단한 Skill (단일 파일)

commit-helper/
└── SKILL.md
---
name: Generating Commit Messages
description: Generates clear commit messages from git diffs. Use when writing commit messages or reviewing staged changes.
---

# Generating Commit Messages

## Instructions

1. Run `git diff --staged` to see changes
2. I'll suggest a commit message with:
   - Summary under 50 characters
   - Detailed description
   - Affected components

## Best practices

- Use present tense
- Explain what and why, not how

도구 권한이 있는 Skill

code-reviewer/
└── SKILL.md
---
name: Code Reviewer
description: Review code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
allowed-tools: Read, Grep, Glob
---

# Code Reviewer

## Review checklist

1. Code organization and structure
2. Error handling
3. Performance considerations
4. Security concerns
5. Test coverage

## Instructions

1. Read the target files using Read tool
2. Search for patterns using Grep
3. Find related files using Glob
4. Provide detailed feedback on code quality

다중 파일 Skill

pdf-processing/
├── SKILL.md
├── FORMS.md
├── REFERENCE.md
└── scripts/
    ├── fill_form.py
    └── validate.py
SKILL.md:
---
name: PDF Processing
description: Extract text, fill forms, merge PDFs. Use when working with PDF files, forms, or document extraction. Requires pypdf and pdfplumber packages.
---

# PDF Processing

## Quick start

Extract text:
```python
import pdfplumber
with pdfplumber.open("doc.pdf") as pdf:
    text = pdf.pages[0].extract_text()
```

For form filling, see [FORMS.md](FORMS.md).
For detailed API reference, see [REFERENCE.md](REFERENCE.md).

## Requirements

Packages must be installed in your environment:
```bash
pip install pypdf pdfplumber
```
설명에 필요한 패키지를 나열하세요. Claude가 사용하기 전에 패키지가 환경에 설치되어 있어야 합니다.
Claude는 필요할 때만 추가 파일을 로드합니다.

다음 단계