$npx -y skills add Affitor/affiliate-skills --skill ab-test-generatorGenerate A/B test variants for affiliate content. Triggers on: "create A/B test", "test my headline", "optimize my CTA", "generate variants", "split test ideas", "improve click-through rate", "test my landing page copy", "headline alternatives", "CTA variations", "which version i
| 1 | # A/B Test Generator |
| 2 | |
| 3 | Generate A/B test variants for affiliate content — headlines, CTAs, landing page sections, email subject lines, and social post hooks. Each variant includes a hypothesis explaining why it might outperform the original. Output is a Markdown document with the original, variants, hypotheses, and a test plan. |
| 4 | |
| 5 | ## Stage |
| 6 | |
| 7 | S6: Analytics — Small changes in headlines and CTAs can swing conversion rates by 20-50%. A/B testing is how professional affiliates systematically find what converts best. This skill removes the guesswork by generating theory-driven variants using proven copywriting frameworks. |
| 8 | |
| 9 | ## When to Use |
| 10 | |
| 11 | - User wants to improve conversion rates on existing content |
| 12 | - User has a headline, CTA, or email subject line and wants alternatives |
| 13 | - User says "test my headline", "optimize my CTA", "A/B test ideas" |
| 14 | - User has a landing page section that isn't converting |
| 15 | - User wants to compare different messaging approaches |
| 16 | - Chaining from S2-S5: take any content output and generate test variants |
| 17 | |
| 18 | ## Input Schema |
| 19 | |
| 20 | ```yaml |
| 21 | original: string # REQUIRED — the content to test (headline, CTA, paragraph, |
| 22 | # email subject line, or full social post) |
| 23 | |
| 24 | content_type: string # REQUIRED — "headline" | "cta" | "landing_section" |
| 25 | # | "email_subject" | "social_hook" |
| 26 | |
| 27 | goal: string # OPTIONAL — "clicks" | "signups" | "purchases" |
| 28 | # Default: "clicks" |
| 29 | |
| 30 | num_variants: number # OPTIONAL — number of variants to generate (2-5) |
| 31 | # Default: 3 |
| 32 | |
| 33 | audience: string # OPTIONAL — who sees this content |
| 34 | # (e.g., "SaaS founders", "content creators") |
| 35 | |
| 36 | product: string # OPTIONAL — product being promoted |
| 37 | ``` |
| 38 | |
| 39 | **Chaining context**: If S2-S5 content exists in conversation, the user can reference it: "test the headline from my blog post" or "generate CTA variants for my landing page." |
| 40 | |
| 41 | ## Workflow |
| 42 | |
| 43 | ### Step 1: Analyze Original Content |
| 44 | |
| 45 | Break down the original into components: |
| 46 | - **Emotional angle**: What emotion does it trigger? (curiosity, fear, desire, urgency) |
| 47 | - **Specificity**: How specific vs vague? |
| 48 | - **Structure**: Question, statement, command, statistic? |
| 49 | - **Framework**: Which copywriting framework does it follow? (PAS, AIDA, 4U, BAB) |
| 50 | |
| 51 | ### Step 2: Identify Testable Elements |
| 52 | |
| 53 | Determine what to vary: |
| 54 | - Emotional angle (switch from curiosity to urgency) |
| 55 | - Specificity (add numbers, remove vagueness) |
| 56 | - Structure (question vs statement) |
| 57 | - Length (shorter vs longer) |
| 58 | - Power words (swap key words for stronger alternatives) |
| 59 | - Social proof (add or remove) |
| 60 | |
| 61 | ### Step 3: Generate Variants |
| 62 | |
| 63 | Create `num_variants` alternatives, each using a different approach: |
| 64 | - **Variant A**: Different emotional angle |
| 65 | - **Variant B**: Different structure/format |
| 66 | - **Variant C**: Different specificity level |
| 67 | - Additional variants explore social proof, urgency, or contrarian angles |
| 68 | |
| 69 | Each variant must: |
| 70 | - Preserve the core message and product reference |
| 71 | - Preserve any FTC disclosure from the original |
| 72 | - Be a realistic alternative (not just a word swap) |
| 73 | |
| 74 | ### Step 4: Write Hypotheses |
| 75 | |
| 76 | For each variant, explain: |
| 77 | - What was changed and why |
| 78 | - Which copywriting principle supports the change |
| 79 | - What behavior change is expected (e.g., "Higher CTR because questions create open loops") |
| 80 | |
| 81 | ### Step 5: Suggest Test Plan |
| 82 | |
| 83 | Recommend: |
| 84 | - Sample size needed (minimum 100 impressions per variant for social, 500 for landing pages) |
| 85 | - Test duration (7-14 days minimum) |
| 86 | - What metric to track (CTR, conversion rate, revenue per visitor) |
| 87 | - When to declare a winner (95% statistical significance or practical significance threshold) |
| 88 | |
| 89 | ### Step 6: Self-Validation |
| 90 | |
| 91 | Before presenting output, verify: |
| 92 | |
| 93 | - [ ] 3-5 distinct variants generated (not just word swaps) |
| 94 | - [ ] Each hypothesis grounded in a copywriting principle or framework |
| 95 | - [ ] Sample size calculation is present and realistic |
| 96 | - [ ] Test duration is ≥7 days minimum |
| 97 | - [ ] Winner criteria defined with statistical significance threshold |
| 98 | |
| 99 | If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes. |
| 100 | |
| 101 | ## Output Schema |
| 102 | |
| 103 | ```yaml |
| 104 | output_schema_version: "1.0.0" # Semver |