レビューの中の Claude
Emacs の MCP サーバーを有効にすると(ecc-mcp-enabled)、レビューは双方向になります。Claude がレビューを開き、行にコメントを付け、話している箇所までスクロールできます。「レビューでこの変更を順に説明して」「diff をレビューしてコメントを残して」のように、普通の言葉で頼みます。1 つの変更をこの流れで読む例はエージェントとレビューするにあります。
Claude のコメント
Section titled “Claude のコメント”Claude のコメントは ▎ #4 Claude: text と、ecc-review-agent-comment-face で表示されます。Claude のコメントだけがある行で c を押すと返信になり、返信はその下に字下げして表示されます。a で Claude のコメントを隠したり表示したりします。C-c C-c で送るのは自分のコメントだけです。送信してもレビューは開いたままなので、Claude はレビューの中で各コメントに返信できます。
Claude はユーザーのコメントを書いたり変えたりできませんが、削除はできます。各セッションが扱うのは自分のレビューだけです。
| ツール | Claude がすること |
|---|---|
review_open |
セッションの変更、範囲、ステージ済みの変更を開く(一部のファイルだけでもよい)。またはレビューを読み直す |
review_hunks |
ファイルと番号付きのハンクを一覧する(中身も付けられる) |
review_comment |
行、ハンク、ほかのコメントの下にコメントを付ける |
review_comment_apply |
複数のコメントをまとめて付ける。誤りのあるものは理由を返し、残りは付ける |
review_navigate |
行、ハンク、コメントまでレビューをスクロールする |
review_list_comments |
コメントを読む |
review_remove_comment |
コメントを 1 つ削除する。対応を終えたユーザーのコメントも消せる |
review_clear_comments |
Claude のコメントを削除する。ユーザーのコメントは頼まれたときだけ |
review_open はレビューのメニューと同じ比較を開けます。「ステージ済みの変更」「このブランチ全体」「このコミットだけ」のように頼みます。Claude が開いたレビューはセッションの横に表示され、キーボードや今いるウィンドウを奪いません。レビューのバッファについて display-buffer-alist に自分のルールがあれば、今のウィンドウとタブを変えない限りそれに従います。空いたウィンドウがなければ、レビューはバッファの中で待ちます。
これらのツールはファイルを書かないので、確認なしで許可され、トランスクリプトには auto-allowed と記録されます。ほかのツールと同じく確認を求めるには、ecc-review-agent-auto-allow を nil にします。
ツールは、開いている ediff のレビューにも使えます。そこではハンクは ediff の 1 つの差分です。Claude が自分で ediff を始めることはありません。ediff のレビューが開いていなければ、review_open は diff バッファを開きます。
レビューから Claude と話す
Section titled “レビューから Claude と話す”次のキーは diff バッファでも ediff のレビューでも使え、送り先は常にレビューのセッションです。
| キー | 動作 |
|---|---|
T |
変更の案内を Claude に頼む。重要なものから順に、Claude が各箇所を表示して説明し、注意の要る行にコメントを付けて、次を待つ |
t |
案内の次の箇所を頼む |
M |
ミニバッファでメッセージを入力し、プロンプトとして送る。リージョンがアクティブなら、選んだ行についてのメッセージになる |
T はレビューのハンクをパッチと一緒に送るので、Claude はすべての箇所を一度に計画できます。ecc-review-talk-patch-limit(20000 文字)を超えるときは一覧だけを送ります。t と M は、いまいる場所を Claude に伝えます。ファイル、ポイントのある行とその側、ハンクです。
リージョンがアクティブなとき、M はいまいる場所の代わりに選んだ行を送ります。ファイルとハンクごとに、各側の行番号と、+ や - の付いた行そのものです。ediff では左右どちらかのウィンドウで行を選ぶと、どちらの側の行かも Claude に伝わります。ecc-review-talk-region-limit(10000 文字)を超えるときは行番号だけを送ります。送信するとリージョンは解除されます。
セッションが動いている間、プロンプトはキューで待ちます。T と t には MCP サーバーが必要です。ediff では Claude の返答が返答の欄に届きます。diff バッファでは横にセッションがあるので、欄はありません。