Generate 10 scroll-stopping hooks across 5 psychological trigger types — the opening lines that determine whether a prospect reads or scrolls past. One of the 3 core RMBC skills.
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.
Reviews prose for communication issues impeding comprehension, outputs minimal fixes in a three-column table per Microsoft Writing Style Guide. Useful for 'review prose' or 'improve prose' requests.
_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}"
_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 "hook-battery" --product "${_ACTIVE_PRODUCT:-none}" --tier 2 2>/dev/null &
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 10 hooks (2 per type) across 5 psychological trigger categories. A hook is the FIRST thing a prospect sees — the opening line of an ad, email, landing page, or video. It determines whether they engage or scroll past. Stefan's standard: if a hook could apply to any product, it's too generic. Every hook must be specific to the product, reference its mechanism when possible, and work in 1-2 lines on a mobile screen.
| Input | Required | Description |
|---|---|---|
product_description | Yes | What the product is, what it does, key features/ingredients/components |
target_audience | Yes | Who the prospect is — demographics, pain points, desires, sophistication level |
key_mechanism | No | The product's unique mechanism (output from /mechanism-ideation) |
key_result | No | The specific transformation or outcome the product delivers |
tone | No | One of: aggressive, conversational, professional (default: conversational) |
Read rmbc-context/resources/rmbc-methodology.md to load RMBC framework, including framework overview. Hooks sit at the top of the copy funnel — they must earn the next line of reading.
From inputs, identify:
Pattern: Open a knowledge gap the reader must close.
Pattern: Surface a cost or danger the reader hasn't considered.
Pattern: Paint the outcome so vividly the reader self-selects.
Pattern: Leverage credibility or crowd behavior.
Pattern: Challenge conventional wisdom to stop the scroll.
For every hook, check:
## Hook Battery: [Product Name]
**Audience:** [target audience summary]
**Mechanism:** [key mechanism, if provided]
**Tone:** [aggressive | conversational | professional]
---
| # | Hook Type | Hook Text | Why It Works | Platform Fit |
|---|-----------|-----------|-------------|-------------|
| 1 | Curiosity | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 2 | Curiosity | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 3 | Fear | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 4 | Fear | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 5 | Desire | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 6 | Desire | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 7 | Social Proof | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 8 | Social Proof | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 9 | Contrarian | [hook] | [1 line] | Meta / Native / Email / YouTube |
| 10 | Contrarian | [hook] | [1 line] | Meta / Native / Email / YouTube |
---
## Top 3 Picks
1. **Hook #X** — [why this is the strongest] — Best for: [platform]
2. **Hook #X** — [why] — Best for: [platform]
3. **Hook #X** — [why] — Best for: [platform]
## Testing Notes
[1-2 lines on which hooks to A/B test first and why]
/mechanism-ideation first for mechanism-driven hooks/unified-research-synthesizer for audience language patterns/pdp-ecomm-template, /webinar-registration-copy/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:
/mechanism-ideation — if you don't have a named mechanism yet/fb-ad-copy — turn hooks into full Meta ads/rmbc-copy-audit — score output against RMBC quality dimensionsAlways 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.
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.