Churn Risk Detector
majiayu000/claude-skill-registry
Scan support tickets, Slack channels, NPS scores, and usage patterns to flag accounts showing early churn indicators.
A skill your agent uses when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals…
$ npx skills add ericrisco/rsc-harness --skill retention -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness retention --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/retention .claude/skills/retention && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "retention" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/retention into .claude/skills/retention/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retention", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ericrisco/rsc-harness/tree/main/skills/retentionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ericrisco/rsc-harness --skill retention -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness retention --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/retention .agents/skills/retention && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "retention" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/retention into .agents/skills/retention/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retention", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill retention -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness retention --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/retention .cursor/skills/retention && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "retention" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/retention into .cursor/skills/retention/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retention", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ericrisco/rsc-harness.git --path skills/retention--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ericrisco/rsc-harness --skill retention -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness retention --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/retention .gemini/skills/retention && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "retention" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/retention into .gemini/skills/retention/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retention", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ericrisco/rsc-harness retentionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ericrisco/rsc-harness --skill retention -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/retention .github/skills/retention && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "retention" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/retention into .github/skills/retention/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retention", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ericrisco/rsc-harness --skill retention -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness retention --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/retention .opencode/skills/retention && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "retention" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/retention into .opencode/skills/retention/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retention", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
retentionA skill your agent uses when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals…
Retention is an agent skill from ericrisco/rsc-harness. Use when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals before renewal, a cancellation save flow, or a win-back sequence, and reading GRR against NRR. NOT working a single live churn-risk ticket in the moment (that is customer-support), NOT the first-30-days welcome flow (that is client-onboarding).
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/health-score-and-metrics.md`).
It sits in Sales & Support, covering Customer success, Referral and retention marketing and Customer feedback analysis. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e3d5b33. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Retention loads about 2.8k tokens when it runs, and up to ~4.6k if it reads all its reference files. Until then it costs about 108 tokens; SKILL.md has 1,391 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ericrisco/rsc-harness at commit e3d5b33, republished under its MIT licence (© ericrisco). 1,391 words, ~2,783 tokens.
.claude/skills/retention/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.You run retention as a program, not as a reaction. The customer is already won; your job is to stop the slow leak out the bottom of the funnel — measure who is healthy, catch the at-risk ones 30+ days before they cancel, run the right save play, and win back the ones who already left.
This is the program layer. It is not:
../customer-support/SKILL.md.../client-onboarding/SKILL.md. Onboarding prevents early churn; you start
once the customer is established and the renewal is at stake.Three decision artifacts — judgment, not prose:
You do not write the production NPS or win-back email copy — that is
../newsletter/SKILL.md. You define the cadence and the offer ladder; the polished
words are a writing skill.
Work these five steps in order. Each one feeds the next.
A single signal lies. A composite of 4+ weighted dimensions predicts churn ~34% more accurately than any one-dimension gauge (Totango 2025). Weight activity heaviest, because when customers stop showing up, everything else follows.
Default weighting to start from, then tune to your product:
| Dimension | Weight | Example signals |
|---|---|---|
| Product usage / activity | ~40% | login recency, sessions/week, depth of feature adoption |
| Engagement | ~25–30% | response to emails, QBR attendance, champion still employed |
| Milestones / business fit | ~20% | onboarding goals hit, ROI realized, plan vs need match |
| Recency | ~10% | days since last meaningful action |
Normalize each dimension to 0–100, multiply by its weight, sum to one 0–100 score. Starting cutoffs: green ≥70, yellow 40–69, red <40 — then move the lines until red reliably precedes real cancellations.
Bad: "Logins dropped, flag the account." (one signal, fires late or false)
Good: usage 30/100×0.40 + engagement 60×0.28 + fit 80×0.20 + recency 20×0.10
= 12 + 16.8 + 16 + 2 = 46.8 → yellow, worth a touch this weekThe full dimension catalog, the normalization recipe, cutoff tuning, and a fully
worked scored account live in references/health-score-and-metrics.md.
NPS = %Promoters − %Detractors on an 11-point 0–10 scale. Promoters 9–10, Passives 7–8 (dropped from the math), Detractors 0–6. >0 is positive, 30+ strong, 50+ excellent, 70+ world-class — but the raw number is meaningless without an industry comparison. Run it two ways:
Bad: Collect NPS, put 42 on a dashboard, move on.
Good: Every detractor (0–6) triggers a follow-up call within 48h; the score is
the start of a save motion, not the deliverable.The threshold must buy 30+ days of lead time — flag early enough to actually intervene. Strongest signals, in roughly the order they predict:
The last two are the non-obvious ones. A customer quietly moving from annual to monthly is telling you they no longer want to commit — treat it as a yellow flag even while revenue looks flat.
This is where the flow genuinely branches. The in-flow exit survey is one question, 5–7 preset reasons, one tap, answerable in <5 seconds — and the offer must branch on the reason. A flat single offer to everyone wastes the lever; personalized offers prevent ~23% of cancellations, generic ones do not.
Rank plays by retained life, not by gut. Industry-average save rate ≈34% (Churnkey 2025).
| Exit reason | Recommended play | Offer shape | Why (retained life) |
|---|---|---|---|
| "Too expensive" | Downgrade, then temporary discount | move to lower tier; or 20–30% off for 2–3 mo | downgraders stay 7–8 mo longer; keeps the relationship at lower revenue beats $0 |
| "Not using it right now" | Pause + re-onboard | freeze 1–3 mo, schedule a setup touch | pausers stay ~5.5 mo longer; ~25% of would-be churners pause instead of cancel |
| "Missing a feature" | Human / roadmap | show roadmap, connect to PM, no discount | tests real demand; a discount does not fix a capability gap |
| "Switching vendor" | Save call | book a human conversation fast | only a person can counter a competitor decision |
| Price-only, no fit | Graceful let-go | clean cancel + win-back enrollment | bad-fit retention just delays churn and inflates support cost |
Order of preference when the reason is fuzzy: downgrade > pause > temporary discount > human save call > let-go. Discount is weakest — it permanently cuts revenue and only tests price sensitivity. Use temporary 20–30% off for 2–3 months, never a permanent cut.
Full play library, the survey template, and offer skeletons are in
references/save-and-winback-plays.md.
For customers who left anyway. A 30/60/90 ladder recovers ~5–15% of lost customers. Lead with value, then escalate the offer — so you do not train people to churn for a deal.
Day 30 — value reminder, NO discount ("here's what's new / what you're missing")
Day 60 — modest incentive: ~15–20% off for 3 months
Day 90 — best offer: ~30–40% off for 6 monthsGuardrail: if Day 30 leads with the discount, your healthy customers learn that cancelling is how you get a better price. Always value-first.
| Metric | What it is | What it tells you |
|---|---|---|
| NRR | net revenue retention, includes expansion | can exceed 100%; 2025 B2B median ~106% |
| GRR | gross revenue retention, contraction + churn only | cannot exceed 100%; median ~90% |
| Logo churn | % of customers lost, each weighted equally | base erosion |
| Revenue churn | % of dollars lost | concentration risk |
| Save rate | % of cancel attempts saved | benchmark ≈34% |
The alarm: if GRR < 80%, a few expanding accounts are masking a fundamental retention failure — NRR is lying to you. Likewise high NRR + high logo churn = big accounts hiding broad base erosion; fix the base, do not celebrate expansion.
Mini decision:
client-onboarding
problem, not yours.Retaining is cheaper than acquiring: cutting churn 5%→3% can lift LTV:CAC from
~2.5:1 to ~4:1 with zero extra acquisition spend. For the LTV/CAC/payback
model itself, hand off to ../unit-economics/SKILL.md; for forecasting MRR from
the churn rate, ../forecasting/SKILL.md.
Build the save flow so a frustrated user can always reach cancel in one click.
The law here is unsettled — do not hard-code "the law." The FTC
"Click-to-Cancel" rule was vacated by the Eighth Circuit on 2025-07-08 on
procedural grounds; the FTC submitted a new draft ANPRM on 2026-01-30. With the
federal rule gone, California's amended Automatic Renewal Law (effective
2025-07-01) is the de-facto national floor and is in places stricter:
cancellation at least as easy as sign-up, click-to-cancel offered simultaneously,
a cap on retention offers shown during the flow. Treat CA ARL as the floor and
defer the actual legal text to ../compliance/SKILL.md.
| Anti-pattern | Why it fails | Do instead |
|---|---|---|
| Discount-first save play | permanently cuts revenue, only tests price | rank downgrade > pause > temporary discount |
| One flat offer for every exit reason | wastes the lever; generic prevents ~0 vs ~23% personalized | branch the offer on the stated reason |
| Single-signal health score ("logins down") | misses ~34% accuracy; fires late or false | 4+ weighted dimensions, activity heaviest |
| Collect NPS, then ignore it | a number on a dashboard saves no one | every detractor triggers a 48h follow-up |
| Optimize NRR while logo churn bleeds | expansion masks base erosion | watch GRR; GRR<80% is the alarm |
| Dark-pattern cancel flow (cancel buried) | illegal under CA ARL, breeds public detractors | cancel reachable in one click, always |
| Win-back that leads with the discount | trains healthy customers to churn for a deal | Day 30 value-only, escalate later |
| Treating first-90-day churn as a retention problem | it is an activation problem | route to ../client-onboarding/SKILL.md |
../customer-support/SKILL.md — the single live churn-risk ticket in the moment.../client-onboarding/SKILL.md — the first-30-days welcome / activation flow.../unit-economics/SKILL.md — the LTV / CAC / payback model.../pricing/SKILL.md — how deep a discount can go without breaking margin.../forecasting/SKILL.md — projecting MRR/ARR from the churn rate.../compliance/SKILL.md — the actual cancellation-law text.../newsletter/SKILL.md — production NPS / win-back email copy.../review-management/SKILL.md — responding when a detractor posts publicly.© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/retention of ericrisco/rsc-harness.
Open the folder on GitHubat commit e3d5b33
Retention next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Retention this skillericrisco/rsc-harness | 167 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Churn Risk Detectormajiayu000/claude-skill-registry | 666 | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Afa Cxafadtc/afa-dtc-skills | 168 | — | ~2k | Automated safety check: Pass | Custom licence | |
| Loki Modedavila7/claude-code-templates | 32k | 7 repos | ~7.1k | Automated safety check: Warn | MIT | |
| Msp QbrRTFM-IT-Services-LLC/msp-claude-skills | 113 | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Customer Supportaiskillstore/marketplace | 430 | 7 repos | ~2.2k | Automated safety check: Pass | None |
majiayu000/claude-skill-registry
Scan support tickets, Slack channels, NPS scores, and usage patterns to flag accounts showing early churn indicators.
afadtc/afa-dtc-skills
DTC 客户体验与服务智能引擎——客服优化、售后流程、退货策略、客户旅程设计、NPS/CSAT 管理。Use when user mentions: 客户体验, customer experience, CX, 客服, customer service, 退货, returns, 售后, after-sales, NPS, CSAT, 客户满意度, 投诉, complaints, 客户旅程…
davila7/claude-code-templates
Multi-agent autonomous startup system for Claude Code. An agent skill from davila7/claude-code-templates.
RTFM-IT-Services-LLC/msp-claude-skills
A skill your agent uses whenever preparing, running, or following up a client business review: "QBR", "quarterly review", "business review", "account review", "prep for the [client] meeting"…
aiskillstore/marketplace
Elite AI-powered customer support specialist mastering conversational AI, automated ticketing, sentiment analysis, and omnichannel support experiences.
guia-matthieu/clawfu-skills
Analyze sentiment in text using ML models. An agent skill from guia-matthieu/clawfu-skills.
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Categories
A skill your agent uses when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals…. Retention is an agent skill from ericrisco/rsc-harness. Use when revenue is leaking out the bottom of the funnel and you need a program to keep, score and win back customers — a customer health score, NPS, catching churn signals before renewal, a cancellation save flow, or a win-back sequence, and reading GRR against NRR.
Retention fits situations like: revenue is leaking out the bottom of the funnel and you need a program to keep; score and win back customers — a customer health score; catching churn signals before renewal; A cancellation save flow.
Run `npx skills add ericrisco/rsc-harness --skill retention -a claude-code`. Or copy the skill folder (skills/retention in ericrisco/rsc-harness) into .claude/skills/retention in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill retention -a codex`. Or copy the skill folder (skills/retention in ericrisco/rsc-harness) into .agents/skills/retention in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ericrisco/rsc-harness --skill retention -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/retention, .gemini/skills/retention, .github/skills/retention and .opencode/skills/retention in your project.
SKILL.md names no scripts, command-line tools or credentials: Retention is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Retention is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Retention: Churn Risk Detector (majiayu000/claude-skill-registry, 666 stars), Afa Cx (afadtc/afa-dtc-skills, 168 stars), Loki Mode (davila7/claude-code-templates, 32k stars) and Msp Qbr (RTFM-IT-Services-LLC/msp-claude-skills, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 167 GitHub stars. The repository holds 227 skills in this directory. The repository was last updated on October 7, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.