$npx -y skills add NeoLabHQ/context-engineering-kit --skill propose-hypothesesExecute complete FPF cycle from hypothesis generation to decision
| 1 | # Propose Hypotheses Workflow |
| 2 | |
| 3 | Execute the First Principles Framework (FPF) cycle: generate competing hypotheses, verify logic, validate evidence, audit trust, and produce a decision. |
| 4 | |
| 5 | ## User Input |
| 6 | |
| 7 | ```text |
| 8 | Problem Statement: $ARGUMENTS |
| 9 | ``` |
| 10 | |
| 11 | ## Workflow Execution |
| 12 | |
| 13 | ### Step 1a: Create Directory Structure (Main Agent) |
| 14 | |
| 15 | Create `.fpf/` directory structure if it does not exist: |
| 16 | |
| 17 | ```bash |
| 18 | mkdir -p .fpf/{evidence,decisions,sessions,knowledge/{L0,L1,L2,invalid}} |
| 19 | touch .fpf/{evidence,decisions,sessions,knowledge/{L0,L1,L2,invalid}}/.gitkeep |
| 20 | ``` |
| 21 | |
| 22 | **Postcondition**: `.fpf/` directory scaffold exists. |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ### Step 1b: Initialize Context (FPF Agent) |
| 27 | |
| 28 | Launch fpf-agent with sonnet[1m] model: |
| 29 | - **Description**: "Initialize FPF context" |
| 30 | - **Prompt**: |
| 31 | ``` |
| 32 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/init-context.md and execute. |
| 33 | |
| 34 | Problem Statement: $ARGUMENTS |
| 35 | |
| 36 | **Write**: Context summary to `.fpf/context.md`** |
| 37 | ``` |
| 38 | |
| 39 | --- |
| 40 | |
| 41 | ### Step 2: Generate Hypotheses (FPF Agent) |
| 42 | |
| 43 | Launch fpf-agent with sonnet[1m] model: |
| 44 | - **Description**: "Generate L0 hypotheses" |
| 45 | - **Prompt**: |
| 46 | ``` |
| 47 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/generate-hypotheses.md and execute. |
| 48 | |
| 49 | Problem Statement: $ARGUMENTS |
| 50 | Context: <summary from Step 1b> |
| 51 | |
| 52 | **Write**: List of hypothesis IDs and titles to `.fpf/knowledge/L0/` |
| 53 | |
| 54 | Reply with summary table in markdown format: |
| 55 | |
| 56 | | ID | Title | Kind | Scope | |
| 57 | |----|-------|------|-------| |
| 58 | | ... | ... | ... | ... | |
| 59 | ``` |
| 60 | |
| 61 | --- |
| 62 | |
| 63 | ### Step 3: Present Summary (Main Agent) |
| 64 | |
| 65 | 1. Read all L0 hypothesis files from `.fpf/knowledge/L0/` |
| 66 | 2. Present summary table from agent response. |
| 67 | 3. Ask user: "Would you like to add any hypotheses of your own? (yes/no)" |
| 68 | |
| 69 | --- |
| 70 | |
| 71 | ### Step 4: Add User Hypothesis (FPF Agent, Conditional Loop) |
| 72 | |
| 73 | **Condition**: User says yes to adding hypotheses. |
| 74 | |
| 75 | Launch fpf-agent with sonnet[1m] model: |
| 76 | - **Description**: "Add user hypothesis" |
| 77 | - **Prompt**: |
| 78 | ``` |
| 79 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/add-user-hypothesis.md and execute. |
| 80 | |
| 81 | User Hypothesis Description: <get from user> |
| 82 | |
| 83 | **Write**: User hypothesis to `.fpf/knowledge/L0/` |
| 84 | ``` |
| 85 | |
| 86 | **Loop**: Return to Step 3 after hypothesis is added. |
| 87 | |
| 88 | **Exit**: When user says no or declines to add more. |
| 89 | |
| 90 | --- |
| 91 | |
| 92 | ### Step 5: Verify Logic (Parallel Sub-Agents) |
| 93 | |
| 94 | **Condition**: User finished adding hypotheses. |
| 95 | |
| 96 | For EACH L0 hypothesis file in `.fpf/knowledge/L0/`, launch parallel fpf-agent with sonnet[1m] model: |
| 97 | - **Description**: "Verify hypothesis: <hypothesis-id>" |
| 98 | - **Prompt**: |
| 99 | ``` |
| 100 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/verify-logic.md and execute. |
| 101 | |
| 102 | Hypothesis ID: <hypothesis-id> |
| 103 | Hypothesis File: .fpf/knowledge/L0/<hypothesis-id>.md |
| 104 | |
| 105 | **Move**: After you complete verification, move the file to `.fpf/knowledge/L1/` or `.fpf/knowledge/invalid/`. |
| 106 | ``` |
| 107 | |
| 108 | **Wait for all agents**, then check that files are moved to `.fpf/knowledge/L1/` or `.fpf/knowledge/invalid/`. |
| 109 | |
| 110 | --- |
| 111 | |
| 112 | ### Step 6: Validate Evidence (Parallel Sub-Agents) |
| 113 | |
| 114 | For EACH L1 hypothesis file in `.fpf/knowledge/L1/`, launch parallel fpf-agent with sonnet[1m] model: |
| 115 | - **Description**: "Validate hypothesis: <hypothesis-id>" |
| 116 | - **Prompt**: |
| 117 | ``` |
| 118 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/validate-evidence.md and execute. |
| 119 | |
| 120 | Hypothesis ID: <hypothesis-id> |
| 121 | Hypothesis File: .fpf/knowledge/L1/<hypothesis-id>.md |
| 122 | |
| 123 | **Move**: After you complete validation, move the file to `.fpf/knowledge/L2/` or `.fpf/knowledge/invalid/`. |
| 124 | ``` |
| 125 | |
| 126 | **Wait for all agents**, then check that files are moved to `.fpf/knowledge/L2/` or `.fpf/knowledge/invalid/`. |
| 127 | |
| 128 | --- |
| 129 | |
| 130 | ### Step 7: Audit Trust (Parallel Sub-Agents) |
| 131 | |
| 132 | For EACH L2 hypothesis file in `.fpf/knowledge/L2/`, launch parallel fpf-agent with sonnet[1m] model: |
| 133 | - **Description**: "Audit trust: <hypothesis-id>" |
| 134 | - **Prompt**: |
| 135 | ``` |
| 136 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/audit-trust.md and execute. |
| 137 | |
| 138 | Hypothesis ID: <hypothesis-id> |
| 139 | Hypothesis File: .fpf/knowledge/L2/<hypothesis-id>.md |
| 140 | |
| 141 | **Write**: Audit report to `.fpf/evidence/audit-{hypothesis-id}-{YYYY-MM-DD}.md` |
| 142 | |
| 143 | **Reply**: with R_eff score and weakest link |
| 144 | ``` |
| 145 | |
| 146 | **Wait for all agents**, then check that audit reports are created in `.fpf/evidence/`. |
| 147 | |
| 148 | --- |
| 149 | |
| 150 | ### Step 8: Make Decision (FPF Agent) |
| 151 | |
| 152 | Launch fpf-agent with sonnet[1m] model: |
| 153 | - **Description**: "Create decision record" |
| 154 | - **Prompt**: |
| 155 | ``` |
| 156 | Read ${CLAUDE_PLUGIN_ROOT}/tasks/decide.md and execute. |
| 157 | |
| 158 | Problem Statement: $ARGUMENTS |
| 159 | L2 Hypotheses Directory: .fpf/knowledge/L2/ |
| 160 | Audit Reports: .fpf/evidence/ |
| 161 | |
| 162 | **Write**: Decision record to `.fpf/decisions/` |
| 163 | |
| 164 | **Reply**: with decision record summary in markdown format: |
| 165 | |
| 166 | | Hypothesis | R_eff | Weakest Link | Status | |
| 167 | |------------|-------|--------------|--------| |
| 168 | | ... | ... | ... | ... | |
| 169 | |
| 170 | **Recommended Decision**: <hypothesis title> |
| 171 | |
| 172 | **Rationale**: <brief explanation> |
| 173 | ``` |
| 174 | |
| 175 | **Wait for agent**, then check that decision record is created in `.fpf/decision |