propose-hypotheses — Claude Code skill: full FPF cycle
Runs the whole First Principles Framework cycle: generates competing hypotheses, verifies logic, validates evidence and produces a decision record.
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a claude-codeWhat propose-hypotheses does
The skill scaffolds a .fpf/ directory with evidence, decisions, sessions and knowledge folders split into L0, L1, L2 and invalid. An fpf-agent subagent on the sonnet[1m] model then reads your problem, writes context to .fpf/context.md and drops hypotheses into .fpf/knowledge/L0/.
From there it is a pipeline. Parallel subagents verify each L0 hypothesis and move it to L1 or to invalid. Survivors get their evidence validated and land in L2. A trust audit then scores R_eff and names the weakest link, with the report saved under .fpf/evidence/. The last step writes a decision record to .fpf/decisions/ with a table of hypotheses, scores and statuses.
Between stages the skill asks whether you want to add hypotheses of your own and loops on that step until you decline. Everything runs through subagents, so you need a platform that can launch them in parallel — Claude, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode all install it with one command. Once a decision exists, the skill points you to /fpf:status for the current state or /fpf:actualize when the codebase has moved on.
What it helps with
- break a vague problem into competing hypotheses
- drop hypotheses with broken logic before writing code
- check what actually backs each hypothesis
- score trust in the conclusions and find the weakest link
- record the chosen option with its rationale in a file
Example prompts for the agent
- Run propose-hypotheses: we need to pick how to store user sessions
- Take this through the FPF cycle: rewrite the auth layer around tokens
- propose-hypotheses: should background jobs move to a separate service
How to install propose-hypotheses
1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a claude-code2Manually: put the files in place
~/.claude/skills/propose-hypotheses/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/propose-hypotheses/
1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a codex2Manually: put the files in place
.agents/skills/propose-hypotheses/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a cursor2Manually: put the files in place
.cursor/skills/propose-hypotheses/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install NeoLabHQ/context-engineering-kit propose-hypotheses2Manually: put the files in place
.github/skills/propose-hypotheses/SKILL.md1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a gemini-cli2Platform CLI
gemini skills install https://github.com/NeoLabHQ/context-engineering-kit --path skills/propose-hypothesesManually: put the files in place
.devin/skills/propose-hypotheses/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about propose-hypotheses
How do I install propose-hypotheses in Claude?
Run npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a claude-code. The skill lands at ~/.claude/skills/propose-hypotheses/SKILL.md.
What does propose-hypotheses do?
It executes the First Principles Framework cycle: generate hypotheses, verify their logic, validate evidence, audit trust and write a decision record to .fpf/decisions/.
Where does the skill keep its output?
Inside .fpf/: context in .fpf/context.md, hypotheses by level under .fpf/knowledge/, audit reports in .fpf/evidence/ and the decision record in .fpf/decisions/.