Claude Code rules와 skills 기준: 지시를 언제 로드할지 나누기
요약
Claude Code에서 모든 지시를 CLAUDE.md에 넣으면 매 세션마다 필요하지 않은 내용까지 함께 로드된다. 반대로 지시를 너무 잘게 나누면 어디에 무엇이 있는지 추적하기 어려워진다.
이 글은 CLAUDE.md, .claude/rules/, skills를 “무엇을 언제 로드할 것인가”라는 기준으로 나눈다. 항상 필요한 기준은 CLAUDE.md, 경로별 기준은 rules, 반복 절차와 긴 참고자료는 skills가 더 적합하다.
문서 정보
- 작성일: 2026-04-24
- 검증 기준일: 2026-04-24
- 문서 성격: analysis
- 테스트 환경: 실행 테스트 없음. Anthropic Claude Code 공식 문서를 바탕으로 한 instruction loading 구조 정리.
- 테스트 버전: Claude Code 공식 문서 2026-04-24 확인본. 로컬 Claude Code CLI 버전은 확인하지 않음.
문제 정의
프로젝트가 커지면 지시도 커진다. API 규칙, 프론트엔드 스타일, 테스트 작성 기준, 배포 절차, 장애 분석 절차가 모두 필요하다. 하지만 이 모든 내용이 매 작업마다 필요한 것은 아니다.
이 글은 Claude Code에서 지시를 언제 로드해야 하는지에 따라 계층을 나누는 기준을 다룬다.
확인된 사실
공식 문서 기준: .claude/rules/는 여러 markdown 파일로 지시를 나눌 수 있는 디렉터리다. rules는 매 세션에 로드되거나, matching files가 열릴 때 로드될 수 있다. 근거: Anthropic, How Claude remembers your project
공식 문서 기준: paths frontmatter가 있는 rule은 Claude가 해당 패턴에 맞는 파일을 다룰 때 적용된다. paths가 없는 rule은 unconditional rule로 launch 시 로드된다. 근거: Anthropic, How Claude remembers your project
공식 문서 기준: skills는 SKILL.md를 가진 재사용 지식과 workflow이며, relevant할 때 Claude가 사용하거나 사용자가 /skill-name으로 직접 호출할 수 있다. skill 본문은 사용될 때 로드된다. 근거: Anthropic, Extend Claude with skills
공식 문서 기준: Claude Code extension overview는 CLAUDE.md는 session start에 full content가 로드되고, skills는 descriptions가 시작 시 로드되고 full content는 사용 시 로드된다고 설명한다. 근거: Anthropic, Extend Claude Code
공식 문서 기준: custom commands는 skills로 병합되었고, .claude/commands/deploy.md와 .claude/skills/deploy/SKILL.md는 모두 /deploy를 만들 수 있다. 근거: Anthropic, Extend Claude with skills
직접 재현한 결과
직접 재현 없음: 이 글은 실제 .claude/rules/와 skill을 만든 뒤 Claude Code의 로딩 이벤트를 관찰한 결과가 아니다.
검증한 것은 2026-04-24 기준 공식 문서의 설명이다. 아래 판단표는 문서의 로딩 방식과 실무 운영 기준을 연결한 해석이다.
해석 / 의견
분리 판단표
| 질문 | 예 | 권장 위치 |
|---|---|---|
| 매 세션마다 알아야 하는가 | 기본 test command, 저장소 목적 | CLAUDE.md |
| 특정 경로나 파일 유형에서만 필요한가 | src/api/**/*.ts input validation 규칙 |
.claude/rules/ with paths |
| 반복되는 multi-step 절차인가 | release checklist, incident analysis | skill |
| 사람이 직접 호출해야 안전한가 | 배포, destructive migration 점검 | user-invoked skill |
| 강제 차단이 필요한가 | .env 읽기 금지, 위험 명령 차단 |
settings / hooks |
의견: “지시를 어디에 둘까”라는 질문은 결국 “언제 로드되어야 하는가”라는 질문이다. 매번 필요하지 않은 긴 지시는 on-demand 쪽으로 내려야 한다.
rules 예시
API 파일에만 적용되는 규칙은 path-scoped rule로 둘 수 있다.
---
paths:
- "src/api/**/*.ts"
- "tests/api/**/*.test.ts"
---
# API Rules
- Validate external input at the boundary.
- Keep error responses in the shared error shape.
- Add or update API tests when behavior changes.
의견: 이 규칙은 API 파일을 다룰 때는 유용하지만, 문서 수정이나 CSS 변경에는 필요하지 않다. 그래서 CLAUDE.md보다 path-scoped rule이 더 자연스럽다.
skill 예시
반복되는 릴리스 점검은 skill로 분리하는 편이 낫다.
---
name: release-checklist
description: Use when preparing a release note or release validation summary.
---
When preparing a release:
1. Read the pending changes.
2. Group changes by user-facing impact.
3. List required validation.
4. Separate verified items from unverified risks.
5. Produce a release note draft.
의견: 이 절차는 모든 작업에 필요하지 않다. 필요할 때만 /release-checklist로 호출할 수 있다면 시작 문맥을 덜 차지한다.
rules와 skills의 경계
rules는 “이 파일을 다룰 때 지켜야 하는 기준”에 적합하다. skills는 “이 일을 처리하는 절차”에 적합하다.
예를 들어 테스트 파일 작성 규칙은 rule이 맞다. 반면 “릴리스 노트를 작성하고 검증 항목을 묶어라”는 작업 절차이므로 skill이 맞다.
의견: 둘을 섞으면 rules가 절차 문서처럼 길어지고, skills가 프로젝트 공통 규칙처럼 남용된다. 규칙은 짧게, 절차는 호출 가능하게 두는 편이 좋다.
한계와 예외
이 글은 2026-04-24 기준 공식 문서를 바탕으로 한다. Claude Code의 skills, commands, rules 로딩 방식은 이후 바뀔 수 있다.
직접 실행 테스트가 없으므로, 실제 skill 자동 선택 정확도나 path matching 결과는 검증하지 않았다.
작은 프로젝트에서는 rules와 skills를 과하게 나누는 것이 오히려 유지보수 비용이 될 수 있다. 분리는 반복과 길이가 실제 문제가 될 때 시작해도 된다.
참고자료
- Anthropic, How Claude remembers your project
- Anthropic, Extend Claude with skills
- Anthropic, Extend Claude Code
댓글남기기