logo

목표를 향해 Claude 계속 실행하기

/goal은 완료 조건을 설정해 Claude가 그 조건을 향해 계속 작업하게 하는 명령입니다. 사용자가 매 단계마다 다시 프롬프트를 입력하지 않아도, Claude는 한 차례 작업을 마친 뒤 목표가 충족되었는지 확인하고 필요하면 다음 작업을 이어갑니다. 조건이 충족되면 목표는 자동으로 종료됩니다.

검증 가능한 최종 상태가 있는 실질적인 작업에 목표를 사용합니다.

  • 모든 호출 지점이 컴파일되고 테스트가 통과할 때까지 모듈을 새 API로 마이그레이션하기
  • 모든 수용 기준이 충족될 때까지 설계 문서 구현하기
  • 큰 파일을 나누어 각 파일이 크기 제한 이하가 되게 만들기
  • 지정된 이슈 목록이 빌 때까지 순서대로 처리하기

/goal은 Claude Code v2.1.139 이상에서 사용할 수 있습니다.

다른 자율 워크플로우와 비교

다음 세 가지 방식은 사용자 입력 없이 현재 세션을 이어 실행할 수 있습니다. 언제 다음 작업을 시작해야 하는지를 기준으로 선택합니다.

방식다음 작업 시작 시점멈추는 시점
/goal이전 작업이 끝났을 때평가 모델이 조건이 충족되었다고 판단했을 때
/loop정해진 시간 간격이 지났을 때사용자가 중지하거나 Claude가 완료되었다고 판단할 때
중지 훅이전 작업이 끝났을 때사용자의 스크립트나 프롬프트가 중지를 결정했을 때

/goal과 중지 훅은 모두 Claude가 한 차례 작업을 마칠 때마다 실행됩니다. /goal은 현재 세션에서만 쓰는 간단한 목표 설정 방식입니다. 조건을 입력하면 그 세션에서만 활성화됩니다. 중지 훅은 설정 파일에 정의되며, 적용 범위 안의 모든 세션에 동작합니다. 스크립트로 결정적인 검사를 하거나, 프롬프트를 사용해 모델 평가를 실행할 수 있습니다.

자동 모드는 한 차례 작업 안에서 도구 호출을 승인하지만, 새 작업을 시작하지는 않습니다. Claude는 스스로 작업이 끝났다고 판단하면 멈춥니다. 반면 /goal은 각 작업 뒤에 조건을 확인하는 별도 평가자를 붙입니다. 그래서 완료 여부는 작업을 수행하는 Claude가 아니라 평가자가 판단합니다. 두 방식은 함께 사용할 수 있습니다. 자동 모드는 도구 호출마다 승인을 묻는 과정을 줄이고, /goal은 작업 차례마다 다시 프롬프트를 입력하는 과정을 줄입니다.

위 방식들은 현재 열린 세션을 계속 실행합니다. 야간 테스트나 아침 이슈 분류처럼 열린 세션과 무관하게 실행할 작업은 따로 예약할 수 있습니다. 클라우드 루틴과 데스크톱 예약 작업은 예약 옵션을 참고하세요.

/goal 사용

세션당 하나의 목표만 활성화할 수 있습니다.

목표 설정

/goal 다음에 만족해야 하는 조건을 입력합니다. 이미 활성화된 목표가 있으면 새 목표가 기존 목표를 대체합니다.

/goal test/auth의 모든 테스트가 통과하고 린트 단계도 깨끗하게 통과한다

목표를 설정하면 Claude는 조건 자체를 지시문으로 삼아 바로 작업을 시작합니다. 별도의 프롬프트를 추가로 보낼 필요가 없습니다. 목표가 활성화되어 있는 동안에는 ◎ /goal active 표시기가 목표가 실행된 시간을 보여 줍니다.

Claude가 한 차례 작업을 마칠 때마다 평가자는 조건이 충족되었는지 판단하고 짧은 이유를 남깁니다. 가장 최근의 이유는 상태 화면과 대화 기록에 표시되므로, Claude가 다음에 무엇을 해야 한다고 판단했는지 확인할 수 있습니다.

효과적인 조건 작성

평가자는 Claude가 대화에 남긴 내용을 기준으로 조건을 판단합니다. 직접 명령을 실행하거나 파일을 읽지는 않습니다. 따라서 조건은 Claude의 출력으로 입증할 수 있는 형태여야 합니다. 예를 들어 "test/auth의 모든 테스트 통과"는 Claude가 테스트를 실행하고 그 결과를 대화에 남길 수 있으므로 평가자가 판단할 수 있습니다.

