tk3.biz
ブログ一覧に戻る Back to Blog

設計・実装・複数AIレビューを1文で回す dev-orchestra を公開してみた I Released dev-orchestra: Design, Implementation, and Multi-AI Review from a Single Request

AIdev-orchestraClaude CodeCodexコードレビュー

はじめに

前回は、dev-orchestra を作った経緯を書きました。 今回は、これが何をするもので、どんな人に向いているのかを紹介します。

  • GitHub: istb16/dev-orchestra(MIT、1.0.0)
  • 動く場所: Claude Code / Codex / Antigravity のプラグインとして

この連載では、このあと Claude Code・Codex・Antigravity それぞれでの使い方や、設定の詳しい話を順に書いていきます。この記事はその入口です。

一言でいうと

1 文の依頼から、設計 → 実装 → テスト → 複数の AI による独立したレビュー → 指摘の仕分け → 修正 → 再テストまでを回すプラグインです。

この issue を設定済みのワークフローで実装して

と話しかけると、dev-orchestra が依頼に必要な工程だけを選んで、順番に AI へ割り振ります。

1文の依頼から最終報告までの流れ。設計(読み取り専用)、あなたによる承認、実装、テストのあと、差分を凍結して複数のレビュアーが並列・読み取り専用・互いの結果を見ずにレビューし、重複を統合してトリアージする。採用した指摘だけを修正し、再テストして最終報告する

工程担当ポイント
設計architect調べて計画を書く。読み取り専用で、あなたが承認するまで実装に進まない
実装implementer計画からコードとテストを書く
レビューreviewers2 つ以上の AI が、凍結した同じ差分を、互いの結果を見ずに読む
トリアージorchestrator重複をまとめ、指摘を採用・却下・重複に仕分ける
修正review_fixer採用した指摘だけを直す

typo の修正なら編集だけ、スキーマの変更なら全部、というように、動く工程は依頼の大きさで変わります。

なぜ別の AI にレビューさせるのか

AI は、自分が書いたコードのレビューが苦手です。 バグを生んだ思い込みを、レビューするときもそのまま持っているからです。

互いの意見を知らない状態で同じ差分を見た別々の AI は、ときどき意見が食い違います。 その食い違いが、本物のバグのありかになります。

もう 1 つ大事なのが、レビュー結果をそのまま修正に回さないことです。 複数の AI の指摘は重複しますし、的外れなものも混ざります。全部を「直して」と渡すと、要らない変更が量産されます。 そこで dev-orchestra は、指摘を機械的にまとめたうえでトリアージし、採用したものだけを修正役に渡します。

公式の codex-plugin-cc との違い

「Claude Code から Codex にレビューさせる」だけなら、OpenAI 公式の codex-plugin-cc があります。 手軽さでは向こうが上なので、違いを正直に並べます。

codex-plugin-ccdev-orchestra
提供OpenAI 公式個人の OSS
動く場所Claude CodeClaude Code / Codex / Antigravity
レビューする AICodex2 つ以上を並列(Claude / Codex / 自作。Antigravity は限定対応)
扱う範囲レビューと、Codex への作業の委任設計からレビュー・修正・再テストまで通しで
指摘の扱い結果を Claude Code に返す。任意の review gate を有効にすると、問題があれば Claude に対応させる重複統合 → トリアージ → 採用分だけ修正
始めやすさスラッシュコマンドですぐ使える最初にプリセットを選ぶ
便利な機能バックグラウンド実行、狙いを指定する批判的レビュー、Codex への会話の引き継ぎ計画の承認、レビューの往復の上限、トークンの記録

公式プラグインの review gate は、/codex:setup --enable-review-gate で有効にできます。 Claude が応答を終えようとすると Codex がレビューし、問題が見つかれば終了を止めて、Claude に先に直させます。自動でレビューして直させるだけなら、これでも十分です。

README には、review gate は往復が続いて利用枠を使い切るおそれがある、という注意があります。

違いは、レビュアーの数と指摘の扱いです。review gate のレビュアーは Codex 1 つです。dev-orchestra は複数のレビュアーの指摘を突き合わせ、重複をまとめてトリアージし、採用したものだけを直します。

