Claude Code /goal 스킬: 절대 멈추지 못하게 만드는 자동 실행 게이트
Claude Code /goal 스킬: 절대 멈추지 못하게 만드는 자동 실행 게이트
AI에게 작업을 맡겼더니 "완료했습니다"라고 했는데, 막상 열어보면 절반밖에 안 되어 있는 경험이 있으신가요? Claude Code를 오래 쓰신 분들이라면 이 답답함을 잘 아실 겁니다. Claude는 자기 판단으로 "이 정도면 됐다"고 결정하고 멈춥니다. 그런데 2026년 5월 "Code with Claude 2026" 컨퍼런스에서 Anthropic이 이 문제를 정면으로 겨냥한 기능을 발표했습니다.
바로 Claude Code goal 스킬, /goal 명령어입니다. 한 줄로 완료 조건을 정의하면, 별도의 평가 모델이 매 턴마다 "정말 다 됐어?"를 검수합니다. 답이 "아직"이면 Claude는 멈출 수 없습니다.
/goal이란 무엇인가
/goal은 세션에 종료 게이트를 거는 공식 Claude Code 명령어입니다. 매 작업 턴이 끝날 때마다 별도의 빠른 평가 모델(기본값: Haiku)이 완료 조건을 판단하고, 조건이 충족되지 않으면 Claude가 자동으로 다음 턴을 이어갑니다.
Anthropic 공식 문서에 따르면, /goal의 본질은 세션 스코프 prompt-based Stop hook의 wrapper입니다. Stop hook이란 Claude의 각 응답 후 자동으로 호출되는 후처리 로직입니다. /goal은 이 Stop hook을 이용해 "아직 목표 미달성"이라는 신호를 다음 턴에 주입하고, Claude가 계속 작동하도록 강제합니다.
작동 메커니즘 다이어그램
[Claude 한 턴 종료]
│
▼
[Stop hook 발동]
│
▼
[Haiku grader 호출]
"완료 조건 + 지금까지의 대화 → 충족? yes/no + 이유"
│
├─ YES → goal 클리어 + transcript에 achieved 기록 → 세션 종료
└─ NO → "왜 안 됐는지" 가이던스를 다음 턴에 주입 → Claude 자동으로 계속
일반 세션과의 결정적 차이는 다음과 같습니다.
| 구분 | 일반 세션 | /goal 세션 |
|---|---|---|
| 종료 판단 주체 | Claude 자신 | 별도 Haiku grader |
| 종료 기준 | 자기 판단 | 사용자가 정의한 완료 조건 |
| 미완료 시 | 그냥 멈춤 | 강제로 계속 |
| 피드백 | 없음 | "왜 안 됐는지" 가이던스 주입 |
Stop hook은 회의실 문 앞 경비원과 같습니다. Claude가 "다 했다"며 나가려 해도, 경비원이 체크리스트를 확인하고 "아직 서명 두 개가 빠졌어요"라고 되돌려 보냅니다. 사용자가 /goal clear로 명시적으로 해제하거나 경비원이 "통과"를 내릴 때까지 Claude는 회의실 밖으로 나올 수 없습니다.
서브명령어 6종 상세
Claude Code goal 스킬은 목표의 전체 생애주기를 관리하는 6개의 서브명령어로 구성됩니다.
| 명령어 | 기능 | 사용 시점 |
|---|---|---|
/goal <목표> | 완료 조건 설정 + 즉시 작업 시작 | 새 장기 작업 시작 시 |
/goal status | 현재 활성 목표 조회 | 진행 상황 확인 시 |
/goal pause | 일시 정지 (Stop hook 일시 해제) | 중간에 다른 작업이 필요할 때 |
/goal resume | 재개 | pause 이후 원래 목표 복귀 시 |
/goal clear | 목표 폐기 | 작업 취소 또는 방향 전환 시 |
/goal complete | 강제 완료 처리 | Haiku가 완료를 못 잡을 때 수동 닫기 |
기본 사용 예시
# 완료 조건을 자연어로 정의하고 바로 실행
/goal find and fix the flaky auth tests in apps/api
# 현재 목표 상태 확인
/goal status
# 장기 작업에 토큰 예산 지정 (비용 안전장치)
/goal --tokens 250K do deep research on RAG techniques and build a working prototype with eval harness
설정 파일 자동 등록
/goal을 사용하면 ~/.claude/settings.json 또는 .claude/settings.json에 Stop hook이 자동으로 등록됩니다. Haiku 외에 다른 small fast model을 지정하고 싶다면 해당 설정 파일에서 평가 모델을 변경할 수 있습니다.
실전 활용 시나리오 4개
시나리오 1: 야간 자동 테스트 수정
퇴근 전 한 줄만 입력하고 다음 날 아침에 PR을 받는 방식입니다.
/goal find and fix the flaky auth tests in apps/api
Haiku가 매 턴마다 "테스트 통과했어?"를 확인합니다. 아직 실패하는 테스트가 있으면 Claude는 계속 원인을 찾고 수정합니다. 모든 테스트가 통과되는 시점에야 세션이 종료됩니다.
시나리오 2: 장기 리서치 + 프로토타입
심층 조사와 작동하는 구현체가 함께 필요한 경우입니다. 토큰 예산(--tokens 250K)을 지정해 비용 폭주를 막는 것이 핵심입니다.
/goal --tokens 250K do deep research on RAG techniques and build a working prototype with eval harness
다중 도구 호출과 반복 검증이 자동으로 이루어지고, 250K 토큰 소진 또는 프로토타입 완성 중 먼저 도달하는 시점에 세션이 닫힙니다.
시나리오 3: 디펜던시 업데이트 자동화
수십 개의 패키지를 일일이 확인하고 PR을 여는 반복 작업을 한 줄로 위임합니다.
/goal scan repo for outdated deps, open PRs for safe minor bumps, flag breaking changes
Claude는 의존성 전체를 스캔하고, 안전한 minor 버전 업데이트는 PR을 열고, 주요 변경(breaking change)은 목록으로 정리해 보고합니다. Haiku가 "모든 안전한 deps가 PR로 처리됐는가"를 기준으로 완료를 판정합니다.
시나리오 4: 스키마 마이그레이션
before-state와 after-state를 명확하게 정의하면, Stop hook이 "마이그레이션 검증 통과까지" 상태를 유지합니다. 마이그레이션 스크립트 작성 → 실행 → 검증 → 실패 시 수정의 루프를 Claude가 자율 반복합니다.
/goal migrate users table to new schema: add locale column, backfill from preferences json, verify row counts match before and after
Codex /goal vs Claude /goal 비교
두 도구 모두 "멈추지 않는 에이전트"를 목표로 하지만, 접근 방식이 근본적으로 다릅니다.
| 항목 | Claude /goal | Codex /goal |
|---|---|---|
| 핵심 메타포 | 채점관이 채점표로 검수 | 운전자가 페달 안 밟으면 계속 달림 |
| 정지 판단 | 별도 Haiku grader + 완료 조건 | 에이전트 루프 + 수동 컨트롤 |
| 출력 상태값 | satisfied / needs_revision / max_iter / failed | continue / pause / complete |
| 완료 조건 정의 | 자연어 (rubric 선택적) | rubric 강제 |
| 평가 컨텍스트 | grader가 별도 컨텍스트에서 채점 | 단일 에이전트 루프 내 자체 판단 |
| 적합한 작업 | PRD, 보고서, 마이그레이션 (측정 가능한 결과물) | 테스트 수정, 리팩토링 (셸 반복) |
한 줄 결론: Claude는 "품질 게이트", Codex는 "지속 엔진"입니다.
Claude /goal은 결과물의 품질을 외부 평가자가 검수하는 방식이라, 완료 기준이 명확한 산출물(문서, 마이그레이션, 보고서)에 적합합니다. Codex /goal은 셸 명령어 반복이나 코드 변환처럼 실행 자체가 완료 증거가 되는 작업에 더 자연스럽습니다.
커뮤니티에서는 Codex-style 변종인 jthack/claude-goal(GitHub)도 포팅되어 있어, Claude 환경에서 Codex-style 동작을 원할 경우 참고할 수 있습니다.
함정과 주의사항
Claude Code goal 스킬을 실전에 투입하기 전에 반드시 알아야 할 6가지 함정입니다.
1. Grader 환각
Haiku가 실제로 완료되지 않은 작업을 "완료"로 잘못 판단할 수 있습니다. 완료 조건을 모호하게 쓸수록 이 위험이 커집니다. "잘 고쳐줘"보다 "인증 테스트 12개가 모두 통과해야 한다"처럼 측정 가능한 조건으로 작성하세요.
2. 무한 루프 비용
--tokens 옵션을 지정하지 않으면 이론적으로 무한히 실행될 수 있습니다. 야간 자동화나 장기 작업에서는 반드시 --tokens 250K 형태의 예산을 설정하세요.
# 위험: 토큰 예산 없음
/goal refactor the entire codebase to TypeScript
# 안전: 토큰 예산 명시
/goal --tokens 300K refactor the entire codebase to TypeScript
3. Stop hook 충돌
이미 .claude/settings.json에 커스텀 Stop hook이 등록되어 있다면, /goal이 추가하는 Stop hook과 우선순위 충돌이 발생할 수 있습니다. 기존 Stop hook이 있다면 /goal 사용 전에 반드시 우선순위를 검증하세요.
4. /goal complete 우회
사용자가 /goal complete로 강제 닫기를 할 수 있어, 작업의 실제 완료를 완전히 보장하지는 않습니다. 팀 환경에서는 이 명령어의 사용 기준을 명확히 해두는 것이 좋습니다.
5. Rubric 부재 문제
Codex /goal은 rubric(채점 기준표)을 강제하지만, Claude /goal은 자연어 조건만으로도 작동합니다. 편리하지만 조건이 모호하면 종료 판단도 모호해집니다. 가능하면 완료 조건을 체크리스트 형태로 구체화하세요.
6. 세션 스코프 한계
/goal은 세션이 종료되면 함께 사라집니다. 지속성이 없기 때문에, 세션 중단 후 재시작하면 이전 목표를 다시 입력해야 합니다.
결론: 개발자는 목표만 정의한다
Anthropic이 "Code with Claude 2026" 컨퍼런스에서 내건 메시지는 명확합니다. "개발자는 목표만 정의하고, AI가 실행을 책임진다."
/goal은 이 비전의 가장 작은 단위입니다. Dreaming(과거 세션 학습), Outcomes(rubric grading), Multi-agent orchestration, Claude Finance, Add-ins 등 5대 발표 중 Outcomes 패밀리에 속하는 /goal은 한 줄로 위임하는 자동 실행 게이트입니다.
Stop hook과 별도 평가 모델의 결합이라는 구조는 단순해 보이지만, 실제로는 AI가 자기 완료를 주관적으로 판단하던 방식에서 벗어나 외부 기준으로 검수받는 패러다임 전환을 의미합니다.
야간 테스트 수정, 장기 리서치, 디펜던시 관리, 스키마 마이그레이션처럼 완료 조건이 측정 가능한 작업이라면 지금 바로 적용해볼 수 있습니다. 단, Grader 환각과 무한 루프 비용이라는 두 가지 함정은 실전 투입 전 반드시 대비하세요.
공식 문서에서 /goal의 전체 옵션과 설정 방법을 확인하실 수 있습니다.
공식 문서: https://code.claude.com/docs/en/goal
자주 묻는 질문 (FAQ)
Q: /goal은 Claude Code 유료 플랜에서만 사용할 수 있나요?
공식 문서 기준으로 Claude Code 최신 버전과 Haiku(또는 사용자 지정 small fast model)에 대한 접근 권한이 필요합니다. 별도 유료 제한에 대한 명시적 언급은 현재 공식 문서에 없으나, Claude Code 설치 환경을 먼저 확인하시는 것을 권장합니다.
Q: /goal이 실행되는 동안 다른 작업을 해도 되나요?
/goal pause로 일시 정지 후 다른 작업을 진행하고, 완료 후 /goal resume으로 재개할 수 있습니다. 다만 세션이 완전히 종료되면 goal도 사라지므로 주의가 필요합니다.
Q: Haiku 대신 다른 모델을 평가자로 쓸 수 있나요?
네, .claude/settings.json에서 평가 모델을 변경할 수 있습니다. 단, Haiku처럼 빠르고 비용이 낮은 small fast model을 사용하는 것이 권장됩니다. 평가자에 대형 모델을 쓰면 비용이 급격히 증가합니다.
Q: 완료 조건은 어떻게 써야 가장 효과적인가요?
"잘 해줘"처럼 모호한 표현보다 "테스트 12개가 모두 green", "PR 3개가 열려 있어야 함"처럼 측정 가능한 완료 조건을 작성하세요. Grader 환각을 줄이는 가장 효과적인 방법입니다.
참고 자료
| # | 출처 | 유형 |
|---|---|---|
| 1 | Claude Code /goal 공식 문서 | 공식 docs |
| 2 | Anthropic Agent SDK Hooks 공식 문서 | 공식 hooks docs |
| 3 | Anthropic Claude Code 공식 페이지 | Anthropic 공식 |
| 4 | jthack/claude-goal (GitHub, Codex-style 포팅) | 커뮤니티 |
| 5 | Codex /goal vs Claude Managed Outcomes 비교 분석 | 비교 분석 |
| 6 | Code with Claude 2026 출시 발표 (MindStudio) | 출시 발표 |
| 7 | Simon Willison - Code with Claude 2026 라이브 블로그 | 라이브 블로그 |
| 8 | Codex Changelog April 2026 | Codex changelog |
| 9 | Claude Code Agentic Workflow Patterns | 워크플로우 패턴 |
| 10 | Stop Hook Task Enforcement 가이드 | Stop hook 가이드 |