Install
$ agentstack add skill-coleschaffer-dtc-copywriting-skills-checkout-abandonment ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Preamble (run first)
_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 "checkout-abandonment" --product "${_ACTIVE_PRODUCT:-none}" --tier 2 2>/dev/null &
If output shows UPGRADE_AVAILABLE : read skills/rmbc-upgrade/SKILL.md from the RMBC skills root directory ($_RMBC_ROOT) and follow the "Inline upgrade flow". If JUST_UPGRADED : 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:
- Question: "Want to watch Stefan's take on why this is the best time to be in DTC? (~5 min)"
- Options:
- "Sure, open it"
- "Maybe later — let's write some copy"
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:
- Question: "Cool with anonymous usage analytics? You can change this anytime."
- Options:
- "Sure, happy to help" — keep analytics on and mark as prompted
- "No thanks" — disable analytics and mark as prompted
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.
checkout-abandonment
Purpose
Diagnose and fix checkout abandonment by auditing the specific checkout flow described by the user. The average DTC checkout abandonment rate is 70% — every percentage point recovered is pure profit because you've already paid to acquire that traffic. This skill examines the submitted checkout flow stage by stage, cites specific evidence from the description to support each finding, scores abandonment risk across five friction categories, ranks the top friction points by estimated revenue impact, and outputs specific copy and UX fixes with before/after examples drawn from the actual checkout.
Inputs
| Input | Required | Description | |-------|----------|-------------| | checkout_description | Yes | Detailed description of the checkout flow — steps, fields, page layout, what the buyer sees at each stage | | current_abandonment_rate | No | Current rate (if known — enables benchmarking) | | product_type | Yes | Category: supplement, physical_product, digital_product, subscription, service, course | | price_point | Yes | Price, payment plan options, and discount framing currently shown | | target_audience | Yes | Who the buyer is — demographics, tech comfort, purchase sophistication |
Execution Protocol
Step 1 — Load Framework Context
Read rmbc-context/resources/rmbc-methodology.md to load RMBC framework definitions. Checkout abandonment is a Copy problem as much as a UX problem — Research reveals which objections kill conversions at the payment step, Mechanism reinforcement reminds them why they decided to buy, Brief structures the page to resolve doubt before asking for payment, Copy executes every micro-element to reduce friction.
Step 2 — Extract Evidence Map
Before auditing, read through the entire checkout description and extract an evidence map — a structured inventory of every concrete element mentioned. This map is the foundation for all findings.
For each checkout stage present in the description, extract:
- Exact text quoted from the description (use quotation marks)
- Elements described (fields, buttons, badges, copy, pricing displays)
- What's explicitly mentioned vs what's absent (gaps are findings too)
Organize by stage:
- Entry — how the buyer arrives at checkout (from cart, from landing page, pricing page)
- Form / Information Collection — fields, steps, account creation requirements
- Payment — payment methods, pricing display, surprise fees, guarantee visibility
- Confirmation / Post-Submit — what happens after payment, confirmation signals
If the checkout description doesn't clearly describe a stage, note it as [Not described — potential gap] rather than assuming it works fine.
Step 3 — Stage-by-Stage Audit
Walk through each checkout stage in order. For every stage, cite specific evidence from the checkout description to support your assessment.
For each stage, evaluate against the five friction categories where applicable:
Category 1: Form Complexity (Weight: 25%)
- Total form fields (benchmark: 7 or fewer for single-page)
- Optional vs required field clutter
- Field types (free text vs dropdowns vs auto-complete)
- Multi-step vs single-page (progress bar reduces perceived complexity)
- Auto-fill and auto-detection capability
Category 2: Trust Signals (Weight: 25%)
- Guarantee visibility near payment fields (not buried in footer)
- Payment method logos, SSL badges, trust badges
- Social proof near checkout (customer count, reviews)
- Contact information and privacy policy accessibility
Category 3: Shipping & Pricing Transparency (Weight: 20%)
- Shipping cost visible BEFORE checkout (surprise shipping = #1 abandonment cause)
- Tax shown before or after entering payment
- Unexpected fees appearing mid-flow
- Delivery timeline visibility
Category 4: Payment Options (Weight: 15%)
- Card, PayPal, Apple/Google Pay, Shop Pay availability
- Buy now pay later for $50+ purchases
- Payment plans for $200+ items
- Guest checkout vs forced account creation (forced account = 34% abandonment increase)
Category 5: Mobile UX (Weight: 15%)
- Single-column layout, touch target sizes (44px minimum)
- Keyboard optimization for numeric fields
- Sticky CTA visibility, no horizontal scrolling
- Page load (3+ seconds = 53% mobile bounce)
Evidence citation rule: Every finding must reference a specific element from the checkout description. Use this format:
- Present and good:
The checkout includes "[quoted text from description]" — this addresses [category] well because [reason]. - Present but problematic:
The description mentions "[quoted text]" — this creates friction because [reason]. - Absent:
The checkout description does not mention [specific element]. For a [product_type] at [price_point], this gap is [severity] because [reason].
Step 4 — Score Abandonment Risk
Score each category 0-20 based on the evidence-grounded findings from Step 3:
| Score | Meaning | |-------|---------| | 0-5 | Critical — actively driving abandonment | | 6-10 | Poor — significant friction, immediate fixes needed | | 11-15 | Acceptable — minor issues, optimize when possible | | 16-20 | Strong — well-handled |
Each score must cite the specific evidence that justifies it. A score without a quoted reference from the checkout description is invalid.
Abandonment Risk Score: Sum of all 5 categories (0-100). Risk = 100 - Score.
| Risk Level | Score | Typical Abandonment Rate | |------------|-------|-------------------------| | Critical | 0-30 | 80%+ | | High | 31-50 | 70-80% | | Moderate | 51-70 | 60-70% | | Low | 71-85 | 50-60% | | Excellent | 86-100 | Below 50% |
Step 5 — Rank Top 5 Friction Points
From all stage-by-stage findings, identify the top 5 friction points ranked by estimated revenue impact. Each must trace back to a specific element (or absence) in the checkout description:
For each friction point:
- What it is — the specific element causing friction, with quoted evidence
- Stage — which checkout stage it occurs in (Entry / Form / Payment / Confirmation)
- Why it causes abandonment — psychological or practical reason tied to this audience
- Estimated impact — percentage of abandonment attributable, with reasoning
- The fix — specific copy change, UX change, or both
- Implementation effort —
quick_win("
If the user says "skip" or "none" or "not yet", do nothing — they can set it up later.
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [coleschaffer](https://github.com/coleschaffer)
- **Source:** [coleschaffer/dtc-copywriting-skills](https://github.com/coleschaffer/dtc-copywriting-skills)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.