analyze-test

analyze-test is a command for Claude Code from phuryn/pm-skills. It costs 20 tokens per session (945 once invoked), scanned A, original, MIT.

A command for analyzing A/B tests, experiments that compare a control version with a changed version. It checks whether the observed difference is large and reliable enough to guide a product decision.

In plain words
What is it for?
Use it with summary numbers, raw CSV data, screenshots, or an experiment description to check the test design, calculate significance, and recommend whether to ship, extend, or stop.
Why use it?
It helps avoid shipping a change based on misleading results from too little data, a short test, or uneven participant assignment.

Command for Claude Code

Written for Claude Code: argument-hint in frontmatter.

Part of the pm-data-analytics plugin — 3 skills, 3 commands shipped together

About the project

phuryn/pm-skills is a marketplace of reusable skills, commands, and plugins that guide AI assistants through product-management work such as discovery, strategy, planning, metrics, launches, and growth. It is for product managers and teams using Claude Code, Cowork, or compatible assistants. The catalogue entries are the project's own workflows and extensions.

phuryn/pm-skills · 26,033 stars · on GitHub · productcompass.pm

Install

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.

agentmods
npx agentmods add commands/phuryn/pm-skills/analyze-test
Clone the repo
git clone --depth 1 https://github.com/phuryn/pm-skills

Made for: Claude Code.

Or install pm-data-analytics, the plugin that ships this one along with the rest of its 3 skills, 3 commands.

Wrote 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.

agentmods badge for analyze-test

README.md
[![agentmods](https://agentmods.dev/badge/commands/phuryn/pm-skills/analyze-test.svg)](https://agentmods.dev/commands/phuryn/pm-skills/analyze-test)
Your own site
<a href="https://agentmods.dev/commands/phuryn/pm-skills/analyze-test"><img src="https://agentmods.dev/badge/commands/phuryn/pm-skills/analyze-test.svg" alt="Measured on agentmods" height="20"></a>
Per session 20 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 945 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00020 $0.00945
Opus 5 $0.00010 $0.00473
Sonnet 5 $0.00004 $0.00189
Haiku 4.5 $0.00002 $0.00094

Measured 6d ago against content hash 562c6aa10b19, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

analyze-test 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 6d 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.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

pm-data-analytics/commands/analyze-test.md · 110 lines

How it starts

The opening of the file, as written. The whole thing — 110 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/analyze-test -- A/B Test Analysis

Evaluate experiment results with statistical rigor and translate findings into a clear product decision: ship, extend, or stop.

Invocation

/analyze-test Control: 4.2% conversion (n=5000), Variant: 4.8% conversion (n=5100)
/analyze-test [upload a CSV of test results]
/analyze-test [screenshot from your experimentation platform]

Workflow

Step 1: Accept Test Data

Accept in any format:

  • Summary statistics (conversion rates, sample sizes per variant)
  • Raw event data (CSV with user_id, variant, converted, timestamp)
  • Screenshot from an experimentation platform (Optimizely, LaunchDarkly, etc.)
  • Description of the experiment and results

Step 2: Validate Test Design

Before analyzing results, check:

  • Was sample size sufficient? (run a power analysis)
  • Was the test run long enough? (capture weekly cycles, minimum 1-2 business cycles)
  • Was randomization clean? (check for sample ratio mismatch)
  • Were there any external factors during the test period?

Flag issues if found — results from a flawed test can be misleading.

Step 3: Analyze Results

Apply the ab-test-analysis skill:

  • Statistical significance: Calculate p-value and confidence interval
  • Effect size: Absolute and relative difference between variants
  • Practical significance: Is the effect large enough to matter for the business?
  • Confidence interval: What's the range of plausible true effects?
  • Segment analysis: If data allows, check for differential effects by user segment

Step 4: Generate Analysis

## A/B Test Analysis: [Test Name]

**Date**: [today]
**Test duration**: [X days/weeks]
**Total sample**: [N users]

### Results Summary
| Variant | Sample | Metric | Rate | 95% CI |
|---------|--------|--------|------|--------|
| Control | [n] | [metric] | [X%] | [X% - Y%] |
| Variant | [n] | [metric] | [X%] | [X% - Y%] |

### Statistical Analysis
- **Relative lift**: [+X%] ([CI range])
- **P-value**: [X]
- **Statistically significant**: [Yes/No] at 95% confidence
- **Minimum detectable effect**: [X%] (what the test was powered to detect)

### Sample Size Check
- **Required sample**: [N] per variant (for [X%] MDE at 80% power)
- **Actual sample**: [N] per variant
- **Verdict**: [Sufficiently powered / Underpowered / Overpowered]

### Decision

**Recommendation: [SHIP / EXTEND / STOP]**

[Clear explanation of why, considering both statistical and practical significance]

### Business Impact Estimate
If shipped to 100% of users:
- **Expected impact**: [metric change per month/quarter]
- **Revenue impact**: [if applicable]
- **Confidence**: [How certain we are about this estimate]

### Caveats
- [Any concerns about the test validity]
- [Segments where results differ]
- [Novelty effects or other biases to consider]

### Follow-Up
- [What to test next based on learnings]
- [Monitoring plan if shipping the variant]

Read the full file on GitHub · 110 lines

Changes

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.

  1. 6d ago First seen · 110 lines · 20 tokens per session scan A 562c6aa10b19

Subscribe to this mod's changes

analyze-test is a command published in the GitHub repository phuryn/pm-skills (26,033 stars, last pushed 2mo ago), licensed MIT. It adds 20 tokens to every session and 945 once invoked, about $0.0001 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-08-30.