使い分けの目安はこうです。

  • Claude Code での作業に、Codex のセカンドオピニオンを 1 つ足したい → codex-plugin-cc
  • 開発の流れ全体を、複数の AI で回したい → dev-orchestra

対応している CLI

dev-orchestra は、手元に入っている AI の CLI をそのまま使います。API キーは要りません(各 CLI のログインを使います)。

Claude CodeCodexAntigravity
プラグインとして入れる○○○(リンクで導入、再起動が必要)
実装・修正の役○○○(テストを走らせるには設定が要る)
設計・レビューの役○ 読み取り専用を CLI が強制○ 読み取り専用のサンドボックス△ 読み取り専用を強制できないので、警告付きの限定対応
設計の続きから再開○○×

Claude Code と Codex は全部の役をこなせます。 Antigravity は実装・修正向けで、設計やレビューに置くこともできますが、ファイルを書き換えられる状態で動くことになります。 くわしい違いは、それぞれの使い方の回で書きます。

Claude Code だけでも使う意味はあるか

「複数の AI」と言われると、Claude Code しか使っていない人には関係なさそうに見えます。 でも、Claude Code だけでも使う意味はあります。

Claude Code だけの構成と、Claude Code と Codex の構成の比較。レビュアーは例として2つずつ描いていて、実際の人数と役割はプリセットで決まる(Claude Code だけの standard では4人)。どちらも別プロセスでのレビュー、CLIによる読み取り専用の強制、トリアージは同じ。Claude Code だけでは同じ系列なので思い込みが似やすく、Codex を足すとベンダーが違うので思い込みも違うが、コードが2社に送られる

Claude Code だけでも得られることなぜ効くか
レビュアーは別プロセスで、実装したときの会話を持ち込まない「さっき自分でこう決めた」という前提なしにコードを読める
読み取り専用を CLI が強制する「書き換えないで」とお願いするだけでは守られないことがある
役割ごとにモデルを分けられる設計は強いモデル、安く済ませたいレビューは軽いモデル、と費用をかけ分けられる
トリアージで採用した指摘だけを直す要らない修正が入らない
必要な工程だけ動き、記録が .ai/ に残る小さな依頼は軽く、大きな依頼は計画やレビューを後から読み返せる

プリセットを選ぶと、そのマシンに入っている CLI に合わせて構成が決まります。Claude Code しか入っていなければ、レビュアーも Claude だけで組まれます。

とはいえ、いちばん効くのは別ベンダーの AI を混ぜたときです。同じ系列のモデルどうしは、思い込みも似やすいからです。 Codex も使える人は、ぜひ 2 社構成で試してみてください。

メリットとデメリット

メリットデメリット
自分では気づけないバグが見つかる実行時間とトークン消費が増える(AI を何度も呼ぶため)
運び屋の作業(コピペと待機)がなくなる指摘のトリアージは要る(オーケストレーターがやるが、最後に確認するのはあなた)
要らない修正が入らないレビュアーが読んだコードが、登録した各ベンダーに送られる(差分だけとは限らない)
計画やレビューの記録が残る最初にプリセットを選ぶなど、導入の手間が少しある

特に 3 つ目のデメリットは気にしておいてください。 Claude と Codex でレビューすれば、コードは Anthropic と OpenAI の両方に送られます。

送られるのは差分だけではありません。レビュアーは差分のまわりを調べるために、リポジトリ内のファイルを読めます。読み取り専用でも、Claude でも Codex でも、.env のようなファイルまで読めます。しかも Claude の場合は、自分で書いた permissions.deny もレビュアーには効きません。理由と対策(ルールを managed settings に移す)は、次の Claude Code の回で書きます。

外に出せないコードを扱うなら、ローカル LLM だけでレビューを組むこともできます。 ただしそのときは、Claude Code などのクラウドの AI から dev-orchestra を呼ばないでください。呼び出し元の AI 自身がコードを読むので、そこからクラウドに出ていきます。ターミナルから直接実行し、--only でレビュアーをローカル LLM に絞ります。くわしくは以前の記事に書きました。

