tk3.biz
ブログ一覧に戻る

[Released] dev-orchestra: テストと並行してレビューを始める機能を追加 v1.3.1

はじめに

dev-orchestra は、1 文の依頼から設計・実装・テスト・複数の AI によるレビュー・修正までを回す、Claude Code / Codex / Antigravity のプラグインです。

この記事では、v1.3.1(2026-10-29)の変更をまとめます。v1.3.0 の変更は前回のリリース記事に書いています。

dev-orchestra は GitHub で公開しています(MIT ライセンス)。役に立ちそうと思ったら、スターを付けてもらえるとうれしいです。

→ github.com/istb16/dev-orchestra

主な変更

テストと並行してレビューを始める

これまでのコードレビューは、実装(またはレビューの指摘の修正)→ テスト → レビュー、の順に進んでいました。テストが長いリポジトリでは、そのあいだレビュアーは待っているだけです。

1.3.1 では、設定の review.start_before_tests を有効にすると、実装や修正のすぐあと、テストと同時にレビューが走るようになりました。既定は無効です。

dev-orchestra config set review.start_before_tests true --scope global

テストを待たずにレビューしても、落ちるコードの指摘を直すことにはなりません。レビューの結果を使えるのは、レビューしたのと同じ作業ツリーでテストが通ったときだけです。それまでは、指摘の採用(review triage --status accepted)と修正の指示づくり(review fix-brief)が終了コード 2 で断られます。どこまで進んだかは、review status の tests on the reviewed tree: の行に出ます。

tests on the reviewed tree: pending -- no test result recorded on the reviewed tree yet
next: record the tests on this tree (state record test ok|failed), then review status again

テストが書き出すファイル(テストの結果のファイルやカバレッジなど)が .gitignore で無視されていないと、「別のツリー」とみなされてレビューの結果が使えなくなります。有効にする前に、テストが書き出すファイルを無視させておいてください。

実際に作業用のリポジトリで有効・無効を比べた手順と出力は、dev-orchestra 連載の「テストが終わるのを待たずにレビューを始めてみた」(2026 年 11 月 19 日公開予定)にまとめます。

対応が必要な変更:計画の承認の既定が auto になった

dev-orchestra は、アーキテクトが書いた計画を利用者に見せて、「はい」をもらってから実装に入ります(design.require_approval)。1.3.1 では、この設定に auto が増え、既定が auto になりました。

auto は、次の 3 つがすべてそろったときだけ、承認を省きます。

  • 誰も見ていない:環境変数 DEV_ORCHESTRA_UNATTENDED が設定されている。設定されていなければ CI を同じように読む(DEV_ORCHESTRA_UNATTENDED=0 にすると、CI があっても聞く)
  • 計画が危なくない:計画が、危ないとされるパス(optimization.high_risk_paths など)に触れていない。設計のレビューを --high-risk で回していない
  • 設計のレビューで Low より上が残っていない:小さな計画なので設計のレビューが省かれたか、最後の設計のレビューがこの計画を見て Low より上を残さなかった

どれか 1 つでも欠けると、true のときと同じように聞きます。そのため、ふだんの対話での使い方では、前と同じく承認を求められます。変わるのは、CI や DEV_ORCHESTRA_UNATTENDED を付けて動かすときです。

作業用のリポジトリで、2 つのファイルだけを触る小さな計画を置いて、status の Plan approval: の行を見比べました。環境変数が無いときは、これまでどおり承認を待ちます。

Plan approval: pending -- present .ai/workflows/ap1/plan.md to the user and ask; a yes is recorded with `design approve`, never without one

DEV_ORCHESTRA_UNATTENDED=1 を付けると、承認は要らないと判断されました。

Plan approval: not required (design.require_approval: auto -- nobody watching; the design review was skipped (2 code files, none high-risk))

CI でも、これまでのように必ず承認を求めたいときは、true にします。

dev-orchestra config set design.require_approval true --scope global

