30f9b9a729
* feat: v2.0 skill renames and CRO consolidation BREAKING CHANGE: Users must reinstall skills after this update. ## Skill Renames (16) - ab-test-setup → ab-testing - analytics-tracking → analytics - aso-audit → aso - competitor-alternatives → competitors - email-sequence → emails - free-tool-strategy → free-tools - launch-strategy → launch - onboarding-cro → onboarding - paywall-upgrade-cro → paywalls - popup-cro → popups - pricing-strategy → pricing - product-marketing-context → product-marketing - referral-program → referrals - schema-markup → schema - signup-flow-cro → signup - social-content → social ## Consolidations (1) - page-cro + form-cro → cro (form content in references/form.md) ## Why 2.0? - Shorter, cleaner skill names - Consistent naming (no -strategy, -setup, -cro suffixes) - All cross-references updated across 100+ files Total skills: 40 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(v2.0): update evals for renamed skills, fix validate script, clear warnings - Update 32 evals.json files to reference new skill names (page-cro → cro, product-marketing-context → product-marketing, etc.) — these were missed in the initial v2.0 rename pass since only SKILL.md and marketplace.json were updated. - Fix validate-skills.sh: replace GNU-only `head -n -1` with portable awk so frontmatter extraction works on macOS. - Move Copy Editing Checklist (56 lines) to references/checklist.md to bring copy-editing SKILL.md under the 500-line limit (508 → 457). - Add "see X" pointers to marketing-psychology description for skill discovery (cro, pricing, copywriting). - Update skill-request.yml issue template placeholder (page-cro → cro). All 40 skills now pass validation with zero warnings. * fix(v2.0): add evals for 8 missing skills, strip stale frontmatter from cro/form.md Adds 48 new eval cases (6 per skill) for skills that previously had no evals: aso, co-marketing, community-marketing, competitor-profiling, directory-submissions, image, lead-magnets, video. All 40 skills now have eval coverage (251 total cases). Strips leftover frontmatter from skills/cro/references/form.md — it was inherited from the old form-cro SKILL.md before consolidation. Reference files don't need frontmatter. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): rename paid-ads → ads One more v2.0 simplification — drops the redundant 'paid-' qualifier. Updates the skill directory, SKILL.md frontmatter, evals.json, README skill table, the v2.0 rename table in VERSIONS.md (now 17 renames), and all cross-references in related skills (ad-creative, aso, competitor-profiling, customer-research, lead-magnets, marketing-ideas) plus the tools/integrations guides. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): bump SKILL.md frontmatter version to 2.0.0 for all 40 skills VERSIONS.md was already updated to 2.0.0 but the metadata.version field inside each SKILL.md was still on 1.x. That mismatch would have caused the update-check flow to perpetually report 'update available' since it compares VERSIONS.md against local SKILL.md metadata versions. Caught by codex review (P1). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): add legacy product-marketing-context.md filename fallback Before this fix, users upgrading from v1.x who had a `product-marketing-context.md` file would lose automatic context loading — every skill only checked the new `product-marketing.md` filename. Now all 40 skills also accept the legacy filename (in either `.agents/` or `.claude/`), and the README migration command covers both legacy and current filenames. Caught by codex review (P1 + P2). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): re-sort README skills table alphabetically, fix ads box width The skills table had a few entries out of alphabetical order from the renames (co-marketing was after cold-email, ads was at the renamed position). Re-sorted alphabetically per sync-skills.js. Also padded the 'ads' cell in the ASCII flow diagram to keep the box width consistent. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): document folder cleanup on upgrade, stop sync-skills from re-adding skills array README upgrade guide now includes: - A clear cleanup step for stale v1.x skill folders (renamed + consolidated) so users don't end up with both old and new folders side-by-side after upgrading - The full v1 to v2 rename map for reference - Existing product-marketing-context.md migration steps (preserved) sync-skills.js no longer (re-)introduces a `skills` array on marketplace.json -- Claude Code's plugin schema discovers skills via the `skills/` directory, and the explicit array was failing validation. The script now refreshes the description count and strips the stale array if present. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
94 lines
6.5 KiB
JSON
94 lines
6.5 KiB
JSON
{
|
|
"skill_name": "churn-prevention",
|
|
"evals": [
|
|
{
|
|
"id": 1,
|
|
"prompt": "Our SaaS product has a 7% monthly churn rate and we need to bring it down. We're a $49/month project management tool with about 2,000 paying customers. Can you help us design a churn prevention strategy?",
|
|
"expected_output": "Should check for product-marketing.md first. Should address both voluntary and involuntary churn. Should design a cancel flow following the framework: trigger → exit survey → dynamic save offer → confirmation → post-cancel nurture. Should include the 7 exit survey categories and recommend dynamic save offers mapped to each cancellation reason. Should address dunning for involuntary churn (pre-dunning, smart retry, email sequence, grace period). Should recommend a health score model. Should provide prioritized implementation plan.",
|
|
"assertions": [
|
|
"Checks for product-marketing.md",
|
|
"Addresses both voluntary and involuntary churn",
|
|
"Designs cancel flow with proper stages",
|
|
"Includes exit survey with multiple categories",
|
|
"Maps save offers to cancellation reasons",
|
|
"Addresses dunning stack for payment recovery",
|
|
"Recommends health score model",
|
|
"Provides prioritized implementation plan"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 2,
|
|
"prompt": "We keep losing customers because their credit cards expire. About 15% of our churn is from failed payments. How do we fix this?",
|
|
"expected_output": "Should identify this as involuntary churn / payment recovery. Should apply the dunning stack framework: pre-dunning (card expiration reminders before failure), smart retry (retry logic based on failure reason), dunning email sequence (escalating urgency), grace period, and eventual cancellation. Should provide specific timing for each stage. Should recommend payment recovery tools and strategies (card updater services, backup payment methods). Should include recovery rate benchmarks.",
|
|
"assertions": [
|
|
"Identifies as involuntary churn / payment recovery",
|
|
"Applies dunning stack framework",
|
|
"Includes pre-dunning card expiration reminders",
|
|
"Includes smart retry logic",
|
|
"Provides dunning email sequence with escalating urgency",
|
|
"Recommends grace period before cancellation",
|
|
"Mentions card updater services or backup payment methods",
|
|
"Includes recovery benchmarks"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 3,
|
|
"prompt": "what should we show users when they click the cancel button? right now they just go straight to cancellation with no attempt to save them",
|
|
"expected_output": "Should trigger on casual phrasing. Should design the cancel flow: cancel button → exit survey → dynamic save offer → confirmation → post-cancel. Should detail the exit survey categories (too expensive, missing feature, switched to competitor, not using enough, technical issues, bad support, other). Should provide dynamic save offers matched to each reason (e.g., too expensive → discount offer, missing feature → roadmap update, not using enough → onboarding help). Should include copy recommendations for each screen. Should warn against dark patterns (making it impossible to cancel).",
|
|
"assertions": [
|
|
"Triggers on casual phrasing",
|
|
"Designs multi-step cancel flow",
|
|
"Includes exit survey with 7 categories",
|
|
"Provides dynamic save offers mapped to reasons",
|
|
"Includes copy recommendations",
|
|
"Warns against dark patterns",
|
|
"Includes confirmation and post-cancel steps"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 4,
|
|
"prompt": "How do we identify which customers are at risk of churning before they actually cancel? We want to be proactive.",
|
|
"expected_output": "Should apply the health score model framework. Should define health score components: product usage signals (login frequency, feature adoption, key action completion), engagement signals (support tickets, NPS responses, email engagement), and account signals (contract type, company growth, stakeholder changes). Should recommend scoring methodology (0-100 scale). Should define risk tiers and recommended interventions for each tier. Should suggest data sources and implementation approach.",
|
|
"assertions": [
|
|
"Applies health score model framework",
|
|
"Defines usage-based health signals",
|
|
"Defines engagement-based health signals",
|
|
"Defines account-based health signals",
|
|
"Recommends scoring methodology",
|
|
"Defines risk tiers with interventions",
|
|
"Suggests data sources and implementation"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 5,
|
|
"prompt": "Our exit survey shows that 40% of cancellations say 'too expensive' as the reason. What save offers should we try?",
|
|
"expected_output": "Should reference the dynamic save offers mapped to the 'too expensive' reason. Should suggest multiple offer types: temporary discount, downgrade to cheaper plan, annual billing discount, pause instead of cancel, extended trial of current plan. Should recommend testing different offers to find what works best. Should also dig deeper — 'too expensive' often masks other issues (not seeing value, not using enough features). Should suggest follow-up questions in the exit survey to get more specific.",
|
|
"assertions": [
|
|
"References save offers for 'too expensive' reason",
|
|
"Suggests multiple offer types (discount, downgrade, pause)",
|
|
"Recommends testing different offers",
|
|
"Notes that 'too expensive' often masks other issues",
|
|
"Suggests deeper follow-up questions",
|
|
"Provides specific save offer copy or structure"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 6,
|
|
"prompt": "We want to set up a win-back email sequence for customers who already cancelled. Can you help write those emails?",
|
|
"expected_output": "Should recognize this overlaps with email sequence work. Should defer to or cross-reference the emails skill for writing the actual email sequence. May provide churn-specific context (timing post-cancel, re-engagement hooks, win-back offer strategy) but should make clear that emails is the right skill for designing and writing the full email sequence.",
|
|
"assertions": [
|
|
"Recognizes overlap with email sequence work",
|
|
"References or defers to emails skill",
|
|
"May provide churn-specific context for the sequence",
|
|
"Does not attempt to write a full email sequence"
|
|
],
|
|
"files": []
|
|
}
|
|
]
|
|
}
|