トークンの消費を抑える仕組み(小さな変更はレビュアーを減らす、2 回目のレビューは修正分だけ、など)は入っていますが、1 つの AI で済ませるよりは確実に増えます。まずは小さな依頼から試すのがおすすめです。

使い方

インストールは Claude Code なら 2 行です。

claude plugin marketplace add istb16/dev-orchestra
claude plugin install dev-orchestra@dev-orchestra

Codex や Antigravity での入れ方、初期設定、各コマンドの説明は、GitHub のドキュメントにまとめています。最新の情報はこちらが正です。

  • README(日本語) — インストール、初期セットアップ、使い方
  • ワークフロー — 各工程で何をするか、ワークフローの例
  • 設定 — プリセット、モデル、レビュアーの組み方

まとめ

  • dev-orchestra は、1 文の依頼から設計・実装・複数 AI のレビュー・修正までを回すプラグイン
  • レビュアーは凍結した同じ差分を、読み取り専用で、互いを見ずに読む。指摘はトリアージして採用分だけ直す
  • Codex のセカンドオピニオンを 1 つ足すなら公式の codex-plugin-cc、開発の流れ全体を回すなら dev-orchestra
  • Claude Code と Codex は全部の役、Antigravity は実装・修正向け(設計・レビューは限定対応)
  • Claude Code だけでも、別プロセスのレビューとトリアージで意味がある。いちばん効くのは別ベンダーを混ぜたとき
  • デメリットは時間とトークン、そしてコードが各ベンダーに送られること。レビュアーは差分以外のファイルも読める
  • 機密のコードは、ターミナルから直接、ローカル LLM だけでレビューする

次回からは、Claude Code・Codex・Antigravity それぞれで実際に使ってみます。


English version

Introduction

Last time (in Japanese), I wrote about why I built dev-orchestra. This time I’ll introduce what it does and who it’s for.

  • GitHub: istb16/dev-orchestra (MIT, 1.0.0)
  • Where it runs: as a plugin for Claude Code / Codex / Antigravity

Later in this series, I’ll cover how to use it in Claude Code, Codex, and Antigravity, and go into the configuration in detail. This post is the entry point.

In a Nutshell

It’s a plugin that takes a single-sentence request and runs design → implementation → testing → independent reviews by multiple AIs → triage of the findings → fixes → re-testing.

Implement this issue with the configured workflow

Say that, and dev-orchestra picks only the steps the request needs and hands them to the AIs in order.

The flow from a one-sentence request to the final report. After design (read-only), your approval, implementation, and testing, the diff is frozen and multiple reviewers review it in parallel, read-only, without seeing each other's results; duplicates are merged and triaged. Only the accepted findings are fixed, then it re-tests and gives a final report

StepRoleKey point
DesignarchitectInvestigates and writes a plan. Read-only, and doesn’t move on to implementation until you approve
ImplementationimplementerWrites code and tests from the plan
ReviewreviewersTwo or more AIs read the same frozen diff without seeing each other’s results
TriageorchestratorMerges duplicates and sorts findings into accepted, rejected, and duplicate
Fixreview_fixerFixes only the accepted findings

A typo fix gets just an edit, a schema change gets everything: which steps run depends on the size of the request.

Why Have a Different AI Review the Code?

AI is bad at reviewing code it wrote itself. The assumptions that produced the bug are still there when it reviews.

Separate AIs looking at the same diff without knowing each other’s opinions sometimes disagree. That disagreement is where the real bugs are.

Another important point is not passing review results straight to the fixer. Findings from multiple AIs overlap, and some miss the mark. Hand all of them over with “fix these,” and you get a pile of unnecessary changes. So dev-orchestra mechanically merges the findings, triages them, and passes only the accepted ones to the fixer.

How It Differs from the Official codex-plugin-cc

If all you want is “have Codex review from Claude Code,” there’s OpenAI’s official codex-plugin-cc. It wins on ease of use, so here’s an honest comparison.

