agentleFS
ChykalophiaChykalophia/cro-research-reporting/skills/experiment-design/SKILL.md

experiment-design

Skill1 starsChanged 30 days agoMITView on GitHub

This skill should be used when planning, sizing, or reading out an A/B or multivariate test, or deciding whether a change can be tested at all. Trigger phrases: "how long should this test run", "sample size", "MDE", "is this test significant", "read out this test", "did the variant win", "SRM", "test plan", "pre-register", "we don't have enough traffic to test", "log this test", "what's our win rate". Use it whenever a conversion recommendation is about to be called proven.

31 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use list-quality-scorecard and positive-reply-scoring.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • creatop-gtmSkill

    list-quality-scorecard

    Check a lead list before it goes into a sequence. Gives a deliverability readout (firm) and a targeting readout (advisory). Surfaces issues, never blocks. Use before enrolling any list.

    Also in 3 projects that use this

  • creatop-gtmSkill

    positive-reply-scoring

    Classify replies and compute positive reply rate, the metric that predicts revenue. Use to tell whether a campaign is actually working, not just getting replies.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the detectable MDE is above ~10% relative, or the run is over ~8 weeks, follow references/low-traffic.md instead of launching a test …

    line 32
  2. Very specific:

    Run from the skill folder, e.g.

    line 45
  3. Very specific:

    Read ./cro-engagement.md first (created by getting-started).

    line 54
  4. Distinctive:

    Never call a test a win without the SRM check passing.

    line 60
  5. Distinctive:

    Never let an LLM (including you) "predict" the winner in place of a test.

    line 62

“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Experiment Design & Readout

Plan tests that can actually detect something, read them out honestly, and keep a log so the program gets smarter. Calculations run in the scripts, never in your head.

What the evidence says (set expectations with this)

  • Most ideas fail. Roughly 1 in 3 experiments wins at Microsoft, 10–20% at Bing, Google, Netflix and Booking.com, 8% at Airbnb Search; 12% in Optimizely's 127k-experiment dataset. Details and sources in references/base-rates.md.
  • Real effects are small. Median lift across 1,001 tests was close to zero (directional, Georgiev 2022); 90% of Qubit's 6,700 ecommerce tests moved revenue by less than 1.2%.
  • Many "wins" are false or inflated. At typical success rates a quarter or more of significant results are false positives, and underpowered winners overstate their effect.
  • Tests break. About 6% of Microsoft tests have a sample ratio mismatch (SRM), which invalidates them.

So: a recommendation is a hypothesis until a sound test confirms it. A monitored rollout gives directional evidence, not confirmation.

Workflow

  1. Pre-register with templates/preregistration.md: hypothesis tied to evidence, one primary metric, guardrails, MDE, duration, stop rule. Write it before launch.
  2. Size it with scripts/power.py.
    • size mode: visitors and days for a target MDE.
    • mde mode: what the available traffic can detect in a fixed window.
    • If the detectable MDE is above ~10% relative, or the run is over ~8 weeks, follow references/low-traffic.md instead of launching a test that will end inconclusive.
  3. Run it for whole weeks, at least 14 days. Do not stop early on significance unless the design is sequential (references/test-design.md).
  4. Read it out with scripts/readout.py, passing the configured split with --weights when arms are not equal (it runs the SRM check, intervals, guardrails, Twyman flag, exaggeration estimate and the decision rule). Present it with report-information-design/references/experiment-readout.md.
  5. Log it with scripts/test_log.py add, win or lose. Use summary and prior to rank the next round by the client's own lever win rates.

Scripts (Python 3 standard library, no installs)

ScriptUse
scripts/power.pySample size, duration, detectable MDE; conversion or continuous metrics; multiple variants; CUPED
scripts/srm_check.pyChi-square sample ratio mismatch check for any number of arms
scripts/readout.pyEffect + CI, SRM, guardrail non-inferiority, Twyman flag, winner's-curse estimate, decision
scripts/test_log.pyPer-client CSV test log, win rates by lever/page, shrunk priors for prioritisation

Run from the skill folder, e.g. python3 ${CLAUDE_PLUGIN_ROOT}/skills/experiment-design/scripts/power.py size --baseline 0.025 --mde 0.1 --daily-visitors 4000.

Reference map

  • references/base-rates.md — win rates, effect sizes, false discovery: the numbers to set client expectations, with sources.
  • references/test-design.md — metrics (primary, guardrail, quality), peeking and sequential tests, multiple variants, CUPED, A/A tests, SRM causes.
  • references/low-traffic.md — what to do when the store cannot power a test.
  • templates/preregistration.md — the plan to fill in before launch.

Engagement context

Read ./cro-engagement.md first (created by getting-started). Use its daily eligible visitors per template, testing tool, and test-log path. If no log exists, offer test_log.py init.

Related skills

ecommerce-cro-audit produces the hypotheses; voc-research supplies the evidence behind them; report-information-design formats the readout; conversion-copywriting writes variants.

Guardrails

  • Never call a test a win without the SRM check passing.
  • Report intervals, not just point estimates; never promise the observed lift will hold after launch.
  • Never let an LLM (including you) "predict" the winner in place of a test. LLMs pick winning headlines barely above chance (Ye et al., Marketing Science 2025).
  • A flat test is a result. Log it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.