dynamic-workflows について
Dynamic Workflows は、JavaScript スクリプトでサブエージェントを決定論的に編成する Claude Code スキルです。単一エージェントのコンテキストを超える作業や、4 人を超えるワーカー、反復処理やパイプラインが必要なタスクに向き、`/workflows` で進捗を確認できます。
主な機能
- 01JavaScript によるサブエージェント編成
- 02ループ、条件分岐、ファンアウトの構成
- 03パイプラインと並列ステージの実行
- 04スキーマによる構造化出力の検証
- 05フェーズ、エージェント、トークン使用量の監視
- 06実績のある実行を再利用可能なコマンドとして保存
活用シーン
- 01複数エージェントで大規模コードベースをレビュー
- 02敵対的な検証担当者による調査結果の確認
- 03候補を大量生成して判定役で絞り込み
- 04新しい発見がなくなるまで調査を反復
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill dynamic-workflowsインストール後、Claude Code で/dynamic-workflowsを入力して読み込まれたか確認します。
詳細
Dynamic Workflows — スクリプトによるマルチエージェントオーケストレーション
Dynamic Workflows(Claude Code 2.1.154+、トリガーワード ultracode)を使うと、Claude が
決定論的にサブエージェントをオーケストレーションするJavaScript スクリプトを記述できます(ループ、
条件分岐、ファンアウト)。スクリプトはバックグラウンドで実行され、/workflows から実行状況を確認できます。
⚠️ 明示的なオプトインが必要で、コストがかかります。ワークフローは数十から数百のサブエージェントを起動する場合があります。明示的な依頼(「ultracode」、「use a workflow」、「fan out agents」)があった場合、または下記の複雑さの段階を超えた場合にのみ使用してください。
使うタイミング — オーケストレーションの3段階
| 段階 | ツール | 並行数 | タイミング |
|---|---|---|---|
| 1 | シンプルなサブエージェント(Task/Agent) | 1 | 独立した調査を行い、メインのコンテキストをクリーンに保つ場合 |
| 2 | Agent Teams(/team:audit、/team:sprint、/team:security) | リーダー1人+ワーカー約3人 | 範囲が限定され、同期的で、1ラウンドで完了する並列作業 |
| 3 | Dynamic Workflows(ultracode) | 最大約1000のサブエージェント(同時実行の上限は約16) | タスクが単一エージェントのコンテキストを超える、またはワーカーが4人を超える、あるいは決定論的なループ/パイプラインが必要な場合 |
損益分岐点のヒューリスティック:「N個のエージェントを起動し、それぞれにXを実行させてから集約する」と考える段階になったら、それはワークフローです。N ≤ 4 で1回のパスで十分なら、Agent Teams を使い続けてください。
組み合わせ可能なパターン(最小限のプロンプト)
- ファンアウト&統合 — 互いに独立したサブシステムをN人の調査役が並行して調べる → 1人のエージェントが統合します。(監査、コードのマッピング)
- 敵対的検証 — 各調査結果を、反証する役割を担う1人以上の懐疑的な検証者に渡します。
CONFIRMEDのものだけを残します。自律生成で最も重要な品質パターンです。 - 生成とフィルタリング — 大量に生成し(アイデア、候補)、その後、判定役がフィルタリングします。
- 分類と実行 — 分類器が各項目を適切な処理に振り分けます。
- パイプライン — 各項目がバリアなしですべてのステップを通過します(レイテンシは各ステップの合計ではなく、最も長いチェーンで決まります)。複数ステップの場合、これがデフォルトです。
- 完了するまでループ/新規発見がなくなるまでループ — 新しい発見がない状態がKラウンド続くまで、調査役を再実行します(規模が未知の調査:バグ、エッジケース)。
標準的なひな形(レビュー → 検証)
const results = await pipeline(
DIMENSIONS,
d => agent(d.prompt, { phase: 'Review', schema: FINDINGS }),
review => parallel(review.findings.map(f => () =>
agent(`Adversarially verify: ${f.title}. Default refuted=true if unsure.`,
{ phase: 'Verify', schema: VERDICT }).then(v => ({ ...f, verdict: v }))))
)
const confirmed = results.flat().filter(Boolean).filter(f => f.verdict?.isReal)
pipeline() はデフォルトで使用します(バリアなし)。parallel() を使うのは、NのステップにN-1のすべての結果が必要な場合(重複排除、早期終了、相互比較)に限ります。schema を指定すると、検証済みの構造化出力が強制されます。ファイルを並行編集する場合は、isolation: 'worktree' を指定します。
モニタリング
/workflows:進捗をリアルタイムで確認できます(フェーズ、エージェント、トークン)。- スクリプトは集約結果を返します。その結果を読み、次の手順を判断してください(多くの場合、ワークフローを複数回続けて実行します:把握 → 設計 → 実装 → レビュー)。
混同しないでください
- ralph-run(
/common:ralph-run):DoDに到達するまで、単一コンテキストで逐次ループします。並列処理はありません。このモデルの範囲を超えるタスクには、Dynamic Workflow に切り替えてください。 /effort ultracode:CLIの努力レベル(Opus 5.5でコード出力を最大化)です。ワークフローのトリガーultracodeとは別のものですが、併用されることもよくあります。
再利用と安全対策(v2.1.166+)
- まず組み込みワークフローを試す:独自に作成する前に、統合済みの
/deep-research(複数の情報源を検証するリサーチ)を試してください。「ウェブ上で並列検索して要約する」というニーズの多くは、すでに対応しています。 - 実績のある実行を保存する:
/workflowsでsを押すと、スクリプトを再利用可能なコマンドとして保存できます。プロジェクト用(.claude/workflows/)または個人用(~/.claude/workflows/)を選べます。argsパラメーターを使えば、異なる入力(調査する質問、対象パスなど)で再実行できます。 - ⚠️ セキュリティ —
acceptEditsが暗黙に適用されます:ワークフローから起動されたサブエージェントは、セッションのモードにかかわらず(planやdefaultも含む)、常にacceptEditsモードで動作し、許可リストを引き継ぎます。ファイルの編集は自動承認されます。 書き込みを行うエージェントの並列実行は、管理下にある領域(隔離された worktree など。権限管理のルール 11 を参照)に限ってください。 - 緊急停止とコスト:
disableWorkflows(settings.json)またはCLAUDE_CODE_DISABLE_WORKFLOWS=1でこの機能を無効にできます。/workflowsではトークンの消費量をリアルタイムで確認できます(ワークフローのコストは単一のコンテキストより大幅に高くなります。明示的な予算を設定して管理してください)。
参考:Claude Code Workflows ·
@.claude/commands/common/sub-agents-patterns.md(オーケストレーションの比較表)も参照してください。