# MissionUpdate タスクの **Mission Brief**(`goal` / `done` / `open` / `clarifications`)を更新するメタツール。`allowed_tools` に書かなくても常時利用可能(META_TOOL)。 Mission Brief は毎 movement のシステムプロンプト冒頭に常に描画され、会話が長くなった後やステップをまたいでも消えない「参照点」になる。ユーザーも Overview タブから直接編集できる。 ## いつ使うか - **新規タスクの最初のツール呼び出しで `goal` を必ず set する。** ユーザーが最初に依頼した本質的な要件を verbatim(言い換えず原文のまま)で固定する。後で会話が長くなっても、ここを見れば「本来何を頼まれたか」がぶれない。 - 作業の節目で `done`(完了したマイルストーン)と `open`(残作業・ブロッカー)を更新する。重複作業の防止と、次の一手の見通しに使う。 - ユーザーが途中で補足・制約を足してきたら `clarifications` に記録する(「これは壊さないで」「言語は英語で」など)。 ## 引数 | 引数 | 説明 | |------|------| | `goal` | タスク全体のゴール。ユーザーの本質的な要件を原文で。Markdown 可 | | `done` | これまでに完了した主要マイルストーン。箇条書き推奨 | | `open` | 残っている作業・未解決のブロッカー。箇条書き推奨 | | `clarifications` | ユーザーから追加された補足・制約。Markdown 可 | すべて任意だが、最低1つは指定する必要がある(全フィールド未指定はエラー)。 ## 部分置換セマンティクス **指定したフィールドだけ**が上書きされ、未指定のフィールドは現状のまま残る。`done` だけ渡せば `goal` は変わらない。 ```js // 冒頭: goal を固定 MissionUpdate({ goal: "売上 CSV を月次集計して棒グラフ付き PDF にする" }) // 進行中: 完了分と残りを更新(goal はそのまま) MissionUpdate({ done: "- CSV パース\n- 月次集計", open: "- PDF レンダリング" }) ``` ## 制約・注意 - 各フィールドは **2000 文字**で打ち切られる(超過分は `…[truncated]` 付きで切られる)。要点を簡潔に。 - 全フィールドを空文字で渡すと Mission Brief は**クリア**される。 - **サブタスクなど `local_task` に紐付かない実行コンテキストでは使えない**。その場合は no-op としてエラーを返すので、サブタスク側では呼ばないこと。 - 保存単位はタスク(per-LocalTask)。ジョブや movement 単位ではないので、ASK ラウンドや follow-up メッセージをまたいでも保持される。 ## 関連 ステップ間で得た教訓は `transition` / `complete` の `lessons` フィールドで記録する(Mission Brief とは別系統)。