1.2 Skills 만들기

각 플랫폼에서 SKILL.md 파일을 작성하고 호출하는 방법, Skills 2.0 심화 기능까지 단계별로 설명한다. 업데이트: 2026-03-08


핵심 요약

구분내용
📖 정의SKILL.md 파일을 지정 경로에 생성하면 해당 스킬이 즉시 활성화된다
💡 핵심플랫폼마다 저장 경로·호출 방식이 다르며, 고급 옵션은 Claude Code 전용이다
🎯 대상반복 작업을 스킬로 자동화하려는 개발자
⚠️ 주의배포·삭제 등 부작용이 있는 작업은 disable-model-invocation: true로 자동 실행을 막는 것이 권장된다

문서 탐색


목차

  1. Claude Code Skills 만들기
  2. Gemini CLI Skills 만들기
  3. OpenAI Codex Skills 만들기
  4. 플랫폼별 Skills 만들기 비교 요약
  5. Skills 작성 팁

1. Claude Code Skills 만들기

저장 위치

위치경로사용 범위
글로벌~/.claude/skills/스킬이름/모든 프로젝트
프로젝트.claude/skills/스킬이름/해당 프로젝트만

팀원과 공유하려면 .claude/skills/를 git에 커밋하면 된다. git pull 즉시 사용 가능하다.

SKILL.md 기본 구조

---
name: skill-name                    # 슬래시 커맨드명 (/skill-name)
description: "설명"                  # Claude가 언제 이 스킬 쓸지 판단하는 기준
disable-model-invocation: true       # Claude 자동호출 금지 (나만 수동 호출)
user-invocable: false               # 사용자 수동호출 금지 (Claude만 자동 호출)
context: fork                       # [2.0] 격리된 컨텍스트에서 실행
hooks:                              # [2.0] 스킬 전용 훅
  PreToolUse:
    - command: "echo '시작'"
  Stop:
    - command: "echo '종료'"
allowed-tools:
  - Read
  - Write
  - Bash
---
 
## 지시사항
 
Claude에게 내릴 상세한 지시

옵션 선택 기준

상황설정
배포, 커밋처럼 직접 실행해야 할 작업disable-model-invocation: true
Claude의 배경 지식으로만 쓰고 싶은 정보user-invocable: false
메인 세션과 격리하여 안전하게 실행context: fork (Skills 2.0)
스킬 실행 중에만 훅 적용hooks: 섹션 추가 (Skills 2.0)
둘 다 호출 가능 (기본값)옵션 생략

호출 방법

/skill-name         ← 슬래시 커맨드로 직접 호출

/를 입력하면 사용 가능한 스킬 목록이 자동으로 나타난다. 또는 대화 맥락에서 Claude가 필요하다고 판단하면 자동 실행된다.

공개 스킬 설치

# Anthropic 공식 스킬 저장소에서 설치
git clone https://github.com/anthropics/skills
cp -r skills/skills/skill-creator ~/.claude/skills/

내장 스킬

/simplify   ← 최근 수정한 코드의 품질·재사용성·효율성 자동 검토 및 수정

Skills 2.0 — Claude Code 전용 심화 기능

📌 Skills 2.0은 Claude Code 전용이다. Gemini CLI · OpenAI Codex에는 아직 해당 기능들이 없다.

Skills 2.0 = 격리 실행 + 실시간 반영 + 측정 가능한 최적화

릴리스주요 내용
Claude Code 2.1.0Context Fork, Hot Reload, Agent-Scoped Hooks
Skills 2.0 (Skill Creator)Evals 기반 평가, A/B 테스트, 스킬 유형 분류

Context Fork — 격리 실행

스킬이 현재 세션과 독립된 격리 환경에서 실행된다. Git의 브랜치처럼, 스킬이 메인 세션 상태를 오염시키지 않는다.

flowchart TD
    subgraph s1["Skills 1.0 — 메인 세션 공유"]
        A1["메인 세션"] --> B1["스킬 실행 (공유)"] --> C1["메인 세션에 영향 가능"]
    end
    subgraph s2["Skills 2.0 — context: fork 격리"]
        A2["메인 세션"] --> B2["(스냅샷)"] --> C2["포크된 서브에이전트"] --> D2["격리 실행"] --> E2["메인 세션 영향 없음"]
    end
