この記事は tk3.biz のブログ からの転載です。
はじめに
前回は、dev-orchestra で何ができるかを紹介しました。今回は実際に、Claude Code だけの環境に入れて使ってみます。
- 読むのに 5 分、試すのに 10 分くらいを目安にしています
- Codex は入っていない前提です(Codex で使う話は次回)
必要なもの
| もの | メモ |
|---|---|
| Claude Code | ログインまで済ませておく |
| Python 3.11 以上 | 標準ライブラリだけで動く |
| git | レビューする差分を取るのに使う |
API キーは要りません。Claude Code のログインをそのまま使います。
手順
1. インストールする
ターミナルで 2 行です。
claude plugin marketplace add istb16/dev-orchestra
claude plugin install dev-orchestra@dev-orchestra
Claude Code の中からなら、次のように入力しても同じです。
/plugin marketplace add istb16/dev-orchestra
/plugin install dev-orchestra@dev-orchestra
入れたあとに新しく開いたセッションから使えるようになります。
2. 初回にプリセットを選ぶ
dev-orchestra を使う依頼を初めて出すと、まだ設定が無いことに気づいて、今の構成を見せたうえでプリセットを聞いてきます。
プリセットは「どこにお金(トークン)をかけるか」の選択で、3 つあります。
| プリセット | ひとことで |
|---|---|
quality |
強いモデルを多めに使う。品質優先 |
standard |
迷ったらこれ。品質と費用のバランス型 |
fast |
軽いモデル中心。速さと費用優先 |
プリセットの中身はこの連載の後半でくわしく書くので、ここでは standard で進めます。
初回の設定では、返事をする言語も聞かれます。日本語を選ぶと、Claude Code のユーザー設定に「日本語で返す」ためのフックが入ります。
3. Claude だけで組まれていることを確かめる
ここがいちばん見てほしいところです。Codex が入っていないマシンで standard を選ぶと、構成はこうなりました(dev-orchestra 1.0.0 の config show の抜粋)。
Preset: standard (implicit; fitted to claude)
note: codex not found on PATH: reviewer seat 2 (general) went to claude as claude-general-2 (sonnet)
Architect
claude / fable / latest
Implementer
claude / opus / latest
Reviews
1. claude / opus / latest / general / claude-general
2. claude / sonnet / latest / general / claude-general-2
3. claude / sonnet / latest / security / claude-security (opus when high-risk)
4. claude / sonnet / latest / test / claude-test
本来 Codex に置かれるはずのレビュアーの枠が、自動で Claude(sonnet)に置き換わっています。入っていない CLI を前提にした設定で、毎回レビューが失敗する、ということが起きません。
- 設計は
fable、実装はopusと、役割ごとにモデルが分かれている - レビュアーは 4 人。全員 Claude だが、実装したときの会話を持たない別プロセスとして動く
- 4 人の役割も
general(全般)・security・testと分かれている
4. 準備ができているか確かめる
念のため、エージェントに「dev-orchestra の doctor を実行して」と頼んで、環境をチェックしてもらいます。Claude Code の部分はこう出ました(抜粋)。
Claude Code (claude)
Installed: yes
Model selection: supported
Models (cli-help): fable, opus, sonnet
Read-only runs: enforced by --permission-mode plan --disallowed-tools Edit,Write,NotebookEdit --tools Read,Grep,Glob --strict-mcp-config --restricted
Read-only runs: enforced は、設計役とレビュー役が読み取り専用で動くことを、Claude Code のフラグで強制しているという意味です。「書き換えないで」とお願いしているのではなく、そもそも書き換える道具を渡していません。
最後に No problems found. と出れば準備完了です。
5. 1 文で依頼する
あとは普段どおり話しかけるだけです。
この issue を設定済みのワークフローで実装して
この関数のテストを書いて、マルチモデルレビューまで回して
実装役にテストを走らせるには、先に
.claude/settings.jsonのpermissions.allowにテストのコマンドを足しておきます(例:Bash(npm test:*))。足していないと、シェルコマンドは自動では実行されません。
依頼の大きさに合わせて、必要な工程だけが動きます。大きめの依頼だと、こう進みます。
- 設計: 計画を書いて、「この計画で進めてよいか」を聞いてくる
- 承認: 計画を読んで OK と答えると、実装に進む(勝手には進まない)
- 実装 → テスト
- レビュー: 4 人のレビュアーが、同じ差分を互いに見ずにレビュー
- トリアージ → 修正 → 再テスト
- 最終報告
最終報告は、こんな形で返ってきます(例)。
Tests ✓ 12 passed
Reviews 4/4 ✓
Triage 5 findings → 2 accepted, 2 rejected, 1 duplicate
Models architect Claude/fable, implementer + fixer Claude/opus
Changed src/calc.py, tests/test_calc.py
Remaining none
どの指摘を採用して、どれを却下したかまで報告されるので、気になる指摘があれば理由を聞き返せます。
複数のレビュアーを動かすぶん、トークンは 1 つの AI で済ませるより増えます。最初は小さな依頼から試すのがおすすめです。
Claude Code の場合だけの機能・制限
Claude Code で使うときに知っておくと役に立つ点を、まとめておきます(dev-orchestra 1.0.0 時点。くわしくは providers.md)。
| 内容 | |
|---|---|
| ○ 読み取り専用の強制がいちばん強い | 設計とレビューは Read / Grep / Glob の 3 つの道具だけで動き、MCP も使わない |
| ○ モデルは名前で指定 |
opus / sonnet / fable と書けば、その系列の最新が使われる |
| ○ 設計の続きから再開できる | 計画の手直しで、前の設計の会話を引き継げる(確認済みの Claude Code の版で) |
△ 設計・レビューでは自分の permissions.deny が効かない |
ユーザー・プロジェクト・ローカルの設定(settings.json)をどれも読まないため。設計役とレビュアーはリポジトリ内のどのファイルも読めるので、秘密のファイルを隠すルールは managed settings に移す(下で説明) |
| △ 実装役はシェルコマンドを自動で実行しない | テストを走らせるには、.claude/settings.json の permissions.allow にテストのコマンド(例: Bash(npm test:*))を足す |
| × 古い Claude Code では設計・レビューが動かない | 必要なフラグが無い版では、doctor が NOT ENFORCEABLE と出して実行を止める |
.env を隠すには managed settings を使う
managed settings は、管理者向けの設定ファイルです。ユーザーやプロジェクトの設定では上書きできず、設計役とレビュアーを動かすときの --restricted でも読み込まれます。
| OS | 置き場所 |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-settings.json |
| Linux・WSL | /etc/claude-code/managed-settings.json |
| Windows |
C:\Program Files\ClaudeCode\managed-settings.json(書き込むには管理者権限が要る) |
.env などをモデルに読ませないようにするには、こう書きます。
{
"permissions": {
"deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)"]
}
}
置き場所は Claude Code の版によって変わることがあります。公式のドキュメントで確かめてください。
まとめ
- Claude Code への導入は 2 行。API キーは要らない
- 初回にプリセットを選ぶだけ。迷ったら
standard - Codex が無くても、レビュアーは自動で Claude だけで組まれる
- 設計とレビューは Claude Code のフラグで読み取り専用を強制
- あとは 1 文で依頼。計画は承認するまで実装に進まない
- テストを走らせるなら、
.claude/settings.jsonでテストのコマンドを許可しておく - 設計とレビューでは
permissions.denyが効かない。.envなどを隠すルールは managed settings に移しておく
詳しい使い方は README(日本語) にまとめています。次回は、Codex で使ってみます。