CasesInsightClaudeStudioFAQ
ConnectThreadsInstagrambruce@intellieffect.com

© 2026 agenticworkflows.club

Claude

Claude Code /goal, 조건 안 깨는 4가지

5월 12일 출시된 /goal을 처음 돌리면 무한 루프와 잘못된 통과 두 가지 페인이 같이 옵니다. 평가자(Haiku)가 도구를 못 쓴다는 사실 + 조건 안 깨는 4가지 룰.

2026. 05. 147분 읽기
Claude Code /goal, 조건 안 깨는 4가지

5월 12일 Anthropic이 Claude Code v2.1.139에 /goal을 출시했어요. 완료 조건 한 줄만 적어두면 Claude가 그 조건이 충족될 때까지 턴을 반복하는 자율 모드입니다. 처음 돌려보면 두 가지 페인이 동시에 옵니다. 무한 루프로 토큰을 태우거나, 충족됐다고 잘못 평가받고 미완성으로 끝나거나. 둘 다 작동 원리 한 가지 사실에서 옵니다. 평가자(기본값 Haiku)는 도구를 못 써요. Claude가 대화에 표시한 것만 봅니다. 조건 4가지 룰로 두 가지 페인 다 끊는 법.

/goal 작동 흐름 다이어그램 — 작업자 Opus 박스가 출력을 가운데 대화 기록 박스로 보내고, 평가자 Haiku 박스가 그 안만 보고 통과/대기 판정. 대기면 이유가 다음 턴 지시문으로 회귀하는 점선 루프, 통과면 자동 종료.

평가자가 뭘 못 보는가

/goal은 세션 단위로 도는 Stop 훅을 감싼 명령이에요. 매 턴이 끝나면 조건 + 그때까지의 대화 전체가 작고 빠른 모델에 전달돼서 통과/대기 + 짧은 이유를 받습니다. 대기면 그 이유가 다음 턴의 지시문으로 들어가요. 통과면 자동으로 목표가 사라지고 기록에 달성 표시가 남습니다.

"

"It does not call tools, so it can only judge what Claude has already surfaced in the conversation."