---
name: risky-refactor
context: fork   # ← 이 한 줄로 격리 실행
---

사용 적합한 경우: DB 마이그레이션 테스트 / 대규모 리팩토링 실험 / 실패해도 현재 작업 보존이 필요한 경우

Hot Reload — 즉시 반영

스킬 파일을 수정하면 Claude Code 재시작 없이 즉시 반영된다.

flowchart TD
    subgraph v1["Skills 1.0"]
        A1["SKILL.md 수정"] --> B1["저장"] --> C1["/exit"] --> D1["claude 재실행"] --> E1["스킬 테스트"]
    end
    subgraph v2["Skills 2.0 (Hot Reload)"]
        A2["SKILL.md 수정"] --> B2["저장"] --> C2["/my-skill (바로 새 버전!)"]
    end

Agent-Scoped Hooks — 스킬 전용 훅

SKILL.md 프런트매터에 스킬 생애주기 전용 훅을 직접 정의한다. 스킬이 실행되는 동안에만 활성화되고, 종료 시 자동 해제된다.

---
name: deploy-prod
hooks:
  PreToolUse:
    - command: "echo '[$(date)] 배포 시작' >> audit.log"
  PostToolUse:
    - command: "echo '[$(date)] 툴 사용' >> audit.log"
  Stop:
    - command: "echo '[$(date)] 배포 완료' >> audit.log && notify-slack"
---

Evals + A/B 테스트 — 측정 가능한 품질

skill-creator 스킬을 통해 구조화된 평가(Evals)와 A/B 테스트가 가능하다.

flowchart TD
    A["/skill-creator 실행"] --> B["스킬 목적과 예상 동작 설명"]
    B --> C["Claude가 SKILL.md 초안 생성"]
    C --> D["Evals 케이스 자동 생성"]
    D --> E["A/B 테스트로 두 버전 비교"]
    E --> F["성공률 높은 버전 채택"]

스킬 유형 분류 (Skills 2.0 공식 카테고리)

유형설명예시
Capability Uplift모델의 기본 기능을 확장외부 API 호출, 전문 지식 주입, 특수 도구 통합
Workflow/Preference반복 작업 자동화 + 개인/팀 설정커밋, 배포, 코드 리뷰, 컨벤션 적용
~/.claude/skills/
├── capability-uplift/
│   ├── web-search/
│   └── domain-expert/
└── workflow/
    ├── smart-commit/
    └── deploy-prod/

Skills 1.0 vs 2.0 비교

항목Skills 1.0Skills 2.0
실행 환경메인 세션 공유격리된 독립 컨텍스트 (context: fork)
스킬 수정 반영세션 재시작 필요즉시 반영 (Hot Reload)
훅(Hooks)전역/프로젝트 범위만스킬별 독립 훅 지원
성능 측정없음Evals + A/B 테스트
스킬 분류없음Capability Uplift / Workflow
에이전트기본커스텀 에이전트 타입 지정 가능
스킬 탐색파일 시스템 직접 확인/ 메뉴 자동 통합

2. Gemini CLI Skills 만들기

저장 위치

위치경로사용 범위
글로벌~/.gemini/skills/스킬이름/모든 프로젝트
프로젝트.gemini/skills/스킬이름/해당 프로젝트만

SKILL.md 구조

Claude Code와 거의 동일하다. namedescription만 필수다.

---
name: skill-name
description: "이 스킬이 어떤 역할을 하는지 설명"
---
 
## 지시사항
 
Gemini에게 내릴 상세한 지시
my-skill/
├── SKILL.md
├── scripts/      ← 실행 스크립트
├── resources/    ← 참고 문서, 데이터
└── assets/       ← 기타 리소스

호출 방법

Gemini CLI는 수동 슬래시 커맨드가 없다. 자동 호출만 지원한다. Gemini가 대화를 분석해서 스킬이 필요하다고 판단하면 내부적으로 activate_skill 도구를 통해 자동 실행한다.

"코드 리뷰해줘" → Gemini가 code-review 스킬 자동 활성화

수동 호출이 없으므로 description을 더 구체적으로 작성해야 정확하게 자동 호출된다.

스킬 설치

gemini skill install ./my-skill/
gemini skill install https://github.com/user/my-skill
gemini skill install https://github.com/anthropics/skills   # Anthropic 공식 스킬과 호환!

