plugins/instantly/skills/ab-testing-patterns/SKILL.md
A/B testing methodology for cold email optimization
npx skillsauth add madappgang/magus ab-testing-patternsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
plugin: instantly updated: 2026-01-20
CRITICAL: Only change one element per test for clear attribution.
| Test Type | Variable | Keep Same | |-----------|----------|-----------| | Subject Line | Subject only | Body, CTA, timing | | Opening Line | First sentence | Subject, rest of body | | CTA | Call to action | Subject, body intro | | Send Time | Delivery time | All copy elements |
| Confidence Level | Minimum Sample per Variant | |------------------|----------------------------| | 90% | 100 | | 95% (standard) | 150 | | 99% | 200 |
Formula:
sample_size = (Z^2 * p * (1-p)) / E^2
Where:
Z = 1.96 for 95% confidence
p = expected conversion rate (use 0.5 if unknown)
E = margin of error (typically 0.05)
| Category | Control Example | Variant Example | |----------|-----------------|-----------------| | Curiosity vs Specific | "Quick question" | "2 min about {{company}}'s pipeline" | | Personal vs Generic | "{{first_name}}, saw this" | "Your team might like this" | | Question vs Statement | "Struggling with X?" | "How we fixed X for [Company]" | | Short vs Medium | "Quick win?" | "{{first_name}}, 2 ideas for {{company}}" |
| Element | Low-Lift | High-Lift | |---------|----------|-----------| | Opening hook | Different pain point | Different approach entirely | | Social proof | Different company name | No social proof | | Value proposition | Reframe benefit | Different benefit | | CTA | Soft vs hard ask | Different action |
PAS vs AIDA:
Test Hypothesis: PAS performs better for pain-point-heavy ICPs, AIDA for solution-seekers.
| Variable | Options to Test | |----------|-----------------| | Day of week | Tue vs Thu (typically best) | | Time of day | 8-10am vs 2-4pm | | Timezone | Send in prospect's local time vs batch send | | Sequence gaps | 2-day vs 3-day follow-up gaps |
Optimal Sending Windows:
Primary: Tuesday-Thursday, 9-11am local time
Secondary: Tuesday-Thursday, 2-4pm local time
Avoid: Monday morning, Friday afternoon
| Total Sample | Lift Needed for 95% Confidence | |--------------|--------------------------------| | 200 (100 per variant) | 15%+ lift | | 500 (250 per variant) | 10%+ lift | | 1000 (500 per variant) | 7%+ lift |
IF lift >= 15% AND sample >= 100/variant:
Declare winner with medium confidence
IF lift >= 10% AND sample >= 250/variant:
Declare winner with high confidence
IF lift < 10% OR sample < 100/variant:
Continue test or call it inconclusive
move_leads_to_campaign to assign leadsupdate_campaign_sequence)## A/B Test Log
**Test ID**: {uuid}
**Campaign**: {campaign_name}
**Variable**: {what_was_tested}
**Hypothesis**: {expected_outcome}
**Control**:
- Version: {control_description}
- Sample: {n}
- Open Rate: {x}%
- Reply Rate: {y}%
**Variant**:
- Version: {variant_description}
- Sample: {n}
- Open Rate: {x}%
- Reply Rate: {y}%
**Result**: {Winner|Inconclusive}
**Lift**: {z}%
**Confidence**: {confidence}%
**Learning**: {what_we_learned}
testing
A test skill for validation testing. Use when testing skill parsing and validation logic.
tools
--- name: bad-skill description: This skill has invalid YAML in frontmatter allowed-tools: [invalid, array, syntax prerequisites: not-an-array --- # Bad Skill This skill has malformed frontmatter that should fail parsing. The YAML has: - Unclosed array bracket - Wrong type for prerequisites (should be array, not string)
development
Sync model aliases from the curated Firebase database. Fetches default model assignments, short aliases, team compositions, and known model metadata from the claudish API. Run this to get fresh model recommendations.
tools
Release one or more Magus plugins to the distribution repos (magus, magus-alpha, magus-marketing). Handles version inference from git history, marketplace.json updates, tagging, and force-push to lean dist repos. Use whenever the user says "release kanban", "release the dev plugin", "cut a new version of gtd", "bump kanban to 1.7", or hands you a batch like "release kanban and gtd". Also use for multi-plugin releases and for checking what a release would contain before committing.