コーディングタスク

コーディングのボードは、書かれたタスクを、望むだけ少ない手間でマージ済みのコードに変えます:必要なことを書き、先に計画 — 対話式のプランニングエージェントと一緒にレビューしやすいフェーズへ分ける — か、すぐに開始し、エージェントが自分専用の git worktree で働くのを見守り、行に結び付いたコメントで差分をレビューして統合します — 承認すると、変更を書いたエージェント自身がそれをマージします(またはプルリクエストを作成します)。各段階が 1 つの列で、各タスクはそのどれかにあります。

サイドバーでは、コーディングタスクセクションがセッションのすぐ下、オートメーションと仮想マシンの上にあります。その見出しには、開いているタスクの数、レビューで待っているタスクを数えるオレンジのバッジ、エージェントがあなたの入力を必要としているときの赤いバッジ、そして新しいタスクのための + が出ます。その下の 1 行がボードを要約し(計画済み 2 · 進行中 1 · レビュー待ち 1)、ボードが空なら未完了のタスクはありませんと表示されます。セクションのタイトル(コーディングタスクを開く (⇧⌘T))かその行をクリックすると、コーディングタスクという題のボードが開きます。⇧⌘T(ワークスペース › タスク)を押すか、⌘K パレットでコーディングタスクを選んでもかまいません。

サイドバー(タスクセクションが選ばれている)の隣にあるコーディングタスクのボード。バックログには「API にレート制限を加える」というタスクがあり「先に計画」と「開始」を差し出している。計画の列には番号の付いた 2 つのフェーズがあり、2 つ目はフェーズ 1 の後ろで施錠されている。進行中には「不安定な websocket テストを直す」が起動中。レビューにはブランチ wt/settings-sqlite-0719 上の「設定を SQLite へ移す」がコメント 1 件付きでレビュー待ち。完了には main にマージされたタスク。右上に「新規タスク」ボタン。
列そこにあるもの
バックログ書いたけれどまだ始めていないタスク。それぞれが先に計画と開始を差し出し、セッションやルームに割り当てることもできます。
計画プランナーのエージェントがタスクから並べたフェーズ — 番号付きで、依存関係を踏まえ、まとめて選べます。
進行中エージェントがいま取り組んでいるタスクとフェーズ。それぞれ専用の worktree の中にあり、それぞれサイドバーにセッションとして出ます。
レビューあなたを待っている仕上がった仕事:タスクをクリックすると、ブランチの差分を載せたレビューのウインドウが開きます。統合中のタスクは、変更が入るまでここに残ります。
完了各タスクがどうやってここに来たかを示します:ブランチ にマージ済み、PR #N を作成済み、あなたが完了にしました、マージせずにクローズ。

このページの内容はすべて、リモートのリッチクライアントからでも同じように働きます — ボード、プランニングのウインドウ、レビューのウインドウはどれも制御 API 越しにミラーされます。

タスクを書く

ボード上部の新規タスク、サイドバーのコーディングタスクの見出しの +、あるいはバックログのタスクをクリックすると、エディタが開きます:

  • タイトルと、Markdown で書く説明。書く / プレビューの切り替えが付きます。説明はそのままエージェントのプロンプトになるので、プロンプトのつもりで書いてください。
  • ワークスペースとエージェント — そのタスクは選んだマシン(設定エディタでは「ワークスペース」)の上で、そこで使えるエージェントの 1 つを使って走ります。
  • エージェントを開始する場所 — マシンの中のフォルダです。それがそれ自体 git リポジトリなら、タスクはそこで新しい worktree とブランチの中で走ります。
  • 必要ならフォルダと git リポジトリを作る — 何もないところから始める仕事のために:そのフォルダがまだ自分のリポジトリでない場合、開始や計画がまず mkdir と git init(空のルートコミット付き)を実行します。既存のリポジトリの中のフォルダでは、これはオフのままにしてください。
  • 承認時 — タスクがレビューからどう出ていくか:ワークスペースの既定(マシンの選択。それ自体の既定は環境設定に従います — 一般を参照)、ブランチにマージ、またはプルリクエストを作成。

