Claude Code Plugins

Community-maintained marketplace

Feedback

Claude Code 스킬 생성 및 관리. 스킬 구조, 트리거, 훅, skill-rules.json 작업을 다룹니다.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name skill-developer
description Claude Code 스킬 생성 및 관리. 스킬 구조, 트리거, 훅, skill-rules.json 작업을 다룹니다.

스킬 개발자 가이드

목적

Anthropic의 공식 베스트 프랙티스를 준수하면서, 자동 활성화 시스템을 갖춘 Claude Code 스킬을 만들고 관리하기 위한 종합 가이드입니다. 500줄 규칙과 점진적 공개(Progressive Disclosure) 패턴을 포함합니다.

이 스킬을 사용할 때

다음과 같은 내용을 언급하면 자동 활성화됩니다:

  • 스킬 생성 또는 추가
  • 스킬 트리거나 규칙 수정
  • 스킬 활성화 동작 이해
  • 스킬 활성화 문제 디버깅
  • skill-rules.json 작업
  • 훅 시스템 메커니즘
  • Claude Code 베스트 프랙티스
  • 점진적 공개
  • YAML 프론트매터
  • 500줄 규칙

시스템 개요

이중 훅 아키텍처

1. UserPromptSubmit 훅 (선제 제안)

  • 파일: .claude/hooks/skill-activation-prompt.ts
  • 트리거 시점: Claude가 사용자 프롬프트를 보기
  • 목적: 키워드 + 의도 패턴을 기반으로 관련 스킬 제안
  • 방법: 포맷된 알림을 컨텍스트로 주입 (stdout → Claude 입력)
  • 사용 사례: 주제 기반 스킬, 암묵적인 업무 감지

2. Stop 훅 - 에러 처리 리마인더 (부드러운 알림)

  • 파일: .claude/hooks/error-handling-reminder.ts
  • 트리거 시점: Claude가 응답을 마친 후
  • 목적: 작성한 코드의 에러 처리를 스스로 점검하도록 부드럽게 상기
  • 방법: 수정된 파일의 위험 패턴을 분석하고 필요 시 알림 표시
  • 사용 사례: 워크플로우를 막지 않고 에러 처리 주의 환기

방침 변경 (2025-10-27): Sentry/에러 처리를 위해 PreToolUse에서 블로킹하는 방식은 중단했습니다. 대신 워크플로우를 방해하지 않으면서도 품질 인식을 유지할 수 있도록, 응답 이후에 부드러운 리마인더를 사용합니다.

설정 파일

위치: .claude/skills/skill-rules.json

다음을 정의합니다:

  • 모든 스킬과 트리거 조건
  • 강제 수준 (block, suggest, warn)
  • 파일 경로 패턴 (glob)
  • 콘텐츠 감지 패턴 (regex)
  • 건너뛰기 조건 (세션 추적, 파일 마커, 환경 변수)

스킬 유형

1. 가드레일 스킬

목적: 치명적인 실수를 막기 위한 필수 베스트 프랙티스 강제

특징:

  • Type: "guardrail"
  • Enforcement: "block"
  • Priority: "critical" 또는 "high"
  • 스킬 사용 전까지 파일 편집 차단
  • 흔한 실수 방지 (컬럼명, 치명적 오류 등)
  • 세션 인지 (같은 세션에서 반복 알림 없음)

예시:

  • database-verification – Prisma 쿼리 전 테이블/컬럼명 확인
  • frontend-dev-guidelines – React/TypeScript 패턴 강제

사용 시점:

  • 런타임 오류를 유발하는 실수
  • 데이터 무결성 우려
  • 치명적인 호환성 이슈

2. 도메인 스킬

목적: 특정 영역에 대한 종합적인 지침 제공

특징:

  • Type: "domain"
  • Enforcement: "suggest"
  • Priority: "high" 또는 "medium"
  • 권장 사항 위주, 강제 아님
  • 주제/도메인에 특화
  • 상세 문서 제공

예시:

  • backend-dev-guidelines – Node.js/Express/TypeScript 패턴
  • frontend-dev-guidelines – React/TypeScript 베스트 프랙티스
  • error-tracking – Sentry 통합 가이드

사용 시점:

  • 깊은 지식이 필요한 복잡한 시스템
  • 베스트 프랙티스 문서화
  • 아키텍처 패턴
  • How-to 가이드

빠른 시작: 새로운 스킬 만들기

1단계: 스킬 파일 생성

위치: .claude/skills/{skill-name}/SKILL.md

템플릿:

---
name: my-new-skill
description: Brief description including keywords that trigger this skill. Mention topics, file types, and use cases. Be explicit about trigger terms.
---

# My New Skill

## Purpose
What this skill helps with

## When to Use
Specific scenarios and conditions

## Key Information
The actual guidance, documentation, patterns, examples

