mcpField
P
propose-hypotheses

propose-hypotheses

github.com/neolabhqエージェントワークフロー1.8k1.2k 回インストール9 週間前に更新
リポジトリ

propose-hypotheses について

First Principles Framework のサイクルに沿って複数の仮説を立てて評価し、決定を記録する Claude スキルです。論理の検証、証拠の確認、信頼性の監査を行い、成果物を `.fpf/` に整理します。

主な機能

  1. 01複数の仮説の生成
  2. 02仮説の論理検証
  3. 03裏付け証拠の検証
  4. 04証拠の信頼性監査
  5. 05決定記録の作成

活用シーン

  1. 01問題への複数の説明を比較
  2. 02決定前に推論と証拠を確認
  3. 03仮説と決定の成果物を整理

インストール

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

$npx skills add https://github.com/neolabhq/context-engineering-kit --skill propose-hypotheses

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

詳細

仮説提案ワークフロー

第一原理フレームワーク(FPF)のサイクルを実行します。競合する仮説を生成し、論理を検証し、証拠を妥当性確認し、信頼性を監査して、判断を下します。

ユーザー入力

Problem Statement: $ARGUMENTS

ワークフローの実行

Step 1a: ディレクトリ構造を作成(メインエージェント)

.fpf/ ディレクトリが存在しない場合は、構造を作成します。

mkdir -p .fpf/{evidence,decisions,sessions,knowledge/{L0,L1,L2,invalid}}
touch .fpf/{evidence,decisions,sessions,knowledge/{L0,L1,L2,invalid}}/.gitkeep

事後条件:.fpf/ ディレクトリのひな形が存在します。


Step 1b: コンテキストを初期化(FPF エージェント)

sonnet[1m] モデルで fpf-agent を起動します。

  • 説明:「FPF コンテキストを初期化」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/init-context.md and execute.
    
    Problem Statement: $ARGUMENTS
    
    **Write**: Context summary to `.fpf/context.md`**
    

Step 2: 仮説を生成(FPF エージェント)

sonnet[1m] モデルで fpf-agent を起動します。

  • 説明:「L0 仮説を生成」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/generate-hypotheses.md and execute.
    
    Problem Statement: $ARGUMENTS
    Context: <summary from Step 1b>
    
    **Write**: List of hypothesis IDs and titles to `.fpf/knowledge/L0/`
    
    Reply with summary table in markdown format:
    
      | ID | Title | Kind | Scope |
      |----|-------|------|-------|
      | ... | ... | ... | ... |
    

Step 3: 要約を提示(メインエージェント)
  1. .fpf/knowledge/L0/ からすべての L0 仮説ファイルを読み取ります。
  2. エージェントの応答にある要約表を提示します。
  3. ユーザーに「ご自身で仮説を追加しますか?(はい/いいえ)」と尋ねます。

Step 4: ユーザーの仮説を追加(FPF エージェント、条件付きループ)

条件:ユーザーが仮説の追加に「はい」と答えた場合。

sonnet[1m] モデルで fpf-agent を起動します。

  • 説明:「ユーザーの仮説を追加」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/add-user-hypothesis.md and execute.
    
    User Hypothesis Description: <get from user>
    
    **Write**: User hypothesis to `.fpf/knowledge/L0/`
    

ループ:仮説が追加された後、Step 3 に戻ります。

終了条件:ユーザーが「いいえ」と答えるか、追加を辞退した場合。


Step 5: 論理を検証(並列サブエージェント)

条件:ユーザーが仮説の追加を終えた場合。

.fpf/knowledge/L0/ にある各 L0 仮説ファイルについて、sonnet[1m] モデルで fpf-agent を並列起動します。

  • 説明:「仮説を検証:」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/verify-logic.md and execute.
    
    Hypothesis ID: <hypothesis-id>
    Hypothesis File: .fpf/knowledge/L0/<hypothesis-id>.md
    
    **Move**: After you complete verification, move the file to `.fpf/knowledge/L1/` or `.fpf/knowledge/invalid/`.
    

