Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add JansenAnalytics/claudex --skill hypothesis-testergit clone --depth 1 https://github.com/JansenAnalytics/claudexWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jansenanalytics/claudex/hypothesis-tester)<a href="https://agentmods.dev/skills/jansenanalytics/claudex/hypothesis-tester"><img src="https://agentmods.dev/badge/skills/jansenanalytics/claudex/hypothesis-tester.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00059 | $0.00864 |
| Opus 5 | $0.00030 | $0.00432 |
| Sonnet 5 | $0.00012 | $0.00173 |
| Haiku 4.5 | $0.00006 | $0.00086 |
Grade A, and why
hypothesis-tester scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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 |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 79 lines · 59 tokens per session scan A 1af5d5759585
hypothesis-tester is a skill published in the GitHub repository JansenAnalytics/claudex (5 stars, last pushed 2mo ago), licensed MIT. It adds 59 tokens to every session and 864 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
debate-orchestrator
Orchestrates formal debates with proposition and opposition sides, coordinating debaters and judges through structured exchanges. Use when running debate exchanges, managing debate rounds, or continuing interrupted debates.
auto-research
Research uncertain questions with an explicit, user-approved web search or ChatGPT consultation, then present options and wait for implementation approval.
rubber-duck
Adversarial "rubber duck" review that turns explaining-out-loud into a hallucination check. The main session is the PRESENTER (it did the work — a design doc, investigation, or analysis — and holds the real reasoning) and reconstructs the topic to a LISTENER — a spawned subagent pinned to a DIFFERENT-vendor model that…
ai-image-creator
Generate, edit-from-reference, or analyze images with AI via OpenRouter (gemini, geminipro, riverflow, flux2, seedream, gpt5, gpt5.4; Cloudflare AI Gateway BYOK). Also analyze a video (--analyze-video, read-only — no video generated) into a text description for video prompts. Use when the user asks to generate an…
uctm-init
An initialization procedure for uc-taskmanager, a project task-management pipeline. It creates a works directory and, with permission, adds the file and command access the agent needs to local settings.
work-pipeline
Triggers the WORK-PIPELINE when a user request starts with a [] tag (e.g., [new-feature], [bugfix], [WORK start]). Use this skill whenever you detect a [] tag at the beginning of a user message.