ゴール
ゴールは、宣言された条件が満たされるまで Qwen Code をターンを超えて稼働させ続けます。/goal <objective> で設定します。各ターンの後に独立した検証ツールがトランスクリプトをチェックし、セッションは objective が検証完了、検証ブロック、一時停止、またはクリアされるまで継続します。
コマンド
| コマンド | 動作 |
|---|---|
/goal | 現在のゴールとそのステータスを表示します。 |
/goal <objective> | ゴールを作成するか、アクティブなものを置き換えます。 |
/goal set <objective> | 上と同じ(明示的な形式)。 |
/goal edit <objective> | 最初からやり直すことなく、アクティブなゴールの文言を修正します。 |
/goal pause / resume | ゴールを失うことなくループを停止または再開します。 |
/goal clear | ゴールを削除します。 |
/goal-draft <intent> | 設定前に objective を書いてもらいます(後述)。 |
ゴールの作成、編集、または再開には信頼されたワークスペース(/trust)が必要です。ヘッドレスでの利用方法は ヘッドレスモード を参照してください。
ゴールの判定方法
検証ツールは独自にコマンドを実行したりファイルを読み取ったりすることはありません。トランスクリプトにすでに存在するもののみを確認します。
- 表示されたアシスタントの出力とツールの結果が証拠としてカウントされます。objective のテキスト、あなた自身のプロンプト、およびモデルの非表示の推論は証拠になりません。
- 出力されたテキストは、テキストが出力されたことのみを証明します。テストがパスした、ファイルが変更された、またはリモートが更新されたという主張には、トランスクリプトに対応するツールの結果が必要です。
- あなたが確認、選択、または承認したという主張には、あなたからの実際のメッセージが必要です。検証ツールはそれを想定する提案を拒否します。
- 証拠がない場合、判定は「完了」ではなく「まだ」になります。誰も証拠を示せない条件は、制限が停止するまでループを継続させます。
したがって、objective はエージェントに証拠を生成させるものでなければなりません。名前付きチェックを実行し、決定的な出力を表示させます。
良い objective の書き方
objective に以下の内容を、この順序で含めます。
| 項目 | 書く内容 |
|---|---|
Outcome: | 完了時に何が真になるかを 1 文で。 |
Done when: | 番号付きの二値チェック。少なくとも 1 つはコマンド名と期待される終了コードまたは出力行を指定し、その行を貼り付けるよう求めます。 |
Must not: | 触れてはいけないファイル、弱めてはいけないテストや閾値、実行してはいけない不可逆な操作(push、delete、publish)。 |
Budget: | いつ諦めるか。「20 ターン後にブロックとして停止」または時間制限。 |
On block: | 行き詰まったときに報告すること、および人間が下すべき決定。 |
Context: | エージェントがワークスペース内で見つけられない事実のみ。ブランチ、環境、以前の決定。 |
1 つの objective に約 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 | 「クリーン」には証拠がない。 | 観測可能なものを考える。src/auth の lint 警告ゼロ、カバレッジ閾値、ファイル数。 |
| ship the release | 不可逆であり、人間の判断が必要。 | チェック可能なプレリリース状態(タグの存在、npm run release:dry-run が終了コード 0)に絞り、「公開しない」を Must not に記載。 |
| after I confirm the design | 検証ツールは決して起こらない確認を参照できない。 | On block: に人間が下すべき決定として移動。 |
/goal-draft に書かせる
/goal-draft <what you want done> は、上記を代わりに行うバンドルされたスキルです。リクエストが実際にゴールかどうかをチェックし、推測する代わりにワークスペースを読んで実際のテストコマンドと lint コマンドを確認し、回答がチェックやスコープを変更する場合にのみ選択式の質問を最大 1 ラウンド行い、上記の形式で objective を作成し、セルフチェックを実行し、そのまま実行できる /goal set … の行を出力します。スキル自身が作業を開始したり、ゴールを代わりに設定したりすることはありません。
既存の objective を渡して絞り込むこともできます。例: /goal-draft all tests pass and the lint is clean。
このスキルは読み取り専用として指示されており、非変更ツール(get_goal、read_file、glob、grep_search)のみが自動承認されます。ask_user_question は意図的に自動承認されないため、スキルがあなたの回答からドラフトする前に質問ダイアログが表示されます。他のバンドルスキルと同様に、goal-draft という名前のプロジェクトまたは個人スキルがこれをオーバーライドし、skills.disabled でオフにできます。バンドルスキルの検出方法については スキル を参照してください。