지금 작업 중인 프로젝트를 하나 골라 프로젝트 스킬을 추가합니다.
레벨 1: 첫 프로젝트 스킬 만들기- 프로젝트 디렉터리에
.claude/skills/[skill-name]/을 만든다 - 그 프로젝트에 특화된 스킬을 쓴다 (커밋 형식, 배포 절차, 테스트 생성 등 맞는 것으로)
- Git에 커밋한다
- 프로젝트 README에 문서화한다
학습 목표:
- 개인 스킬과 프로젝트 스킬의 차이 이해하기
- Git으로 프로젝트 스킬 관리하기
- 공유 스킬을 건강하게 유지하는 팀 관행 적용하기
- 스킬 생태계에 또 무엇이 있는지 알기
전제: << 레슨 5
지금까지 만든 스킬은 모두 ~/.claude/skills/에 들어갔습니다. 그것들은 개인 스킬입니다 — 오직 당신만 쓸 수 있습니다. 1
그런데 팀에서는 보통 다른 것이 필요합니다.
그것이 바로 프로젝트 스킬이 존재하는 이유입니다. 2
개인 스킬: 2
프로젝트 스킬:
프로젝트로 이동합니다.
팀의 다른 사람들은 이렇게 합니다.
스킬이 곧바로 동작합니다. 따로 설정할 것은 없습니다. 1
프로젝트 스킬이 Git 안에 들어오면, Git이 할 수 있는 모든 것이 그대로 적용됩니다. 3
스킬을 리뷰하는 일은 코드를 리뷰하는 일만큼 중요합니다. 4
누군가 새 스킬을 제출하거나 기존 스킬을 바꿀 때:
PR에서 스킬 파일을 리뷰할 때:
실험적인 스킬은 피처 브랜치에 둡니다.
스킬을 문서화하는 일은 간단합니다. 프로젝트 루트 README나 .claude/README.md에 목록을 적으면 됩니다. 4
팀 전체가 하나의 네이밍 컨벤션에 합의합니다. 3
권장:
commit-format, api-doc-genformat-commit, review-code피할 것:
skill-1, helper-v2tool, helper, utilityproj-skill-3분기에 한 번씩 전체를 점검합니다. 3
거의 쓰이지 않는 스킬은 개선하거나 삭제해야 합니다. 쓰이지 않는 스킬이 쌓이면 Claude가 실제로 맞는 스킬을 찾기 어려워집니다.
이건 중요합니다: 기존 스킬을 바꿨다면 팀 채널에 알립니다.
스킬 조합이란 여러 스킬을 이어 붙여 더 큰 작업 하나를 처리하는 것입니다. 1
또는 한 스킬 안에서 다른 스킬을 참조합니다.
바로 여기에서 스킬의 도달 범위가 생깁니다. 작고 목적이 하나뿐인 스킬들이 모여 더 큰 워크플로가 됩니다. Anthropic 엔지니어링 가이드는 이렇게 표현합니다. "Instead of building fragmented, custom-designed agents for each use case, anyone can now specialize their agents with composable capabilities." (각 유스케이스마다 파편화된 맞춤 에이전트를 만드는 대신, 이제 누구나 조합 가능한 능력으로 자기 에이전트를 전문화할 수 있다.) 5
이제 핵심 기술은 갖췄습니다. 여기서부터 살펴볼 만한 방향이 몇 가지 있습니다.
이 코스에서는 name과 description만 썼습니다. 더 있습니다. 6
model: 이 스킬이 어느 모델에서 돌아갈지 (더 강한 추론이 필요할 때)allowed-tools: 스킬을 특정 도구로 제한disable-model-invocation: Claude가 자동으로 로드하지 못하게 해서 수동 전용으로 만들기셋 중에서 model은 모델을 고르고, allowed-tools는 권한 경계를 긋고, disable-model-invocation은 자동 트리거를 끄고 수동 호출만 남깁니다.
언제 쓰는가:
disable-model-invocation으로 실수로 발동되지 않게model: claude-opus-4allowed-tools로 건드릴 수 있는 범위 제한전체 필드 목록은 공식 문서에 있습니다: https://code.claude.com/docs/en/skills 1
MCP(Model Context Protocol) 서버는 도구를 공급하고, 스킬은 워크플로 지식을 공급합니다. 7
예를 들면:
read_database 도구를 노출한다이 둘을 합치면, 스킬은 Claude와 외부 시스템을 잇는 다리가 됩니다. 7
다른 사람들이 무엇을 만들었는지 보려면:
남의 스킬을 실행하기 전에:
~/.claude/skills/)은 자기 습관을 위한 것이고, 프로젝트 스킬(.claude/skills/)은 팀으로 일하기 위한 것이다 2이제 이런 것을 할 수 있습니다.
다음에 할 일:
기억하세요: 좋은 스킬은 한 번 써서 끝나는 것이 아니라, 쓰이면서 다듬어집니다. 3 4
이제 몇 번이고 다시 설명해 온 그 워크플로를 직접 만들러 가세요.
Claude Code 공식 문서: Extend Claude Code with skills — https://code.claude.com/docs/en/skills ↩ ↩2 ↩3 ↩4 ↩5
Teach Claude Code your workflow: 커스텀 Skills 실습 가이드 — https://medium.com/@n913239/teach-claude-code-your-workflow-a-hands-on-guide-to-custom-skills-8bc35d4a11ed ↩ ↩2 ↩3
Claude Code skills: .NET 워크플로와 재사용 가능한 프롬프트 — https://codewithmukesh.com/blog/skills-claude-code/ ↩ ↩2 ↩3 ↩4
자기 문서화 runbook으로서의 Claude skills — https://zackproser.com/blog/claude-skills-internal-training ↩ ↩2 ↩3
Anthropic 엔지니어링 블로그: Equipping agents for the real world with Agent Skills — https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills ↩ ↩2
Claude Skills 심층 분석(제1원리 관점) — https://leehanchung.github.io/blogs/2025/10/26/claude-skills-deep-dive/ ↩
The complete guide to building skills for Claude(PDF) — https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf ↩ ↩2
.claude/skills/[skill-name]/을 만든다PR 내용:
최소 3가지 문제를 짚어 리뷰를 작성하세요.
cd ~/projects/my-app
# 프로젝트 스킬 디렉터리 생성
mkdir -p .claude/skills/commit-format
# SKILL.md 생성
cat > .claude/skills/commit-format/SKILL.md << 'EOF'
---
name: commit-format
description: 짧은 커밋 메시지를 type, scope, 상세 본문을 갖춘 팀 필수 형식으로 다시 쓴다
---
# 커밋 메시지 포맷팅
간결한 커밋 메시지를 팀이 합의한 형식으로 다시 쓴다.
## 팀 컨벤션
커밋 메시지 형식:
```
<type>(<scope>): <subject>
<body>
```
**Types:**
- feat: 새 기능
- fix: 버그 수정
- docs: 문서 변경
- style: 서식만 (동작 변경 없음)
- refactor: 구조 재정리
- test: 테스트 관련
- chore: 빌드 또는 툴링 변경
**Scopes:**
- api: API 레이어
- ui: 인터페이스
- db: 데이터베이스
- auth: 인증과 인가
- core: 핵심 로직
## 처리 단계
1. 원본 커밋 텍스트를 읽고 type과 scope를 정한다
2. 빠져 있는 맥락을 채운다 (왜 변경했는지, 무엇에 영향을 주는지)
3. 요구된 형식으로 출력한다
## 출력 형식
```
<type>(<scope>): <subject>
<body>
- 왜 변경했는지
- 어떤 기능이나 모듈에 영향을 주는지
- 관련 issue나 PR이 있다면
```
## 예시
**입력:** "그 로그인 버그 고침"
**출력:**
```
fix(auth): 로그인 페이지의 비밀번호 검증 수정
- 문제: 비밀번호에 특수문자가 들어가면 검증이 실패했다
- 원인: 정규식이 특수문자를 이스케이프하지 않았다
- 영향: 비밀번호에 특수문자가 있는 사용자가 로그인할 수 없었다
- 관련 issue: #123
```
EOF
git add .claude/skills/commit-format/
git commit -m "feat(tooling): add commit message formatting Skill"
git push
git pull
# 스킬의 이력 보기
git log -- .claude/skills/commit-format/
# 이전 버전으로 되돌리기
git checkout abc123 -- .claude/skills/commit-format/
# 두 버전 비교하기
git diff main..feature-branch -- .claude/skills/
## 리뷰 체크리스트
- [ ] description이 무엇을 하는지와 언제 쓰는지를 담고 있다
- [ ] 지시문이 구체적이고 실행 가능하다
- [ ] 입력과 출력 예시가 포함되어 있다
- [ ] 최소 3가지 케이스로 테스트했다
- [ ] 기존 스킬과 중복되거나 충돌하지 않는다
# 실험 브랜치 생성
git checkout -b experiment/ai-refactor-skill
# 실험용 스킬 추가
mkdir -p .claude/skills/ai-refactor
# ... SKILL.md 작성
# 커밋
git add .claude/skills/ai-refactor/
git commit -m "experiment: add AI-assisted refactoring Skill"
# 일주일 써 보고, 값어치를 하면 main에 병합
git checkout main
git merge experiment/ai-refactor-skill
## 사용 가능한 Claude 스킬
### commit-format
간결한 커밋 메시지를 팀 형식으로 다시 씁니다.
**사용법:** `/commit-format [원본 커밋 메시지]`
**예시:**
```
/commit-format 로그인 버그 고침
```
### code-review
코드 변경을 팀 기준에 비추어 리뷰합니다.
**사용법:** `/code-review`를 입력한 뒤 코드나 diff를 붙여넣습니다
**참고:** 리뷰 출력은 참고용입니다 — 중요한 변경에는 여전히 사람 리뷰어가 필요합니다
# 모든 프로젝트 스킬 나열
ls .claude/skills/
# 각각에 대해 물어본다:
# - 지난 3개월 동안 몇 번이나 썼는가?
# - 지금 팀의 일하는 방식에 여전히 맞는가?
# - 다른 스킬이 이것을 대체했는가?
📢 스킬 업데이트: code-review
변경 사항:- React Hooks 규칙 점검 추가- 함수 길이 임계값 하향 (50줄 → 40줄)
영향:- 전에는 통과하던 코드가 이제 지적될 수 있음- 최근 PR을 다시 리뷰해 볼 만함
문의: @dana/commit-format 로그인 버그 고침
(Claude가 포맷팅된 커밋을 돌려준다)
/code-review
(방금 바꾼 코드를 붙여넣는다)## 단계
1. commit-format 스킬로 커밋 메시지를 포맷팅한다
2. code-review 스킬로 코드 변경을 점검한다
3. 두 결과를 합쳐 PR 설명을 만든다
---
name: helper
description: Helps process data
---
# Helper
A tool for processing data.
## Steps
1. Read the data
2. Process it
3. Output the result