>> 10万行超を一人で?Claude Code 4.8 動的ワークフローと並列サブエージェント実践
はじめに
専任チームなしで 10 万行超 のレガシーコードベースを 1 人でリファクタリングできるでしょうか。2026 年 5 月、Anthropic は Claude Opus 4.8 と Claude Code の 動的ワークフロー(Dynamic Workflows) をリリースしました。これは研究プレビューのパターンで、エージェントが作業を計画し、並列サブエージェントを展開し、結果を検証してから報告します(Claude Opus 4.8 発表)。
Claude Code 動的ワークフローは、言語間・フレームワーク間の移行でフルスタックチームが直面する課題——1 チャットに収まらないファイル数、逐次エージェントループでは処理しきれない依存関係——に直接対応します。本記事では実行ツリーの仕組み、従来の単一スレッド Claude Code より優れる場面、そして実際のテストスイートがあるリポジトリで実行できる7 ステップの手順書を解説します。
エージェントの基礎(評価、コンテキスト制限)をまだ構築中の場合は、先に2026 年開発者向け AI スキルをお読みください。動的ワークフローは良い習慣を増幅しますが、代替にはなりません。
Opus 4.8 と動的ワークフローの変更点
Anthropic が移行作業向けに強調する 3 つの仕組み:
| 仕組み | 役割 | 移行での意義 |
|---|---|---|
| 計画フェーズ | Claude がリポジトリを作業単位に分解 | 「1 ファイル編集でコンテキスト枯渇」を回避 |
| 並列サブエージェント | 1 セッション内で数百のサブエージェント | ファイル単位またはパッケージ単位の並列化 |
| 検証ゲート | 最終報告前に出力を確認 | 10 万行規模のサイレント破壊を低減 |
Opus 4.8 は不確実性下での正直さも強調しています。早期テスターは Opus 4.7 比で未指摘の欠陥が少ないと報告しています。移行では、テスト未実行なのに「完了」と報告されるケースが減ります。
提供状況(最新ドキュメントを確認):動的ワークフローは Claude Code の 研究プレビューとして Enterprise、Team、Max プランで提供開始。API モデル ID:claude-opus-4-8。困難な長時間ジョブには xhigh エフォート設定あり。
アーキテクチャ:マルチエージェント実行ツリー
動的ワークフローは浅いオーケストレーションツリーと考えてください。無制限スワームではありません。
コンポーネント
| ノード | 責務 | 典型成果物 |
|---|---|---|
| リードセッション | スコープ、計画、マージ戦略 | MIGRATION.md チェックリスト |
| プランナー | リポジトリを分割(パッケージ、レイヤー、機能スライス) | 作業単位 manifest JSON |
| ワーカーサブエージェント | 各スライスで変換適用とローカル修正 | ブランチコミットまたはパッチ系列 |
| ベリファイア | テスト/リンター実行、diff レビュー、競合スキャン | CI ログサマリー |
| 人間によるマージ | PR 承認、ポリシー競合の解決 | 署名付きマージコミット |
データフロー
- 移行契約を定義:対象フレームワーク、禁止 API、完了条件 = CI グリーン。
- リードエージェントがリポジトリを棚卸しし、N 個の並列可能な単位を出力(10 万 LOC モノリスで 50–200+ が一般的)。
- サブエージェントは共有ポリシードキュメントに読み取り専用、各自のスライス内のみ書き込み。
- ベリファイアが失敗を集約;リードは失敗単位を再生成するか、ファイルパス付きでエスカレーション。
- テストスイート基準を満たしたらマージ——モデルの「完了」宣言ではありません。
これは Anthropic の例と一致します:キックオフからマージまでの数十万行規模のコードベース移行、既存テストスイートを基準とする。
判断マトリクス:動的ワークフローが有効な場面
| 状況 | 動的ワークフローを使う? | 推奨代替 |
|---|---|---|
| 10 万行+、機械的変換(import パス、API リネーム) | はい | — |
| <5k LOC のスパイク | いいえ | 単一セッション Claude Code |
| 自動テストなしの移行 | テスト追加までいいえ | 先に特性化テストを追加 |
| セキュリティ敏感な auth/暗号化の書き換え | 部分的——計画のみ;各スライスを人間がレビュー | 手動レーン + エージェント支援 |
| 法的監査可能な diff が必要 | はい、プランナー manifest を凍結 | manifest を git に保存 |
変更対象モジュールのテストカバレッジが 30% 未満なら、動的ワークフローを開始しないでください。 2 週間をゴールデンパステストに投資してください。さもないと並列エージェントは正しい動作ではなく、もっともらしい diff を最適化します。
開始前の前提条件
- クリーンチェックアウトで CI が 45 分以内——またはスライス単位 CI + マージキュー。
- CI で フォーマッター + リンターを強制(自動修正ループの収束が速くなります)。
docs/migration/に移行プレイブック(禁止パターン、対象イディオム)。- ブランチ戦略:1 本の統合ブランチ;ワーカーは topic ブランチまたはスタック PR。
- トークン予算:長時間ジョブは Opus 4.8 で
xhigh;Opus 4.7 デフォルトより使用量増の見込み。
IDE/エージェントの衛生(許可リスト、シークレット)はCursor と代替スタックも参照——原則は Claude Code シェルにも適用されます。
7 ステップ移行手順書
ステップ 1 — ベースラインとスコープ凍結
git checkout -b migration/opus-48-baseline
git rev-parse HEAD > .migration/baseline.sha
CI=1 npm test 2>&1 | tee .migration/baseline-test.log
合格:ベースラインテストがグリーン、または失敗が KNOWN_FAILURES.md に文書化済み。
ステップ 2 — 移行契約の作成
Create MIGRATION.md with:
- 対象スタックバージョン(例:React 19、Spring Boot 3.4)
- スコープ内ディレクトリ
- スコープ外(生成コード、ベンダーライブラリ)
- 完了 =
npm test && npm run lintグリーン
ステップ 3 — Claude Code で動的ワークフローを開始
- Opus 4.8(
claude-opus-4-8)を選択。 - 数時間の移行ではエフォートを
xhighに設定。 - 下記プロンプトパターンを使用し、
MIGRATION.mdとベースライン SHA を添付。
動的ワークフローは対象 Claude Code プランで研究プレビューです。
MIGRATION.md に従いコードベース移行を計画してください。\n各作業単位を ≤2k LOC に分割してください。\nサブエージェントで変換を適用してください。\n完了報告前に既存テストスイートで検証してください。
ステップ 4 — プランナー manifest のレビュー
| 確認項目 | 失敗時の対応 |
|---|---|
| 5k LOC 超の単位あり? | 分割を依頼 |
| 10 単位超が同一グローバル状態を触る? | そのモジュールを直列化 |
| 単位ごとのテストマッピング欠落? | テスト対象を追加 |
manifest を git の .migration/units.json に保存。
ステップ 5 — ワーカー実行とファンアウト監視
- VCS 競合が急増したらディレクトリあたりの同時編集を制限。
- 各バッチマージ後にフォーマッターを再実行。
- 移行スコープ外のついでリファクタリングは受け入れない。
大規模リポジトリでは数十から数百のサブエージェントを想定。
ステップ 6 — ベリファイアゲートと CI
git fetch --all
npm test 2>&1 | tee .migration/final-test.log
diff .migration/baseline-test.log .migration/final-test.log > .migration/test-delta.txt
合格:文書化済み既知リストを除き新規失敗なし。
ステップ 7 — 人間によるマージとポストモーテム
- 生成/失敗/再試行した単位数
- 実時間 vs 見積もり
- トークン消費(Anthropic 使用量ダッシュボード)
- 7 日以内にステージングで発見された欠陥
必要に応じて feature flag の後で main にマージ。
10 万 LOC を耐える並列サブエージェント戦術
| 戦術 | 詳細 |
|---|---|
| 依存レイヤーでスライス | Utils → ドメイン → UI で循環マージの痛みを低減 |
| 機械的変換を先に | 意味的リファクタの前に正規表現安全なリネーム |
| 1 単位 1 関心事 | 「HTTP クライアント移行」と「状態管理移行」は分離 |
| 冪等スクリプト | ワーカーは codemod CLI;LLM はフォールアウト修正のみ |
| ベリファイアが flake 検出 | 失敗テストは 1 回再試行;2 回目はエスカレーション |
Anthropic は Opus 4.8 でサブエージェントがより長く実行できると指摘しています——それでも明示的な実時間上限(例:単位あたり 20 分)を設定し、1 つのハングしたワーカーがツリー全体をブロックしないようにしてください。
トラブルシューティング
エラー A — 「移行完了」だが CI が赤
パターン:リードエージェントのサマリーは成功;ローカル npm test は失敗。
Fix:
.migration/final-test.logを添付してセッションを再開。- プロンプト:
units.json の作業単位ごとに失敗テストを列挙。失敗単位のみ再生成。 - マージ前にベリファイアが成功した CI 実行 URL またはログハッシュを参照すること。
エラー B — マージ競合の嵐
パターン:30% 超の単位が同じ 5 ファイル(例:中央 index.ts)を変更。
修正:共有ファイル用に直列レーンで再計画——1 サブエージェントが barrel エクスポートを担当;他はパッチを順次適用。
git diff --name-only migration/opus-48-baseline...HEAD | sort | uniq -c | sort -nr | head
出現回数 >3 のファイルはマージホットスポット。
エラー C — レート制限/トークン枯渇
パターン:サブエージェントがツリー途中で停止;ブランチに部分コミットが散在。
修正:ファンアウトを一時停止;完了単位をマージ;より小さいバッチ(例:25 単位)で再開。残りの難しいスライスのみ xhigh——リポジトリ全体の再起動は避ける。
チーム規模別の推奨パス
| あなたが… | 推奨アクション |
|---|---|
| ソロフルスタック | 10 万行を3 波(utils → services → UI);Big Bang マージは避ける |
| 2–5 人スタートアップ | 1 人が manifest + マージ;エージェントがスライス担当 |
| プラットフォームチーム | codemod + CI を提供;動的ワークフローは意味的ギャップのみ |
週末しかない場合:テスト完備の 2 万 LOC にスコープを絞る;モノリス全体に賭ける前にワークフローを実証。
FAQ
Claude Code 動的ワークフローとは?
Claude Code が大規模タスクを計画し、1 セッションで多数の並列サブエージェントを実行し、終了前に出力を検証する研究プレビューのオーケストレーションモードです——移行のようなリポジトリ規模の作業向け(出典)。
Claude Opus 4.8 が必須ですか?
Anthropic は Dynamic Workflows を Opus 4.8 世代に紐づけ、より長く信頼性の高いエージェント実行を可能にしています。モデル ID claude-opus-4-8 を使用し、プランに Claude Code 研究機能が含まれるか確認してください。
本当に 1 人で 10 万行超をリファクタリングできますか?
CI が強く、変換が主に機械的なら、1 人がオーケストレーションできます。意味的書き換えは依然として人間レビューレーンが必要です——動的ワークフローはカレンダー時間を圧縮しますが、説明責任は減りません。
並列サブエージェントはいくつ動きますか?
Anthropic は大規模移行で 1 セッションに数百と述べています。実効数は理論上限ではなくマージ競合データで制限すべきです。
「完了」の基準は?
既存の自動化テストスイート——モデルの自己報告ではありません。ベリファイア出力はマージ前チェックリストとして扱い、CI の代替にしないでください。
OpenClaw/Dify 型エージェントの代替になりますか?
いいえ。Claude Code 動的ワークフローはIDE 中心のリポジトリリファクタです。オーケストレーションプラットフォーム(OpenClaw + Dify)は別問題——Ops 自動化とマルチシステムワークフロー——を解き、規律ある移行 runbook の代替にはなりません。