新しいタスクは、最後に使ったワークスペースとフォルダで始まります。

バックログのタスクには 2 つのボタンがあります:

  • 開始はタスクを進行中へ送ります:新しいエージェントが新しい worktree の中ですべてを自律的にこなし、差分をレビューに渡します。(タスクの計画中は使えません。)
  • 先に計画はまずプランニングのセッションを開きます。

開始は、何かが動く前に確認します:必要ならマシンをブートし、次にフォルダが存在してそれ自体 git リポジトリであること(または必要ならフォルダと git リポジトリを作るがオンであること)を確かめます。確認の間、タスクは**開始中…**のスピナー付きで元の列にとどまり、エージェントが本当に開始できるとわかって初めて進行中へ移ります。開始できないタスクは元の場所に残り、理由を赤で示します — フォルダがない、フォルダがリポジトリでない — ので、ボード(と GET /tasks)が、走っていないタスクを進行中と見せることはありません。

バックログの各タスクは、誰が引き受けるかも示します:割り当てで選択肢(新しいエージェント、スイッチボード、セッション、ルーム)が開き、タスクには 名前 に割り当てと表示されます。割り当てを解除でそのキューから外します。ボード上部の新しいタスク: 未割り当てで、新しいタスクを作ったときに誰へ割り当てるかを決めます。

計画する

先に計画は見える、対話式のプランニングセッションを立ち上げ、そのウインドウを開きます — ネイティブの会話ビューで、ターミナルは要りません。セッションはあなたのタスクから始まります。エージェントはリポジトリを読み取り専用で探り、見つけたことを語り、タスクに本当の選択の余地が残っているときは質問します。

質問はタブ付きのカードとして届きます — 質問ごとに 1 タブで、エージェントが自分のセッションで見せる選択肢をそのまま映したものです。答えは手元に集められ、あなたが送信を押すまで直せます。押すとひと揃いが一度に送られます。押し間違いが最終になることはありません。ウインドウの下の入力欄に自由な文章で答えることもでき、ターミナルを開くを押せば生のセッションを眺められます。

必要なものがそろうと、エージェントは計画をボードに並べます — 計画の列に順序付きのフェーズを置き、それぞれがおおよそレビューできるプルリクエスト 1 本分の仕事で、互いの依存関係が付きます — そして計画の概要を記録します。するとウインドウに計画ができましたとフェーズの数、そして閉じるボタンが出て、プランニングセッションのタブは自分で閉じ、そのセッションはアーカイブされ、タスクはバックログを離れます(そのフェーズがタスクに取って代わります。フェーズをすべて削除すればタスクは戻ってきます)。

計画は見張られています:フェーズが並べられる前にマシンが再起動した、エージェントが終了した、セッションが死んだ、といった場合、タスクのスピナーはいつまでも回り続けずに、具体的な理由 — 再試行するには先に計画をクリック — とともに止まります。

計画の列

フェーズは計画の順に番号が付き、こうしたものを備えます:

  • 依存関係のバッジ(フェーズ番号の付いた錠)。そのフェーズが、先のフェーズが先に完了であることを必要とするときに付きます。
  • 依存関係が終わる前にあなたが始めたときの待機中のバッジ。依存関係がすべて完了になった瞬間に自動で始まります。
  • 親のタスクの名前。

チェックボックスで複数のフェーズを選ぶと選択バーが現れます。選択した N 件を開始はそれぞれを開始し(依存関係で止められたフェーズは待機に入ります)、クリアは選択を捨て、削除は 1 回の確認で選択をまるごと取り除きます。フェーズを編集すると依存元の一覧が出ます — 兄弟フェーズがすべてチェックボックス付きで並ぶので、依存関係を手で作り直せます。

フェーズは完全に自律して走ります — 一度始まったら、対話的な入力は期待されません。

進行中

