Claude Skills 완벽가이드 5편: 스킬 제작 실전 가이드
요약
핵심 요지
- 문제 정의: 완성된 스킬 예시를 봐도 내 상황에 맞는 스킬을 어떻게 만들어야 할지 모름
- 핵심 주장: 스킬 제작은 설계 철학 → 자유도 선택 → 반복 개선의 과정을 따르면 누구나 할 수 있다
- 주요 근거: Anthropic 공식 베스트 프랙티스 기반 방법론
문서가 설명하는 범위
- 스킬 설계 철학: “Concise is key”와 자유도(Degrees of Freedom) 개념
- 필드별 작성법 + Gerund 네이밍, Progressive Disclosure 패턴
- Evaluation-Driven Development: 테스트 → 관찰 → 수정 사이클
- Claude와 함께 스킬을 반복 개선하는 방법
읽는 시간: 10분 | 난이도: 중급
참고 자료
- Anthropic Agent Skills 공식 문서 - 필드 규칙 상세
- Skill Authoring Best Practices - 이 글의 핵심 레퍼런스
- Claude Help Center - Custom Skills
- Anthropic 공식 Skills 저장소
이런 경험 있으세요?
“4편에서 템플릿은 봤는데, 막상 내 스킬을 만들려니까 뭘 써야 할지 모르겠어요.”
“description에 뭘 써야 자동 활성화가 잘 되는지 감이 안 와요.”
“Instructions를 어느 정도로 상세하게 써야 하는지 모르겠어요.”
해결책이 있습니다. 이 글에서는 Anthropic 공식 베스트 프랙티스를 기반으로 스킬 설계 철학부터 반복 개선까지 전체 과정을 안내합니다.
스킬 설계의 핵심 철학
스킬을 작성하기 전에 반드시 이해해야 할 두 가지 원칙이 있습니다.
원칙 1: “Concise is key” — 간결함이 핵심이다
Anthropic 공식 문서의 첫 번째 원칙:
“Claude is already extremely smart — you don’t need to teach it what a customer service email looks like or how to write Python code.”
Claude는 이미 충분히 똑똑합니다. 이메일 작성법이나 파이썬 코드 작성법을 가르칠 필요가 없습니다.
스킬에는 Claude가 모르는 것만 담으세요.
- ✓ 회사 고유의 톤앤매너
- ✓ 특정 출력 포맷 요구사항
- ✓ 도메인 특화 규칙
- ✕ “이메일은 인사로 시작해야 한다” (Claude가 이미 앎)
- ✕ “문장은 명확하게 써야 한다” (Claude가 이미 앎)
원칙 2: “Degrees of Freedom” — 자유도를 선택하라
모든 스킬을 똑같은 상세도로 작성하면 안 됩니다. 태스크의 성격에 따라 Claude에게 줄 자유도를 결정하세요.
| 자유도 | 설명 | 언제 사용 | 예시 |
|---|---|---|---|
| High | 태스크만 알려주고 방법은 Claude에게 맡김 | 창의적 작업, 유연한 출력 | 브레인스토밍, 초안 작성 |
| Medium | 접근 방식과 구조를 안내 | 대부분의 스킬 | CS 답변, 보고서 작성 |
| Low | 정확한 단계와 출력 형식 지정 | 엄격한 포맷 필요 | 법률 문서, API 응답 생성 |
High Freedom 예시 (간결한 지침):
## Instructions
브레인스토밍 세션을 진행하고 창의적인 아이디어를 제안한다.사용자의 피드백에 따라 아이디어를 발전시킨다.Low Freedom 예시 (상세한 지침):
## Instructions
1. 입력된 JSON 데이터를 파싱한다2. 아래 스키마에 맞게 변환한다3. 필수 필드 누락 시 에러 메시지를 반환한다4. 출력은 반드시 아래 형식을 따른다: ```json {"status": "success", "data": {...}} ```TIP자유도 선택 가이드
- 출력 형식이 엄격하게 정해져 있다 → Low Freedom
- 일반적인 업무 자동화다 → Medium Freedom
- 창의적이거나 탐색적인 작업이다 → High Freedom
스킬 제작의 시작: 3가지 사전 질문
스킬을 만들기 전에 반드시 답해야 할 질문이 있습니다.
이 질문에 명확히 답할 수 없다면, 스킬을 만들어도 제대로 동작하지 않습니다.
질문 1: 어떤 반복 작업을 자동화할 것인가?
나쁜 답변
- “문서 작성을 도와주는 스킬” (너무 모호)
- “업무를 편하게 해주는 스킬” (구체성 없음)
좋은 답변
- “고객 불만 이메일에 공감하며 해결책을 제시하는 답장을 작성하는 스킬”
- “매주 팀장에게 보고하는 주간 업무 보고서를 만드는 스킬”
- “회의 내용을 정해진 양식의 회의록으로 정리하는 스킬”
TIP구체성 테스트: “이 스킬로 [입력]을 넣으면 [출력]이 나온다”를 한 문장으로 말할 수 있어야 합니다.
질문 2: 언제 활성화되어야 하는가?
Claude는 description을 보고 스킬 활성화 여부를 판단합니다.
어떤 키워드나 상황에서 이 스킬이 필요한지 생각해보세요.
| 생각해볼 것 | 예시 |
|---|---|
| 사용자가 어떤 말을 할 때? | ”고객 컴플레인 답장해줘”, “불만 메일 회신 도와줘” |
| 어떤 상황에서 필요한가? | 고객 불만 응대, 클레임 처리, CS 이메일 회신 |
| 비슷하지만 다른 요청은? | 제품 문의 답변, 마케팅 메일 (→ 이건 제외) |
질문 3: 어떤 입력을 받고 어떤 출력을 내는가?
스킬의 핵심은 입력 → 처리 → 출력입니다.
| 구분 | 정의해야 할 것 |
|---|---|
| 입력 | 사용자가 제공할 정보 (고객 불만 이메일 원본) |
| 처리 | Claude가 수행할 작업 (감정 파악, 문제 분석, 해결책 제시) |
| 출력 | 최종 결과물 형식 (공감+해결책이 담긴 CS 답변 이메일) |
단계별 스킬 제작 과정
사전 질문에 답했다면, 이제 SKILL.md1 파일을 채워봅시다.
Step 1: name 정하기
name은 스킬의 식별자입니다. 공식 스펙의 규칙을 지켜야 합니다.
규칙 (공식 스펙 기준)
- 소문자 영문(
a-z), 숫자, 하이픈(-)만 사용 - 밑줄(
_)이나 대문자는 사용 불가 - 하이픈으로 시작하거나 끝날 수 없음
- 연속 하이픈(
--) 사용 불가 - 최대 64자
- 예약어 사용 불가:
anthropic,claude - XML 태그 포함 불가
Gerund 네이밍 컨벤션 (베스트 프랙티스)
Anthropic은 스킬 이름을 동명사(Gerund)로 시작하도록 권장합니다.
| 권장 (Gerund) | 비권장 |
|---|---|
responding-to-complaints | complaint-response |
processing-pdfs | pdf-processor |
analyzing-data | data-analysis |
writing-reports | report-writer |
사고 과정
"고객 불만 응대 스킬"을 만들고 싶다→ 한글은 안 됨→ 영어로: responding to customer complaints→ Gerund로 시작: responding-to-complaints→ 좀 길다. 줄이자: responding-to-cs→ 소문자 확인: ✓ (이미 소문자)좋은 예시: responding-to-cs, processing-orders, writing-emails
나쁜 예시: CS_Complaint (대문자, 밑줄), -complaint (하이픈 시작), complaint-handler (Gerund 아님)
name: responding-to-csStep 2: description 작성하기
description2은 Claude가 스킬을 선택할 때 보는 유일한 정보입니다.
Progressive Disclosure 패턴 (베스트 프랙티스)
Anthropic은 스킬 정보를 단계적으로 공개하도록 권장합니다.
| 단계 | 토큰 예산 | 역할 |
|---|---|---|
| description | ~100 tokens | 활성화 판단 (Claude가 항상 읽음) |
| SKILL.md body | <5K tokens | 핵심 지침 (스킬 활성화 시 읽음) |
| reference/ 파일 | 필요시 | 추가 컨텍스트 (필요할 때만 읽음) |
글자 제한
- Claude: 최대 1024자 (모든 등록 방법 동일)
- 권장: ~100 tokens (약 300-400자)로 핵심만
공식 스펙 (Claude Help Center)
[무엇을 하는가] + [언제 사용하는가]사고 과정
무엇을 하는가?→ "고객 불만 이메일에 공감하며 해결책을 제시하는 답변을 작성한다"
언제 사용하는가?→ "컴플레인 답장", "불만 메일 회신", "클레임 답변" 요청 시
Progressive Disclosure 체크→ 핵심만 담았나? ✓→ 상세 지침은 SKILL.md body에 있나? ✓좋은 예시 (공식 문서 스타일):
description: 고객 불만 이메일에 공감과 해결책을 담은 CS 답변 작성. '컴플레인 답장', '불만 회신', '클레임 답변' 요청 시 사용.나쁜 예시:
description: 이메일 작성 도움.WARNING반드시 3인칭으로 작성하세요. description은 시스템 프롬프트에 주입되므로, 일관된 시점을 유지해야 합니다.
- ✓ “고객 불만 이메일에 공감과 해결책을 담은 CS 답변 작성.” (3인칭)
- ✕ “고객 불만 이메일에 답변을 작성해 드립니다.” (1인칭)
TIPProgressive Disclosure 핵심:
description은 ~100 tokens로 간결하게.
상세 지침은 SKILL.md body에,
참고 자료는 reference/에 분리하세요.
Step 3: Instructions 설계하기
Instructions는 Claude가 따라야 할 단계별 지시사항입니다.
앞서 선택한 자유도에 따라 상세도를 조절하세요.
자유도별 Instructions 작성법
| 자유도 | Instructions 스타일 | 예시 |
|---|---|---|
| High | 목표만 제시 | ”창의적인 마케팅 아이디어를 제안한다” |
| Medium | 단계별 가이드 | ”1. 분석 2. 공감 표현 3. 해결책 제시” |
| Low | 정확한 절차 + 출력 형식 | ”1. JSON 파싱 2. 스키마 검증 3. 형식에 맞게 출력” |
사고 과정 (Medium Freedom 예시)
화난 고객 이메일에 답장하려면 뭘 해야 하지?→ 자유도: Medium (일반적인 업무 자동화)
1단계: 불만 이메일 분석→ 고객의 감정 상태, 핵심 불만, 원하는 해결책 파악
2단계: 공감 표현→ 감정 인정, 불편 사과, 책임 회피 안 함
3단계: 해결책 제시→ 구체적 보상/처리 방안, 재발 방지 약속
"Concise is key" 체크→ "이메일은 인사로 시작해야 한다" 같은 건 안 씀 (Claude가 이미 앎)→ 회사 고유의 톤앤매너와 구조만 명시Medium Freedom 예시 (CS 답변 스킬):
## Instructions
### 1. 분석 (출력하지 않음)
입력된 이메일에서 파악:
- 감정 강도: 낮음/중간/높음- 불만 유형: 배송/품질/서비스/환불/기타- 요구사항: 환불/교환/보상/사과/정보요청
### 2. 답변 구조
[인사] 고객명 + 정중한 인사[사과] 불편에 대한 진심어린 사과[확인] 파악한 문제 요약[해결] 구체적 처리방안 (일정 포함)[마무리] 재발방지 + 연락처TIP“Concise is key” 적용하기 위 예시에서 “문장은 명확하게 써야 한다”, “고객을 존중해야 한다” 같은 내용은 의도적으로 뺐습니다. Claude는 이미 알고 있기 때문입니다.
Step 4: Examples 작성하기
Examples는 few-shot learning을 위한 핵심입니다.
최소 1개는 실제 출력 전문을 포함하고, 나머지는 핵심 요약으로 작성하면 효과적입니다.
사고 과정
모든 예시를 전체로 쓰면 너무 길다→ 첫 번째 예시는 실제 출력 전문 (정확도 향상)→ 나머지는 핵심만 요약 (간결성 유지)## Examples
### Example 1: 배송 미수령 (실제 출력)
**Input:** 배송완료인데 물건 없음, 여행 전 급함, 환불 또는 재배송 요구**Output:**김OO 고객님, 안녕하세요.
먼저 배송 문제로 불편을 드린 점 진심으로 사과드립니다.[실제 이메일 본문 전체...]
### Example 2: 제품 불량 (핵심 요약)
**Input 핵심:** 고가 제품 작동 불량, AS 떠넘기기 경험**Output 핵심:**
- 사과: 제품 신뢰 손상에 대한 사과- 해결: ①전액 환불 ②또는 신품 교환 ③불편 보상TIPExamples 베스트 프랙티스
- 첫 번째 예시는 실제 출력 전문을 포함 (Claude 정확도 향상)
- 나머지 예시는 핵심 요약으로 간결하게 유지
Step 5: Guidelines 추가하기 (선택)
엣지케이스나 스타일 규칙이 있다면 Guidelines에 추가합니다.
DO/DON’T 테이블과 필수/금지 리스트로 구분하면 명확합니다.
## Guidelines
| DO | DON'T || ---------------- | -------------------------- || 감정 먼저 인정 | 변명, 책임 전가 || 구체적 일정 제시 | "빠른 시일 내" 모호한 표현 || 선택지 제공 | 일방적 해결책 강요 |
**필수:** "죄송합니다" (첫 문단), 처리 예상 일정**금지:** 이모지, 고객 탓 암시Step 6: Output Format 지정하기 (선택)
최종 결과물의 형식을 명시합니다. Claude가 어떤 형태로 출력할지 결정하는 데 도움이 됩니다.
## Output Format
CS 답변 이메일 본문 텍스트 (복사하여 바로 사용 가능)TIP일반적인 Output Format 예시
- 문서:
.docx,.md,- 데이터:
JSON,CSV,표 형식- 코드:
Python,JavaScript등
실전 예시: 고객 불만 응대 스킬 완성본
Evaluation-Driven Development를 거쳐 완성된 스킬입니다.
”Concise is key” 원칙에 따라 Claude가 이미 아는 내용은 생략했습니다.
---name: responding-to-csdescription: 고객 불만 이메일에 공감과 해결책을 담은 CS 답변 작성. '컴플레인 답장', '불만 회신' 요청 시 사용.---
# CS 답변 스킬
## Overview
고객 불만 이메일 → **공감 → 해결책** 구조의 답변 작성. (Medium Freedom)
## Instructions
### 1. 분석 (출력하지 않음)
입력된 이메일에서 파악:
- 감정 강도: 낮음/중간/높음- 불만 유형: 배송/품질/서비스/환불/기타- 요구사항: 환불/교환/보상/사과/정보요청
### 2. 답변 구조
[인사] 고객명 + 정중한 인사[사과] 불편에 대한 진심어린 사과 (1-2문장)[확인] 파악한 문제 요약 (bullet)[해결] 구체적 처리방안 (numbered, 일정 포함)[마무리] 재발방지 언급 + 연락처 + 서명
## Tone by Emotion Level
| 감정 강도 | 톤 | 특징 || --------- | --------------------- | --------------------------------- || 낮음 | 친절, 간결 | 표준 응대, 감사 표현 포함 || 중간 | 공감 강화 | 불편 인정, 적극적 해결 의지 || 높음 | 책임 인정 + 즉시 해결 | 변명 없음, 선택지 제공, 추가 보상 |
## Examples
### Example 1: 배송 미수령 (실제 출력)
**Input:** 배송완료인데 물건 없음, 여행 전 급함, 환불 또는 재배송 요구**Output:**김OO 고객님, 안녕하세요.
먼저 배송 문제로 불편을 드린 점 진심으로 사과드립니다.여행을 앞두고 상품을 받지 못해 많이 답답하셨을 것으로 생각됩니다.
확인 결과,
- 주문번호: 123456- 배송 상태: 배송완료 처리되었으나 실제 미수령
현재 두 가지 해결 방안을 제공해 드릴 수 있습니다.
1. 오늘 출고, 내일 도착하는 긴급 재배송2. 즉시 전액 환불 처리
추가로 불편에 대한 사과의 의미로 적립금 5,000원을 지급해 드리겠습니다.
불편을 드려 다시 한번 죄송합니다.추가 문의는 [email protected] 또는 1234-5678로 연락 주세요.
고객센터 드림
### Example 2: 제품 불량 (핵심 요약)
**Input 핵심:** 고가 제품 작동 불량, AS 떠넘기기 경험, 소비자원 신고 예고**Output 핵심:**
- 사과: 제품 신뢰 손상에 대한 사과- 확인: 주문번호, 증상, AS 센터 방문 이력- 해결: ①전액 환불 ②또는 신품 교환 ③불편 보상- 톤: 즉시 조치, 추가 대기 없이 해결
## Guidelines
| DO | DON'T || ------------------ | -------------------------- || 감정 먼저 인정 | 변명, 책임 전가 || 구체적 일정 제시 | "빠른 시일 내" 모호한 표현 || 선택지 제공 | 일방적 해결책 강요 || 이행 가능한 약속만 | 과도한 보상 약속 |
**필수:** "죄송합니다" (첫 문단), 처리 예상 일정, 추가 문의 연락처**금지:** 이모지, 고객 탓 암시, 시스템/택배사 탓만 하기
## Legal Sensitivity
- 소비자원/소송 언급 시 → 방어적 표현 금지, 해결 의지 강조- "내부 규정상 불가" 단독 사용 금지 → 반드시 대안 제시- 법적 책임 인정 문구 사용 금지 → 사실 확인 후 안내
## Output Format
이메일 본문 텍스트 (제목 제외, 복사하여 바로 발송 가능)Evaluation-Driven Development
Anthropic 베스트 프랙티스의 핵심 방법론입니다.
”테스트가 작성을 이끈다” — 먼저 테스트하고, 실패를 관찰하고, 지침을 수정합니다.
Step 1: 최소 스킬로 시작하기
처음부터 완벽한 스킬을 작성하려고 하지 마세요.
description + 기본 Instructions만으로 시작합니다.
---name: responding-to-csdescription: 고객 불만 이메일에 공감과 해결책을 담은 CS 답변 작성. '컴플레인 답장', '불만 회신' 요청 시 사용.---
# CS 답변 스킬
## Instructions
고객 불만 이메일을 분석하여 공감 → 해결책 구조의 답변을 작성한다.Step 2: 테스트 실행
새 대화를 열고 테스트합니다.
컴플레인 답장 작성해줘.
주문번호 ORD-2024-98765, 이영수입니다.2주 전 구매한 청소기가 작동 안 됨. AS센터도 본사 연락하래서 답답함.80만원짜리인데 금요일까지 환불 안 되면 소보원 신고 예정.Step 3: 실패 관찰 및 분석
출력을 보고 기대와 다른 부분을 기록합니다.
| 관찰된 문제 | 원인 분석 | 해결 방법 |
|---|---|---|
| 톤이 너무 딱딱함 | 감정 강도별 톤 가이드 없음 | Tone by Emotion Level 섹션 추가 |
| 구체적 보상 없음 | 해결책 상세 지침 부족 | 해결책 구조 명시 |
| 법적 언급에 방어적 | 법적 민감성 가이드 없음 | Legal Sensitivity 섹션 추가 |
Step 4: 지침 수정
관찰된 실패를 바탕으로 필요한 부분만 추가합니다.
## Tone by Emotion Level
| 감정 강도 | 톤 | 특징 || --------- | --------------------- | -------------------- || 낮음 | 친절, 간결 | 표준 응대 || 중간 | 공감 강화 | 불편 인정 || 높음 | 책임 인정 + 즉시 해결 | 변명 없음, 추가 보상 |
## Legal Sensitivity
- 소비자원/소송 언급 시 → 방어적 표현 금지Step 5: 반복
다른 테스트 케이스로 다시 테스트 → 관찰 → 수정을 반복합니다.
WARNING과도한 지침 추가 금지
실패가 관찰되지 않은 부분은 추가하지 마세요.
”혹시 몰라서” 추가하면 토큰 낭비 + 오히려 성능 저하가 발생합니다.
Claude와 함께 스킬 개선하기
Anthropic 베스트 프랙티스의 또 다른 핵심
“Claude에서 해당 Skill을 선택한 뒤, 현재 SKILL.md 내용을 점검하고 개선안을 제안해 달라고 요청하세요.”
Claude에게 스킬을 보여주고 피드백을 받으세요.
방법 1: 스킬 선택 후 피드백 요청
- 대화에서 해당 스킬을 활성화
- Claude에게 질문
이 스킬의 SKILL.md를 보고 개선점을 제안해줘.특히:- 불필요하게 장황한 부분- 누락된 엣지케이스- 더 명확하게 표현할 수 있는 부분방법 2: 테스트 결과와 함께 개선 요청
이 스킬로 아래 입력을 처리했는데, 출력이 기대와 다릅니다.
[입력]주문번호 ORD-2024-98765...
[실제 출력]...
[기대한 출력]...
SKILL.md를 어떻게 수정하면 될까요?방법 3: 워크플로우 패턴 적용
복잡한 작업은 워크플로우 패턴으로 구성할 수 있습니다.
## Workflow
1. 입력 분석 후 중간 결과를 사용자에게 보여준다2. 사용자 피드백을 받아 수정한다3. 최종 결과물을 생성한다TIPClaude는 좋은 스킬 리뷰어입니다 Claude는 이미 수많은 스킬을 학습했습니다.
스킬 개선에 Claude를 활용하세요.
나만의 스킬 만들기 체크리스트
스킬을 만들 때 이 체크리스트를 확인하세요.
| 단계 | 체크 항목 |
|---|---|
| 설계 철학 | ☐ “Concise is key” — Claude가 이미 아는 내용은 뺐는가? |
| ☐ 자유도(High/Medium/Low)를 결정했는가? | |
| 사전 질문 | ☐ 자동화할 반복 작업이 명확한가? |
| ☐ 입력 → 출력을 한 문장으로 설명할 수 있는가? | |
| name | ☐ Gerund로 시작하는가? (예: responding-to-cs) |
| ☐ 소문자 영문, 숫자, 하이픈만 사용했는가? | |
☐ 예약어(anthropic, claude)를 사용하지 않았는가? | |
| ☐ XML 태그를 포함하지 않았는가? | |
| description | ☐ ~100 tokens로 간결한가? (Progressive Disclosure) |
| ☐ 무엇을 하는지 + 언제 사용하는지 명시했는가? | |
| ☐ 3인칭으로 작성했는가? | |
| ☐ XML 태그를 포함하지 않았는가? | |
| Instructions | ☐ 선택한 자유도에 맞는 상세도인가? |
| ☐ Claude가 이미 아는 내용은 뺐는가? | |
| 개선 프로세스 | ☐ 최소 버전으로 시작했는가? |
| ☐ 테스트 → 관찰 → 수정 사이클을 돌렸는가? | |
| ☐ Claude에게 피드백을 받았는가? |
정리
| 개념 | 핵심 포인트 |
|---|---|
| Concise is key | Claude가 이미 아는 것은 쓰지 않는다 |
| Degrees of Freedom | High/Medium/Low 자유도 선택 |
| Progressive Disclosure | description ~100 tokens, body <5K tokens |
| Gerund 네이밍 | responding-to-cs 형태로 시작 |
| Evaluation-Driven | 테스트 → 관찰 → 수정 사이클 |
| Claude 협업 | Claude에게 스킬 피드백 받기 |
핵심: 완성된 스킬을 복사하는 것보다, 설계 철학과 반복 개선 방법론을 익히는 것이 중요합니다.
”어떻게 쓰느냐”보다 어떤 마인드셋으로 접근하느냐가 좋은 스킬을 만듭니다.
다음 글 예고
다음 글에서는 고급 스킬 구성을 다룹니다.
- 멀티 파일 구조가 필요한 시점 판단
- 공식 디렉토리 구조 (
scripts/,reference/, 루트 레벨 파일) - 선택적 필드 활용 (
license,compatibility,metadata) - 스킬 디버깅 및 트러블슈팅
Footnotes
공유
이 글이 도움이 되었다면 다른 사람과 공유해주세요!