([Keep Claude working toward a goal — Claude Code 공식 docs](https://code.claude.com/docs/en/goal))

작업자와 평가자를 분리한 이유는 자기 평가의 아첨 편향을 피하기 위해서예요. 같은 모델이 같은 대화에서 자기 출력을 평가하면 그냥 통과시킵니다. 그래서 새로 깨어난 평가자가 대화 기록에서만 판정합니다. 같은 분리 원칙이 [Writer-Reviewer 패턴](https://agenticworkflows.club/blog/claude-code-context-separation-4-tools)에서도 핵심이에요.

함정은 여기예요. 출력에 적혀 있지 않은 사실은 평가자에 존재하지 않아요. Claude가 테스트를 돌렸어도 결과 텍스트가 대화 기록에 등장하지 않았으면 평가자는 "대기, 증거 없음"으로 판정합니다. 또 한 턴 더 돌려요. 이 한 가지 메커니즘에서 아래 4가지 룰이 다 따라옵니다.

룰 1 — 출력으로 증명 가능한 형태로

가장 자주 깨지는 룰. 조건을 Claude가 무엇을 출력하면 충족되는가로 적어야 해요.

어떻게 적었는가

평가자가 보는 것

판정

"버그 다 고쳐졌음"

추상 단어, 증거 0

대기, 계속

"npm test exits 0"

종료 코드 출력

통과 가능

"유저가 만족"

주관, 증명 불가

영원히 대기

"git status clean"

출력으로 검증

통과 가능

공식 docs 권장 3요소는 측정 가능한 종료 상태 + 증명 명령 + 변경 안 되는 경계. 조건 한 줄 형태로는 이렇게 됩니다.

plaintext
/goal all tests in test/auth pass and the lint step is clean

test/auth 테스트 통과 출력 + lint 출력이 대화 기록에 등장하면 평가자가 양쪽 다 보고 통과 처리. 조건 한도는 4,000자라 여러 검증을 한 조건에 묶어도 괜찮아요.

잘못된 조건 vs 올바른 조건 비교 — 좌측 잘못된 형태 빨간 박스에 버그 다 고쳐졌음·유저가 만족 같은 추상 단어, 우측 올바른 형태 초록 박스에 npm test exits 0·git status clean 같은 출력로 검증 가능한 형태. 가운데 측정 가능한 형태로 화살표.

룰 2 — 턴 상한을 조건 안에 함께 적어라

/goal은 충족될 때까지 안 멈춰요. 4,000자 한도라 조건 끝에 한 줄 더 넣을 공간이 있습니다.

plaintext
... or stop after 20 turns

이 한 줄이 비용이 폭주하는 걸 끊어요. 매 턴 Opus가 5,000~50,000 토큰을 쓰는데, 자율 모드라 사람이 안 보는 사이 하룻밤에 6,000달러를 태운 외부 사례까지 보고됐어요. ([Claude Code runaway bills overnight — DevToolPicks](https://devtoolpicks.com/blog/ai-agents-runaway-claude-code-bills-overnight-2026))

평가자가 이 조항도 판정해요. Claude가 "20턴 도달" 신호를 대화 기록에 남기면 통과로 종료. 비상 브레이크가 조건 안에 자동으로 들어갑니다. [Claude Code 한도가 5월 6일 두 배 풀린](https://agenticworkflows.club/blog/claude-code-rate-limit-relief-may-2026) 이후에도 주간 한도는 그대로라 턴 상한은 여전히 필수예요.

턴 상한 변환 다이어그램 — 좌측 상한 없음에 빨간 ∞ 무한 기호, 가운데 or stop after 20 turns 빅 넘버 카드, 우측 약 100만 토큰 안에 정지 초록 라벨. 하단 1. 조건 작성, 2. or stop after N, 3. 비상 브레이크 발동 3단계.

룰 3 — 주관 단어 빼고 측정 단어만

평가자 Haiku가 가장 흔히 헷갈리는 게 주관 단어예요. "well-tested" / "looks good" / "user-friendly" 같은 표현은 평가자가 판정 기준을 못 잡습니다. 이상하게 통과시키거나 영원히 거부하거나.

측정 단어 (권장)

주관 단어 (회피)

exits 0 / exits non-zero

works / broken

clean / empty / N items

well / nicely

equals "X" / contains "Y"

proper / good

passes / fails

satisfactory

룰 1과 결합하면 이렇게 됩니다.

plaintext
/goal all 47 lint warnings in src/ are fixed, npm test exits 0, git diff for tests/ is empty, or stop after 25 turns

명사·동사·코드만 들어 있어요. 평가자가 대화 기록에서 "47 warnings → 0", "exit 0", "diff empty", "25 turns 도달" 네 신호 중 하나만 또렷이 잡으면 즉시 종료. 판정 기준이 대화 기록에서 텍스트 일치로 잡힌다는 감각을 조건에 그대로 옮기는 게 핵심이에요.

측정 단어 vs 주관 단어 비교 카드 — 좌측 초록 카드에 exits 0·clean·equals·passes 같은 측정 단어 권장, 우측 빨간 카드에 works·well·proper·satisfactory 같은 주관 단어 회피. 가운데 격벽에 평가자 Haiku가 대화 기록에서 보는 것 라벨.

룰 4 — 신뢰 대화상자와 disableAllHooks 사전 확인

/goal 명령이 안 먹히는 가장 흔한 원인. 평가자가 훅 시스템의 한 부분이라 두 가지 차단이 있어요.

  • 신뢰 대화상자 미수락 작업 공간 — 처음 들어간 디렉터리에서 신뢰 수락을 안 했으면 /goal이 사유 표시 + 차단
  • `disableAllHooks` / `allowManagedHooksOnly` — 관리 설정에 들어 있으면 차단. 회사 컴퓨터에서 가장 자주 막혀요

[Claude Code agent view](https://agenticworkflows.club/blog/claude-code-agent-view-may-2026)나 /goal 같은 자율 기능을 처음 쓰기 전에 /doctor 한 번 돌리면 훅 상태가 한 화면에 잡힙니다. 30분 시행착오를 막아요. ([Goal requirements — Claude Code 공식 docs](https://code.claude.com/docs/en/goal))

/doctor 사전 점검 체크리스트 카드 — 상단 코드 박스에 $ claude /doctor 명령, 하단에 신뢰 대화상자 수락, disableAllHooks 미설정, allowManagedHooksOnly 미설정 3개 체크 항목과 ✓ 시그널.

다음 /goal 한 줄, 처음 할 일

다음에 머지하기 직전 PR이 있으면 4가지 룰을 합쳐서 한 줄만 적어 보세요.

plaintext
/goal all tests in test/ pass, lint exits 0, git status shows zero unstaged changes, or stop after 20 turns

측정 단어 3개 + 턴 상한 1개. 1주 돌리면 수동 "테스트 돌려봐 → 결과 확인 → 다음 명령 입력" 사이클이 절반 사라져요. 평가자가 도구를 못 본다는 사실 한 가지만 머릿속에 두면, /goal이 제대로 자율적으로 돌아가는 자리에 옵니다.

마무리 큰따옴표 인용 카드 — 큰 따옴표 기호와 함께 평가자는 Claude가 출력한 것만 봅니다 슬로건이 warm gradient로 강조. 하단 CLAUDE CODE · /goal 가이드 출처 라벨.

자주 묻는 질문

/goal과 /loop는 무엇이 다른가요?

종료 트리거가 달라요. /goal은 평가자가 조건 충족을 확인하면 종료, /loop는 시간 간격으로 반복하다가 사용자가 정지. 명확한 종점이 있으면 /goal, 주기 점검이면 /loop가 맞아요.

평가자 모델을 Haiku 외 다른 것으로 바꿀 수 있나요?

네. 작고 빠른 모델 설정으로 변경 가능해요. 기본값은 Haiku지만 더 강한 모델로 올리면 정확도가 오르고 비용도 같이 올라요. 평가 토큰은 본 작업 턴 대비 무시할 만한 수준이에요.

/goal을 중간에 멈추려면 어떻게 하나요?

`/goal clear`로 즉시 제거합니다. 별칭 5개도 쓸 수 있어요 — stop / off / reset / none / cancel. `/clear`로 새 세션을 시작해도 진행 중인 목표는 함께 사라져요.

헤드리스 모드(-p)에서도 /goal이 동작하나요?

네. `claude -p "/goal ..."`로 한 번의 호출에서 루프 끝까지 실행됩니다. CI/CD 파이프라인이나 스케줄러에서 활용 가능해요. 중간 정지는 Ctrl+C만 가능합니다.

세션을 닫으면 조건이 사라지나요?

`--resume`/`--continue`로 같은 세션을 이어 받으면 조건은 복원됩니다. 단 타이머·턴 수·토큰 기준선은 모두 초기화. 종료되거나 달성된 목표는 복원되지 않아요.

Codex /goal과 형태가 어떻게 다른가요?

Codex는 create / pause / resume / clear 4동사 분리 + 세션 간 지속이 강점. Claude Code /goal은 한 세션 안 중심 + 조건 한 줄 단순. 여러 날 작업이면 Codex, 한 세션 안 자동화면 Claude가 적합해요.

작성: Bruce Choe · agenticworkflows.club

멤버 전용 콘텐츠입니다

무료 가입으로 전체 콘텐츠를 읽을 수 있습니다.

무료로 시작하기

이미 멤버라면 로그인

다음 글

Amazon이 보여준 AX 전환 KPI의 함정

인사이트를 놓치지 마세요

새 글이 발행되면 이메일로 알려드립니다.

← 블로그