開始されたタスクは、必要ならマシンをブートし、リポジトリの新しい worktree を作り、タスクの説明をプロンプトにしてエージェントを起動します。エージェントはほかと同じくサイドバーにセッションとして現れるので、チャットで追いかけられます。タスクは、サイドバーのセッションの行と同じ言葉でエージェントの状態を示します — 作業中、エージェントが質問で止まっているときは赤で対応が必要、エージェントがタスクを渡さないままプロンプトで待っているときは準備完了、セッションが眠っているときは一時停止中 — そして開始した時刻も示します。クリックすると(タスクのライブセッションを開く)そのセッションがステージに出ます。消えてしまったセッションにはセッションを再起動が、リポジトリやブランチが消えたタスクには最初からやり直す(新しいブランチでの新しい実行)が出ます。起動時に死ぬエージェント — コマンドがない、フラグが違う — は数秒で検知されます:タスクがそれを赤で、エージェントの終了ステータスとともに示し、セッションを再起動を差し出します。エージェントへのメッセージが、入力欄にすでに文字が残っているのに出くわした場合、Bromure はその上に打ち込みません:メッセージは欄が空くのを待ち、空かなければタスクがそれを赤で示します。サイドバーのタスクのバッジがこれらを数えるので、見逃すことはありません。

進行中のタスクにポインタを置くと ✓ 完了ボタンが出ます(確認のあと完了にします:何もマージされず、ブランチは残ります)。右クリックでセッションを開く、セッションを再起動、レビューへ移動、完了にする、停止してバックログに戻す(エージェントが止まり、その worktree とブランチはワークスペースに残り、タスクはバックログへ戻ります)、停止してブランチを破棄、タスクのみ削除が出ます。バックログのタスクやフェーズを進行中へドラッグすると、それが開始されます。セッションやルームに渡したタスクでは、代わりにセッションを開くと停止してバックログに戻すが出ます。

エージェントが終わったと報告すると、タスクはレビューへ移ります。そのセッションは開いたままです:あなたが差し戻すレビューコメントは同じ会話に届き、タスクを承認すると同じエージェントがそれを統合します。セッションは、タスクが統合されたとき、完了にされたとき、破棄されたときにアーカイブされます — あるいはレビューで約 2 時間何も起きなかったときで、その場合は差し戻しや統合が新しいタブでエージェントの会話を再開します。エージェントが落ちた場合は、働いているふりをせずにタスクが赤くなります。

レビュー

レビューにあるタスクは、そのブランチ、レビューコメント、そして状況を示します:統合の準備完了、統合中 — エージェント が ブランチ へマージしています…(エージェントの最新の行付き)、または赤で対応が必要です — 理由(カードには 2 行、ポインタを置くと全文)と再試行・セッションを開くボタン。コードを生まなかったタスクにはコードの変更なし — レポートを読むと出ます。タスクにポインタを置くと ✓ 完了が出ます。完了の列へドラッグすれば完了にできます。クリックするとレビューのウインドウが開きます — セッションの変更をレビューするのに使うのと同じウインドウで、題はレビュー — <タスク>、そのタスク専用のボタンが付きます。

ウインドウの見出しの下には、ブランチの状況を示す要約が出ます:Kimi Code が Web app · ~/app の wt/fix-login で作業 · 3 コミット · main に対し 4 ファイル (+120 −7) · その後 main は 2 コミット進んだ · main のチェックアウトはクリーン · リモート:origin。

ウインドウはそのブランチの差分を、マシンから直接読んで見せます(したがってマシンは動いている必要があります)。ファイルごとの開閉、追加と削除の行数、コミットと作業ツリーの状態、そしてエージェントが記録した計画があればそれも出ます。上部の選択肢で、差分を何と比べるかを決めます:

選択見えるもの
<親> 以降(既定)そのブランチが親ブランチを離れてから変えたすべて。コミット済みでも未コミットでも。
未コミットまだコミットしていない編集だけ。新しいファイルも含みます。
直近のコミット直近のコミットだけ。

