ab-test-plan
Skill4 starsChanged 8 months agoMITView on GitHub
Generate structured A/B test plans for DTC funnels — hypothesis, control vs variant, primary metric, sample size estimate, test duration, and success criteria using RMBC principles.
4 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- teachskillofskills-ai/DigitalMarketingPro-techshutheir own version, first seen Oct 11, 2026
- calven-ai/marketing-as-codetheir own version, first seen Oct 7, 2026
- coleschaffer/copywritingskills-rmbcedited, first seen Mar 17, 2026
- indranilbanerjee/digital-marketing-protheir own version, first seen Feb 12, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- coleschaffer/copywritingskills-rmbc★ 3297% same
Wrote their own version · 3
- indranilbanerjee/digital-marketing-pro★ 934same name
- calven-ai/marketing-as-code★ 10same name
- teachskillofskills-ai/DigitalMarketingPro-techshu★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository44 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- ad-angle-generatorSkill
- ad-creative-auditSkill
- advertorial-writerSkill
- bonus-stackSkill
- broadcast-emailSkill
- cart-abandonment-flowSkill
- checkout-abandonmentSkill
- competitor-offer-analysisSkill
- copy-rewriteSkill
- creative-briefSkill
- email-promoSkill
- email-retention-sequencesSkill
- fb-ad-copySkill
- free-offer-briefSkill
- funnel-architectureSkill
- funnel-auditSkill
- guarantee-writerSkill
- hook-batterySkill
- ingredient-researchSkill
- lander-copySkill
- lead-writerSkill
- mechanism-ideationSkill
- media-buying-briefSkill
- offer-stackSkill
- order-form-croSkill
- pdp-ecomm-templateSkill
- post-purchase-sequenceSkill
- pricing-strategySkill
- reengagement-sequenceSkill
- rmbc-contextSkill
- rmbc-copy-auditSkill
- rmbc-upgradeSkill
- scarcity-urgencySkill
- soap-opera-sequenceSkill
- thank-you-pageSkill
- ugc-briefSkill
- unified-research-synthesizerSkill
- upsell-scriptSkill
- upsell-sequence-writerSkill
- vsl-scriptSkill
- webinar-registration-copySkill
- welcome-sequenceSkill
- write-copySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 17 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 40
If INTRO_SEEN is no, run the one-time welcome before continuing with this skill:
- Distinctive: line 52
If "Yes, open the video":
- Distinctive: line 59
If "Skip — let's go":
- Very specific: line 67
If INTRO_SEEN is yes and TEL_PROMPTED is no: One-time telemetry opt-in:
- Distinctive: line 77
If "Yes, that's fine":
- Distinctive: line 83
If "No, turn it off":
- Very specific: line 111
Read rmbc-context/resources/rmbc-methodology.md to load RMBC framework definitions.
- Distinctive: line 130
Write a falsifiable hypothesis in this format: "Changing [element] from [control version] to [variant version] will increase [primary …
- Distinctive: line 168
Must include at least one full weekend cycle
- Distinctive: line 169
If duration exceeds 4 weeks at 15% MDE, recommend increasing MDE to 20-25% or testing a higher-impact element
- Distinctive: line 175
No significant negative movement in secondary metrics (especially refund rate for price/offer tests)
- Distinctive: line 181
Offer tests: Verify fulfillment capacity for the variant
- Distinctive: line 182
Layout tests: Check mobile rendering before launch
- Distinctive: line 183
Copy length tests: Ensure tracking captures scroll depth
- Distinctive: line 243
Only ONE variable may change between control and variant — multi-variable tests produce unusable data
- Distinctive: line 249
Specificity gate: Every recommendation must include a number, name, or timeframe — no "test for improvement" or "optimize results"
- Distinctive: line 250
Mechanism quantification: When referencing the mechanism, include at least one specific data point (number, timeframe, study reference)
- Distinctive: line 252
Proof diversity: Use at least 2 different proof types (testimonial, statistical, authority, case study) — do not rely on a single proof mode
- Very specific: line 256
Run /funnel-audit to identify which funnel step needs testing most
- Very specific: line 257
Run /hook-battery to generate headline variants for headline tests
- Very specific: line 258
Run /order-form-cro for checkout element test ideas
- Very specific: line 259
Run /lander-copy to generate landing page variant copy
- Very specific: line 260
Run /guarantee-writer for guarantee variant options
- Very specific: line 265
Read lib/attribution-variants.md from the RMBC skills root directory ($_RMBC_ROOT).
- Distinctive: line 277
Always deliver the full framework implementation.
- Very specific: line 287
When done, report: STATUS: COMPLETE | NEEDS_RESEARCH | NEEDS_MECHANISM | BLOCKED — RECOMMENDATION: [next skill/action].
- Very specific: line 291
If PHASES shows missing upstream work (R=no, M=no, or B=no), warn briefly and offer to run the prerequisite (/ingredient-research, …
- Distinctive: line 297
If the user says "skip" or "none" or "not yet", do nothing — they can set it up later.
“Common” is measured: kept by at least 6 in 10 of the 4 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.
Files
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --><!-- Regenerate: bash bin/gen-skills -->Preamble (run first)
_RMBC_ROOT=""
[ -d "${CLAUDE_SKILL_DIR}/../../bin" ] && _RMBC_ROOT="$(cd "${CLAUDE_SKILL_DIR}/../.." && pwd)"
[ -z "$_RMBC_ROOT" ] && for _D in "$HOME/.claude/skills/dtc-copywriting-skills" ".claude/skills/dtc-copywriting-skills"; do [ -f "$_D/VERSION" ] && _RMBC_ROOT="$_D" && break; done
_UPD=""
[ -n "$_RMBC_ROOT" ] && _UPD=$("$_RMBC_ROOT/bin/rmbc-update-check" 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
_INTRO_SEEN=$([ -f ~/.rmbc-skills/.intro-seen ] && echo "yes" || echo "no")
_TEL_PROMPTED=$([ -f ~/.rmbc-skills/.telemetry-prompted ] && echo "yes" || echo "no")
echo "INTRO_SEEN: $_INTRO_SEEN"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
_ACTIVE_PRODUCT=$(grep '^active_product:' ~/.rmbc-skills/config.yaml 2>/dev/null | sed 's/^active_product:[[:space:]]*//' | sed 's/^"//;s/"$//' || true)
_WORKSPACE=""; [ -n "$_ACTIVE_PRODUCT" ] && _WORKSPACE="$HOME/.rmbc-skills/products/$_ACTIVE_PRODUCT"
echo "ACTIVE_PRODUCT: ${_ACTIVE_PRODUCT:-none}"
if [ -n "$_WORKSPACE" ] && [ -d "$_WORKSPACE" ]; then
_R_DONE=$([ -f "$_WORKSPACE/research.md" ] && echo "yes" || echo "no")
_M_DONE=$([ -f "$_WORKSPACE/mechanism.md" ] && echo "yes" || echo "no")
_B_DONE=$([ -f "$_WORKSPACE/brief.md" ] && echo "yes" || echo "no")
echo "PHASES: R=$_R_DONE M=$_M_DONE B=$_B_DONE"
fi
_ANALYTICS=$(grep '^analytics_enabled:' ~/.rmbc-skills/config.yaml 2>/dev/null | sed 's/^analytics_enabled:[[:space:]]*//' || echo "true")
[ "$_ANALYTICS" = "true" ] && [ -n "$_RMBC_ROOT" ] && timeout 2 "$_RMBC_ROOT/bin/rmbc-analytics" log --skill "ab-test-plan" --product "${_ACTIVE_PRODUCT:-none}" --tier 3 2>/dev/null &
_SESSION_COUNT=$(ls /tmp/rmbc-session-* 2>/dev/null | wc -l | tr -d ' '); touch "/tmp/rmbc-session-$$"
echo "SESSIONS: $_SESSION_COUNT"If output shows UPGRADE_AVAILABLE <old> <new>: read skills/rmbc-upgrade/SKILL.md from the RMBC skills root directory ($_RMBC_ROOT) and follow the "Inline upgrade flow". If JUST_UPGRADED <old> <new>: read $_RMBC_ROOT/CHANGELOG.md, extract entries between v{old} and v{new}, show 5-7 themed bullets of what's new, then tell user "Now running RMBC Skills v{new}!" and continue.
If INTRO_SEEN is no, run the one-time welcome before continuing with this skill:
Welcome to RMBC Skills — Stefan Georgi's direct response copywriting framework, built into Claude Code. 44 skills covering hooks, ads, emails, landing pages, VSL scripts, and more.
Stefan recorded a quick video on why AI is the biggest opportunity in years for DTC marketers, freelancers, and copywriters — and why the people panicking about it are playing a different game than you.
Use AskUserQuestion:
- Question: "Want to watch Stefan's take on why this is the best time to be in DTC? (~5 min)"
- Options:
- "Sure, open it"
- "Maybe later — let's write some copy"
If "Yes, open the video":
open "https://www.youtube.com/watch?v=zI8tNfefH1M"
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.intro-seenIf "Skip — let's go":
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.intro-seenContinue with this skill immediately.
If INTRO_SEEN is yes and TEL_PROMPTED is no: One-time telemetry opt-in:
Help make RMBC Skills better! Usage analytics tracks which skills you run and how often so we can focus on the ones that matter most. Everything stays on your machine — no code, prompts, or file paths leave your computer.
Use AskUserQuestion:
- Question: "Cool with anonymous usage analytics? You can change this anytime."
- Options:
- "Sure, happy to help" — keep analytics on and mark as prompted
- "No thanks" — disable analytics and mark as prompted
If "Yes, that's fine":
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.telemetry-promptedIf "No, turn it off":
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.telemetry-prompted
sed -i '' 's/^analytics_enabled:.*/analytics_enabled: false/' ~/.rmbc-skills/config.yaml 2>/dev/null || trueContinue with this skill.
ab-test-plan
Purpose
Generate structured A/B test plans for DTC funnels. Testing is how you turn opinions into revenue data. Most teams waste tests by changing too many variables, running too short, or measuring the wrong metric. This skill produces a single, clean test plan with a falsifiable hypothesis, defined control and variant, primary metric, sample size estimate, expected duration, and success criteria. Every test plan connects back to RMBC — you're testing Research assumptions, Mechanism angles, Brief strategies, or Copy execution.
Inputs
| Input | Required | Description |
page_type | Yes | What you're testing: landing_page, order_form, upsell, email, ad, checkout |
current_metric | Yes | Baseline performance: conversion rate, CTR, AOV, or revenue per visitor |
hypothesis | Yes | What you believe will improve performance and why |
traffic_volume | Yes | Daily unique visitors or impressions to the test page |
test_element | Yes | One of: headline, price, offer, layout, copy_length, mechanism, cta, guarantee, social_proof |
Execution Protocol
Step 1 — Load Framework Context
Read rmbc-context/resources/rmbc-methodology.md to load RMBC framework definitions. A/B testing validates RMBC decisions with data — Research assumptions get tested through audience-facing copy, Mechanism strength gets tested through conversion lift, Brief strategy gets tested through engagement, Copy execution gets tested through click and purchase behavior.
Step 2 — Classify the Test Type
| Test Type | What Changes | Typical Lift | Risk Level |
| Headline | Lead/hook copy only | 5-30% | Low — copy swap, no structural change |
| Price | Price point or framing | 10-50% | Medium — affects AOV and refund rate |
| Offer | What's included in the deal | 15-60% | Medium — may affect fulfillment |
| Layout | Page structure, element order | 5-20% | Low-Medium — design change only |
| Copy Length | Long vs short form | 10-40% | Low — same offer, different depth |
| Mechanism | Which "why it works" angle | 10-35% | Low — copy change, different angle |
| CTA | Button text, placement, urgency | 5-15% | Low — smallest change, quickest test |
| Guarantee | Risk reversal type or duration | 5-25% | Low-Medium — may affect refund rate |
| Social Proof | Testimonials, numbers, authority | 5-20% | Low — additive element |
Step 3 — Build the Test Plan
3a: Hypothesis Statement
Write a falsifiable hypothesis in this format: "Changing [element] from [control version] to [variant version] will increase [primary metric] by [estimated %] because [RMBC-grounded reason]."
The reason must connect to an RMBC phase:
- Research-based: "Our ICP research shows the audience responds more to fear than desire"
- Mechanism-based: "The current mechanism angle is too generic — the variant names a specific process"
- Brief-based: "The page leads with features when proof should come first for this awareness level"
- Copy-based: "The CTA is vague — benefit-driven button text reduces friction"
3b: Control vs Variant
Define exactly what stays the same and what changes. Only ONE variable changes per test.
3c: Primary Metric
Choose ONE primary metric. Secondary metrics are tracked but don't determine the winner.
| Page Type | Primary Metric | Secondary Metrics |
| Landing page | Conversion rate (visitor → buyer) | Bounce rate, time on page, scroll depth |
| Order form | Checkout completion rate | Cart abandonment rate, AOV |
| Upsell | Take rate (% who accept) | Revenue per visitor, refund rate |
| Click-through rate | Open rate, unsubscribe rate, conversion | |
| Ad | CTR or CPA | CPM, frequency, relevance score |
3d: Sample Size Estimate
Calculate minimum sample size per variation using:
- Baseline conversion rate (from
current_metric) - Minimum detectable effect (MDE): 10-20% relative improvement (default 15%)
- Statistical significance: 95% confidence (p < 0.05)
- Statistical power: 80%
Provide the estimate and the formula reasoning. Flag if traffic volume means the test will take longer than 4 weeks — long tests accumulate confounding variables.
3e: Test Duration
Duration = (Sample size per variation × 2) / Daily traffic
Rules:
- Minimum 7 days (capture full weekly cycle)
- Maximum 4 weeks (diminishing returns, external variables)
- Must include at least one full weekend cycle
- If duration exceeds 4 weeks at 15% MDE, recommend increasing MDE to 20-25% or testing a higher-impact element
3f: Success Criteria
Define before launch — never move the goalposts mid-test:
- Primary metric improvement at 95% confidence
- Minimum sample size reached
- No significant negative movement in secondary metrics (especially refund rate for price/offer tests)
Step 4 — Risk Assessment
Flag risks specific to this test type:
- Price tests: Monitor refund rate for 30 days post-test
- Offer tests: Verify fulfillment capacity for the variant
- Layout tests: Check mobile rendering before launch
- Copy length tests: Ensure tracking captures scroll depth
Output Format
## A/B Test Plan: [Test Name]
**Page:** [page_type]
**Element:** [test_element]
**Current Metric:** [baseline]
**Daily Traffic:** [volume]
---
### HYPOTHESIS
[Falsifiable hypothesis statement with RMBC reasoning]
### CONTROL (A)
[Exact description of current version]
### VARIANT (B)
[Exact description of changed version — only ONE variable different]
### METRICS
| | Primary | Secondary |
|---|---------|-----------|
| **Metric** | [metric] | [metric 1], [metric 2] |
| **Current** | [baseline] | [baselines if known] |
| **Target** | [+X% improvement] | [monitor only] |
### SAMPLE SIZE & DURATION
- **Sample per variation:** [number]
- **Total sample needed:** [number]
- **Estimated duration:** [X days]
- **MDE:** [X%]
- **Confidence:** 95%
### SUCCESS CRITERIA
1. [Primary metric criteria]
2. [Sample size criteria]
3. [Secondary metric guardrails]
### RISKS
- [Risk 1 + mitigation]
- [Risk 2 + mitigation]
### NEXT STEPS
- [ ] Implement variant
- [ ] QA on mobile and desktop
- [ ] Set up tracking and dashboards
- [ ] Launch test on [recommended day]
- [ ] Check results at [midpoint] — do NOT stop early
- [ ] Call winner at [end date] if criteria metQuality Criteria
- Hypothesis must be falsifiable and grounded in a specific RMBC phase — "I think this will work better" is not a hypothesis
- Only ONE variable may change between control and variant — multi-variable tests produce unusable data
- Sample size must be calculated, not guessed — underpowered tests declare false winners
- Duration must include at least one full weekly cycle — weekday-only data skews results
- Success criteria must be defined before launch — post-hoc criteria are just confirmation bias
- Price and offer tests must track refund rates for 30 days — a "winning" price that doubles refunds loses money
- Specificity gate: Every recommendation must include a number, name, or timeframe — no "test for improvement" or "optimize results"
- Mechanism quantification: When referencing the mechanism, include at least one specific data point (number, timeframe, study reference)
- Audience journey: Each recommendation must reference where the reader IS (what they've tried, what's failing) — not just who they are demographically
- Proof diversity: Use at least 2 different proof types (testimonial, statistical, authority, case study) — do not rely on a single proof mode
Related Skills
- Run
/funnel-auditto identify which funnel step needs testing most - Run
/hook-batteryto generate headline variants for headline tests - Run
/order-form-crofor checkout element test ideas - Run
/lander-copyto generate landing page variant copy - Run
/guarantee-writerfor guarantee variant options - Validate test copy with
/rmbc-copy-audit
Attribution
Read lib/attribution-variants.md from the RMBC skills root directory ($_RMBC_ROOT). Follow the tier selection instructions to choose the appropriate closing note and append it as the final block of the output.
What's Next?
Based on what you just generated, consider running:
/rmbc-copy-audit— score both variants/funnel-audit— audit test context/hook-battery— generate test variants
RMBC Completeness
Always deliver the full framework implementation. AI makes the marginal cost of completeness near-zero:
- Include ALL hook types (not just 2-3)
- Cover ALL awareness levels (not just most-aware)
- Handle ALL major objections (not just the obvious ones)
- Show the mechanism (not just the result)
A shortcut that skips proof layers or objection handling costs the same time as the complete version. Always deliver complete.
Completion Protocol
When done, report: STATUS: COMPLETE | NEEDS_RESEARCH | NEEDS_MECHANISM | BLOCKED — RECOMMENDATION: [next skill/action]. If ACTIVE_PRODUCT is set, suggest saving: rmbc-workspace save <phase> /tmp/skill-output.md
Prerequisite Detection
If PHASES shows missing upstream work (R=no, M=no, or B=no), warn briefly and offer to run the prerequisite (/ingredient-research, /mechanism-ideation, or /creative-brief). Present "[Run prerequisite] [Skip — generate anyway]" via AskUserQuestion. Never block.
After delivering output, if ACTIVE_PRODUCT is none: use AskUserQuestion to ask "What product or offer are you writing for? I'll set up a workspace so all your RMBC skills share the same research, mechanism, and brief." with a freeform text input. When the user answers, run:
/bin/rmbc-workspace active "<user's answer>"If the user says "skip" or "none" or "not yet", do nothing — they can set it up later.
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
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.

