コーディングタスク

コーディングボードは、書いたブリーフをマージ済みのコードへと変えます。しかも儀式は、あなたが望むだけ少なくできます。必要なことを書き、対話的なプランニングのエージェントにレビューできるフェーズへと計画させるか、一発でやってしまい、エージェントが自分の git worktree の中で働くのを眺め、行に結び付いたコメントで差分をレビューし、そしてマージします。各段階が 1 つの列で、各タスクが 1 枚のカードです。

サイドバーでは、タスクセクションがセッションのすぐ下、自動化と仮想マシンの上に座っています。その見出しには、タスクが何件あるか、テスト/レビューで待っているカードを数えるオレンジのバッジ、エージェントがあなたの入力を待っているときの赤いバッジ、そして新しいタスクのための + が出ます。その下の 1 行がボードを要約します(計画中 2 件・進行中 1 件・レビュー待ち 1 件)。空のときはボードを開くと読めます。セクションのタイトル(コーディングボードを開く(⇧⌘T))かその行をクリックすると、コーディングタスクと題されたボードが開きます。⇧⌘T(ワークスペース › タスク)を押すか、⌘K のパレットでコーディングタスクを選んでも開きます。

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

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

タスクを書く

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

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

バックログのブリーフには 2 つのボタンがあります:

  • 一発はタスクをまっすぐ進行中へ送ります。エージェントが全部を自律的にやり、テスト/レビューであなたに差分を渡します。
  • 計画は、まずプランニングのセッションを開きます。

計画する

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

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

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

計画は見張られています。マシンが再起動したり、エージェントが終了させられたり、フェーズが並べられる前にセッションが死んだりした場合、カードのスピナーは永遠に回り続けるのではなく、はっきりした理由を添えて終わります — 「計画」をクリックしてやり直してください。

計画の列

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

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

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

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

進行中

始まったタスクは、必要ならマシンをブートし、リポジトリの新しい worktree を作り、ブリーフをプロンプトにしてエージェントを立ち上げます。エージェントは他と同じようにサイドバーのセッションとして現れるので、チャットで追えます。カードには生きたエージェントの状態の点、いつ始まったか、そしてエージェントが質問で止まっているときは赤であなたの入力が必要と出ます — カードをクリックすると(タスクの生きたセッションを開く)そのセッションがステージに上がります。サイドバーのタスクのバッジがこれらを数えるので、見落とすことはありません。

進行中のカードを右クリックすると、セッションを再起動、テストへ移す、マージせず閉じる、エージェントを停止して worktree を削除、カードだけ取り除くが出ます。

エージェントが完了を報せると、タスクはテスト/レビューへ移ります。そのターミナルタブは自分で閉じ、セッションはアーカイブされるので、仕上がった仕事がセッションの一覧に積み上がりません。アーカイブされたセッションは、サイドバーのアーカイブ済みの折り畳みの中で読めるままです(セッションのホームを参照)。代わりにエージェントが落ちた場合は、カードは働いているふりをせず赤くなります。

テスト/レビュー

テスト/レビューのカードは、そのタスクのブランチと、そこに付いているレビューコメントの数を示します(「レビュー待ち — クリックで差分を見る」)。クリックするとレビューウインドウが開きます — セッションの変更をレビューするのに使うのと同じウインドウで、**レビュー — <タスク>**と題され、タスク専用のボタンが付きます。

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

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

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

  • 見たファイルに印を付ける。 各ファイルに確認済みの印が付きます(見たものとして印を付ける — また変わるまで畳まれます)。確認済みのファイルは畳まれ、その差分が変わればまた自分で開きます。
  • コメントする。 行の上にポインタを置いて余白の吹き出し(この行にコメント)をクリックすればまさにその行に、ファイルの見出しのこのファイルにコメントを使えばそのファイルに、下の入力欄に打てば変更全体にコメントできます。入力欄では ⏎ でコメントを足し、⌥⏎ で改行を入れ、⇧⌘⏎ ですべてを送り返します。下書きのコメントは、送る前なら取り消せます。
  • 送り返す。 送信ボタンはコメント 1 件を添えて送り返す、コメント N 件を添えて送り返す、コメントがなければ進行中へ送り返すと読めます。下書きのコメントすべてを 1 通のメッセージでエージェントへ届け — foo.js の 196 行目:別の方法を使ってくださいのような形で — 同じ worktree と同じブランチの上で、タスクをもう一巡させるために進行中へ戻します(⇧⌘⏎)。
  • マージする。 <親> にマージの分割ボタンは、クリックすると親ブランチにマージします。そのメニューにはまとめて <親> にマージ、プルリクエストを作成…、リポジトリの他のどのブランチにでもマージ先を選ぶ…、そしてマージ後に worktree を取り除く(既定でオン。worktree とブランチは、マージが対象側で確かめられてから取り除かれ、それより前には取り除かれません)というオプションがあります。きれいにマージできればタスクは完了へ移ります(「マージ中… 変更が着いたら完了になります」)。衝突があれば、それを解くセッションが開きます。
  • ターミナルを開くは、マシン上のそのタスクの worktree へ飛びます。

ボードでテスト/レビューのカードを右クリックすると、<親> にマージ…、進行中へ戻す、マージせず閉じる(その巡回を終えますが、記録は完了に残します)、worktree とブランチを削除、カードだけ取り除くが出ます。

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

カードを取り除く

どのカードにもポインタを重ねると ✕ が生えます(コンテキストメニューのボードから取り除くもあります)。どちらも確認を経ます。実際の仕事を背負ったカードでは、ダイアログが選択を差し出します:エージェントを停止して worktree を削除(進行中)かworktree とブランチを削除(テスト/レビュー)はすべてを解体し、カードだけ取り除くはマシン上のセッションとチェックアウトに手を付けません。

保存場所と API

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

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

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

エンドポイント用途
GET /tasksすべてのタスクを一覧する。
POST /tasksタスクの文書を作成または更新する(upsert)。
POST /tasks/<id>/startそれを開始する(worktree + エージェント)。
POST /tasks/<id>/planプランニングのセッションを立ち上げる。
POST /tasks/<id>/commentレビューコメントを足す(text、任意で file と line)。
POST /tasks/<id>/send-back未送信のコメントを届け、タスクを進行中へ戻す。
POST /tasks/<id>/mergeマージする(squash、任意で target)。
POST /tasks/<id>/open-prマージの代わりにプルリクエストを作る。
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 が、フェーズが並べられるしかたと、仕上がったタスクが名乗り出るしかたです — ポーリングも掻き取りもありません。これらのツールは、対応するすべてのエージェントに自動で配線されます。Claude Code はブランチごとの MCP 設定を読み込み、Codex は呼び出しごとの mcp_servers の上書きを受け取り、Grok はセッションのチェックアウトに書き込まれたプロジェクト範囲の .grok/settings.json を読みます(そのファイルは差分から除かれます)。