goal
Claude는 한 턴이 끝나면 멈춥니다. 그래서 작업이 길어지면 "계속해"를 몇 번이고 입력하게 되는데, 이러면 사실상 내가 루프 역할을 하고 있는 셈입니다.
/goal은 이 루프를 Claude한테 넘기는 명령어입니다. 완료 조건을 설정해두면 그 조건이 만족될 때까지 Claude가 여러 턴에 걸쳐 계속 작업합니다.
그렇다면 goal은 어떻게 써야 할까. 먼저 검증 가능해야 합니다. 테스트 통과, 빌드 성공, 파일 생성처럼 됐는지 안 됐는지 확인할 수 있는 조건이어야 합니다. "코드를 더 좋게" 같은 모호한 조건은 언제 끝내야 할지 판단할 수가 없습니다. 그리고 목표 하나에는 명확한 종료선 하나만 둡니다.
비슷한 개념으로 Ralph Loop와 Loop Engineering이 있습니다. 셋 다 에이전트를 반복 실행시킨다는 점은 같지만 어디서 도는지와 제어 수준이 다릅니다. Ralph Loop는 외부 스크립트에서 돌고 제어 수준이 낮습니다. /goal은 Claude Code 내장 명령이라 제어 수준이 중간입니다. Loop Engineering은 직접 설계한 시스템이라 제어 수준이 가장 높습니다.
마지막으로 정리하자면 검증 가능한 종료 조건이 없는 루프는 토큰만 태웁니다. 시작하기 전에 "완료"가 뭔지부터 정의해야 합니다.