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 glebis/claude-skills --skill rigorous-experimentsgit clone --depth 1 https://github.com/glebis/claude-skillsWrote 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/glebis/claude-skills/rigorous-experiments)<a href="https://agentmods.dev/skills/glebis/claude-skills/rigorous-experiments"><img src="https://agentmods.dev/badge/skills/glebis/claude-skills/rigorous-experiments/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/glebis/claude-skills/rigorous-experiments"><img src="https://agentmods.dev/badge/skills/glebis/claude-skills/rigorous-experiments.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00129 | $0.01646 |
| Opus 5.5 | $0.00052 | $0.00658 |
| Sonnet 5.5 | $0.00026 | $0.00329 |
| Haiku 4.5 | $0.00013 | $0.00165 |
Grade A, and why
rigorous-experiments 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 2mo 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 — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Rigorous Experiments
Run statistical experiments on observational/personal time-series data that survive scrutiny. Distilled from a 54-experiment n-of-1 program in which sampled permutation tests, missing-data artifacts, app-categorization bugs and collinear mechanisms repeatedly manufactured — and then destroyed — "findings". Every rule here exists because its absence once produced a wrong conclusion.
Modes
Pick the mode matching the request; chain them for a full study.
| Mode | When | Reference |
|---|---|---|
| design | New hypothesis or study | references/design.md |
| conduct | Implementing + running the experiment | references/statistics.md |
| validate-data | Before trusting ANY new data source | references/data-validation.md |
| cross-validate | Findings worth defending; code review; external model review (e.g. GPT Pro) | references/cross-validation.md |
| investigate-leads | A sweep/run produced leads (p<0.06, not FDR-confirmed) | references/lead-investigation.md |
| audit | Re-examining past claims, registries of findings | references/statistics.md §Audit |
Non-negotiable core (all modes)
- Pre-register before computing. Hypotheses, exact tests, family size m, and the acceptance threshold go in the script docstring BEFORE the first run. Post-hoc tests are reported as descriptive, never promoted.
- Exact permutation, never sampled, on small n. A session sequence of
n=19 has 18 circular shifts: the minimum honest p is ~1/19≈0.05.
Sampling 2000 shifts with replacement fabricates precision (this killed
a flagship "q=0.028" finding). Use
scripts/perm_stats.py. - Permute over the full calendar, not the compressed series. Shifting a gap-compressed series breaks the timeline; keep missingness as NaN masks re-applied per shift. Event indicators must be pure 0/1 with no gaps — missingness lives only in the outcome series.
- BH with FIXED family size m, a LITERAL CONSTANT declared at design
time — never
len(tests)(that defeats pre-registration; the linter rejects it). Assert the run matches the declared m. Confirmatory families small and separate from exploratory sweeps; pooling everything into one BH buries true effects, cherry-picking families manufactures them. Plain BH assumes independent/positively-dependent tests; for strongly dependent lag families use BH-Yekutieli or maxT resampling. - Stationarity check before correlating trending series. Exact circular shift on a trending series is "exactly, reproducibly wrong": report prewhitened-r (AR1 residuals) and stationary bootstrap alongside.
- Stratify before pooling (Simpson check): within group (e.g. therapy/coaching) and within regime (pre/post known breaks). A pooled r=−0.25 once hid therapy −0.64 vs coaching +0.53.
- Controls can re-describe a finding, not just kill it. When a control collapses an effect, check collinearity of control and predictor — r(self-focus, session-length)=0.79 meant "mechanism ambiguous", not "effect fake". Report the decomposition.
- Honest statuses: confirmed (q<0.10 exact) ≠ lead (p<0.06) ≠ null ≠ descriptive. Status flips are recorded, never silently edited. Nulls with adequate power are findings. Robust ≠ significant: a lead surviving leave-one-out at small n is still underpowered — a candidate for prospective test, not a finding. 8b. Series scope is part of the test. A lagged "[t+1]" means the next unit in the series the hypothesis is about, not the next pooled row; define scope before lagging (it once flipped a sign). When recomputing a prior result, reproduce a stored artifact on that scope first.
- Privacy: raw text/audio never enters output files or external uploads — statistics, rates and embedding-derived scores only.
- Plain-language reporting: every statistic carries its practical meaning inline; define r/p/q/n once per report; no untranslated jargon calques. Narrative first, numbers as support.
What ships with it
15 files 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.
- dist.zip 15 KB
- evals/cases/bad_exp.py 312 B runs code
- evals/cases/bad_results.json 343 B
- evals/cases/cases.json 312 B
- evals/cases/good_exp.py 438 B runs code
- evals/cases/good_results.json 179 B
- evals/run_evals.py 5.6 KB runs code
- references/cross-validation.md 2.6 KB
- references/data-validation.md 4.2 KB
- references/design.md 3.8 KB
- references/lead-investigation.md 2.8 KB
- references/statistics.md 4.1 KB
- scripts/explorer.py 29 KB runs code
- scripts/perm_stats.py 4.8 KB runs code
- scripts/triage.py 4.1 KB runs code
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.
- 2mo ago First seen · 117 lines · 129 tokens per session scan A c431be83e12f
rigorous-experiments is a skill published in the GitHub repository glebis/claude-skills (410 stars, last pushed 2d ago), licensed MIT. It adds 129 tokens to every session and 1,646 once invoked, about $0.0005 per session on Opus 5.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.
rigorous-experiments compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| rigorous-experimentsglebis/claude-skills | Skill | 410 | 2d ago | MIT | A | 129 | Claude Code, Codex |
| 科研可视化工具XiaoMaColtAI/math-modeling-skill | Skill | 1.9k | yesterday | none | A | 240 | Claude Code, Codex |
| math-modelingXiaoMaColtAI/math-modeling-skill | Skill | 1.9k | yesterday | none | A | 83 | Claude Code, Codex |
| math-modelingXiaoMaColtAI/math-modeling-skill | Skill | 1.9k | yesterday | none | A | 83 | Claude Code, Codex |
| LaTeX工具XiaoMaColtAI/math-modeling-skill | Skill | 1.9k | yesterday | none | A | 46 | Claude Code, Codex |
| fitness-exercises-get-exercisesbobadilla-tech/requiems-api-skills | Skill | 2 | 2d ago | MIT | A | 24 | Claude Code |
| fitness-exercises-post-batchbobadilla-tech/requiems-api-skills | Skill | 2 | 2d ago | MIT | A | 44 | Claude Code |