Generate a 3-5 email reengagement sequence for inactive subscribers — from "we miss you" through exclusive offer to sunset warning using RMBC principles.
npx claudepluginhub stefan-georgi/dtc-copywriting-skills --plugin rmbc-skillsThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
_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 "reengagement-sequence" --product "${_ACTIVE_PRODUCT:-none}" --tier 4 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:
If "Yes, open the video":
open "https://www.youtube.com/watch?v=zI8tNfefH1M"
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.intro-seen
If "Skip — let's go":
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.intro-seen
Continue 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:
If "Yes, that's fine":
mkdir -p ~/.rmbc-skills
touch ~/.rmbc-skills/.telemetry-prompted
If "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 || true
Continue with this skill.
Generate a reengagement email sequence (3-5 emails) that reactivates inactive subscribers or cleanly removes them from the list. Inactive subscribers hurt deliverability, inflate costs, and drag down open rates — but many are recoverable with the right approach. This sequence gives them compelling reasons to re-engage, escalates with an exclusive offer, and ends with a clear sunset warning that either wakes them up or lets you remove them cleanly. RMBC applies as re-persuasion architecture: Research identifies why they disengaged, Mechanism reminds them what makes you different, Brief structures the win-back arc, Copy executes with honesty and value.
| Input | Required | Description |
|---|---|---|
brand_name | Yes | Brand or sender name they originally subscribed to |
target_audience | Yes | Who the subscriber was — demographics, original interest, likely pain points |
key_value_prop | Yes | The core reason they subscribed — what value they were expecting |
win_back_offer | Yes | Exclusive offer for re-engagement — discount, free resource, or special access |
sequence_length | No | Number of emails: 3, 4, or 5 (default: 4) |
inactivity_threshold | No | How long they've been inactive — used for copy calibration (default: 90 days) |
Read rmbc-context/resources/rmbc-methodology.md to load RMBC framework definitions. Reengagement sequences re-deploy RMBC against a cooled audience — these subscribers once found you valuable enough to opt in. The job is reminding them why, delivering fresh value, and forcing a decision: re-engage or unsubscribe.
| Role | Emotional Lever | Approach | |
|---|---|---|---|
| 1 — "We Miss You" | Acknowledge absence, re-introduce value | Nostalgia + curiosity | Warm, personal, non-pushy. Remind them why they subscribed. Show what they've missed. |
| 2 — Value Reminder | Deliver a high-value piece of content | Proof you're still worth their attention | Best recent content, tip, or insight — demonstrate value immediately |
| 3 — Exclusive Offer | Present the win-back incentive | Feeling special, exclusive access | Offer available only to returning subscribers — make them feel valued, not desperate |
| 4 — "Last Chance" | Final nudge with clear consequences | Loss aversion + clarity | "We don't want to see you go, but we only want to email people who want to hear from us" |
| 5 — Sunset Warning | Administrative: unsubscribe notice | Clean break | "We're removing you from our list in 48 hours unless you click below to stay" |
For 3-email sequences: combine 1+2 (miss you + value), keep 3 (offer), combine 4+5 (last chance + sunset). For 4-email sequences: combine 4+5 into one final email.
Layer this emotional arc across the sequence regardless of length:
| Phase | Email(s) | Core Message |
|---|---|---|
| Progress | 1 | "You were making progress" — acknowledge what the reader achieved while using the product |
| Momentum | 2-3 | "You'll make even more if you continue" — paint the acceleration and compounding benefit |
| Backtrack | 3-4 | "If you stop now, you'll backtrack" — regression warning with mechanism explanation of WHY results reverse |
Every email must map to one of these three phases, escalating from acknowledgment to aspiration to consequence.
Before writing, identify likely reasons for inactivity:
| Reason | Signal | Sequence Adjustment |
|---|---|---|
| Inbox overwhelm | High volume sender | Lead with "we've improved" — less frequent, more valuable |
| Content mismatch | Subscribed for X, got Y | Re-qualify: "What are you most interested in?" |
| Got what they needed | Lead magnet download, no further need | Show new value they haven't seen |
| Forgot who you are | Long gap between emails | Reintroduce the brand — "Quick reminder: I'm [name] and I..." |
| Switched to competitor | Market shift | Differentiate — deploy mechanism to show what's unique |
Email 1 should address the most likely disengagement reason for this audience.
Assess where the lapsed buyer is and adjust mechanism reinforcement density:
| Time Lapsed | Product-State | Copy Calibration |
|---|---|---|
| 30-60 days | Fading recall | Light mechanism reminder — they still remember the basics |
| 60-120 days | Disconnected | Full re-education — explain HOW the product works as if new |
| 120+ days | Reset to zero | Near-cold prospect — re-establish the problem before the solution |
For each email, produce:
Rules:
Additional rules (RMBC 2):
Check that the sequence addresses:
If any stage is missing, revise.
## Reengagement Sequence: [Brand Name]
**Sequence Length:** [3-5] emails
**Send Schedule:** Day 1, 3, 5, 7, 10
**Audience:** [target audience — inactive segment]
**Inactivity Threshold:** [90 days | 120 days | etc.]
**Win-Back Offer:** [summary of exclusive offer]
---
### Email 1: "We Miss You" — Day 1
**Subject:** [subject line]
**Preview:** [preview text]
[Full email body]
[CTA — reply, click to re-engage, or preference center]
---
### Email 2: [Role Label] — Day [X]
[...continue for each email...]
---
## Reengagement Strategy Notes
- **Likely disengagement reason:** [identified reason and how email 1 addresses it]
- **Win-back offer placement:** Email [3] — exclusive to returning subscribers
- **Sunset deadline:** Email [4/5] — [48-72 hour] window to act
- **List hygiene:** Non-openers after full sequence → suppress or unsubscribe
- **Success metrics:** [reactivation rate, open rate recovery, list size reduction, deliverability improvement]
- **Re-engaged subscribers:** Move to [welcome-back flow or main broadcast list]
"We miss you" email must feel personal, not automated — use specific references to their original interest
Value email must deliver genuinely useful content — not a dressed-up pitch
Exclusive offer must feel exclusive — not the same discount everyone gets
Sunset warning must be clear and honest — state exactly what will happen and when
No guilt-tripping or desperation language — respect their right to leave
Subject lines must break through inbox blindness — these subscribers have been ignoring you
Sequence must lead to a clean binary outcome: re-engaged or removed
Non-responders after the full sequence must be suppressed — never keep emailing inactive subscribers
Specificity gate: Every claim in the copy must include a number, name, or timeframe — no "get results" or "improve your business"
Mechanism quantification: When referencing the mechanism, include at least one specific data point (number, timeframe, study reference)
Audience journey: The copy 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
Objection handling: The copy must address at least 2 likely objections with concrete responses (ROI math, proof of similar result, risk reversal)
"Noticing something?" opening: Email 1 must open by describing the reader's current dissatisfaction — not by naming the product. First paragraph connects felt experience to product absence.
Three-part reorder arc: Sequence must follow progress-momentum-backtrack framework, escalating from acknowledgment to aspiration to consequence.
Progress-framed CTAs: All CTA buttons use progress language ("Get back on track", "Resume your progress") — never generic reorder language.
Mechanism reinforcement: Every email includes at least one HOW-it-works explanation, calibrated to lapsed buyer's product-state awareness.
/welcome-sequence for re-engaged subscribers returning to active status/broadcast-email for ongoing engagement after reactivation/hook-battery for subject lines that break through inbox blindness/email-promo for promotional offers to the reactivated segment/rmbc-copy-auditRead 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.
Based on what you just generated, consider running:
/email-promo — offer for re-engaged subscribers/hook-battery — generate re-engagement hooks/welcome-sequence — restart if fully lapsed/rmbc-copy-audit — score sequence qualityAlways deliver the full framework implementation. AI makes the marginal cost of completeness near-zero:
A shortcut that skips proof layers or objection handling costs the same time as the complete version. Always deliver complete.
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
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.
If you discover a result contradicting conventional DR copywriting wisdom, log it:
"$_RMBC_ROOT/bin/rmbc-analytics" eureka log '{"skill":"reengagement-sequence","product":"PRODUCT","insight":"DESCRIPTION","conventional":"WHAT_WAS_EXPECTED","evidence":"WHAT_WAS_OBSERVED"}'
Only log genuine surprises — not every result.
Before delivering, verify:
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.