Hypothesis-driven cognitive framework for complex reasoning and research tasks. Understand → Decompose → Cycle (Hypothesize → Predict → Test → Conclude) → Synthesize.
A cognitive framework for tasks that require reasoning, research, or exploration. Instead of executing a linear checklist, you iteratively form hypotheses, test them, and refine your understanding.
Use for:
Don't use for:
| Location | What Goes There |
|---|---|
| Skill directory | SKILL.md, templates, and hooks |
| Your working directory | plan.md, findings.md, progress.md (created per task) |
| File | Role | Tracks |
|---|---|---|
plan.md | How you think | Goal, current state pointer, key questions, decomposition, hypotheses, conclusions, synthesis, decisions |
findings.md | What you found | Research findings, visual/browser findings, technical decisions, issues encountered, resources |
progress.md | What you did | Actions log per step, status of each step (single source of truth), test results, errors |
One piece of information lives in one place. Don't duplicate status, errors, or findings across files.
Before starting any complex task:
cp <SKILL_DIR>/templates/plan.md .
cp <SKILL_DIR>/templates/findings.md .
cp <SKILL_DIR>/templates/progress.md .
<SKILL_DIR>is the directory containing this SKILL.md. Resolve from your runtime context.
plan.md Goal — One sentence describing what you're trying to achieveUnderstand → Decompose → [Hypothesize → Predict → Test → Conclude] × N → Synthesize
↑_______←_______↓ (if hypothesis rejected)
Each step is a distinct cognitive action. Do not skip steps. Do not combine steps.
Before anything else, understand what you're dealing with.
plan.mdOutput: plan.md Goal + Key Questions + Understand section filled in. Update progress.md Understand Status → in_progress.
Break the problem into sub-problems. This is mandatory — even "simple" tasks benefit from explicit decomposition.
Output: plan.md Decompose table filled in with Cycles. Update progress.md Understand Status → complete, Decompose Status → complete.
Status transition rule: When you start a step, mark it
in_progress. When you finish it and move to the next, mark itcomplete. The step you're entering becomesin_progress.
When starting a Cycle, update progress.md Cycle N Status → in_progress and plan.md Current State.
Based on what you know so far, propose an answer or approach.
Output: plan.md → Cycle N → Hypothesis section.
If your hypothesis is correct, what would you expect to see?
Output: plan.md → Cycle N → Prediction section.
Execute the verification. This is where you actually do work.
findings.md immediatelyfindings.mdOutput: findings.md updated with discoveries. progress.md Test Results table updated.
Was the hypothesis supported or rejected?
plan.md → Cycle N → Conclusionprogress.md Cycle N Status → complete (or stay in_progress if looping back)After all Cycles are complete:
Output: plan.md Synthesis section + final deliverable. Update progress.md Synthesize Status → complete.
Never start a complex task without plan.md. Non-negotiable.
After every 2 view/browser/search operations, IMMEDIATELY save key findings to
findings.md.
Multimodal content (images, browser results, screenshots) does not persist in context. Write it down or lose it.
Before major decisions, re-read plan.md. This refreshes goals in your attention window. Context decays over long sessions — your files don't.
When moving between steps (Understand → Decompose, Cycle N Hypothesize → Test, etc.), update progress.md — both the actions log and the Status field. Status in progress.md is the single source of truth for how far you've gotten. Also update plan.md Current State to reflect where you are.
Every error goes in progress.md Errors table. Track what you tried. Never repeat a failed action — mutate the approach.
ATTEMPT 1: Diagnose & Fix
→ Read error, identify root cause, apply targeted fix
ATTEMPT 2: Alternative Approach
→ Same error? Different method. Different tool. Different angle.
ATTEMPT 3: Broader Rethink
→ Question assumptions. Search for solutions. Consider revising the plan.
AFTER 3 FAILURES: Escalate
→ Stop. Document what you tried in progress.md. Present the problem,
attempts, and errors to the user. Ask for guidance or alternative direction.
Each step (Understand, Decompose, Hypothesize, Predict, Test, Conclude, Synthesize) is a distinct cognitive action. Jumping from Understand straight to Test means you're guessing, not reasoning. The discipline of forming explicit hypotheses and predictions is what makes this framework work.
Each Cycle in your Decompose table represents a distinct sub-problem. Execute them in order, one by one. Even if you gathered data for Cycle N+1 during Cycle N, you must still formally go through Hypothesize → Predict → Test → Conclude for every Cycle. Merging or skipping Cycles means your reasoning chain has gaps. A quality gate will deny tool use during Synthesize if prior steps/cycles are not marked complete.
| Situation | Action | Reason |
|---|---|---|
| Just wrote a file | DON'T read it back | Content still in context |
| Viewed image/PDF | Write findings NOW | Multimodal → text before lost |
| Browser returned data | Write to findings.md | Screenshots don't persist |
| Starting new Cycle | Read plan + findings + progress | Re-orient before hypothesizing |
| Error occurred | Read relevant file | Need current state to fix |
| Resuming after gap | Read all 3 files | Recover full state |
If you can answer these from your files, your state management is solid:
| Question | Source |
|---|---|
| Where am I? | Current State in plan.md + Status in progress.md |
| Where am I going? | Remaining steps — check Status fields in progress.md |
| What's the goal? | Goal statement in plan.md |
| What have I learned? | findings.md |
| What have I done? | progress.md |
| Don't | Do Instead |
|---|---|
| Jump straight to testing | Form a hypothesis first |
| Decompose generically ("research, analyze, report") | Decompose by actual sub-questions |
| Keep findings in your head | Write to findings.md immediately |
| Repeat a failed approach | Log error, mutate approach |
| Skip Predict ("I'll just see what happens") | Define what you expect to see |
| Forget to update progress | Update at every step transition |
| Duplicate info across files | One piece of information, one file |
| Start without a plan | Create plan.md FIRST |