베스트 프랙티스:

  • Name: 소문자 + 하이픈, 가능하면 동명사 형태(verb + -ing)
  • Description: 모든 트리거 키워드/문구 포함 (최대 1024자)
  • Content: 500줄 이하 (세부 내용은 리소스 파일에 분리)
  • Examples: 실제 코드 예시 제공
  • Structure: 명확한 헤딩, 목록, 코드 블록

2단계: skill-rules.json에 추가

SKILL_RULES_REFERENCE.md에 전체 스키마가 있습니다.

기본 템플릿:

{
  "my-new-skill": {
    "type": "domain",
    "enforcement": "suggest",
    "priority": "medium",
    "promptTriggers": {
      "keywords": ["keyword1", "keyword2"],
      "intentPatterns": ["(create|add).*?something"]
    }
  }
}

3단계: 트리거 테스트

UserPromptSubmit 테스트:

echo '{"session_id":"test","prompt":"your test prompt"}' | \
  npx tsx .claude/hooks/skill-activation-prompt.ts

PreToolUse 테스트:

cat <<'EOF' | npx tsx .claude/hooks/skill-verification-guard.ts
{"session_id":"test","tool_name":"Edit","tool_input":{"file_path":"test.ts"}}
EOF

4단계: 패턴 다듬기

테스트 결과를 바탕으로:

  • 누락된 키워드 추가
  • 거짓 양성을 줄이도록 의도 패턴 정교화
  • 파일 경로 패턴 조정
  • 실제 파일 콘텐츠로 정규식 검증

5단계: Anthropic 베스트 프랙티스 준수

✅ SKILL.md를 500줄 이하로 유지
✅ 리소스 파일을 활용한 점진적 공개 적용
✅ 100줄 넘는 리소스에는 목차 추가
✅ 트리거 키워드를 포함한 상세 설명 작성
✅ 문서화 전 실제 시나리오 3건 이상 테스트
✅ 실제 사용에 맞춰 지속적으로 개선


강제 수준

BLOCK (치명적 가드레일)

  • Edit/Write 도구 실행 자체를 막음
  • 훅이 종료 코드 2 반환 → stderr 메시지를 Claude가 확인
  • Claude는 메시지를 확인하고 스킬을 사용한 뒤 다시 시도
  • 용도: 치명적 실수, 데이터 무결성, 보안 이슈

예시: 데이터베이스 컬럼명 검증

SUGGEST (권장)

  • Claude가 프롬프트를 보기 전에 알림 주입
  • 관련 스킬 인지 유도
  • 강제 아님, 권고용
  • 용도: 도메인 가이드, 베스트 프랙티스, 사용법 안내

예시: 프론트엔드 개발 지침

WARN (선택)

  • 낮은 우선순위의 제안
  • 권고용, 강제 거의 없음
  • 용도: 있으면 좋은 정보, 참고용 알림

드물게 사용 – 대부분 BLOCK 또는 SUGGEST로 충분합니다.


건너뛰기 조건 및 사용자 제어

1. 세션 추적

목적: 같은 세션에서 반복 알림 방지

동작 방식:

  • 첫 번째 편집 → 훅이 블록하고 세션 상태 기록
  • 같은 세션 두 번째 편집 → 훅이 허용
  • 다른 세션 → 다시 블록

상태 파일: .claude/hooks/state/skills-used-{session_id}.json

2. 파일 마커

목적: 검증 완료 파일을 영구적으로 건너뛰기

마커: // @skip-validation

사용 예:

// @skip-validation
import { PrismaService } from './prisma';
// This file has been manually verified

주의: 남용 시 가드레일 목적이 무력화됩니다.

3. 환경 변수

목적: 긴급 비활성화, 임시 우회

전역 비활성화:

export SKIP_SKILL_GUARDRAILS=true  # Disables ALL PreToolUse blocks

스킬별 비활성화:

export SKIP_DB_VERIFICATION=true
export SKIP_ERROR_REMINDER=true

테스트 체크리스트

새 스킬을 만들 때 다음을 확인하세요:

  • .claude/skills/{name}/SKILL.md 파일 생성
  • 이름과 설명이 포함된 올바른 프론트매터
  • skill-rules.json에 항목 추가
  • 실제 프롬프트로 키워드 테스트
  • 다양한 문장으로 의도 패턴 테스트
  • 실제 파일 경로로 glob 패턴 검증
  • 파일 콘텐츠로 정규식 검증
  • (가드레일인 경우) 블록 메시지가 명확하고 실행 가능한가?
  • 건너뛰기 조건이 적절히 설정되었는가?
  • 우선순위가 중요도와 일치하는가?
  • 테스트에서 거짓 양성 없음
  • 테스트에서 거짓 음성 없음
  • 성능 허용 범위 내 (<100ms 또는 <200ms)
  • JSON 문법 검증: jq . skill-rules.json
  • SKILL.md가 500줄 이하인지
  • 필요 시 리소스 파일 생성
  • 100줄 초과 리소스에 목차 추가

