Claude Code는 대화창 하나가 전부가 아니다. 작업을 더 잘 굴리는 세 개의 확장 장치가 있다. 스킬은 필요할 때 펼쳐 보는 작업 매뉴얼이고, 서브에이전트는 자기 책상에서 따로 일하고 결과만 보고하는 외주 직원이며, 훅은 조건이 맞으면 사람이 안 시켜도 무조건 작동하는 자동 센서다. 셋을 헷갈려 쓰면 설정이 엉키고, 제자리에 쓰면 메인 작업 흐름이 가벼워진다.
세 장치를 한눈에 비교하면 이렇다.
| 장치 | 정체 | 실행 위치 | 작동 방식 | 저장 위치 |
|---|---|---|---|---|
| 스킬(Skill) | 절차·지식 묶음 | 현재 대화와 같은 컨텍스트 | Claude가 관련성 판단해 자동 호출, 또는 직접 호출 | .claude/skills/<이름>/SKILL.md |
| 서브에이전트(Subagent) | 위임받는 별도 작업자 | 자체 컨텍스트(분리됨) | 자동 위임 / 이름 호출 / @-멘션 | .claude/agents/<이름>.md |
| 훅(Hook) | 자동 실행 명령 | 셸(터미널) | 특정 이벤트에 무조건 실행(결정론) | .claude/settings.json |
[!INFO]
- 저장 위치 앞에
.claude/가 붙으면 그 프로젝트 안에서만 쓰는 설정이다.- 앞에
~/.claude/(물결표)가 붙으면 모든 프로젝트에서 쓰는 내 전역 설정이다.- 이름이 겹치면 프로젝트(
.claude/) 설정이 전역(~/.claude/)보다 우선한다.
1 서브에이전트로 작업을 외주 직원에게 맡기기
서브에이전트는 메인 대화가 직접 하기엔 컨텍스트만 잡아먹는 일을 떼어 주는 별도 작업자다. 코드 리뷰, 테스트 수리, 로그 뒤지기 같은 일을 맡기면, 그 작업자가 자기 컨텍스트 안에서 일하고 결과만 가져온다. 메인 대화창에는 장황한 검색 기록이나 로그가 쌓이지 않는다. 여기서는 코드 리뷰 전담 서브에이전트 하나를 만들어 손에 남긴다.
1.1 작업 환경 준비
- 터미널을 연다. Windows는 [시작]에서
cmd또는 PowerShell, macOS는 ⌘+Space로 Spotlight를 열고Terminal을 입력해 Enter 한다. - 실습용 프로젝트 폴더로 이동한다. 명령어
cd 프로젝트경로를 입력하고 Enter 한다. 예)cd ~/projects/demo. - Claude Code를 실행한다. 명령어
claude를 입력하고 Enter 한다. - 작업 기록용 메모장을 함께 연다. 폴더 안에
claude_확장_메모.txt파일을 새로 만들어 둔다. 만든 서브에이전트·스킬·훅의 이름과 경로를 여기에 적어 나간다.
[!NOTE]
claude를 입력하면 프롬프트가>모양으로 바뀐다. 이 상태가 Claude Code 안으로 들어온 것이다.- 서브에이전트 파일은 현재 폴더 기준으로 위로 올라가며
.claude/agents/를 찾는다. 그래서 어느 폴더에서 시작했는지가 중요하다.
1.2 /agents로 서브에이전트 만들기
- Claude Code 프롬프트(
>)에 명령어/agents를 입력하고 Enter 한다. - 메뉴가 뜨면 [Create new agent]를 선택한다. 방향키 ↑ ↓로 옮기고 Enter로 고른다.
- 적용 범위를 묻는 화면에서 범위를 고른다.
- [Project]를 고르면 이 프로젝트에서만 쓴다(
.claude/agents/에 저장). - [Personal]을 고르면 내 모든 프로젝트에서 쓴다(
~/.claude/agents/에 저장).
- [Project]를 고르면 이 프로젝트에서만 쓴다(
- 설명(description)을 입력하는 칸에 이 서브에이전트를 언제 부를지 적는다. 아래 문장을 그대로 입력한다.
최근 변경한 코드의 가독성·버그·보안 문제를 검토하는 코드 리뷰 전담 에이전트. 사용자가 "리뷰", "검토해줘"라고 하면 사용한다.
- 이어서 Claude가 이 설명을 바탕으로 시스템 프롬프트 초안을 만들어 보여 준다. 내용을 확인하고 Enter로 저장한다. 직접 고치려면 e를 눌러 편집기로 연다.
[!NOTE]
description칸은 단순 이름표가 아니라 호출 방아쇠다. Claude는 사용자 요청을 각 서브에이전트의 description과 맞춰 보고 자동으로 일을 넘길지 정한다.- 그래서 "언제 부르는지"를 구체적인 상황과 표현으로 적을수록 자동 위임이 잘 걸린다.
1.3 서브에이전트 파일 직접 열어 확인하기
/agents로 만든 결과가 실제로 어떤 파일인지 본다. 직접 손으로 만들 수도 있는 구조다.
- 새 터미널 탭을 열거나, 편집기로 방금 만든 파일을 연다. 프로젝트 범위로 저장했다면 경로는
.claude/agents/code-reviewer.md형태다. - 파일 맨 위
---로 감싼 부분(YAML 프론트매터)을 확인한다. 아래 형태로 들어 있다.
---
name: code-reviewer
description: 최근 변경한 코드의 가독성·버그·보안 문제를 검토하는 코드 리뷰 전담 에이전트. 사용자가 "리뷰", "검토해줘"라고 하면 사용한다.
tools: Read, Grep, Glob
model: sonnet
---
당신은 코드 리뷰 전문가다. 최근 변경분을 읽고 가독성·버그·보안 관점에서
문제를 찾아 짧고 구체적으로 보고한다. 파일을 직접 고치지 않는다.
- 각 필드의 뜻을 확인한다.
name— 서브에이전트의 식별 이름. 호출할 때 이 이름을 쓴다.description— 언제 이 에이전트를 부를지. 자동 위임의 기준.tools— 쓸 수 있는 도구 목록. 이 줄을 통째로 빼면 모든 도구를 물려받는다.model— 쓸 모델.sonnet·opus·haiku별칭이나inherit(메인 대화와 같은 모델)을 적는다. 줄을 빼면 기본값을 따른다.
---아래 본문은 이 에이전트의 시스템 프롬프트다. 여기 적은 지시가 그 작업자의 행동 규칙이 된다.
[!TIP]
- 리뷰·조사처럼 읽기만 하는 에이전트는
tools를Read, Grep, Glob으로 좁혀 둔다. 실수로 파일을 고치는 사고를 막는다.- 단순 분류·검색 같은 잔일은
model: haiku로 두면 빠르고 저렴하다. 무거운 판단이 필요한 에이전트만sonnet·opus로 올린다.
1.4 서브에이전트 불러 쓰기
만든 서브에이전트를 실제로 호출하는 방법은 세 가지다. 통제 강도가 다르다.
- 첫째, 자연어로 이름 부르기 — Claude가 위임할지 스스로 정한다. 프롬프트에 아래처럼 입력하고 Enter 한다.
code-reviewer 서브에이전트로 방금 바꾼 파일을 검토해줘.
- 둘째, @-멘션으로 못박기 — 그 작업 한 번은 반드시 그 에이전트가 맡는다.
@를 입력하면 뜨는 목록에서code-reviewer를 ↑ ↓로 골라 Enter 한 뒤, 할 일을 이어 적는다. - 셋째, 세션 전체 고정 — 터미널 진입 시
claude --agent code-reviewer로 실행하면 그 세션 내내 이 에이전트의 프롬프트·도구·모델로 동작한다.
[!NOTE]
- (1) 자연어는 Claude 판단에 맡기는 가장 느슨한 방식이고, (2) @-멘션은 한 번 확실히 거는 방식, (3)
--agent는 세션 전체에 거는 가장 강한 방식이다.- 결과 보고만 메인 대화로 돌아온다. 에이전트가 뒤진 파일 목록이나 중간 로그는 메인 컨텍스트에 쌓이지 않는다. 이게 컨텍스트를 아끼는 핵심이다.
1.5 응용 — 내 작업용 서브에이전트 만들기
위에서 만든 흐름을 내 일에 맞는 서브에이전트로 한 번 더 만든다. 아래 프롬프트를 Claude Code 프롬프트(>)에 붙여 넣고 {중괄호}를 내 값으로 채운다.
다음 사양의 서브에이전트 파일을 .claude/agents/{에이전트이름}.md 로 만들어줘.
- 역할: {이 에이전트가 전담할 작업 한 줄}
- 자동 위임 조건(description): 사용자가 "{호출 표현1}", "{호출 표현2}"라고 할 때
- 허용 도구(tools): {Read, Grep, Glob 등 / 읽기만이면 쓰기 도구 제외}
- 모델(model): {haiku=잔일 / sonnet=일반 / opus=무거운 판단 / inherit=메인과 동일}
시스템 프롬프트 본문에는 이 에이전트가 지켜야 할 행동 규칙을 평어체로 적어줘.
파일을 직접 수정하면 안 되는 에이전트면 "파일을 고치지 않는다"를 규칙에 넣어줘.
{에이전트이름}— 영문 소문자·하이픈. 예)test-runner,doc-writer.{이 에이전트가 전담할 작업 한 줄}— 예)실패한 테스트를 찾아 원인을 고치고 다시 돌린다.{호출 표현1},{호출 표현2}— 내가 평소 쓰는 말. 예)테스트 고쳐줘,빌드 깨진 거 봐줘.{tools}— 읽기 전용이면Read, Grep, Glob. 고쳐야 하면Read, Edit, Write, Bash를 더한다.{model}— 위 표 기준으로 고른다.
채운 예시 한 벌은 이렇다.
다음 사양의 서브에이전트 파일을 .claude/agents/test-runner.md 로 만들어줘.
- 역할: 실패한 테스트를 찾아 원인을 고치고 다시 돌린다
- 자동 위임 조건(description): 사용자가 "테스트 고쳐줘", "빌드 깨진 거 봐줘"라고 할 때
- 허용 도구(tools): Read, Edit, Write, Bash
- 모델(model): sonnet
시스템 프롬프트 본문에는 이 에이전트가 지켜야 할 행동 규칙을 평어체로 적어줘.
[!TIP]
- 한 에이전트에 일을 몰아넣지 않는다. "리뷰 전담", "테스트 전담"처럼 역할을 하나로 좁혀야 자동 위임이 정확해진다.
- 자주 틀리는 지점은
tools다. 읽기만 시키려 했는데Write를 넣으면 에이전트가 파일을 건드릴 수 있다. 역할에 맞게 도구를 줄인다.
2 스킬로 반복 절차를 지식으로 박기
스킬은 "이 작업은 이렇게 한다"는 절차를 글로 적어 둔 파일이다. 서브에이전트와 달리 별도 작업자를 띄우지 않는다. 지금 대화와 같은 컨텍스트 안에서, 필요할 때 그 지침이 추가로 펼쳐질 뿐이다. 매번 똑같은 설명을 복사해 붙여 넣던 일을 한 번 적어 두고 재사용한다. 여기서는 "회의록 정리" 스킬 하나를 만든다.
2.1 스킬 폴더 만들기
- 터미널에서 스킬 폴더를 만든다. 명령어
mkdir -p .claude/skills/meeting-notes를 입력하고 Enter 한다. - 폴더가 만들어졌는지 확인한다. 명령어
ls .claude/skills를 입력하고 Enter 하면 목록에meeting-notes가 보인다.
[!NOTE]
- 스킬은 폴더 하나에
SKILL.md파일 하나가 기본 단위다. 폴더 이름이 곧 스킬 묶음의 이름이 된다.mkdir -p의-p는 중간 폴더(.claude,skills)가 없으면 함께 만들라는 뜻이다.
2.2 SKILL.md 작성
- 편집기로 새 파일
.claude/skills/meeting-notes/SKILL.md를 만든다. - 아래 내용을 그대로 적고 저장한다. 저장 단축키는 Ctrl+S(macOS는 ⌘+S).
---
name: meeting-notes
description: 회의 메모를 결정사항·할 일·다음 안건 세 부분으로 정리한다. 사용자가 "회의록 정리", "회의 메모 다듬어줘"라고 하면 사용한다.
---
# 회의록 정리 절차
회의 메모를 받으면 아래 세 부분으로 나눠 정리한다.
1. 결정사항 — 회의에서 확정된 것만. 한 줄씩 번호로.
2. 할 일 — 담당자와 마감일을 함께. "담당자: 일 (마감)" 형식.
3. 다음 안건 — 다음 회의로 넘긴 것.
평어체로 적고, 결정 안 난 잡담은 빼고 핵심만 남긴다.
- 파일 맨 위
---안의 두 필드를 확인한다.name— 스킬 이름. 폴더 이름과 같게 맞춘다.description— 이 스킬을 언제 펼칠지. 서브에이전트와 마찬가지로 이게 자동 호출의 방아쇠다.
[!WARNING]
name과description두 줄은 빠지면 스킬이 인식되지 않는다.---위아래 줄도 반드시 있어야 한다.description을 "회의록 정리 스킬"처럼 막연히 적으면 자동 호출이 안 걸린다. "언제(사용자가 무슨 말을 할 때) 쓰는지"를 넣어야 Claude가 펼친다.
2.3 스킬 자동 호출 확인
- Claude Code 프롬프트로 돌아온다. 회의 메모처럼 보이는 글을 던지며 정리를 시킨다. 아래처럼 입력하고 Enter 한다.
회의 메모 정리해줘.
- A안으로 가기로 함
- 디자인은 김대리가 금요일까지
- 예산 얘기는 다음에
- 이어서 Claude가
meeting-notes스킬을 펼쳐, 결정사항·할 일·다음 안건 세 부분으로 나눠 답하는지 본다.
[!NOTE]
- 따로 명령을 안 쳤는데도 정리 형식이 SKILL.md대로 나왔다면, description을 보고 Claude가 스스로 스킬을 끌어 쓴 것이다.
- 형식이 안 잡히면 명령어
/meeting-notes로 직접 호출해 본다. 직접 호출이 되면 파일은 정상이고, description만 다듬으면 자동 호출이 걸린다.
2.4 응용 — 내 절차를 스킬로 만들기
내가 매번 반복하는 작업 하나를 스킬로 박는다. 아래 프롬프트를 Claude Code에 붙여 넣고 {중괄호}를 채운다.
다음 절차를 스킬로 만들어줘. 파일은 .claude/skills/{스킬이름}/SKILL.md 로 만들고
맨 위에 name, description 프론트매터를 넣어줘.
- 스킬 이름(name): {스킬이름}
- 자동 호출 조건(description): 사용자가 "{호출 표현1}", "{호출 표현2}"라고 할 때
- 절차 본문: {이 작업을 어떤 순서로 처리하는지 단계별로}
- 출력 형식: {결과를 어떤 형태로 내놓아야 하는지}
본문은 평어체로 적어줘.
{스킬이름}— 영문 소문자·하이픈. 예)commit-msg,pr-summary.{호출 표현1},{호출 표현2}— 내가 평소 쓰는 말. 예)커밋 메시지 만들어줘.{절차 본문}— 평소 손으로 하던 순서를 그대로. 예)변경 파일을 보고 한 줄 요약 + 상세 3줄로 쓴다.{출력 형식}— 예)제목 줄 50자 이내, 본문은 글머리표 3개.
채운 예시 한 벌은 이렇다.
다음 절차를 스킬로 만들어줘. 파일은 .claude/skills/commit-msg/SKILL.md 로 만들고
맨 위에 name, description 프론트매터를 넣어줘.
- 스킬 이름(name): commit-msg
- 자동 호출 조건(description): 사용자가 "커밋 메시지 만들어줘", "커밋 문구 뽑아줘"라고 할 때
- 절차 본문: 변경된 파일을 확인하고 무엇이 왜 바뀌었는지 파악한 뒤 메시지를 쓴다
- 출력 형식: 제목 줄 50자 이내, 빈 줄 하나, 본문 글머리표 3개
본문은 평어체로 적어줘.
[!TIP]
- 스킬은 "방법을 알려 주는 지침"이고 서브에이전트는 "일을 떠맡는 작업자"다. 똑같은 답을 매번 복붙하고 있다면 스킬로, 컨텍스트가 더러워질 만큼 무거운 일이면 서브에이전트로 보낸다.
- 채울 때 자주 틀리는 지점은 폴더와 파일 이름이다. 폴더는
{스킬이름}, 그 안 파일은 반드시SKILL.md로 대문자까지 맞춘다.
3 훅으로 규칙을 자동 강제하기
스킬·서브에이전트는 Claude가 "쓸지 말지"를 판단한다. 훅은 다르다. 정해진 순간이 오면 사람이 안 시켜도, Claude가 판단하기도 전에 무조건 셸 명령을 실행한다. 모델 해석에 기대지 않는 결정론적 장치라, "절대 어기면 안 되는 규칙"을 박을 때 쓴다. 여기서는 위험한 셸 명령을 실행 전에 막는 안전장치 훅을 만든다.
3.1 settings.json 열기
- 편집기로 파일
.claude/settings.json을 연다. 없으면 새로 만든다. - 파일이 비어 있으면 빈 객체
{}한 줄만 넣고 시작한다. 이미 내용이 있으면 맨 바깥 중괄호 안에hooks항목을 더한다.
[!NOTE]
hooks는 settings.json 맨 바깥에 놓이는 최상위 항목이다.permissions같은 다른 설정과 같은 단계에 둔다.- 프로젝트용은
.claude/settings.json, 모든 프로젝트에 거는 전역용은~/.claude/settings.json이다.
3.2 위험 명령 차단 훅 작성
- settings.json에 아래 내용을 적는다. 셸 명령(Bash)을 실행하기 직전에 검사해 위험 패턴이 보이면 막는 훅이다.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.command' | grep -qE 'rm -rf|DROP TABLE' && exit 2 || exit 0"
}
]
}
]
}
}
- 코드를 넣었으면 파일을 저장한다(Ctrl+S).
- 구조를 한 겹씩 확인한다.
PreToolUse— 언제 작동할지 정하는 이벤트 이름. 도구를 실행하기 직전이다.matcher— 어떤 도구에서 작동할지."Bash"는 셸 명령일 때만 건다."Edit|Write"처럼 정규식으로 여러 도구를 묶을 수 있다.type— 훅 종류.command(셸 명령) 외에prompt·agent·http·mcp_tool다섯 가지가 있다.command— 실제로 실행할 셸 명령. 훅 입력은 stdin 으로 들어오는 JSON 이며tool_input.command필드를 검사한다. 여기서는jq로 그 필드를 꺼내 위험 패턴이 잡히면exit 2로 막고, 아니면exit 0으로 통과시킨다.
[!WARNING]
- 핵심은 종료 코드다.
exit 0은 통과,exit 2는 차단이다. PreToolUse가exit 2를 내면 그 도구 실행이 멈춘다.- 차단할 때 메시지를 stderr로 내보내면 Claude가 그 이유를 피드백으로 받아 행동을 바꾼다. 그래서 차단 사유를 한 줄 적어 주면 좋다.
- JSON은 쉼표·중괄호 하나만 어긋나도 통째로 무시된다. 저장 후 따옴표·괄호 짝이 맞는지 다시 본다.
3.3 훅 동작 확인
- Claude Code를 종료했다 다시 실행한다. 설정 파일은 시작할 때 읽히므로, 고친 뒤에는 다시 켠다.
- 프로젝트 범위 훅이면 처음 한 번 승인 화면이 뜬다. 내가 적은 훅이 맞는지 확인하고 [Allow]를 고른다.
- 위험 명령을 일부러 시켜 본다. 프롬프트에
rm -rf 로 임시폴더 지워줘라고 입력해 Enter 한 뒤, 실행이 막히는지 본다.
[!WARNING]
- 훅을 고쳤는데 동작이 그대로면, Claude Code를 껐다 켜지 않은 경우가 가장 많다. 설정은 시작 시 한 번 읽힌다.
- 프로젝트(
.claude/settings.json) 훅은 누구나 고칠 수 있어 처음 쓸 때 승인을 받는다. 승인 화면을 건너뛰면 훅이 안 걸린다.
3.4 응용 — 내 규칙을 훅으로 만들기
내가 "항상 이렇게 됐으면" 하는 자동 규칙 하나를 훅으로 박는다. 아래 프롬프트를 Claude Code에 붙여 넣고 {중괄호}를 채운다.
.claude/settings.json 에 추가할 훅 설정을 만들어줘.
- 이벤트: {PreToolUse=실행 전 검사·차단 / PostToolUse=실행 후 자동 처리}
- 대상 도구(matcher): {Bash / Edit|Write 등}
- 하고 싶은 동작: {언제 무엇을 자동으로 / 무엇을 막을지}
- 차단이 필요하면 PreToolUse에서 조건이 맞을 때 exit 2 로 막아줘.
기존 settings.json 내용을 지우지 말고 hooks 항목만 더하는 형태로 만들어줘.
{이벤트}— 막고 싶으면PreToolUse, 끝난 뒤 처리하고 싶으면PostToolUse.{matcher}— 셸 명령은Bash, 파일 편집은Edit|Write.{하고 싶은 동작}— 예)파일을 고칠 때마다 자동으로 포매터를 돌린다.
채운 예시 한 벌은 이렇다.
.claude/settings.json 에 추가할 훅 설정을 만들어줘.
- 이벤트: PostToolUse
- 대상 도구(matcher): Edit|Write
- 하고 싶은 동작: 파일을 고치거나 새로 쓸 때마다 자동으로 prettier 포매터를 돌린다
기존 settings.json 내용을 지우지 말고 hooks 항목만 더하는 형태로 만들어줘.
[!TIP]
- 셋의 선택 기준은 이렇다. 같은 답을 매번 다시 적고 있으면 스킬, 컨텍스트가 더러워질 무거운 일이면 서브에이전트, 사람 손을 안 거치고 매번 강제돼야 하면 훅이다.
- 채울 때 자주 틀리는 지점은
PreToolUse와PostToolUse를 바꿔 쓰는 것이다. "막기"는 일이 일어나기 전(Pre)에만 가능하고, 자동 포매팅·로그처럼 "끝난 뒤 처리"는 후(Post)에 건다.
막히면 — AI 코치에게 묻기
이 문서에서 익힌 Claude Code의 서브에이전트·스킬·훅을 제자리에 만들어 쓰는 법을 내 상황에 적용하다 막히면, 아래를 대화형 AI(ChatGPT·Claude·Gemini)에 붙여 넣어 실습 코치로 삼는다. 답을 한꺼번에 받지 말고 한 단계씩 풀어 간다.
너는 Claude Code 확장 기능 실습 코치다. 나는 서브에이전트(.claude/agents)·스킬(.claude/skills/SKILL.md)·훅(.claude/settings.json) 세 장치의 차이와 제자리를 배웠고, 내 작업에 맞는 장치 하나를 골라 직접 만들어 동작시키려 한다. 답을 통째로 주지 말고 한 단계씩 물어 내가 직접 하게 한다.
[코칭 방식]
1. 먼저 내가 자동화하려는 작업과 셋 중 어느 장치를 고르려는지 묻는다.
2. 막힌 원인을 한 가지 짚어 준다. 완성된 파일·설정 전체를 통째로 주지 않는다.
3. 다음 한 단계만 제시하고, 내가 해 본 결과를 말하면 확인 질문을 던진다.
4. 마지막에 장치 선택이 맞는지(반복 지침은 스킬, 무거운 별도 작업은 서브에이전트, 강제 규칙은 훅) 점검 질문을 한다.
[내 상황]
- 지금까지 한 것: {한것}
- 막힌 지점·메시지: {막힌점}
- 내 소재: {소재}
준비됐으면 "자동화하려는 작업과 고른 장치는 무엇인가?"라고만 답한다.
{한것}— 지금까지 진행한 단계, 예: /agents로 코드 리뷰 서브에이전트를 만들고 description을 적었다.{막힌점}— 막힌 부분이나 받은 메시지, 예: 자연어로 불러도 Claude가 그 에이전트로 위임하지 않는다.{소재}— 적용할 내 자료·주제, 예: 커밋 메시지를 매번 같은 형식으로 뽑는 작업.
채운 예시 한 벌은 이렇다.
너는 Claude Code 확장 기능 실습 코치다. 나는 서브에이전트(.claude/agents)·스킬(.claude/skills/SKILL.md)·훅(.claude/settings.json) 세 장치의 차이와 제자리를 배웠고, 내 작업에 맞는 장치 하나를 골라 직접 만들어 동작시키려 한다. 답을 통째로 주지 말고 한 단계씩 물어 내가 직접 하게 한다.
[코칭 방식]
1. 먼저 내가 자동화하려는 작업과 셋 중 어느 장치를 고르려는지 묻는다.
2. 막힌 원인을 한 가지 짚어 준다. 완성된 파일·설정 전체를 통째로 주지 않는다.
3. 다음 한 단계만 제시하고, 내가 해 본 결과를 말하면 확인 질문을 던진다.
4. 마지막에 장치 선택이 맞는지(반복 지침은 스킬, 무거운 별도 작업은 서브에이전트, 강제 규칙은 훅) 점검 질문을 한다.
[내 상황]
- 지금까지 한 것: .claude/skills/commit-msg/SKILL.md를 만들고 name과 description을 적었다.
- 막힌 지점·메시지: "커밋 메시지 만들어줘"라고 해도 스킬 형식대로 안 나온다.
- 내 소재: 커밋 메시지를 제목 50자·본문 글머리표 3개 형식으로 뽑는 작업.
준비됐으면 "자동화하려는 작업과 고른 장치는 무엇인가?"라고만 답한다.
[!TIP]
- 코치가 답을 통째로 주려 하면 "한 단계씩 물어라"라고 다시 요청한다.
- 내 상황을 적을 때 파일 경로와 이름(SKILL.md 대문자, .claude/agents/<이름>.md)을 정확히 빠뜨리지 않는다.