# propose-hypotheses

Runs the whole First Principles Framework cycle: generates competing hypotheses, verifies logic, validates evidence and produces a decision record.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1200 installs · ★ 1787
- Author: NeoLabHQ
- License: GPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/NeoLabHQ/context-engineering-kit/tree/HEAD/skills/propose-hypotheses/SKILL.md
- Updated: 2026-08-26
- HTML: https://affpapa.org/en/nevibecode/skills/propose-hypotheses

## What it 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.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/propose-hypotheses/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/propose-hypotheses/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/propose-hypotheses/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/propose-hypotheses/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install NeoLabHQ/context-engineering-kit propose-hypotheses
```

2. **Manually: put the files in place**
- File: `.github/skills/propose-hypotheses/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/NeoLabHQ/context-engineering-kit --path skills/propose-hypotheses
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/propose-hypotheses/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add NeoLabHQ/context-engineering-kit --skill propose-hypotheses -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/NeoLabHQ/context-engineering-kit/tree/HEAD/skills/propose-hypotheses/SKILL.md

## When to use it
- 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
- 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

## Similar
- [thinking-model-router](https://affpapa.org/en/nevibecode/skills/thinking-model-router.md) — skill · 605 installs
- [openspec-propose](https://affpapa.org/en/nevibecode/skills/openspec-propose.md) — skill · 4000 installs
- [asb-interview-hypotheses](https://affpapa.org/en/nevibecode/skills/asb-interview-hypotheses.md) — skill · 630 installs
- [propose-security-hardening](https://affpapa.org/en/nevibecode/skills/propose-security-hardening.md) — skill · 13 installs
- [critical-thinking-logical-reasoning](https://affpapa.org/en/nevibecode/skills/critical-thinking-logical-reasoning.md) — skill · 2400 installs
- [consciousness-council](https://affpapa.org/en/nevibecode/skills/consciousness-council.md) — skill · 1900 installs

From the same set: [neolabhq/context-engineering-kit](https://affpapa.org/en/nevibecode/by/neolabhq/context-engineering-kit.md) — 64 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