여러 차례 작업에 걸쳐 유지되는 조건에는 보통 다음 요소가 들어갑니다.

  • 측정 가능한 최종 상태 하나: 테스트 결과, 빌드 종료 코드, 파일 수, 빈 대기열 등
  • 명시적인 확인 방법: Claude가 성공을 입증하는 방법. 예: "npm test가 종료 코드 0으로 끝남", "git status가 깨끗함"
  • 중요한 제약 조건: 작업 중 바뀌면 안 되는 것. 예: "다른 테스트 파일은 수정하지 않음"

조건은 최대 4,000자까지 입력할 수 있습니다.

목표가 너무 오래 실행되지 않게 하려면 조건에 작업 횟수나 시간 제한을 함께 적습니다. 예를 들어 또는 20번 작업한 뒤 멈춘다처럼 쓸 수 있습니다. Claude는 매 작업마다 해당 제한에 대한 진행 상황을 보고하고, 평가자는 대화 기록을 보고 제한 도달 여부를 판단합니다.

상태 확인

인수 없이 /goal을 실행하면 현재 상태를 확인할 수 있습니다.

/goal

활성 목표가 있으면 상태 화면에 다음 내용이 표시됩니다.

  • 조건
  • 실행 시간
  • 평가된 작업 횟수
  • 현재 토큰 사용량
  • 평가자의 가장 최근 판단 이유

현재 활성 목표는 없지만 세션 중에 달성된 목표가 있다면, 달성된 조건과 함께 실행 시간, 작업 횟수, 토큰 사용량이 표시됩니다.

목표 지우기

조건이 충족되기 전에 활성 목표를 제거하려면 /goal clear를 실행합니다.

/goal clear

stop, off, reset, none, cancelclear의 별칭으로 사용할 수 있습니다. /clear로 새 대화를 시작하면 활성 목표도 함께 제거됩니다.

활성 목표로 재개

세션이 종료될 때 목표가 아직 활성 상태였다면, --resume 또는 --continue로 그 세션을 재개할 때 목표도 함께 복원됩니다. 조건은 유지되지만 작업 횟수, 타이머, 토큰 사용량 기준선은 재개 시점부터 다시 계산됩니다. 이미 달성되었거나 지운 목표는 복원되지 않습니다.

비대화형으로 실행

/goal비대화형 모드, 데스크톱 앱, 원격 제어에서도 작동합니다. -p로 목표를 설정하면 한 번의 호출 안에서 목표가 완료될 때까지 실행합니다.

claude -p "/goal 이번 주에 병합된 모든 PR에 대해 CHANGELOG.md 항목이 있다"

조건이 충족되기 전에 비대화형 목표를 멈추려면 Ctrl+C로 프로세스를 중단합니다.

평가 작동 방식

/goal은 세션 범위에서 동작하는 프롬프트 기반 중지 훅을 감싼 기능입니다. Claude가 한 차례 작업을 마칠 때마다 조건과 지금까지의 대화가 작고 빠른 모델로 전송됩니다. 기본값은 Haiku입니다. 이 모델은 조건 충족 여부와 짧은 이유를 반환합니다. "아니오"가 나오면 Claude는 계속 작업하고, 평가 이유는 다음 작업의 지침에 포함됩니다. "예"가 나오면 목표가 종료되고, 대화 기록에 달성된 내용이 남습니다.

평가자는 현재 세션에 설정된 제공자에서 실행됩니다. 도구를 호출하지 않으므로 Claude가 이미 대화에 남긴 내용만 판단할 수 있습니다.

평가에 사용되는 토큰은 설정된 작고 빠른 모델 기준으로 과금됩니다. 보통 Claude의 본 작업에서 쓰는 토큰에 비하면 매우 적은 양입니다.

요구 사항

/goal의 평가자는 훅 시스템의 일부이므로, 신뢰 확인을 마친 워크스페이스에서만 실행됩니다. disableAllHooks가 어느 설정 수준에서든 켜져 있거나, 관리 설정에서 allowManagedHooksOnly가 켜져 있으면 /goal을 사용할 수 없습니다. 이 경우 명령은 아무 일도 하지 않고 넘어가지 않고, 사용할 수 없는 이유를 알려 줍니다.

더 보기

Previous
일정에 따라 프롬프트 실행