Execute complete FPF cycle from hypothesis generation to decision
40
27%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/fpf/skills/propose-hypotheses/SKILL.mdExecute the First Principles Framework (FPF) cycle: generate competing hypotheses, verify logic, validate evidence, audit trust, and produce a decision.
Problem Statement: $ARGUMENTSCreate .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}}/.gitkeepPostcondition: .fpf/ directory scaffold exists.
Launch fpf-agent with sonnet[1m] model:
Read ${CLAUDE_PLUGIN_ROOT}/tasks/init-context.md and execute.
Problem Statement: $ARGUMENTS
**Write**: Context summary to `.fpf/context.md`**Launch fpf-agent with sonnet[1m] model:
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 |
|----|-------|------|-------|
| ... | ... | ... | ... |.fpf/knowledge/L0/Condition: User says yes to adding hypotheses.
Launch fpf-agent with sonnet[1m] model:
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.
Condition: User finished adding hypotheses.
For EACH L0 hypothesis file in .fpf/knowledge/L0/, launch parallel fpf-agent with sonnet[1m] model:
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/.
For EACH L1 hypothesis file in .fpf/knowledge/L1/, launch parallel fpf-agent with sonnet[1m] model:
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/.
For EACH L2 hypothesis file in .fpf/knowledge/L2/, launch parallel fpf-agent with sonnet[1m] model:
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 linkWait for all agents, then check that audit reports are created in .fpf/evidence/.
Launch fpf-agent with sonnet[1m] model:
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/..fpf/decisions//fpf:status to check FPF state/fpf:actualize if codebase changesWorkflow complete when:
.fpf/ directory structure exists.fpf/context.md.fpf/decisions/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 Recorddedca19
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.