Claude Code Custom Skills 만들기
Claude Code에서 나만의 Slash Command 만들기
Claude Code를 쓰다 보면 같은 지시를 반복해서 내릴 때가 있어요. "이 레포 분석해서 요약해줘", "테스트 돌리고 결과 정리해줘" 같은 작업이요. Custom Skill을 만들면 이런 작업을 /my-skill 한 줄로 실행할 수 있어요.
Skill이란?
Skill은 Claude Code의 커스텀 slash command예요. SKILL.md 파일 하나만 만들면 /skill-name으로 실행할 수 있어요. 매번 긴 프롬프트를 쓰지 않고, 자주 쓰는 작업을 템플릿으로 만들어 둘 수 있어요.
어디에 만드나?
TEXT
# 모든 프로젝트에서 사용 (개인용)
~/.claude/skills/<skill-name>/SKILL.md
# 특정 프로젝트에서만 사용
.claude/skills/<skill-name>/SKILL.md
개인용은 이 컴퓨터의 모든 레포에서 쓸 수 있고, 프로젝트용은 해당 레포에서만 동작해요. 프로젝트용은 커밋하면 팀원도 같이 쓸 수 있어요. 같은 이름이면 개인용이 프로젝트용보다 우선해요.
SKILL.md 구조
YAML
---
name: my-skill
description: 이 스킬이 언제 사용되는지 설명
argument-hint: [인자 설명]
disable-model-invocation: true
allowed-tools: Read, Grep, Glob
---
# 스킬 지시사항
$ARGUMENTS를 기반으로 작업을 수행해요.
주요 옵션
| 옵션 | 설명 |
|---|---|
name | /name으로 실행할 이름. 생략하면 폴더 이름 |
description | 스킬 설명. Claude가 자동 실행 판단에 사용 |
argument-hint | 인자 힌트 (자동완성에 표시) |
disable-model-invocation | true면 수동으로만 실행 |
allowed-tools | 스킬을 실행한 턴 동안 권한 확인 없이 쓸 도구. 목록에 없는 도구도 그대로 쓸 수 있음 |
인자 전달
YAML
---
name: analyze
---
$ARGUMENTS 파일을 분석해주세요.
# /analyze src/main.ts → "src/main.ts 파일을 분석해주세요."
# (convert 스킬이라면)
$0 을 $1 형식으로 변환해주세요.
# /convert data.json csv → "data.json 을 csv 형식으로 변환해주세요."
$ARGUMENTS: 전체 인자$0,$1,$2: 위치별 인자 ($ARGUMENTS[0]의 줄임말, 0부터 셈)- 내용에
$ARGUMENTS가 없으면 입력한 인자가ARGUMENTS: ...형태로 스킬 내용 끝에 붙어요.
실전 예시
Flutter 오픈소스 프로젝트 정보를 수집해서 블로그 게시글 초안을 만드는 스킬을 만들어 봤어요.
YAML
---
name: add-flutter-to-blogman
description: Flutter 레포 정보를 수집하여 프로젝트 소개 게시글 초안 생성
disable-model-invocation: true
allowed-tools: Read, Grep, Glob, Write
---
# Flutter 프로젝트를 블로그 게시글로 변환
README.md, pubspec.yaml, CHANGELOG.md를 읽고
프로젝트 소개 초안을 blogman-draft.md로 저장하세요.
## 수집할 정보
- README.md: 설명, 기능, 스크린샷
- pubspec.yaml: 패키지명, 의존성, 버전
- CHANGELOG.md: 최신 변경사항
## 출력
blogman-draft.md 파일로 저장
개인용 위치(~/.claude/skills/)에 두면 아무 Flutter 레포에서 /add-flutter-to-blogman을 실행해 게시글 초안을 만들 수 있어요.
활용 팁
- 자주 쓰는 도구 미리 허용:
allowed-tools: Read, Grep, Glob처럼 적으면 그 턴 동안 이 도구들을 권한 확인 없이 써요. 도구를 막지는 않아서, 수정을 막으려면 권한 설정을 써야 해요 - 자동 실행 방지: 배포나 삭제 같은 위험한 작업은
disable-model-invocation: true로 수동 실행만 허용해요 - 참고 문서 분리: SKILL.md가 길어지면 같은 폴더에 별도 .md 파일을 두고 SKILL.md에서 링크로 참조할 수 있어요