true にすると、DEV_ORCHESTRA_UNATTENDED=1 を付けても pending のままでした。design.require_approval はグローバルの設定からだけ読まれ、プロジェクトの設定(.dev-orchestra.yaml)に書いても使われません。

Claude の書き込みの実行に、使うツールだけを渡す

Claude Code で動く書き込みの実行(implementer、review fixer、run --mode implement)は、使うツールだけを渡し、MCP サーバーを外して始まるようになりました。run implementer --print-command で、渡すコマンドを確かめられます(Windows では PowerShell が足されます)。

claude -p --output-format stream-json --verbose --include-partial-messages --model opus --permission-mode acceptEdits --tools Read,Edit,Write,Bash,Grep,Glob,PowerShell --strict-mcp-config

これまでは、すべての組み込みツールと、利用者が入れている MCP サーバーの定義を毎ターン送っていました。CHANGELOG によると、claude 2.1.312 で測ったところ、実行の始まりのコンテキストは、今の形の約 1.2 万トークンに対して前の形では約 4.7 万トークンありました。費用は、資料(providers.md)によると、同じ作業で絞ると 26% 安くなりました($1.72 から $1.28 に)。作業用のリポジトリで比べた手順と出力は、dev-orchestra 連載の「書き込みの実行に渡すツールを絞って、トークンを比べてみた」(2026 年 11 月 23 日公開予定)にまとめます。

実装役に MCP サーバーを使わせたいときは、その役の options.tools を all にすると前の動きに戻ります。名前を並べて、渡すツールを決めることもできます(この場合も MCP サーバーは外れます)。

dev-orchestra config set implementer.options.tools all --scope global

all にすると、--tools と --strict-mcp-config が付かなくなりました。options.tools は、permission_mode と同じくグローバルの設定からだけ読まれます。プロジェクトの設定に書くと、その役の書き込みの実行が断られます。

細かな変更と不具合の修正

  • 新しい環境変数 DEV_ORCHESTRA_UNATTENDED:誰も見ていない実行であることを dev-orchestra に伝える。0・false・no・off は「見ている」扱い
  • status の Plan approval: の行に、承認を求める・求めない理由が出るようになった。--json の design_approval に mode・reason・requirement・nobody_watching・unattended_questions を足した
  • auto で誰も見ていないときは、設計の未決の質問を false のときと同じくアーキテクトに任せ、そのあと承認を求めるときには、その質問を挙げる
  • プロジェクトの設定の design.require_approval は、これまでどおり使われない。グローバルの true の上に auto を書くなど、承認をゆるめる値なら、doctor が問題として報告する
  • --tools と --strict-mcp-config を --help に出さない古い Claude Code では、書き込みの実行は前と同じ形で走る
  • review.start_before_tests を有効にしたとき、state record test と re-test が、テストを走らせたツリーを記録するようになった。review status --json に round_tests、status --json の review に round_tests を足した

安定化のための対応

新しい機能のテストを足し、テストと並行したレビューの判定の抜けを直すなど、動作を安定させるための対応を行いました。

更新方法

更新のしかたは、使っている CLI ごとに違います。アップデートの方法の手順で、新しい版のタグ(v1.3.1)を指定して更新してください。更新したら、dev-orchestra doctor を一度実行しておくと安心です。

まとめ

  • テストと並行してレビューを始める(review.start_before_tests、既定は無効):レビューの結果は、同じツリーでテストが通ってから使える
  • 計画の承認の既定が auto に:対話の実行では前と同じく聞く。CI や DEV_ORCHESTRA_UNATTENDED の実行では、条件がそろえば承認を省く。必ず聞くなら design.require_approval: true
  • Claude の書き込みの実行は、使うツールだけで MCP サーバーなしに始まる:前の動きに戻すなら options.tools: all

GitHub: istb16/dev-orchestra(スターを付けてもらえると励みになります)

関連記事