すべてのエージェントの完了を待ち、ファイルが .fpf/knowledge/L1/ または .fpf/knowledge/invalid/ に移動されたことを確認します。


Step 6: 証拠を妥当性確認(並列サブエージェント)

.fpf/knowledge/L1/ にある各 L1 仮説ファイルについて、sonnet[1m] モデルで fpf-agent を並列起動します。

  • 説明:「仮説を妥当性確認:」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/validate-evidence.md and execute.
    
    Hypothesis ID: <hypothesis-id>
    Hypothesis File: .fpf/knowledge/L1/<hypothesis-id>.md
    
    **Move**: After you complete validation, move the file to `.fpf/knowledge/L2/` or `.fpf/knowledge/invalid/`.
    

すべてのエージェントの完了を待ち、ファイルが .fpf/knowledge/L2/ または .fpf/knowledge/invalid/ に移動されたことを確認します。


Step 7: 信頼性を監査(並列サブエージェント)

.fpf/knowledge/L2/ にある各 L2 仮説ファイルについて、sonnet[1m] モデルで fpf-agent を並列起動します。

  • 説明:「信頼性を監査:」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/audit-trust.md and execute.
    
    Hypothesis ID: <hypothesis-id>
    Hypothesis File: .fpf/knowledge/L2/<hypothesis-id>.md
    
    **Write**: Audit report to `.fpf/evidence/audit-{hypothesis-id}-{YYYY-MM-DD}.md`
    
    **Reply**: with R_eff score and weakest link
    

すべてのエージェントの完了を待ち、監査レポートが .fpf/evidence/ に作成されたことを確認します。


Step 8: 判断を下す(FPF エージェント)

sonnet[1m] モデルで fpf-agent を起動します。

  • 説明:「判断記録を作成」
  • プロンプト:
    Read ${CLAUDE_PLUGIN_ROOT}/tasks/decide.md and execute.
    
    Problem Statement: $ARGUMENTS
    L2 Hypotheses Directory: .fpf/knowledge/L2/
    Audit Reports: .fpf/evidence/
    
    **Write**: Decision record to `.fpf/decisions/`
    
    **Reply**: with decision record summary in markdown format:
    
    | Hypothesis | R_eff | Weakest Link | Status |
    |------------|-------|--------------|--------|
    | ... | ... | ... | ... |
    
    **Recommended Decision**: <hypothesis title>
    
    **Rationale**: <brief explanation>
    

エージェントの完了を待ち、判断記録が .fpf/decisions/ に作成されたことを確認します。

Step 9: 最終要約を提示(メインエージェント)
  1. .fpf/decisions/ から DRR を読み取ります。
  2. エージェントの応答にある結果を提示します。
  3. 次のステップを提示します。
    • 選択した仮説を実装する
    • /fpf:status を使用して FPF の状態を確認する
    • コードベースが変更された場合は /fpf:actualize を使用する
  4. ユーザーに判断に同意するか尋ねます。同意しない場合は、ユーザーの希望に沿って判断を変更するよう指示して、Step 8 で fpf-agent を起動します。

完了

次の条件を満たすと、ワークフローは完了です。

  • .fpf/ ディレクトリ構造が存在する
  • コンテキストが .fpf/context.md に記録されている
  • 仮説が生成、検証、妥当性確認され、監査されている
  • DRR が .fpf/decisions/ に作成されている
  • 最終要約がユーザーに提示されている

作成される成果物:

  • .fpf/context.md - 問題のコンテキスト
  • .fpf/knowledge/L0/*.md - 初期仮説
  • .fpf/knowledge/L1/*.md - 検証済みの仮説
  • .fpf/knowledge/L2/*.md - 妥当性確認済みの仮説
  • .fpf/knowledge/invalid/*.md - 却下された仮説
  • .fpf/evidence/*.md - 証拠ファイル
  • .fpf/decisions/*.md - 設計根拠記録

コメント