Claude Code 전용 옵션은 무시됨

Claude Code 옵션Gemini CLI 동작
disable-model-invocation무시됨
user-invocable무시됨
context: fork무시됨
hooks무시됨 (별도 Hooks 시스템 사용)

3. OpenAI Codex Skills 만들기

저장 위치

위치경로사용 범위
글로벌~/.codex/skills/스킬이름/모든 프로젝트
프로젝트.codex/skills/스킬이름/해당 프로젝트만

SKILL.md 구조

---
name: skill-name
description: "이 스킬이 어떤 역할을 하는지 설명"
---
 
## 지시사항
 
Codex에게 내릴 상세한 지시

UI 메타데이터가 필요하면 agents/openai.yaml을 추가로 만들 수 있다:

my-skill/
├── SKILL.md
└── agents/
    └── openai.yaml    ← 아이콘, 카테고리 등 UI 메타데이터

호출 방법

$skill-name         ← 달러 사인으로 직접 호출

또는 자동 호출:

"배포해줘" → Codex가 deploy 스킬 자동 선택

$를 입력하면 스킬 목록이 나타난다.

내장 스킬

$skill-creator    ← 스킬 설명 입력 → SKILL.md 자동 생성
$skill-installer  ← 원격 스킬 설치 도우미

4. 플랫폼별 Skills 만들기 비교 요약

항목Claude CodeGemini CLIOpenAI Codex
저장 경로 (프로젝트).claude/skills/.gemini/skills/.codex/skills/
저장 경로 (글로벌)~/.claude/skills/~/.gemini/skills/~/.codex/skills/
수동 호출/skill-name없음$skill-name
자동 호출description 기반description 기반description 기반
고급 옵션disable-model-invocation · user-invocable · context: fork · hooks없음 (기본만)없음 (기본만)
원격 설치직접 복사gemini skill install URL$skill-installer
스킬 생성 도우미/skill-creator (Skills 2.0)없음$skill-creator
타 플랫폼 호환Claude Code 스킬 호환 O제한적

5. 💡 Skills 작성 팁

Tip 1. description을 잘 작성하면 AI가 자동으로 활용한다 (전 플랫폼)

description 필드는 AI가 “이 스킬을 언제 쓸지” 판단하는 유일한 기준이다.

# 나쁜 예시 — AI가 언제 써야 할지 모름
description: "코드 도구"
 
# 좋은 예시 — 구체적인 상황, 트리거, 기대 행동 명시
description: "TypeScript 파일에서 타입 오류, 미사용 변수, 안전하지 않은 any 사용을 검사하고 수정한다"

Gemini CLI는 수동 호출이 없으므로 description이 특히 중요하다.

Tip 2. 부작용 있는 작업은 disable-model-invocation 설정 (Claude Code 전용)

배포, 파일 삭제처럼 돌이키기 어려운 작업은 Claude가 자동으로 실행하지 않도록 설정이 필요하다.

---
name: deploy-prod
description: "프로덕션 환경에 배포"
disable-model-invocation: true   # ← 반드시 추가!
---

Gemini CLI · Codex는 이 옵션이 없으므로, description에 “사용자 명시적 호출 시에만 실행”이라고 명시한다.

Tip 3. 하나의 스킬, 하나의 역할 (전 플랫폼)

# 나쁜 패턴: 모든 기능을 하나에 몰아넣기
super-skill/SKILL.md  ← 코드 리뷰 + 배포 + 문서 생성 + 테스트 다 들어있음

# 좋은 패턴: 역할별로 분리
skills/
├── code-review/SKILL.md
├── deploy/SKILL.md
├── generate-docs/SKILL.md
└── run-tests/SKILL.md

Tip 4. 스킬 이름은 동사로 시작하게 (전 플랫폼)

나쁜 이름좋은 이름
reviewreview-code
deploydeploy-prod
docsgenerate-docs

팁별 플랫폼 적용 가능 여부

Claude CodeGemini CLIOpenAI Codex
1. description 상세하게OO (특히 중요)O
2. disable-model-invocationOXX
3. 하나의 역할OOO
4. 동사 이름OOO
5. 공개 스킬 참고OO (Anthropic 스킬 호환)O

문서 탐색


참고 자료