codex-plugin-ccdev-orchestra
Provided byOpenAI (official)Individual OSS
Runs onClaude CodeClaude Code / Codex / Antigravity
Reviewing AICodexTwo or more in parallel (Claude / Codex / custom. Antigravity has limited support)
ScopeReview, and delegating tasks to CodexEnd to end, from design through review, fixes, and re-testing
Handling findingsReturns results to Claude Code. With the optional review gate enabled, Claude has to address any problemsMerge duplicates → triage → fix only the accepted ones
Getting startedReady to use via slash commandsPick a preset first
Handy featuresBackground runs, adversarial reviews with a focus you specify, handing the conversation off to CodexPlan approval, a cap on review rounds, token logging

The official plugin’s review gate can be enabled with /codex:setup --enable-review-gate. When Claude is about to finish its response, Codex reviews it, and if it finds problems, it blocks the finish and makes Claude fix them first. If you just want automatic review and fixes, this is enough.

The README warns that the review gate can keep looping and use up your usage limits.

The difference is the number of reviewers and how findings are handled. The review gate has a single reviewer, Codex. dev-orchestra cross-checks findings from multiple reviewers, merges duplicates, triages them, and fixes only the accepted ones.

Here’s a rough guide for choosing:

  • You want to add one Codex second opinion to your Claude Code work → codex-plugin-cc
  • You want to run the whole development flow with multiple AIs → dev-orchestra

Supported CLIs

dev-orchestra uses the AI CLIs you already have installed. No API keys are needed (it uses each CLI’s login).

Claude CodeCodexAntigravity
Install as a pluginYesYesYes (installed via a link, restart required)
Implementation / fix rolesYesYesYes (running tests needs configuration)
Design / review rolesYes read-only enforced by the CLIYes read-only sandboxPartly read-only can’t be enforced, so limited support with a warning
Resume from where design left offYesYesNo

Claude Code and Codex can handle every role. Antigravity is meant for implementation and fixes; you can put it in design or review, but it will run with the ability to modify files. I’ll cover the differences in detail in the post on each tool.

Is It Worth Using with Claude Code Alone?

“Multiple AIs” might sound irrelevant if you only use Claude Code. But it’s worth using even with Claude Code alone.

A comparison of a Claude Code-only setup and a Claude Code + Codex setup. Two reviewers are drawn in each as an example; the actual number and roles are set by the preset (four in standard with Claude Code only). Both share reviews in separate processes, read-only enforced by the CLI, and triage. With Claude Code alone the models are from the same family, so their assumptions tend to be similar; adding Codex brings a different vendor with different assumptions, but the code is sent to two companies

What you get even with Claude Code aloneWhy it helps
Reviewers run in a separate process and don’t carry over the conversation from implementationThey read the code without the premise of “I decided this myself a moment ago”
The CLI enforces read-onlyJust asking “don’t modify anything” isn’t always respected
You can assign a different model to each roleSpend where it matters: a strong model for design, a lighter one for reviews you want to keep cheap
Triage means only accepted findings get fixedNo unnecessary fixes slip in
Only the needed steps run, and records are kept in .ai/Small requests stay light, and for big ones you can reread the plan and reviews later

When you pick a preset, the setup is decided based on the CLIs installed on that machine. If only Claude Code is installed, the reviewers are all Claude too.

That said, it works best when you mix in an AI from a different vendor. Models from the same family tend to share the same assumptions. If you can also use Codex, I recommend trying a two-vendor setup.

Pros and Cons

ProsCons
Finds bugs you wouldn’t notice yourselfMore run time and token usage (because it calls AIs many times)
No more courier work (copy-pasting and waiting)Findings still need triage (the orchestrator does it, but you do the final check)
No unnecessary fixes slip inCode the reviewers read is sent to each vendor you registered (not necessarily just the diff)
Plans and reviews are kept on recordSome setup effort, such as picking a preset first

Keep the third con in mind in particular. If you review with Claude and Codex, your code is sent to both Anthropic and OpenAI.

It’s not just the diff. To investigate around the diff, reviewers can read files in the repository. Even in read-only mode, both Claude and Codex can read files like .env. On top of that, with Claude, the permissions.deny rules you wrote don’t apply to reviewers either. I’ll cover why and what to do about it (move the rules to managed settings) in the upcoming Claude Code post.