참고 파일

주제별 세부 정보는 다음을 참조하세요:

TRIGGER_TYPES.md

모든 트리거 유형 완전 가이드:

  • 키워드 트리거 (명시적 주제 매칭)
  • 의도 패턴 (암시적 행동 감지)
  • 파일 경로 트리거 (glob 패턴)
  • 콘텐츠 패턴 (파일 내 regex)
  • 각 유형별 베스트 프랙티스와 예시
  • 흔한 실수와 테스트 전략

SKILL_RULES_REFERENCE.md

skill-rules.json 완전 스키마:

  • 전체 TypeScript 인터페이스 정의
  • 필드별 설명
  • 가드레일 스킬 전체 예제
  • 도메인 스킬 전체 예제
  • 검증 가이드 및 흔한 오류

HOOK_MECHANISMS.md

훅 내부 동작 심층 분석:

  • UserPromptSubmit 플로우 (상세)
  • PreToolUse 플로우 (상세)
  • 종료 코드 동작 표 (중요)
  • 세션 상태 관리
  • 성능 고려사항

TROUBLESHOOTING.md

종합 디버깅 가이드:

  • 스킬이 트리거되지 않을 때 (UserPromptSubmit)
  • PreToolUse가 블로킹하지 않을 때
  • 거짓 양성 (과도한 트리거)
  • 훅이 전혀 실행되지 않을 때
  • 성능 문제

PATTERNS_LIBRARY.md

즉시 사용 가능한 패턴 모음:

  • 의도 패턴 라이브러리 (정규식)
  • 파일 경로 패턴 라이브러리 (glob)
  • 콘텐츠 패턴 라이브러리 (정규식)
  • 용도별 정리
  • 복사하여 바로 사용 가능

ADVANCED.md

향후 개선 아이디어:

  • 동적 규칙 업데이트
  • 스킬 의존성
  • 조건부 강제
  • 스킬 분석
  • 스킬 버전 관리

빠른 참고 요약

새 스킬 만들기 (5단계)

  1. .claude/skills/{name}/SKILL.md 생성 및 프론트매터 작성
  2. .claude/skills/skill-rules.json에 항목 추가
  3. npx tsx 명령으로 훅 테스트
  4. 테스트 결과에 따라 패턴 다듬기
  5. SKILL.md를 500줄 이하로 유지

트리거 유형

  • Keywords: 명시적 주제 언급
  • Intent: 암시적 행동 감지
  • File Paths: 위치 기반 활성화
  • Content: 기술 특정 감지

자세한 내용은 TRIGGER_TYPES.md를 참고하세요.

강제 수준

  • BLOCK: 종료 코드 2, 치명적 상황에만 사용
  • SUGGEST: 컨텍스트 주입, 가장 일반적
  • WARN: 안내용, 드물게 사용

건너뛰기 조건

  • Session tracking: 자동 (반복 알림 방지)
  • File markers: // @skip-validation (영구 건너뛰기)
  • Env vars: SKIP_SKILL_GUARDRAILS (긴급 비활성화)

Anthropic 베스트 프랙티스

500줄 규칙: SKILL.md는 500줄 이하 유지
점진적 공개: 세부 내용은 리소스 파일로 분리
목차 추가: 100줄 초과 리소스 파일에 TOC 제공
한 단계만 참조: 리소스 중첩 참조 지양
풍부한 설명: 모든 트리거 키워드 포함 (1024자 이내)
선테스트 후문서화: 문서 작성 전 최소 3회 이상 평가
동명사 네이밍: 가능하면 -ing 형태 사용 (예: processing-pdfs)

문제 해결

훅을 수동으로 테스트하세요:

# UserPromptSubmit
echo '{"prompt":"test"}' | npx tsx .claude/hooks/skill-activation-prompt.ts

# PreToolUse
cat <<'EOF' | npx tsx .claude/hooks/skill-verification-guard.ts
{"tool_name":"Edit","tool_input":{"file_path":"test.ts"}}
EOF

TROUBLESHOOTING.md에서 전체 디버깅 가이드를 확인할 수 있습니다.


관련 파일

설정:

  • .claude/skills/skill-rules.json – 마스터 설정
  • .claude/hooks/state/ – 세션 추적
  • .claude/settings.json – 훅 등록

훅:

  • .claude/hooks/skill-activation-prompt.ts – UserPromptSubmit
  • .claude/hooks/error-handling-reminder.ts – Stop 이벤트(부드러운 알림)

전체 스킬:

  • .claude/skills/*/SKILL.md – 스킬 콘텐츠 파일

스킬 상태: 완료 – Anthropic 베스트 프랙티스를 따르도록 재구성 ✅
줄 수: 500줄 미만 (500줄 규칙 준수) ✅
점진적 공개: 세부 정보는 리소스 파일로 분리 ✅

Next: 새로운 스킬을 추가하고, 사용 경험을 바탕으로 패턴을 개선하세요.