hypothesis-tester

star 4

Hypothesis Tester Skill

JansenAnalytics By JansenAnalytics schedule Updated 6/3/2026

name: hypothesis-tester description: "Run a structured multi-position debate over an analytical question, spawning sub-agents to argue each option and counter confirmation bias. Use when comparing options or tradeoffs — 'which is better', 'should we', 'what's the risk', 'evaluate', 'compare options'." category: research maturity: stable tags: [debate, tradeoff-analysis, subagents, synthesis, decision-support]

Hypothesis Tester Skill

Use when: the user asks an analytical question with multiple valid answers, tradeoffs between options, or when you want to avoid confirmation bias in your analysis.

Trigger phrases: "which is better", "compare options", "what's the risk", "tradeoffs", "should we", "evaluate", "debate"

Workflow

1. Create debate session

node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/new-debate.cjs \
  --question "Full question here" \
  --positions "option-a,option-b,option-c" \
  [--context "Relevant context: metrics, constraints, goals"]

2. Spawn sub-agents (using sessions_spawn / subagents tool)

Read the output from step 1. For each position:

  • Read the prompt file content: cat ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/sessions/<id>/prompt-<position>.md
  • Use the subagent spawning mechanism with that content as the task
  • Sub-agent will write its analysis to the output file automatically
subagents.spawn(
  task="[content of prompt file]",
  model="anthropic/claude-sonnet-4-6",
  label="debate-<session>-<position>"
)

Note: Kite must do this step in-session (scripts cannot spawn sub-agents).

3. After all sub-agents complete, synthesize

node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/synthesize.cjs --session <id> --send

Commands

Command Purpose
node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/new-debate.cjs --question "..." --positions "a,b,c" Start a new debate
node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/list-debates.cjs List all sessions
node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/synthesize.cjs --session <id> Synthesize results
node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/synthesize.cjs --session <id> --send Synthesize + send to Telegram
node ${HYPOTHESIS_TESTER_HOME:-$HOME/projects/hypothesis-tester}/add-position.cjs --session <id> --position <slug> --file <path> Manually add a position

Reports saved to

~/workspace/reports/debate-<id>.md

Model recommendation

  • Balanced (sonnet): Most debates, general tradeoff analysis
  • Powerful (opus): High-stakes decisions, complex technical choices

Position naming

Use kebab-case: freemium, flat-subscription, build-in-house, use-existing-api

Tips

  • 2 positions minimum, 3–5 is ideal. More than 6 gets hard to synthesize.
  • Include --context with real numbers/constraints — sub-agents use this to make specific arguments.
  • The synthesizer works with partial results — if a sub-agent fails, synthesize what you have.
  • Self-ratings in position files drive the TL;DR verdict. Sub-agents should include ## Self-Rating: X/10 — [reason] at the end.
Install via CLI
npx skills add https://github.com/JansenAnalytics/claudex --skill hypothesis-tester
Repository Details
star Stars 4
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator
JansenAnalytics
JansenAnalytics Explore all skills →