propose-hypotheses について
First Principles Framework のサイクルに沿って複数の仮説を立てて評価し、決定を記録する Claude スキルです。論理の検証、証拠の確認、信頼性の監査を行い、成果物を `.fpf/` に整理します。
主な機能
- 01複数の仮説の生成
- 02仮説の論理検証
- 03裏付け証拠の検証
- 04証拠の信頼性監査
- 05決定記録の作成
活用シーン
- 01問題への複数の説明を比較
- 02決定前に推論と証拠を確認
- 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: 要約を提示(メインエージェント)
.fpf/knowledge/L0/からすべての L0 仮説ファイルを読み取ります。- エージェントの応答にある要約表を提示します。
- ユーザーに「ご自身で仮説を追加しますか?(はい/いいえ)」と尋ねます。
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: 最終要約を提示(メインエージェント)
.fpf/decisions/から DRR を読み取ります。- エージェントの応答にある結果を提示します。
- 次のステップを提示します。
- 選択した仮説を実装する
/fpf:statusを使用して FPF の状態を確認する- コードベースが変更された場合は
/fpf:actualizeを使用する
- ユーザーに判断に同意するか尋ねます。同意しない場合は、ユーザーの希望に沿って判断を変更するよう指示して、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- 設計根拠記録