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:
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:
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 File: .fpf/knowledge/L0/.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 File: .fpf/knowledge/L1/.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 File: .fpf/knowledge/L2/.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: Rationale:
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:status
to check FPF state
Use
/fpf:actualize
if 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