Chain Builder について
複数段階のプロンプトチェーンを設計、実行、デバッグするスキルです。段階間のデータ受け渡しと検証を行い、逐次処理や分岐、並列分析が必要なエージェントのワークフローに適しています。
主な機能
- 01タスクの段階分割
- 02プロンプトとデータフローの定義
- 03段階間の出力検証
- 04エラー処理とデバッグ
- 05段階の最適化と並列化
活用シーン
- 01調査、分析、レポート作成
- 02コード生成、レビュー、テスト
- 03大規模ドキュメントの分割処理
- 04生成内容の反復的な改善
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jmsktm/ claude-settings --skill chain-builderインストール後、Claude Code で/chain-builderを入力して読み込まれたか確認します。
詳細
チェーンビルダー
チェーンビルダーのスキルを使うと、あるプロンプトの出力を次のプロンプトの入力として利用する、複数ステップのプロンプトチェーンを設計して実行できます。これにより、単一のプロンプトでは難しい複雑な多段階処理を、明瞭さ、モジュール性、デバッグのしやすさを保ちながら実現できます。
このスキルでは、チェーンの設計、最適な区切りの特定、ステップ間のデータフローの管理、エラーへの対処、各段階での出力の検証について説明します。調査 → 分析 → 統合 → 書式設定や、アイデア出し → 計画 → 実装 → レビューのように、複数の異なる段階を含むタスクで特に役立ちます。
順次処理が効果的な複雑なタスク、中間段階での検証が必要な場合、またはタスクの各部分で異なる専用のプロンプトやツールが必要な場合に、このスキルを使用してください。
主なワークフロー
ワークフロー 1:目標からプロンプトチェーンを設計する
- 明確化:最終目標を定めます。
- 最終的な出力は何ですか?
- どのような品質基準が適用されますか?
- どのような制約がありますか?
- 分解:論理的な段階に分けます。
- 個別のフェーズを特定する
- 各段階の境界を決める
- 依存関係に沿って順序を決める
- 設計:個々のプロンプトを作成します。
- 各段階の目的
- 入力要件
- 出力仕様
- 成功基準
- 定義:データフローを定めます。
- 各段階の間で何を渡すか
- 中間出力にどの形式を使うか
- どの状態を維持するか
- 追加:検証を組み込みます。
- 各段階の後にチェックポイントを設ける
- 品質ゲートを設ける
- エラー処理を追加する
- 文書化:チェーンを記録します。
- チェーンの目的
- 各段階の説明
- データフロー図
- 使用例
- エンドツーエンドでテストします
ワークフロー 2:既存のチェーンを実行する
- 読み込み:チェーンの定義を確認します。
- チェーンの仕様を読む
- 各段階を把握する
- 入力を準備する
- 初期化:チェーンの状態を設定します。
- 初期入力を設定する
- 出力を保存する領域を準備する
- トラッキングを初期化する
- 実行:各段階を順番に処理します。
- 段階のプロンプトを実行する
- 出力を検証する
- 検証に失敗した場合:エラーに対処する
- 検証に合格した場合:続行する
- 中間結果を保存する
- 出力を次の段階に渡す
- 監視:進行状況を確認します。
- 現在の段階を追跡する
- 出力をログに記録する
- ステータスを報告する
- 検証:最終出力を確認します。
- 報告:結果と問題点を報告します。
ワークフロー 3:チェーンの失敗をデバッグする
- 特定:失敗した箇所を特定します。
- どの段階で失敗しましたか?
- その段階への入力は何でしたか?
- どのようなエラーが発生しましたか?
- 分析:根本原因を調べます。
- 入力の形式に問題はありませんでしたか?
- プロンプトが不明瞭ではありませんでしたか?
- 検証が厳しすぎませんでしたか?
- コンテキストが不足していませんでしたか?
- テスト:段階を切り分けてテストします。
- 既知の正常な入力で段階を実行する
- プロンプトが正しく動作することを確認する
- 出力形式を確認する
- 修正:問題を解決します。
- 不明瞭な場合はプロンプトを更新する
- 厳しすぎる場合は検証を調整する
- 必要に応じてエラー処理を追加する
- 形式に問題がある場合はデータの受け渡しを改善する
- 失敗した箇所から再テストします
- 修正内容を記録します
ワークフロー 4:チェーンのパフォーマンスを最適化する
- 分析:現在のチェーンを調べます。
- 段階ごとの実行時間
- 段階ごとのトークン使用量
- 段階ごとの成功率
- ボトルネック
- 特定:最適化の機会を見つけます。
- 並列化できる段階
- 重複した処理
- 複雑すぎるプロンプト
- 不要な検証
- リファクタリング:効率を高めます。
- 関連する段階を統合する
- 独立した段階を並列化する
- プロンプトを簡潔にする
- データの受け渡しを最適化する
- 維持:品質を保ちます。
- 速度のために精度を犠牲にしない
- 検証を包括的な状態に保つ
- エラー処理を維持する
- 最適化したチェーンをテストします
- 改善の度合いを測定します
クイックリファレンス
| アクション | コマンド/トリガー |
|---|---|
| 新しいチェーンを設計する | 「[goal] のためのプロンプトチェーンを設計して」 |
| チェーンを実行する | 「このチェーンを実行して:[chain spec]」 |
| チェーンの失敗をデバッグする | 「このチェーンをデバッグして:[error details]」 |
| チェーンを最適化する | 「このチェーンを最適化して:[chain spec]」 |
| チェーン設計を検証する | 「このチェーン設計を確認して:[spec]」 |
| チェーンにステージを追加する | 「このチェーンに [purpose] のためのステージを追加して」 |
| ステージを並列化する | 「どのステージを並列実行できますか?」 |
ベストプラクティス
-
ステージの目的を絞る:各ステージの目的は明確に1つにします。
- 1つのプロンプトで調査と分析を混在させないでください
- フォーマットとコンテンツ生成を組み合わせないでください
- 各ステージは1つの変換を行います
-
出力を明確にする:各ステージが生成するものを正確に定義します。
- 形式を指定します(JSON、markdown など)
- 必須フィールドを定義します
- 品質基準を設定します
- 例を示します
-
ステージ間で検証する:エラーを早期に検出します。
- 出力形式を確認します
- 必須フィールドが存在することを確認します
- 基準に照らして検証します
- 問題があればすぐに停止します
-
エラーを適切に処理する:失敗に備えます。
- 再試行ロジックを定義します
- フォールバックの選択肢を用意します
- デバッグ用に失敗をログに記録します
- 不正なデータを後続に引き継がないでください
-
状態を慎重に管理する:必要なものを追跡し、不要なものは破棄します。
- 必要なデータだけを次のステージに渡します
- デバッグ用に中間出力を保持します
- 独立したチェーン間では状態をクリアします
- 長時間実行される場合はチェーンの状態にバージョンを付けます
-
データの受け渡しを最適化する:トークンの使用量を最小限に抑えます。
- 必要な情報だけを抽出します
- 可能な場合は要約します
- 重複させず、参照を使用します
- 冗長な出力を圧縮します
-
十分にドキュメントを作成する:チェーンを保守しやすくします。
- 各ステージの目的
- 想定される入力/出力
- 検証ルール
- エラー処理
- 実行例
-
段階的にテストする:ステージごとに信頼性を高めます。
- 各ステージを個別にテストします
- ステージのペアをテストします
- チェーン全体をテストします
- エッジケースでテストします
チェーン設計パターン
順次処理
Stage 1: Collect → Stage 2: Process → Stage 3: Format → Output
使用する場面:各ステージが前のステージの完全な出力に依存する場合 例:ウェブスクレイピング → データクリーニング → 分析 → レポート生成
分岐チェーン
Stage 1: Analyze →
If condition A: Stage 2a → Merge
If condition B: Stage 2b → Merge
→ Stage 3: Synthesize
使用する場面:条件に応じて処理経路を変える場合 例:ファイル形式の検出 → [JSON パーサー | CSV パーサー | XML パーサー] → 正規化
並列集約
Input →
[Stage 1a, Stage 1b, Stage 1c] (parallel) →
Stage 2: Combine →
Output
使用する場面:後で統合する独立した分析を行う場合 例:[構文チェック、型チェック、Lint] → 結果の集約 → レポート
反復的な改善
Stage 1: Generate →
Stage 2: Critique →
If quality met: Output
If not: Refine → back to Stage 1 (max N iterations)
使用する場面:反復を通じて出力品質が向上する場合 例:作成 → レビュー → [良好? → 完了 | 修正 → 作成]
ファンアウト/ファンイン
Stage 1: Split →
[Process chunk 1, Process chunk 2, ..., Process chunk N] →
Stage 2: Merge →
Output
使用する場面:大きな入力を並列処理する必要がある場合 例:ドキュメントを分割 → [各セクションを分析] → 調査結果を統合
検証付きパイプライン
Stage 1 → Validate → Stage 2 → Validate → Stage 3 → Validate → Output
使用する場面:ステージ間に品質ゲートが必要な場合 例:生成 → 構文を確認 → 変換 → スキーマを確認 → デプロイ → 検証
チェーン仕様の形式
chain:
name: "Chain Name"
description: "What this chain accomplishes"
version: "1.0.0"
stages:
- id: "stage_1"
name: "Stage Name"
prompt: "Prompt template with {{placeholders}}"
inputs:
- name: "input_name"
source: "user_input | previous_stage | context"
required: true
outputs:
- name: "output_name"
format: "json | markdown | text"
schema: "Optional JSON schema"
validation:
- type: "format | content | schema"
rule: "Validation rule"
on_fail: "retry | skip | abort"
on_error:
action: "retry | fallback | abort"
max_retries: 3
- id: "stage_2"
name: "Next Stage"
prompt: "Use {{stage_1.output_name}} to..."
# ... rest of stage definition
execution:
mode: "sequential | parallel | conditional"
timeout_per_stage: 300
max_total_time: 1800
チェーンの例
調査 → 分析 → レポートのチェーン
**Chain**: Research Report Generator
**Stage 1**: Web Research
- Prompt: "Research [topic] using web search. Find 5-10 authoritative sources."
- Output: List of sources with summaries
- Validation: At least 5 sources, each with URL and summary
**Stage 2**: Content Analysis
- Input: Sources from Stage 1
- Prompt: "Analyze these sources and extract key themes, findings, and insights."
- Output: Structured analysis (JSON)
- Validation: JSON schema with required fields
**Stage 3**: Report Writing
- Input: Analysis from Stage 2
- Prompt: "Write executive report based on analysis. Include summary, findings, recommendations."
- Output: Markdown report
- Validation: Contains required sections
**Stage 4**: Formatting
- Input: Report from Stage 3
- Prompt: "Format report for [platform] with proper structure and styling."
- Output: Platform-ready document
コード生成 → レビュー → テストのチェーン
**Chain**: Tested Code Generator
**Stage 1**: Generate Code
- Prompt: "Generate [component] with [requirements]"
- Output: Code file(s)
- Validation: Valid syntax, includes all required functions
**Stage 2**: Code Review
- Input: Code from Stage 1
- Prompt: "Review code for bugs, performance issues, best practices"
- Output: Review findings (JSON)
- Validation: Categorized by severity
**Stage 3**: Apply Fixes
- Input: Code and Review findings
- Prompt: "Fix high and medium severity issues"
- Output: Revised code
- Validation: Addresses all high-severity issues
**Stage 4**: Generate Tests
- Input: Final code
- Prompt: "Generate unit tests with >80% coverage"
- Output: Test file(s)
- Validation: Tests run and pass
**Stage 5**: Verify
- Input: Code and tests
- Action: Run tests
- Output: Test results
- Validation: All tests pass
コンテンツ作成チェーン
**Chain**: Blog Post Creator
**Stage 1**: Research & Ideation
- Prompt: "Research [topic] and generate 5 article angles"
- Output: List of angles with brief descriptions
**Stage 2**: Select & Outline
- Input: Angles from Stage 1
- Prompt: "Select best angle and create detailed outline"
- Output: Article outline
**Stage 3**: Draft Content
- Input: Outline from Stage 2
- Prompt: "Write full article following outline"
- Output: Article draft (markdown)
**Stage 4**: Edit & Polish
- Input: Draft from Stage 3
- Prompt: "Edit for clarity, flow, grammar, and engagement"
- Output: Polished article
**Stage 5**: Generate Metadata
- Input: Article from Stage 4
- Prompt: "Generate title variations, meta description, tags"
- Output: SEO metadata
**Stage 6**: Format for Platform
- Input: Article and metadata
- Prompt: "Format for [CMS] with proper structure"
- Output: Platform-ready post
チェーンのデバッグ
チェーンが失敗した場合:
- ステージを切り分ける:失敗したステージを単独で実行します
- 入力を確認する:ステージに渡されたデータが有効であることを確認します
- 出力を調べる:ステージが実際に生成したものを確認します
- プロンプトを見直す:明確で、実現可能な内容になっていますか?
- 検証をテストする:検証ルールは適切ですか?
- コンテキストを確認する:ステージに必要な情報が含まれていますか?
- ログを確認する:実行中に何が起きましたか?
チェーンの健全性を監視する
以下のメトリクスを追跡します。
- 成功率:正常に完了したチェーンの割合
- ステージ失敗率:失敗が最も多いステージはどれですか?
- 実行時間:チェーンの実行にかかる時間
- トークン使用量:チェーンの実行ごとのコスト
- 再試行率:各ステージで再試行が必要になる頻度
- 品質スコア:最終出力の品質