Goals
Goal заставляет Qwen Code работать через ходы до выполнения указанного условия. Установите его с помощью /goal <objective>; после каждого хода независимый верификатор проверяет транскрипт, и сессия продолжается до тех пор, пока цель не будет подтверждена как выполненная, подтверждена как заблокированная, приостановлена или очищена.
Commands
| Command | Поведение |
|---|---|
/goal | Показать текущий Goal и его статус. |
/goal <objective> | Создать Goal или заменить активный. |
/goal set <objective> | То же самое, явная форма. |
/goal edit <objective> | Изменить формулировку активного Goal без начала заново. |
/goal pause / resume | Остановить или продолжить цикл без потери Goal. |
/goal clear | Удалить Goal. |
/goal-draft <intent> | Поручить написание цели перед её установкой (ниже). |
Для создания, редактирования или возобновления Goal требуется доверенное рабочее пространство (/trust). Использование в headless-режиме описано в разделе Headless Mode.
Как Goal выносит суждение
Верификатор никогда не выполняет команды и не читает файлы самостоятельно. Он видит только то, что уже есть в транскрипте:
- Видимый вывод ассистента и результаты инструментов считаются доказательствами. Текст цели, ваши промпты и скрытые рассуждения модели — нет.
- Напечатанный текст доказывает только то, что текст был напечатан. Утверждение о прохождении тестов, изменении файла или обновлении remote требует соответствующего результата инструмента в транскрипте.
- Утверждение о том, что вы подтвердили, выбрали или одобрили что-то, требует реального сообщения от вас; верификатор отклоняет предложения, которые это предполагают.
- При отсутствии доказательства вердикт — «ещё не», а не «готово». Условие, которое никто не может подтвердить, поддерживает работу цикла, пока его не остановит лимит.
Поэтому цель должна заставлять агента производить доказательства: запускать указанную проверку и показывать решающий вывод.
Написание хорошей цели
Включите эти части в цель, в таком порядке:
| Часть | Что писать |
|---|---|
Outcome: | Одно предложение: что истинно, когда цель достигнута. |
Done when: | Нумерованные бинарные проверки. Хотя бы одна называет команду и её ожидаемый код выхода или строку вывода и просит вставить эту строку. |
Must not: | Файлы, которые не нужно трогать, тесты или пороги, которые не нужно ослаблять, необратимые действия (push, delete, publish), которые не нужно выполнять. |
Budget: | Когда сдаться: «stop as blocked after 20 turns» или ограничение по времени. |
On block: | Что сообщать при застревании и какое решение должен принять человек. |
Context: | Только факты, которые агент не может найти в рабочем пространстве: ветка, окружение, предыдущие решения. |
Ограничьтесь одной целью и примерно 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» нет доказательств. | Спросите, что будет наблюдаемо: ноль предупреждений lint в src/auth, порог покрытия, количество файлов. |
| 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 <что нужно сделать> — это встроенный skill, который делает всё вышеописанное за вас. Он проверяет, является ли запрос Goal вообще, читает рабочее пространство для поиска реальных команд тестов и lint вместо угадывания, задаёт не более одного раунда вопросов с выбором, когда ответ влияет на проверку или область, составляет цель в формате выше, запускает самопроверку и выводит строку /goal set …, которую можно выполнить как есть. Он никогда не начинает работу самостоятельно и никогда не устанавливает Goal от вашего имени.
Передайте существующую цель для её ужесточения: /goal-draft all tests pass and the lint is clean.
Skill проинструирован быть read-only, и только его неизменяющие инструменты автоматически одобряются (get_goal, read_file, glob, grep_search). ask_user_question намеренно не одобряется автоматически, поэтому его диалог вопросов отображается перед тем, как skill составит черновик из ваших ответов. Как и другие встроенные skills, проект или личный skill с именем goal-draft переопределяет его, а skills.disabled может его отключить. См. Skills для информации об обнаружении встроенных skills.