mcpField
C
Chain Builder

Chain Builder

github.com/jmsktmエージェントワークフロー10203 回インストール40 週間前に更新
リポジトリ

Chain Builder について

複数段階のプロンプトチェーンを設計、実行、デバッグするスキルです。段階間のデータ受け渡しと検証を行い、逐次処理や分岐、並列分析が必要なエージェントのワークフローに適しています。

主な機能

  1. 01タスクの段階分割
  2. 02プロンプトとデータフローの定義
  3. 03段階間の出力検証
  4. 04エラー処理とデバッグ
  5. 05段階の最適化と並列化

活用シーン

  1. 01調査、分析、レポート作成
  2. 02コード生成、レビュー、テスト
  3. 03大規模ドキュメントの分割処理
  4. 04生成内容の反復的な改善

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jmsktm/claude-settings --skill chain-builder

インストール後、Claude Code で/chain-builderを入力して読み込まれたか確認します。

詳細

チェーンビルダー

チェーンビルダーのスキルを使うと、あるプロンプトの出力を次のプロンプトの入力として利用する、複数ステップのプロンプトチェーンを設計して実行できます。これにより、単一のプロンプトでは難しい複雑な多段階処理を、明瞭さ、モジュール性、デバッグのしやすさを保ちながら実現できます。

このスキルでは、チェーンの設計、最適な区切りの特定、ステップ間のデータフローの管理、エラーへの対処、各段階での出力の検証について説明します。調査 → 分析 → 統合 → 書式設定や、アイデア出し → 計画 → 実装 → レビューのように、複数の異なる段階を含むタスクで特に役立ちます。

順次処理が効果的な複雑なタスク、中間段階での検証が必要な場合、またはタスクの各部分で異なる専用のプロンプトやツールが必要な場合に、このスキルを使用してください。

主なワークフロー

ワークフロー 1:目標からプロンプトチェーンを設計する
  1. 明確化:最終目標を定めます。
    • 最終的な出力は何ですか?
    • どのような品質基準が適用されますか?
    • どのような制約がありますか?
  2. 分解:論理的な段階に分けます。
    • 個別のフェーズを特定する
    • 各段階の境界を決める
    • 依存関係に沿って順序を決める
  3. 設計:個々のプロンプトを作成します。
    • 各段階の目的
    • 入力要件
    • 出力仕様
    • 成功基準
  4. 定義:データフローを定めます。
    • 各段階の間で何を渡すか
    • 中間出力にどの形式を使うか
    • どの状態を維持するか
  5. 追加:検証を組み込みます。
    • 各段階の後にチェックポイントを設ける
    • 品質ゲートを設ける
    • エラー処理を追加する
  6. 文書化:チェーンを記録します。
    • チェーンの目的
    • 各段階の説明
    • データフロー図
    • 使用例
  7. エンドツーエンドでテストします
ワークフロー 2:既存のチェーンを実行する
  1. 読み込み:チェーンの定義を確認します。
    • チェーンの仕様を読む
    • 各段階を把握する
    • 入力を準備する
  2. 初期化:チェーンの状態を設定します。
    • 初期入力を設定する
    • 出力を保存する領域を準備する
    • トラッキングを初期化する
  3. 実行:各段階を順番に処理します。
    • 段階のプロンプトを実行する
    • 出力を検証する
    • 検証に失敗した場合:エラーに対処する
    • 検証に合格した場合:続行する
    • 中間結果を保存する
    • 出力を次の段階に渡す
  4. 監視:進行状況を確認します。
    • 現在の段階を追跡する
    • 出力をログに記録する
    • ステータスを報告する
  5. 検証:最終出力を確認します。
  6. 報告:結果と問題点を報告します。
ワークフロー 3:チェーンの失敗をデバッグする
  1. 特定:失敗した箇所を特定します。
    • どの段階で失敗しましたか?
    • その段階への入力は何でしたか?
    • どのようなエラーが発生しましたか?
  2. 分析:根本原因を調べます。
    • 入力の形式に問題はありませんでしたか?
    • プロンプトが不明瞭ではありませんでしたか?
    • 検証が厳しすぎませんでしたか?
    • コンテキストが不足していませんでしたか?
  3. テスト:段階を切り分けてテストします。
    • 既知の正常な入力で段階を実行する
    • プロンプトが正しく動作することを確認する
    • 出力形式を確認する
  4. 修正:問題を解決します。
    • 不明瞭な場合はプロンプトを更新する
    • 厳しすぎる場合は検証を調整する
    • 必要に応じてエラー処理を追加する
    • 形式に問題がある場合はデータの受け渡しを改善する
  5. 失敗した箇所から再テストします
  6. 修正内容を記録します
ワークフロー 4:チェーンのパフォーマンスを最適化する
  1. 分析:現在のチェーンを調べます。
    • 段階ごとの実行時間
    • 段階ごとのトークン使用量
    • 段階ごとの成功率
    • ボトルネック
  2. 特定:最適化の機会を見つけます。
    • 並列化できる段階
    • 重複した処理
    • 複雑すぎるプロンプト
    • 不要な検証
  3. リファクタリング:効率を高めます。
    • 関連する段階を統合する
    • 独立した段階を並列化する
    • プロンプトを簡潔にする
    • データの受け渡しを最適化する
  4. 維持:品質を保ちます。
    • 速度のために精度を犠牲にしない
    • 検証を包括的な状態に保つ
    • エラー処理を維持する
  5. 最適化したチェーンをテストします
  6. 改善の度合いを測定します

クイックリファレンス

アクションコマンド/トリガー
新しいチェーンを設計する「[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

チェーンのデバッグ

チェーンが失敗した場合:

  1. ステージを切り分ける:失敗したステージを単独で実行します
  2. 入力を確認する:ステージに渡されたデータが有効であることを確認します
  3. 出力を調べる:ステージが実際に生成したものを確認します
  4. プロンプトを見直す:明確で、実現可能な内容になっていますか?
  5. 検証をテストする:検証ルールは適切ですか?
  6. コンテキストを確認する:ステージに必要な情報が含まれていますか?
  7. ログを確認する:実行中に何が起きましたか?

チェーンの健全性を監視する

以下のメトリクスを追跡します。

  • 成功率:正常に完了したチェーンの割合
  • ステージ失敗率:失敗が最も多いステージはどれですか?
  • 実行時間:チェーンの実行にかかる時間
  • トークン使用量:チェーンの実行ごとのコスト
  • 再試行率:各ステージで再試行が必要になる頻度
  • 品質スコア:最終出力の品質

コメント