fpf:propose-hypotheses
Propose Hypotheses Workflow
Execute the First Principles Framework (FPF) cycle: generate competing hypotheses, verify logic, validate evidence, audit trust, and produce a decision.
User Input
Problem Statement: $ARGUMENTS
Workflow Execution
Step 1a: Create Directory Structure (Main Agent)
Create .fpf/ directory structure if it does not exist:
mkdir -p .fpf/{evidence,decisions,sessions,knowledge/{L0,L1,L2,invalid}}
touch .fpf/{evidence,decisions,sessions,knowledge/{L0,L1,L2,invalid}}/.gitkeep
Postcondition: .fpf/ directory scaffold exists.
Step 1b: Initialize Context (FPF Agent)
Launch fpf-agent with sonnet[1m] model:
- Description: "Initialize FPF context"
- Prompt:
Read ${CLAUDE_PLUGIN_ROOT}/tasks/init-context.md and execute. Problem Statement: $ARGUMENTS **Write**: Context summary to `.fpf/context.md`**
Step 2: Generate Hypotheses (FPF Agent)
Launch fpf-agent with sonnet[1m] model:
- Description: "Generate L0 hypotheses"
- Prompt:
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: Present Summary (Main Agent)
- Read all L0 hypothesis files from
.fpf/knowledge/L0/ - Present summary table from agent response.
- Ask user: "Would you like to add any hypotheses of your own? (yes/no)"
Step 4: Add User Hypothesis (FPF Agent, Conditional Loop)
Condition: User says yes to adding hypotheses.
Launch fpf-agent with sonnet[1m] model:
- Description: "Add user hypothesis"
- Prompt:
Read ${CLAUDE_PLUGIN_ROOT}/tasks/add-user-hypothesis.md and execute. User Hypothesis Description: <get from user> **Write**: User hypothesis to `.fpf/knowledge/L0/`
Loop: Return to Step 3 after hypothesis is added.
Exit: When user says no or declines to add more.
Step 5: Verify Logic (Parallel Sub-Agents)
Condition: User finished adding hypotheses.
For EACH L0 hypothesis file in .fpf/knowledge/L0/, launch parallel fpf-agent with sonnet[1m] model:
- Description: "Verify hypothesis: "
- Prompt:
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/`.
Wait for all agents, then check that files are moved to .fpf/knowledge/L1/ or .fpf/knowledge/invalid/.
Step 6: Validate Evidence (Parallel Sub-Agents)
For EACH L1 hypothesis file in .fpf/knowledge/L1/, launch parallel fpf-agent with sonnet[1m] model:
- Description: "Validate hypothesis: "
- Prompt:
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/`.
Wait for all agents, then check that files are moved to .fpf/knowledge/L2/ or .fpf/knowledge/invalid/.
Step 7: Audit Trust (Parallel Sub-Agents)
For EACH L2 hypothesis file in .fpf/knowledge/L2/, launch parallel fpf-agent with sonnet[1m] model:
- Description: "Audit trust: "
- Prompt:
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
Wait for all agents, then check that audit reports are created in .fpf/evidence/.
Step 8: Make Decision (FPF Agent)
Launch fpf-agent with sonnet[1m] model:
- Description: "Create decision record"
- Prompt:
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>
Wait for agent, then check that decision record is created in .fpf/decisions/.
Step 9: Present Final Summary (Main Agent)
- Read the DRR from
.fpf/decisions/ - Present results from agent response.
- Present next steps:
- Implement the selected hypothesis
- Use
/fpf:statusto check FPF state - Use
/fpf:actualizeif codebase changes
- Ask user if he agree with the decision, if not launch fpf-agent at step 8 with instruction to modify the decision as user wants.
Completion
Workflow complete when:
-
.fpf/directory structure exists - Context recorded in
.fpf/context.md - Hypotheses generated, verified, validated, and audited
- DRR created in
.fpf/decisions/ - Final summary presented to user
Artifacts Created:
.fpf/context.md- Problem context.fpf/knowledge/L0/*.md- Initial hypotheses.fpf/knowledge/L1/*.md- Verified hypotheses.fpf/knowledge/L2/*.md- Validated hypotheses.fpf/knowledge/invalid/*.md- Rejected hypotheses.fpf/evidence/*.md- Evidence files.fpf/decisions/*.md- Design Rationale Record