Purpose
Produce a ready-to-test set of push notification or email subject line variants — organized by psychological angle, character-count-safe for the target surface, and paired with A/B test hypotheses — so PMs and marketers can ship variant tests without writing from a blank page or guessing which levers to pull.
When to Use
Invoke this skill when the user asks to:
- Write push notification copy or generate push variants
- Create email subject line variants for a campaign or lifecycle flow
- Get A/B test copy options for a notification or message
- Improve open rate or CTR on an existing notification
- Add personalization tokens to notification copy
- Build a variant matrix to test across a segment or cohort
Inputs Required
Before starting, collect:
- Message type: Push notification / Email subject line / In-app message
- App context: What the app does and the specific feature or moment triggering the message
- Goal action: What you want the user to do (open, tap, return, complete, buy)
- Audience/trigger: Who receives this and why (e.g., cart abandoners, day-3 dormant users, new signups)
- Tone: Playful / urgent / helpful / premium / neutral
- Personalization tokens available: Which dynamic fields exist (e.g., {{first_name}}, {{city}}, {{item}}, {{streak_count}}) — or "none"
- Character/preview constraints: Any platform limits, or default to standard limits below
If constraints are missing, default to: push title ≤ 40 chars, push body ≤ 120 chars, email subject ≤ 50 chars with a preview line ≤ 90 chars.
Instructions
Generate 30 Variants Across 6 Angles
For each variant, output:
- The copy (title + body for push; subject + preview for email; single line for in-app)
- Chars: Character count of the constrained field (flag if over limit)
- Tokens: Personalization tokens used, or "none"
- Emoji: Recommended emoji or "none" — only where it lifts, never decorative
- Hypothesis: One-line A/B hypothesis stating what this variant tests
Write copy fully filled in for the app and trigger — no bracket placeholders except live personalization tokens (e.g., {{first_name}} stays; [PRODUCT] does not).
Angle 1 — Curiosity / Open Loop (5 variants) Tease value without revealing it, forcing the tap to resolve the gap.
- Trigger types: curiosity, incompleteness
- Keep the loop resolvable and honest — clickbait that under-delivers tanks long-term engagement
- Vary: implied secret, unexpected stat, unfinished sentence
Angle 2 — Personalized / Identity (5 variants) Use tokens and behavioral context to make the message feel individually addressed.
- Trigger types: relevance, recognition, self-reference
- Lead with the token where it lifts open rate (name-first in push often outperforms name-buried)
- Include at least one variant with no token as a control-friendly counterpart
Angle 3 — Urgency / Scarcity (5 variants) Give a real reason to act now — deadline, limited quantity, expiring state.
- Trigger types: FOMO, loss aversion, time pressure
- Only use genuine urgency; fabricated countdowns erode trust and opt-in rates
- Vary: time-bound, quantity-bound, status-expiring
Angle 4 — Benefit / Value-Forward (5 variants) State the concrete payoff of tapping in plain, direct language.
- Trigger types: desire, clarity, gain
- Name a specific outcome, not a vague "check this out"
- Best for bottom-funnel and transactional moments where intent already exists
Angle 5 — Social Proof / Momentum (5 variants) Signal that others are acting, or that the user has momentum worth continuing.
- Trigger types: social validation, streaks, herd behavior
- Use real counts/streaks via tokens where available (e.g., {{streak_count}}, "{{friend_count}} friends are on")
- Vary: peer activity, personal streak/progress, popularity signal
Angle 6 — Playful / Personality (5 variants) Lead with brand voice, humor, or a conversational hook that stands out in a crowded tray.
- Trigger types: delight, novelty, brand affinity
- Match the tone input — never force jokes into a premium or serious context
- Vary: witty question, cheeky nudge, casual insider tone
Build the Top 8 Test Matrix
Select the 8 strongest variants across angles and present as a ranked matrix:
- Rank & variant: The copy
- Angle: Which of the 6 it comes from
- Primary lever tested: The single variable this variant isolates
- Expected win condition: Which audience mindset it should outperform on
- Pairing note: Which control or opposing variant to test it against for a clean read
Recommend a starting head-to-head: two variants from different angles that isolate one clear question (e.g., personalization vs. urgency).
Output Format
- Structure: 6 labeled angle sections with 5 numbered variants each; then a Top 8 test matrix as a table
- Length: 900–1,300 words
- Format: Swipe-file style — scannable, labeled variants, not prose paragraphs
- Sections: 6 angle blocks → Top 8 test matrix → recommended starting head-to-head
- Tone: Practical growth-marketing voice — direct, test-minded, no fluff
Quality Checklist
Before delivering output, verify:
- [ ] All 30 variants are present (5 per angle across 6 angles — count them)
- [ ] Every variant has a character count, token label, emoji recommendation, and hypothesis
- [ ] No variant exceeds its character limit without being flagged
- [ ] Personalization tokens use the exact fields provided — no invented tokens
- [ ] Copy is fully written for the app and trigger — no bracket placeholders besides live tokens
- [ ] Top 8 matrix ranks variants and names one isolated lever per variant
Notes
- Character count is the most common reason great copy fails in production — truncated push titles kill CTR, so treat limits as hard.
- Personalization lifts opens but degrades fast if a token renders empty; recommend a fallback for every token used (e.g., {{first_name|there}}).
- Isolate one variable per A/B test — if two variants differ in both angle and emoji, the result is unreadable. The Top 8 matrix exists to enforce clean tests.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills