Follow a `goal` in codex
TMT장기 작업을 위해 Codex에 지속적인 목표를 부여하세요.
Codex가 검증 가능한 종료 조건에 도달할 때까지 여러 턴에 걸쳐 계속 작업해야 하는 경우 /goal을 사용하세요.
적합한 경우
- 성공 조건과 검증 루프가 명확한 장기 코딩 작업
- 코드 마이그레이션, 대규모 리팩터링, 배포 재시도 루프, 실험, 게임, 사이드 프로젝트처럼 Codex가 범위를 정해 꾸준히 진척을 낼 수 있는 작업
- 명확한 성공 기준을 가지고 장기간의 실험을 돌려야 하는 팀
Starter 프롬프트
/goal [objective]를 완료하되, [verifiable end state]에 도달할 때까지 멈추지 말 것.소개
한 번의 일반 턴으로 멈추는 것이 아니라, 하나의 지속적인 목표를 향해 Codex가 계속 작업하도록 하고 싶을 때 /goal을 사용하세요. 이 기능은 명확한 목표, 검증 루프가 있고, 매 단계마다 당신이 일일이 조정하지 않아도 Codex가 스스로 진척을 낼 수 있는 여지가 충분한 작업에 유용합니다. /goal을 사용하면 Codex는 여러 시간 동안 사용자 입력 없이도 독립적으로 작업을 이어갈 수 있습니다.
/goal은 실험적인 Codex CLI 기능입니다. /experimental에서 활성화하거나, config.toml의 [features] 아래에 goals = true를 추가하세요. 그런 다음 /goal <objective>로 목표를 설정하고, /goal로 현재 목표를 확인하며, 실행을 제어해야 할 때 /goal pause, /goal resume, /goal clear를 사용해 일시 중지·재개·초기화를 할 수 있습니다.
작업을 올바르게 고르기
좋은 목표는 하나의 프롬프트로 끝나기에는 크지만, 끝이 보이지 않는 백로그만큼 방대한 것도 아닙니다. Codex가 무엇을 달성해야 하는지, 무엇은 건드리지 말아야 하는지, 어떻게 진척을 검증할지, 언제 멈춰야 하는지를 정의해야 합니다.
다음과 같은 경우에 특히 잘 맞습니다:
- 대상 스택, 동등성(패리티) 검사, 제약 조건이 명확한 코드 마이그레이션
- 각 체크포인트마다 Codex가 테스트를 실행할 수 있는 대규모 리팩터링
- Codex가 작동하는 산출물을 계속 개선해 나갈 수 있는 실험, 게임, 프로토타입
서로 연관성이 낮은 작업 목록을 느슨하게 나열해두고 목표로 사용하는 것은 피하세요.
루프 설정하기
- 하나의 목표와 하나의 종료 조건을 명시합니다.
- Codex가 가장 먼저 읽어야 하는 파일, 문서, 이슈, 로그, 계획을 가리켜 줍니다.
- 진척을 증명해 줄 명령어나 산출물을 정의합니다.
- Codex가 체크포인트 단위로 작업하고 짧은 진행 로그를 유지하도록 지시합니다.
- 실행 중에는
/goal로 상태를 조회합니다. - 실행이 완료되었거나, 막혔거나, 방향을 바꿔야 할 때 목표를 일시 중지, 재개 또는 초기화합니다.
중요한 것은 ‘계약’입니다. 시작하기 전에 Codex는 ‘완료’가 무엇을 의미하는지 알고 있어야 합니다. 목표가 마이그레이션이라면, “완료”는 새 경로가 계약 테스트를 통과하고, 기존 경로에 여전히 롤백 경로가 남아 있는 상태일 수 있습니다. 목표가 게임이나 프로토타입이라면, “완료”는 앱이 빌드·실행되고, 입력으로 주어진 레퍼런스나 기대 동작과 일치하는 상태일 수 있습니다.
Codex에게 도움을 요청하세요. 먼저 만들고 싶은 것에 대해 대화를 나눈 다음, 그 대화에서 곧바로 목표를 설정하고 작업을 시작해 달라고 요청할 수 있습니다.
Codex가 독립적으로 작업하도록 두기
목표 수행 중에는 실행을 신뢰할 수 있도록, 간결한 진행 보고를 요청하세요. 유용한 상태 업데이트는 현재 체크포인트, 검증된 내용, 남은 작업, Codex가 막혀 있는지 여부를 함께 알려줍니다. 상태가 두루뭉술해지기 시작하면, 그때그때 지시를 덧붙이기보다는 목표를 더 구체화하세요. 다음에 어떤 체크포인트가 중요한지, 어떤 명령어가 이를 증명하는지, 무엇을 계기로 일시 중지해야 하는지를 명확히 알려주세요.
Codex가 목표를 따라가는 동안에는, 당신이 계속 지켜보지 않아도 여러 시간 동안 독립적으로 작업할 수 있습니다. Codex는 종료 조건에 도달했다고 상당한 확신이 들면 실행을 멈추므로, /goal을 굳이 모니터링할 필요가 없는 백그라운드 작업으로 생각하면 됩니다.
예시 목표
마이그레이션
게임을 새 스택으로 옮기든, 모바일 앱을 새 플랫폼으로 옮기든, 코드베이스를 새 프레임워크로 옮기든, /goal을 사용해 Codex가 마이그레이션을 수행하게 할 수 있습니다:
/goal 이 프로젝트를 `[legacy stack or system]에서 [target stack or system]으로 마이그레이션할 것. playwright interactive를 사용해 출력 결과를 검증하여, 모든 화면이 시각적으로 정확히 동일하게 유지되도록 할 것.프로토타입 만들기
새 앱을 처음부터 만들든, 새 게임을 만들든, 새 기능을 만들든, /goal을 사용해 Codex가 다듬어진 첫 버전을 완성하도록 할 수 있습니다. PLAN.md 파일을 사용해 만들고자 하는 것을 정밀하게 설명하면, 첫 버전 제작에 가이드로 활용할 수 있습니다.
/goal PLAN.md를 구현하되, 각 마일스톤마다 테스트를 만들고 playwright interactive로 결과를 검증할 것. [필요하다면 레퍼런스 화면을 포함하세요]프롬프트 최적화
평가(evals) 스위트가 있다면, /goal을 사용해 평가 결과에 맞춰 프롬프트를 최적화할 수 있습니다. Codex는 실패 사례를 살펴보고, 프롬프트를 수정하고, 평가를 다시 실행하며, 점수가 개선되거나 설정한 종료 조건에 도달할 때까지 계속 반복할 수 있습니다.
/goal [prompt file or directory] 안의 프롬프트들을 최적화하여, 평가 스위트가 [target score or pass rate]에 도달할 때까지 반복할 것. 각 변경 뒤에는 [eval command]를 실행하고, 실패한 케이스를 살펴보며, 프롬프트 수정은 최소한·국소적으로 유지할 것. 목표에 도달했거나, 더 이상의 프롬프트 변경이 제품이나 정책 가이드 없이는 어렵다고 판단되면 중단할 것.