If you work with code that can’t leave your environment, you can also set up reviews with local LLMs only. In that case, though, don’t call dev-orchestra from a cloud AI such as Claude Code. The calling AI reads the code itself, so the code goes out to the cloud from there. Run it directly from the terminal and use --only to limit the reviewers to local LLMs. I wrote about this in detail in an earlier post (in Japanese).

There are mechanisms to keep token usage down (fewer reviewers for small changes, re-reviewing only the fixes the second time, and so on), but it will definitely use more than getting by with a single AI. I recommend starting with small requests.

Usage

On Claude Code, installation takes two lines.

claude plugin marketplace add istb16/dev-orchestra
claude plugin install dev-orchestra@dev-orchestra

How to install on Codex and Antigravity, initial setup, and each command are documented on GitHub. That’s the source of truth for the latest information.

  • README — installation, initial setup, usage
  • Workflow — what each step does, example workflows
  • Configuration — presets, models, how to set up reviewers

Summary

  • dev-orchestra is a plugin that runs design, implementation, multi-AI review, and fixes from a single-sentence request
  • Reviewers read the same frozen diff, read-only, without seeing each other. Findings are triaged, and only the accepted ones are fixed
  • To add one Codex second opinion, use the official codex-plugin-cc; to run the whole development flow, use dev-orchestra
  • Claude Code and Codex handle every role; Antigravity is meant for implementation and fixes (limited support for design and review)
  • Even with Claude Code alone, separate-process reviews and triage make it worthwhile. It works best when you mix in a different vendor
  • The downsides are time and tokens, and your code being sent to each vendor. Reviewers can read files beyond the diff
  • For confidential code, review with local LLMs only, directly from the terminal

Starting next time, I’ll actually use it in Claude Code, Codex, and Antigravity.

関連記事 Related Posts

AIに複数レビューさせるのが面倒すぎて、自動で回すプラグインを作ってみた AIに複数レビューさせるのが面倒すぎて、自動で回すプラグインを作ってみた

AIに書かせたコードを別のAIにもレビューさせたい。でも手作業でやると、ターミナル間のコピペと待ち時間で疲れ果てる。それを仕組みにしたプラグイン dev-orchestra の 1.0.0 を出したので、作った経緯と使ってみての感想をまとめました。 AIに書かせたコードを別のAIにもレビューさせたい。でも手作業でやると、ターミナル間のコピペと待ち時間で疲れ果てる。それを仕組みにしたプラグイン dev-orchestra の 1.0.0 を出したので、作った経緯と使ってみての感想をまとめました。

ローカルLLMをdev-orchestraのコードレビュアーに追加してみた ローカルLLMをdev-orchestraのコードレビュアーに追加してみた

自宅PCで動かしているQwenを、複数モデルで独立レビューするdev-orchestraの3枚目のレビュアーとして組み込みました。プロバイダがAPIではなくCLIをラップする設計だったので、薄いCLIを1枚挟んで繋いだ話です。その後の公式対応と、Store版Pythonのパス罠についても追記しました。 自宅PCで動かしているQwenを、複数モデルで独立レビューするdev-orchestraの3枚目のレビュアーとして組み込みました。プロバイダがAPIではなくCLIをラップする設計だったので、薄いCLIを1枚挟んで繋いだ話です。その後の公式対応と、Store版Pythonのパス罠についても追記しました。

機密コードをクラウドに出さずにAIでレビューする(ローカルLLM × dev-orchestra) 機密コードをクラウドに出さずにAIでレビューする(ローカルLLM × dev-orchestra)

社外に出せないコードを、クラウドのAIに送らずにレビューする方法をまとめました。ローカルLLMをdev-orchestraのレビュアーに登録し、機密のものはローカルだけで、公開してよいものはクラウドのAIと併用します。ローカルLLMのレビューの実力と、呼び出し方ひとつでコードが外に出てしまう落とし穴も書きます。 社外に出せないコードを、クラウドのAIに送らずにレビューする方法をまとめました。ローカルLLMをdev-orchestraのレビュアーに登録し、機密のものはローカルだけで、公開してよいものはクラウドのAIと併用します。ローカルLLMのレビューの実力と、呼び出し方ひとつでコードが外に出てしまう落とし穴も書きます。