From fpf
Executes First Principles Framework (FPF) workflow: generates competing hypotheses for a problem statement, verifies logic across agents, organizes evidence/decisions in .fpf/ directory.
npx claudepluginhub neolabhq/context-engineering-kit --plugin fpfThis skill is limited to using the following tools:
Execute the First Principles Framework (FPF) cycle: generate competing hypotheses, verify logic, validate evidence, audit trust, and produce a decision.
Amplifies reasoning for complex problems: decomposes into bounded contexts, architects systems, evaluates alternatives, classifies issues, defines quality using First Principles Framework (FPF).
Generates and compares 3-5 competing hypotheses for complex decisions using ADI cycle (Abduction, Deduction, Induction). For architectural choices, trade-offs, and systematic option evaluation.
Enforces scientific method—observation, falsifiable hypotheses, predictions, experiments, conclusions—for debugging unclear causes, intermittent issues, failed attempts, or uncertain architecture decisions.
Share bugs, ideas, or general feedback.
Execute the First Principles Framework (FPF) cycle: generate competing hypotheses, verify logic, validate evidence, audit trust, and produce a decision.
Problem Statement: $ARGUMENTS
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.
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 link
Wait 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 Record