Goal
Goal은 Qwen Code가 명시된 조건이 충족될 때까지 턴 간에 작업을 계속 유지하게 합니다. /goal <objective>로 설정하면, 각 턴 후에 독립적인 검증자가 트랜스크립트를 확인하고, 목표가 완료로 검증되거나, 차단으로 검증되거나, 일시 중지되거나, 해제될 때까지 세션이 계속 진행됩니다.
명령어
| 명령어 | 동작 |
|---|---|
/goal | 현재 Goal과 그 상태를 표시합니다. |
/goal <objective> | Goal을 생성하거나 활성 Goal을 교체합니다. |
/goal set <objective> | 위와 동일, 명시적 형식. |
/goal edit <objective> | 처음부터 다시 시작하지 않고 활성 Goal의 문구를 수정합니다. |
/goal pause / resume | Goal을 유지한 채 루프를 중지하거나 계속합니다. |
/goal clear | Goal을 제거합니다. |
/goal-draft <intent> | 설정 전에 목표를 대신 작성해 줍니다 (아래 참조). |
Goal을 생성, 수정 또는 재개하려면 신뢰하는 워크스페이스(/trust)가 필요합니다. 헤드리스 사용법은 헤드리스 모드에서 다룹니다.
Goal 판정 방식
검증자는 자체적으로 명령어를 실행하거나 파일을 읽지 않습니다. 트랜스크립트에 이미 있는 내용만 증거로 봅니다:
- 보이는 어시스턴트 출력과 도구 결과가 증거로 인정됩니다. 목표 텍스트, 사용자 프롬프트, 모델의 숨겨진 추론은 증거가 되지 않습니다.
- 출력된 텍스트는 텍스트가 출력되었다는 것만 증명합니다. 테스트가 통과했다는 주장, 파일이 변경되었다는 주장, 원격이 업데이트되었다는 주장은 트랜스크립트에 해당 도구 결과가 필요합니다.
- 사용자가 확인, 선택 또는 승인했다는 주장은 사용자의 실제 메시지가 필요합니다. 검증자는 이를 가정하는 제안을 거부합니다.
- 증거가 없으면 판정은 “아직 완료되지 않음”이지 “완료”가 아닙니다. 아무도 증거로 확인할 수 없는 조건은 한도가 멈출 때까지 루프를 계속 실행합니다.
따라서 목표는 에이전트가 증거를 생산하도록 만들어야 합니다: 명시된 검사를 실행하고 결정적인 출력을 보여줘야 합니다.
좋은 목표 작성법
목표에 다음을 이 순서로 포함하세요:
| 부분 | 작성 내용 |
|---|---|
Outcome: | 완료되었을 때 참이 되는 것을 한 문장으로. |
Done when: | 번호가 매겨진 이진 검사. 최소 하나는 명령어와 예상 종료 코드 또는 출력 라인을 명시하고 해당 라인을 붙여넣도록 요청해야 합니다. |
Must not: | 건드리지 않을 파일, 약화시키지 않을 테스트나 임계값, 취하지 않을 되돌릴 수 없는 작업(push, delete, publish). |
Budget: | 포기할 시점: “20턴 후 차단으로 중지” 또는 시간 제한. |
On block: | 막혔을 때 보고할 내용과 사람이 내려야 할 결정. |
Context: | 에이전트가 워크스페이스에서 찾을 수 없는 사실만: 브랜치, 환경, 이전 결정. |
하나의 목표로 roughly 1,200자 이하로 유지하세요. /goal set과 /goal edit은 개행을 공백으로 변환하므로, 줄바꿈에 의존하지 말고 항목에 번호를 매기세요.
| 약한 목표 | 실패 이유 | 더 나은 목표 |
|---|---|---|
| make checkout faster | 임계값도 검사도 없음. | Outcome: checkout p95 is below 250 ms. Done when: 1) npm run bench:checkout exits 0 and prints p95 < 250 (paste the line); 2) npm test exits 0. Must not: change the benchmark or skip tests. Budget: stop as blocked after 20 turns. |
| clean up the auth module | ”clean”은 증거가 없음. | 관찰 가능한 것을 질문하세요: src/auth에서 린트 경고 0개, 커버리지 임계값, 파일 수. |
| ship the release | 되돌릴 수 없으며 사람 결정이 필요. | 검사 가능한 출시 전 상태로 좁히고(태그 존재, npm run release:dry-run 종료 0), “do not publish”를 Must not에 넣으세요. |
| after I confirm the design | 검증자는 일어나지 않은 확인을 볼 수 없음. | On block:으로 옮겨 사람이 내려야 할 결정으로 명시하세요. |
/goal-draft로 작성하기
/goal-draft <what you want done>는 위 과정을 대신 수행하는 번들 skill입니다. 요청이 Goal인지 확인하고, 추측 대신 워크스페이스를 읽어 실제 테스트와 린트 명령어를 찾고, 답변이 검사나 범위를 바꿀 때만 최대 한 번의 객관식 질문을 하고, 위 형식으로 목표를 초안 작성하고, 자체 검사를 실행하고, 그대로 실행할 수 있는 /goal set … 라인을 출력합니다. 자체적으로 작업을 시작하지 않으며 대신 Goal을 설정하지도 않습니다.
기존 목표를 전달하여 더 엄격한 버전을 얻을 수 있습니다: /goal-draft all tests pass and the lint is clean.
이 skill은 읽기 전용으로 지시되며, 비변경 도구만 자동 승인됩니다(get_goal, read_file, glob, grep_search). ask_user_question는 의도적으로 자동 승인되지 않으므로, 답변 대화상자가 skill이 답변을 기반으로 초안 작성하기 전에 표시됩니다. 다른 번들 skill과 마찬가지로, goal-draft라는 이름의 프로젝트 또는 개인 skill이 이를 재정의하며, skills.disabled로 끌 수 있습니다. 번들 skill이 발견되는 방식은 Skills를 참조하세요.