Goal Prompt
/goal은 에이전트가 완료 조건이 충족될 때까지 작업을 계속 유지합니다. Claude Code와 Codex 모두 한 줄로 받아들이며 최대 4,000자입니다. Claude Code에서는 작은 모델이 각 턴 후에 대화 기록만으로 조건을 다시 평가합니다. 명령어를 실행할 수 없습니다.
종료 가능한 조건을 초안한 다음 포맷팅합니다. 하나의 턴보다 큰 작업에는 종료 지점을 확인할 수 있는 조건이 맞습니다. 하나의 거대한 목표를 작성하는 대신, 작은 목표를 검토와 함께 연결하세요.
초안
AND로 연결하여 포함합니다. "또는(or)"은 절대 사용하지 마십시오. 루프가 더 저렴한 분기를 선택합니다.
- 종료 상태, 활동이 아님 — "인증 코드 마이그레이션"이 아니라 "모든
legacyAuth()호출 지점이auth.verify()를 사용함". 활동은 주장될 수 있지만 종료 상태는 참 또는 거짓입니다. - 먼저 읽을 범위 — 작업 전에 읽을 파일, 이슈, 로그 또는 계획.
- 명시된 확인 — 정확한 명령어와 관찰 가능한 결과("
npm test가 0으로 종료됨"), 그리고 이를 실행하고 출력을 보여주라는 지시. 대화 기록에 남지 않은 결과는 평가자에게 존재하지 않습니다. - 불변 조건 — 변경되지 않아야 할 사항("vendor/ 수정 없이"), 항상 "검사 자체를 약화시키거나, 건너뛰거나, 편집하지 마십시오"를 포함합니다.
- 중지 제한 또는 차단 절 — "또는 20턴 후 중지", "차단되면 중지하고 차단 요인 보고". 이것이 없으면 잘못 작성된 조건이 영원히 반복됩니다. 포맷터가 누락 시 경고합니다. (Claude Code는 세션 재개 시 턴 카운터를 초기화하므로 턴 제한이 조용히 연장됩니다.)
작게 유지하십시오. 모든 제약 조건은 모델이 탐색할 수 있는 상태 공간을 좁힙니다. 가능한 경우 하나의 종료 기준으로 축소하고, 범위와 정의를 참조 파일로 이동하며, 비목표를 제거하십시오. 제약 조건은 실제 쉬운 탈출구를 막을 때만 자리를 차지합니다.
긴 목표의 경우 최종 증거(diff, 보고서, 아티팩트)의 이름을 지정하고 진행 로그 파일을 요구하십시오. 압축 및 재개 시 지속적인 상태를 유지합니다. 요약이 4,000자를 초과하면 세부 사항을 GOAL.md에 넣고 목표에서 해당 파일을 참조하십시오.
누락된 요소를 절대 발명하지 마십시오. 모든 요소를 사용자의 요청, 대화 또는 저장소에 근거하십시오. 추측하지 말고 조회하십시오. 사용 가능한 정보에서 요소를 채울 수 없는 경우에도 사용자가 제공한 내용을 최적화하고 포맷팅한 후, 요소를 생략하고 누락으로 표시하십시오(형식 참조). 발명된 성공 조건이 있는 목표는 잘못된 계약에서 종료됩니다.
쉬운 탈출구 차단
포맷팅하기 전에 작성된 조건을 게으른 모델이 읽는 것처럼 다시 읽으십시오. 의도된 작업을 수행하지 않고 모든 검사를 통과시키는 가장 저렴한 방법은 무엇입니까? 가장 저렴한 방법을 차단하십시오. 이미 가지고 있는 검사를 쌍으로 연결하는 것이 제약 조건을 추가하는 것보다 낫습니다. 가능한 모든 탈출구를 비목표 목록으로 열거하지 마십시오. 반복되는 탈출구:
- 수정 대신 삭제 또는 스텁 — "검색 결과 출력 없음"은 호출자가 사라진 경우에도 참입니다. 이러한 검사를 기능이 여전히 작동한다는 검사와 쌍으로 연결하십시오.
- 하위 집합에서 통과 — 하나의 테스트 파일만 실행, 검색 경로 좁히기, 검사에서 디렉토리 제외.
- 게이트 속이기 — 테스트 건너뛰기/xfail, 예상 출력 하드코딩, 테스트 입력 특수 처리, 검사 편집(불변 조건 규칙).
- 실행하지 않고 주장 — 대화 기록에 검사 출력 없이 완료 또는 차단 선언(출력 표시 규칙).
위와 동일한 규율: 사용 가능한 정보에서 차단할 수 없는 탈출구는 경고로 Missing: 목록에 넣으십시오. 발명되거나 터무니없는 제약 조건은 표시된 격차보다 나쁩니다.
보안 연구 목표
감사 목표를 하나의 종료 기준으로 축소하십시오. 예를 들어, 참조된 위협 모델 파일에서 유효한 고심각도 취약점 하나를 식별, 트리거 및 검증하는 것입니다. 해당 파일은 목표가 아니라 범위, 공격자 능력, 심각도 기준선 및 건너뛸 알려진 결과를 전달합니다. 중립적인 표현을 사용하고("트리거 및 검증", "이것이 악용 가능하다는 증명"이 아님), 입증된 전제 조건을 요구하십시오. 가정된 공격자 접근이 가장 흔한 오탐입니다. 각 결과 후에 검토를 위해 중지하고, 분류되지 않은 보고서를 쌓지 마십시오. 결과를 단독 발견자가 아닌 새로운 에이전트의 두 번째 패스로 검증하십시오.
형식
초안(파일 또는 stdin)에 대해 uv run --no-project {baseDir}/scripts/format_goal_prompt.py --fenced를 실행하십시오. 공백을 한 줄로 축소하고, /goal 접두사, 따옴표 및 펜스를 제거하고, 누락된 중지 절에 대해 경고하며, 4,000자를 초과하는 출력을 거부합니다. 세부 사항을 파일로 줄이거나 이동하고 다시 실행하십시오.
정확히 하나의 펜스 처리된 text 블록, 한 줄을 반환하십시오.
/goal <단일 정규화된 목표>
주변에 산문을 추가하지 마십시오. 단, 체크리스트 요소를 근거할 수 없는 경우는 예외입니다. 그런 다음 블록 뒤에 Missing: 목록을 추가하고, 각 격차당 한 줄씩 사용자에게 무엇을 제공해야 하는지 알려주십시오.
예시
초안:
/goal 인증 모듈 마이그레이션:
- legacyAuth()를 auth.verify()로 교체
- 테스트가 여전히 작동하는지 확인
재초안 및 포맷팅:
/goal 모든 legacyAuth() 호출 지점이 auth.verify()를 사용함: `rg "legacyAuth\(" -t ts` 출력 없음 AND `npm test` 0으로 종료 (둘 다 실행하고 출력 표시), vendor/ 수정 또는 테스트 약화 없이. 차단되면 시도한 경로와 차단 요인을 보고하고 중지하거나 20턴 후 중지.
여기서 npm test는 저장소의 package.json에서 가져온 것이지 추측이 아닙니다. 그리고 이를 일치 항목 없음 검사와 쌍으로 연결하여 가장 저렴한 탈출구인 호출 지점을 마이그레이션 대신 삭제하는 것을 차단합니다. 어떤 요소도 근거할 수 없으면 존재하는 것을 포맷팅하고 격차를 표시하십시오:
초안: 체크아웃 속도 향상, 컨텍스트에 메트릭이나 벤치마크 없음:
/goal 체크아웃 속도 향상
누락:
- 측정 가능한 종료 상태 — 어떤 메트릭과 임계값이 "더 빠름"을 의미하는지
- 검증 — 이를 증명하는 벤치마크 또는 명령어
- 중지 제한 — 예: "또는 20턴 후 중지"