한 줄 요약: Anthropic 블로그 글 "Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents"(2026-06-18). Claude Code에 지시를 전달하는 일곱 가지 방법(CLAUDE.md, rules, 스킬, 서브에이전트, 훅, 출력 스타일, 시스템 프롬프트 덧붙이기)을 "언제 컨텍스트에 로드되나 / 긴 세션의 압축(컴팩션) 뒤에도 남나 / 얼마나 권위를 갖나" 세 축으로 비교하고, 지시를 어디에 둘지 판단하는 기준을 준다. Claude Code 확장 기능 개요(공식 문서)의 해설판 성격이다. 공식 확장 기능 개요가 비슷한 기능을 구분하는 절에서 이 글을 더 깊은 해설(deeper walkthrough)로 링크한다. Claude Code 확장 기능 개요
원본 정보#
- 제목: Steering Claude Code: when to use CLAUDE.md, skills, hooks, and subagents
- 저자: Michael Segner (Anthropic)
- 발행: 2026-06-18, claude.com 블로그(Best practices 카테고리, 읽기 5분)
- URL: https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more (새 창) (최종 주소 https://claude.com/resources/articles/steering-claude-code-skills-hooks-rules-subagents-and-more (새 창))
- 수집(fetch)일: 2026-10-18. 본문의 동작 설명은 발행일 기준이다.
핵심 주장#
- 지시를 전달하는 방법은 일곱 가지이고, 각각 세 가지를 정한다. 지시가 언제 컨텍스트에 로드되는지, 긴 세션에서 유지되는지(컴팩션 동작), 얼마나 권위를 갖는지다. 원본은 각 방법이 컨텍스트 비용과 권위를 맞바꾼다고 본다. 모델과 effort 수준은 이와 별개의 두 다이얼로, 얼마나 유능하게·얼마나 열심히 일할지를 정한다. → Claude Code 확장 기능 고르기, 컨텍스트 비용
- 컴팩션 뒤 무엇이 남는지는 방법마다 다르다. 루트 CLAUDE.md는 컴팩션 뒤 다시 읽히고, unscoped rules는 다시 주입되며, 호출된 스킬은 공유 예산 안에서 다시 주입되고(오래된 것부터 빠짐), 하위 디렉터리 CLAUDE.md와 경로별 규칙은 그 디렉터리를 다시 건드릴 때까지 빠진다. 훅은 컴팩션과 무관하고, 출력 스타일과 시스템 프롬프트 덧붙이기는 압축되지 않는다. → 장기 작업 컨텍스트 관리
- 반드시 일어나야 하거나 절대 일어나면 안 되는 일은 지시가 아니라 결정론적 장치로. "매번 X면 항상 Y"는 훅으로, "절대 하지 마라"는 훅과 권한(permissions)으로 둔다. 모델은 압박, 긴 세션, 모호한 상황, 작업 중 읽은 파일의 프롬프트 인젝션 때문에 프롬프트 규칙을 따르지 못할 수 있다. 조직 전체의 결정론적 가드레일은 managed settings가 유일한 방법이다(블로그 평가). → 훅, 권한 모드
- CLAUDE.md는 항상 들고 있을 사실만, 절차는 스킬로, 일부에만 해당하는 규칙은 경로별 rules로. 공유 저장소의 CLAUDE.md는 주인 없는 설정 파일처럼 계속 불어나며, 모든 줄이 모든 엔지니어의 모든 세션에 로드돼 토큰을 쓰고 중요한 지시의 준수를 희석한다. 200줄 이하, 주인 지정, 코드처럼 리뷰가 원본의 팁이다. → 메모리(CLAUDE.md), CLAUDE.md 작성·구성
- 출력 스타일은 가장 강하지만 기본 지시를 지운다. 시스템 프롬프트에 들어가 지시 준수 가중치가 가장 높지만(블로그 평가), 커스텀 스타일은 기본 출력 스타일을 대체해 소프트웨어 엔지니어링용 기본 지시(변경 범위, 주석, 보안, 테스트 후 완료 선언)가 빠진다. 시스템 프롬프트 덧붙이기는 기본 역할을 바꾸지 않고 더하기만 한다. → 출력 스타일 (참고: 공식 출력 스타일 문서 Claude Code 출력 스타일 기준으로는 커스텀 스타일만 빼고 내장 네 스타일은 기본 지시를 유지한다. 편집·실무는 공식 기준)
원본의 비교 표 (2026-06-18 기준)#
원본 요약표를 열 이름과 표현 그대로 옮겼다. 위키의 다른 페이지는 이 표의 칸을 나눠 인용한다.
| 방법 | 로드 시점 (When it's loaded) | 컴팩션 동작 (Compaction behavior) | 컨텍스트 비용 (Context cost, 블로그 평가) | 언제 쓰나 (When to use) |
|---|---|---|---|---|
| CLAUDE.md (루트) | 세션 시작, 세션 내내 컨텍스트에 남음 | Memoized. 한 번 읽어 세션 동안 캐시, 컴팩션 뒤 캐시를 비우고 다시 읽음 | High. 관련 여부와 상관없이 모든 줄이 토큰을 씀 | 빌드 명령, 디렉터리 구조, 모노레포 구조, 코딩 관례, 팀 규범 |
| CLAUDE.md (하위 디렉터리) | 필요할 때, Claude가 그 하위 디렉터리의 파일을 읽을 때 | 그 하위 디렉터리를 다시 건드릴 때까지 사라짐 | Low. 관련 하위 디렉터리를 작업할 때만 컨텍스트를 씀 | 하위 디렉터리 전용 관례 |
| Rules | 세션 시작 | 컴팩션 때 다시 주입 | Medium. 경로 범위가 없으면 항상 켜짐 | 구체적 제약· |
| 스킬 | 세션 시작 때 이름· | 호출된 스킬은 공유 예산까지 다시 주입, 오래된 것부터 빠짐 | Low. 호출 시에만 본문 로드, 호출된 스킬 전체가 공유 토큰 예산을 나눔 | 절차형 워크플로 (배포· |
| 서브에이전트 | 세션 시작 때 이름· | 최종 메시지 | Low. 부르기 전까지 메인 컨텍스트 비용 0, 자기 격리 컨텍스트 창에서 실행 | 병렬 작업, 격리해서 요약만 돌려받을 곁가지 작업 (깊은 검색, 로그 분석, 의존성 감사) |
| 훅 | 생명주기 이벤트에 실행 | 컴팩션을 완전히 우회 | Low. 설정은 메인 컨텍스트 밖, 일부 출력은 돌아올 수 있음 | 결정론적 자동화: 린터 실행, 완료 시 Slack 게시, 명령 차단, PreCompact에서 대화 기록 백업 |
| 출력 스타일 | 세션 시작, 시스템 프롬프트에 주입 | 압축되지 않음 | High. 컨텍스트 창을 차지하지만 기본 시스템 프롬프트를 덮어씀 | 큰 역할 변경 (코드 어시스턴트 → 일반 어시스턴트) |
| 시스템 프롬프트 덧붙이기 | 세션 시작, CLI 플래그로 전달 | 압축되지 않음, 그 실행에만 적용 | Moderate. 세션 첫 요청 뒤 캐시됨 | 톤, 응답 길이, 서식 선호 |
(2026-10-21 참고: 시스템 프롬프트 덧붙이기 행의 "그 실행에만 적용"은 공식 CLI 문서 Claude Code CLI 레퍼런스와 다르다. 공식 문서는 기본 동작으로 첫 요청에서 만든 시스템 프롬프트를 세션에 기록해 컴팩션 전까지 --resume·--continue로 돌아온 나중 실행에서도 쓴다고 적는다. ‘원본끼리 달랐던 점’ 상자: Claude Code CLI 플래그.)
원본 안의 불일치: 출력 스타일의 컨텍스트 비용을 요약표는 "High", 본문은 "moderate context cost"(첫 요청 뒤 캐시되므로)라고 쓴다. 위키에는 두 표현을 함께 둔다.
원본의 숫자·설정값 (2026-06-18 기준)#
- CLAUDE.md 권장 크기: 200줄 이하.
- 서브에이전트 중첩: 최대 5단계(five levels deep). (2026-10-19 참고: 공식 서브에이전트 문서 Claude Code 서브에이전트는 이것을 v2.1.172~v2.1.216의 기본값으로 적고, 수집일 2026-10-18 기준 기본은 3층이다. → 서브에이전트)
- Dynamic workflows: 수십~수백 개 백그라운드 에이전트를 조율. 조율 계획과 중간 결과는 Claude의 컨텍스트 창이 아니라 스크립트 변수에 산다.
- 훅 종류: command, HTTP, mcp_tool, prompt, agent.
PreToolUse훅은 종료 코드 2로 호출을 막는다. - 설정 키·플래그:
paths(rules frontmatter),claudeMdExcludes,keep-coding-instructions: true(출력 스타일 frontmatter),append-system-prompt플래그. - 내장 출력 스타일로 든 이름: Proactive, Explanatory, Learning.