debug-walkthrough
예시 — claude --debug 한 턴 분해
섹션 제목: “예시 — claude --debug 한 턴 분해”다음은 claude --debug 출력에서 한 사용자 요청이 거치는 흐름을 단순화한 예시다 (실제 출력은 더 길다).
[debug] system_prompt: <12,400 tokens, 7 sections>[debug] tools_available: Read, Write, Edit, Bash, Grep, Glob, WebFetch, TodoWrite, Task[debug] user: "src/auth/ 모든 파일을 읽고 보안 취약점을 찾아줘"
[debug] -> messages.create[debug] <- assistant: text("계획: Glob → Read → 분석") tool_use(Glob, {pattern: "src/auth/**/*.ts"})[debug] dispatch Glob -> ["src/auth/login.ts", "src/auth/jwt.ts", "src/auth/oauth.ts"][debug] -> messages.create[debug] <- assistant: tool_use(Read, {file: "src/auth/login.ts"}) tool_use(Read, {file: "src/auth/jwt.ts"}) tool_use(Read, {file: "src/auth/oauth.ts"}) ← 병렬[debug] dispatch Read x3 (parallel)[debug] -> messages.create[debug] <- assistant: text("취약점 3개 발견...")[debug] stop_reason: end_turn배울 점:
- 한 사용자 메시지에
messages.create가 3번 호출됐다. - 두 번째 턴에서
Read를 병렬로 3개 발사했다 — 디스패처가 같은 응답 안의 여러tool_use를 동시에 실행한다. stop_reason: end_turn이 떴을 때만 사용자에게 제어가 돌아온다.
이 패턴이 본 파트 03 챕터(루프와 종료 조건)의 출발점이다.