プルリクエストのようにレビューしてください:

  • 見たファイルに印を付ける。 各ファイルに確認済みの印が付きます(見たものとして印を付ける — また変わるまで畳まれます)。確認済みのファイルは畳まれ、その差分が変わればまた自分で開きます。
  • コメントする。 行の上にポインタを置いて余白の吹き出し(この行にコメント)をクリックすればまさにその行に、ファイルの見出しのこのファイルにコメントを使えばそのファイルに、下の入力欄に打てば変更全体にコメントできます。入力欄では ⏎ でコメントを足し、⌥⏎ で改行を入れ、⇧⌘⏎ ですべてを送り返します。下書きのコメントは、送る前なら取り消せます。
  • 差し戻す。 送信ボタンは差し戻す (N) と表示されます。下書きのコメントをすべて 1 通のメッセージにまとめてエージェントに届け — foo.js の 196 行目:別のメソッドを使ってください という形になります — タスクを進行中へ戻してもう一巡させます。会話、worktree、ブランチは同じままです(⇧⌘⏎)。
  • 統合する。 メインボタンはタスクの承認時の選択に従います:ブランチ にマージまたはプルリクエストを作成(リポジトリにリモートがあるときだけ出ます)。そのメニューには、もう一方、ブランチ にスカッシュしてマージ、別のブランチにマージ…、ブランチを残して完了にするがあります。どれも、何が起きるかを正確に告げる確認を開き(統合を参照)、ブランチを残すのオプションが付きます。
  • 完了にする — マージせずに完了。ブランチが残ることの確認のあとです。
  • その他 — セッションを開く、トランスクリプトを表示、ブランチを破棄…(ブランチとそのチェックアウトを削除します。タスクはマージせずにクローズとして完了へ移り、トランスクリプトは残ります)。
  • ターミナルを開くは、マシン上のタスクのセッションへ飛びます。

コードを生まなかったタスク — ブランチがない、ブランチに対象との差分がない、worktree なしの委任の納品 — では、git の代わりにエージェントの最終レポートが出ます:メインボタンは完了にするで、トランスクリプトを表示と差し戻すが並びます。

すでにプルリクエストを作成したセッションやルームがこなしたタスクには、プルリクエスト #N を表示とマージ済みにする(フォージ上でマージされたら)が出ます。

レビューにあるタスクを右クリックすると、変更を確認、セッションを開く、統合を再試行(対応が必要なとき)、完了にする、ブランチ にマージ…(マージの確認を表示した状態でレビューを開きます)、「進行中」に戻す、ブランチを破棄…、タスクのみ削除が出ます。破棄するとき、あるいは完了にするときは、エージェントに届かなかったレビューコメントがいくつ一緒に消えるかが示されます。

完了のタスクを右クリックすると、トランスクリプトを読む、セッションがまだ生きていればセッションを開く、プルリクエストがあればプルリクエストを作成、そしてタスクを削除が出ます。各カードのメニューは VoiceOver のメニュー(VO-Shift-M)とアクションの一覧でもあり、VoiceOver はカードをそのタイトルと状態として読み上げます。

統合

マージを承認すると、あなたが手で何かを解決しなくても変更が統合されます:

  • 高速経路。 ブランチが対象より厳密に先行していて、そのチェックアウトに未コミットのものがなく、対象のチェックアウトがクリーンなら、Bromure が自分でマージします — 対象がチェックアウトされている場所では fast-forward で、どこにもチェックアウトされていなければブランチを直接更新して。別のブランチにいるチェックアウトへマージすることはありません。
  • エージェントが統合する。 そうでなければ、変更を書いたエージェントが自分のセッションで行います — 生きている会話に打ち込まれるか、その会話が再開されて:残っているものをコミットし、最新の対象へリベースし(両側の意図を保って競合を解決します)、プロジェクトの手早いチェックを走らせて自分の変更が壊したものを直し、対象を fast-forward して報告します。対象のチェックアウトにある未コミットの変更には決して触れません。プルリクエストでの統合では、代わりにブランチをプッシュし、要約とテスト計画を付けて gh pr create を実行します。
  • 確認済み。 タスクが完了になるのは、Bromure が対象の履歴に変更を見たときだけです。エージェントは報告したが Bromure が確かめられない統合(到達できないマシン)は、エージェントの報告、未確認として記録されます。
  • 対応が必要。 エージェントが行き詰まったと報告した、統合せずに止まった、20 分たっても終わらない、といった場合、タスクは理由とともに赤くなります。レビューのウインドウにはセッションを開く、再試行、統合をキャンセルが出ます。

その後、ブランチとそのチェックアウトは(残すことにしていなければ)取り除かれ、セッションはアーカイブされます。セッションやルームに渡したタスクも同じように統合されます:割り当て先は同じ委任の上で統合の依頼を受け取り、deliver で報告します。

ヒント: エージェントの仕事をレビューするのにタスクは要りません。フォルダを持つどのセッションにも、メニューと ⌘K に変更をレビューがあり、チャットのN 件のファイルを変更の行はそのターンについて同じウインドウを開きます。ブランチとレビューを参照してください。

タスクを取り除く

どのタスクにも、ポインタを置くと ✕(タスクを削除)が現れ、確認を経て取り除けます。進行中のタスクでは、ダイアログはすべてを片付ける停止してブランチを破棄か、マシン上のセッションとチェックアウトに手を付けないタスクのみ削除を差し出し、レビューにあるタスクではブランチを破棄かタスクのみ削除を差し出します。バックログのタスクのメニューにはタスクを削除があります。

保存場所と API

タスクは、マシンの保管場所の隣にある 1 つのファイルに残ります。書き込みは不可分で、日付は ISO-8601 です:

~/Library/Application Support/BromureAC/tasks.json

ボード全体は、リッチクライアントとスクリプトのために、アプリの制御ソケット上にミラーされます:

エンドポイント用途
GET /tasksすべてのタスクを一覧する。
POST /tasksタスクの文書を作成または更新する(upsert)。
POST /tasks/<id>/startそれを開始する(worktree + エージェント)。先にチェックが走ります:タスクは startingAt を設定して元の列にとどまり、それから inProgress へ移ります — 開始できないときは lastError を設定して列を保ちます。
POST /tasks/<id>/planプランニングのセッションを立ち上げる。
POST /tasks/<id>/commentレビューコメントを足す(text、任意で file と line)。
POST /tasks/<id>/send-back未送信のコメントを届け、タスクを進行中へ戻す。
POST /tasks/<id>/land統合する:mode(merge、squash、pr)、任意で target と keepBranch。/merge と /open-pr は別名です。
POST /tasks/<id>/retry-landing、/cancel-landing止まった統合を再試行する、またはあきらめる。
POST /tasks/<id>/mark-doneそのままの状態で完了にする(何もマージせず、ブランチは残す)。
POST /tasks/<id>/mark-merged別の場所でマージ済みとして完了にする(フォージでマージされたプルリクエスト)。
POST /tasks/<id>/close-no-merge破棄する:ブランチとそのチェックアウトを削除し、マージせずにクローズとして完了にする。
POST /tasks/<id>/stopエージェントを止め、タスクをバックログへ戻す(worktree は残す)。
POST /tasks/<id>/to-testing、/to-in-progress手でレビューまたは進行中へ動かす。
POST /tasks/<id>/destroyエージェントを止め、worktree とブランチを削除し、タスクを取り除く。
DELETE /tasks/<id>タスクだけを取り除く。

内側では、プランニングとタスクのエージェントが、セッションごとのボードの MCP サーバー(vsock、ホスト側)を通してボードへ話し返します。board_get_task、board_set_plan、board_create_subtasks、board_ready_for_review、board_report_landing が、フェーズが並べられるしかた、仕上がったタスクが名乗り出るしかた、そして統合が merged、pr_opened、blocked を報告するしかたです — ポーリングも掻き取りもありません。これらのツールは、対応するすべてのエージェントに自動で配線されます。Claude Code はブランチごとの MCP 設定を読み込み、Codex は呼び出しごとの mcp_servers の上書きを受け取り、Grok はセッションのチェックアウトに書き込まれたプロジェクト範囲の .grok/settings.json を読みます(そのファイルは差分から除かれます)。