Churn analysis
Quick answer
- 01What is it?
- Produce a structured churn analysis that goes beyond the headline rate, identifying why customers leave, which segments are most at risk, and what interventions will have the highest impact on retention. Its edge is a particular angle on go-to-market work, giving the agent tighter constraints than a plain churn analysis request.
- 02Inputs
- Context for go-to-market work: your goals, audience, constraints, and any source material the skill asks for.
- 03Output
- A ready-to-use result for go-to-market work: the analysis, copy, or recommendations the agent produces.
Add this skill
Install as a package
Installs this one skill package for your coding agent, including any supporting files that skill ships with — not every skill in the repository. Read the tutorial.
$ npx skills add mohitagw15856/pm-claude-skills --skill churn-analysisSkill instructions
The instruction file for this skill. The skill also includes other files you need to install to use it.
Churn Analysis Skill
Produce a structured churn analysis that goes beyond the headline rate — identifying why customers leave, which segments are most at risk, and what interventions will have the highest impact on retention.
Reads from / Writes to the Brain
If a professional-brain (brain/) exists, ground in it instead of re-asking for what you already know:
- Read first:
context.md(metric definitions — what "churn" means here),knowledge/, and related segmententities/. Runpython3 ../professional-brain/scripts/brain_query.py ./brain "churn"and carry each fact's provenance tag through. - 📥 Propose to the Brain: after producing, propose recording the headline retention finding to
knowledge/([data]), any retention decision todecisions/, and at-risk drivers ashypotheses/. Show them, get a yes, then write with../professional-brain/scripts/brain_write.py … --commit(append-only, dry-run by default).
Required Inputs
Ask for these if not already provided:
- Time period being analysed (e.g. Q1, last 12 months)
- Total customers at start of period and customers churned
- ARR or revenue lost to churn
- Churn reasons data — exit survey results, CSM notes, support data, or sales loss reasons
- Customer segments — by tier, industry, cohort, or product line
- Current retention rate if known
- Any recent changes — pricing, product, support model — that may have affected churn
Churn Categories
Always classify churn before analysing it:
| Category | Definition |
|---|---|
| Voluntary — avoidable | Customer left due to a problem we could have addressed (product gaps, poor onboarding, relationship failures) |
| Voluntary — unavoidable | Customer left for reasons outside our control (budget cuts, acquisition, company shutdown) |
| Involuntary | Payment failure, contract non-renewal by mistake, admin error |
The interventions for each category are different. Conflating them leads to wrong conclusions.
Output Format
Churn Analysis: [Product / Segment / Company]
Period: [Start date] — [End date] Prepared by: [Name] | Date: [Date]
Headline Numbers
| Metric | Value |
|---|---|
| Customers at start of period | [N] |
| Customers churned | [N] |
| Customer churn rate | [X]% |
| ARR at start of period | £/$/€[X] |
| ARR lost to churn | £/$/€[X] |
| Revenue churn rate (gross) | [X]% |
| ARR from expansions (same period) | £/$/€[X] |
| Net revenue retention (NRR) | [X]% |
Benchmark context:
- Customer churn rate: [X]% vs. industry benchmark [Y]% — [above / below / in line]
- NRR: [X]% — [What this means: above 100% = expansion offsets churn; below 100% = shrinking base]
Churn Breakdown by Category
| Category | Customers | % of churn | ARR lost |
|---|---|---|---|
| Voluntary — avoidable | [N] | [X]% | £/$/€[X] |
| Voluntary — unavoidable | [N] | [X]% | £/$/€[X] |
| Involuntary | [N] | [X]% | £/$/€[X] |
| Total | [N] | 100% | £/$/€[X] |
Avoidable churn as % of total churn: [X]% — this is the number we can actually influence.
Churn Reasons — Avoidable Churn Only
Rank by frequency. Include ARR weight where data allows.
| Reason | Count | % of avoidable churn | ARR lost | Representative quote |
|---|---|---|---|---|
| [Reason 1 — e.g. "Product missing key feature"] | [N] | [X]% | £/$/€[X] | "[Quote]" |
| [Reason 2] | [N] | [X]% | £/$/€[X] | "[Quote]" |
| [Reason 3] | [N] | [X]% | £/$/€[X] | "[Quote]" |
| [Reason 4] | [N] | [X]% | £/$/€[X] | "[Quote]" |
| Other | [N] | [X]% | £/$/€[X] | — |
Theme synthesis: [2–3 sentences grouping the top reasons into 2–3 themes. E.g. "The top three reasons cluster around two themes: product gaps in [area] (affecting X% of avoidable churn) and onboarding failures where customers never achieved value (Y%)."]
Churn by Segment
Identify which segments over- or under-index for churn.
By Tier
| Tier | Churn rate | vs. Overall | Notes |
|---|---|---|---|
| Enterprise | [X]% | +/-[X]pp | |
| Mid-Market | [X]% | +/-[X]pp | |
| SMB | [X]% | +/-[X]pp |
By Cohort (Acquisition Year)
| Cohort | Churn rate | Notes |
|---|---|---|
| [Year 1] | [X]% | |
| [Year 2] | [X]% | |
| [Year 3] | [X]% |
By Industry / Use Case (if data available)
| Segment | Churn rate | Notes |
|---|---|---|
| [Segment 1] | [X]% | |
| [Segment 2] | [X]% |
Key pattern: [Which segment has the highest churn rate and what likely explains it]
Timing Analysis
- Average contract length before churn: [X months]
- Highest-risk moment: [e.g. "Month 3 — when trial value has worn off but full adoption hasn't happened"]
- Churn timing distribution:
| When churn occurred | % of churned accounts |
|---|---|
| 0–3 months | [X]% |
| 3–6 months | [X]% |
| 6–12 months | [X]% |
| 12+ months | [X]% |
Early Warning Signals
Based on the churned accounts, identify the signals that preceded churn (and could have triggered earlier intervention):
| Signal | Lead time before churn | How to detect |
|---|---|---|
| [Signal 1 — e.g. "DAU/MAU dropped below 15%"] | [~X weeks] | [Usage dashboard / alert] |
| [Signal 2 — e.g. "No QBR in 90+ days"] | [~X weeks] | [CRM flag] |
| [Signal 3 — e.g. "Champion left the account"] | [~X weeks] | [LinkedIn alert / CSM tracking] |
| [Signal 4] | [~X weeks] | [Detection method] |
Intervention Recommendations
Ranked by estimated impact × feasibility.
| Intervention | Addresses | Est. churn reduction | Effort | Owner |
|---|---|---|---|---|
| [Intervention 1 — e.g. "Improve onboarding for [segment] with dedicated 30-day check-in"] | [Reason 1] | [X accounts / £X ARR] | Low / Med / High | [Team] |
| [Intervention 2] | [Reason 2] | [X accounts / £X ARR] | Low / Med / High | [Team] |
| [Intervention 3] | [Reason 3] | [X accounts / £X ARR] | Low / Med / High | [Team] |
Priority call: [Which one intervention, if implemented this quarter, would have the biggest impact and why]
What We Don't Know (Data Gaps)
- [Data gap 1 — e.g. "Exit survey response rate is only 30% — the reasons data may not be representative"]
- [Data gap 2 — e.g. "No product usage data for SMB tier — can't confirm usage signal correlation"]
- [Data gap 3]
Anti-Patterns
- Do not mix avoidable and unavoidable churn in intervention plans — recommending product fixes for customers who churned due to company shutdown wastes resources
- Do not calculate churn rate using end-of-period customer count as the denominator — this understates churn; always divide churned customers by the starting cohort
- Do not rely solely on exit survey data for churn reasons — response rates are typically low and self-selection biases the sample toward customers who are engaged enough to complete a survey
- Do not recommend interventions without linking them to a specific churn reason — interventions disconnected from root causes will not move retention
- Do not report only gross revenue churn — without net revenue retention (NRR), a healthy-looking retention number can hide a shrinking revenue base
Deeper Materials
This skill ships with support files — use them when they are available:
references/avoidability-calls.md— Avoidable or Not? The Judgment Calls in Churn Classification. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.templates/churn-report.md— a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.
Scoring Rubric (0–40)
Score any output of this skill before handing it over; 32+ is ship-quality.
| Dimension | 0 | 5 | 10 |
|---|---|---|---|
| Rate math integrity | Churn computed on end-of-period count; no NRR | Correct denominator but gross churn only | Correct denominator, gross and net side by side, benchmark context that interprets rather than decorates |
| Avoidability separation | All churn treated as one pool | Categories tabulated but interventions still address the full pool | Avoidable/unavoidable/involuntary split carried through every downstream section; interventions touch only the avoidable share |
| Segment & timing insight | Averages only | Segment table present but no over-index reading | Names the specific over-indexing cell (tier × cohort) and the highest-risk moment, with the "why" |
| Intervention linkage | Recommendations float free of causes | Each intervention names a reason but impact is unsized | Every intervention maps to a ranked reason with estimated accounts/ARR recovered, and the priority call justifies its sequencing |
Quality Checks
- Churn rate is correctly calculated (churned ÷ starting cohort, not end-of-period total)
- Avoidable and unavoidable churn are separated — interventions target avoidable churn only
- Churn reasons are customer-reported, not internally assumed
- Segment analysis identifies which segments over-index — not just averages
- Early warning signals are specific and detectable, not generic ("low engagement")
- Interventions link directly to the top churn reasons — no recommendations without a root cause match
Supporting file: references/avoidability-calls.md
Avoidable or Not? The Judgment Calls in Churn Classification
The whole value of churn analysis lives in one column: avoidable vs unavoidable. Get it wrong in either direction and the interventions are wrong — over-classify as unavoidable and you absolve the product; over-classify as avoidable and you chase ghosts. These are the calls.
The honest taxonomy
| Stated reason | Usually means | Classification |
|---|---|---|
| "Went out of business / acquired" | true exogenous loss | Unavoidable — but verify; "restructuring" often means the champion lost the budget fight, which is avoidable-adjacent |
| "Too expensive" | value story failed, not price | Avoidable until proven — price complaints from customers using <30% of features are adoption failures wearing a price costume |
| "Missing feature X" | sometimes true, often exit politeness | Check usage: were they power users blocked by X, or barely active? The latter churned from low value; X is the excuse |
| "Switched to competitor" | you lost a comparison | Avoidable — get the real comparison via a churned-customer interview; the reason sales heard is rarely the reason |
| "No longer need it" | job disappeared OR was never real | Split: seasonal/project use (semi-avoidable via pause plans) vs bad-fit acquisition (avoidable at MARKETING, not product) |
| Silent non-renewal | drifted — the deadliest kind | Avoidable, and your health score missed it; audit what "green" meant for this account |
The three-signal verification
Never classify on the exit survey alone. Triangulate: stated reason × usage trajectory (when did engagement actually die — usually 60-90 days before the cancel) × support/commercial history. When the signals disagree, the usage trajectory is the honest one.
Bad-fit churn is an acquisition finding
A cohort that churns in month 2 having never activated didn't fail at retention — they were sold something they didn't need. Route it to marketing/sales targeting with the segment named, or the analysis punishes the wrong team.
The intervention mapping rule
Every avoidable cluster must map to an intervention at the moment the signal appeared, not at the cancellation: the day usage dipped, the day the champion left, the day the third P1 hit. Interventions at the exit interview are condolence cards.
Supporting file: references/worked-example.md
Worked Example — Churn Analysis
The brief
Harborline sells warehouse-operations SaaS to 3PLs and e-commerce brands. FY2025: started the year with 480 customers and $9.6M ARR; 42 accounts churned, taking $684K ARR with them; expansions added $912K over the same period. Exit surveys came back from 16 of the 42 (38%), CSM notes exist for the rest. The CRO wants "the real churn story, not the dashboard number" before renewal-season planning.
The output
Churn Analysis: Harborline — Full Customer Base
Period: 1 Jan 2025 — 31 Dec 2025 Prepared by: M. Osei, RevOps | Date: 12 Jan 2026
Headline Numbers
| Metric | Value |
|---|---|
| Customers at start of period | 480 |
| Customers churned | 42 |
| Customer churn rate | 8.8% |
| ARR at start of period | $9.60M |
| ARR lost to churn | $684K |
| Revenue churn rate (gross) | 7.1% |
| ARR from expansions (same period) | $912K |
| Net revenue retention (NRR) | 102.4% |
Benchmark context:
- Customer churn rate: 8.8% vs. ~10% typical for SMB-heavy B2B SaaS — slightly better than benchmark, but the mix hides a problem (see segments).
- NRR: 102.4% — expansion is just offsetting churn. Above water, but a $228K net gain on a $9.6M base is treading, not compounding.
Churn Breakdown by Category
| Category | Customers | % of churn | ARR lost |
|---|---|---|---|
| Voluntary — avoidable | 24 | 57% | $462K |
| Voluntary — unavoidable | 11 | 26% | $156K |
| Involuntary | 7 | 17% | $66K |
| Total | 42 | 100% | $684K |
Avoidable churn as % of total churn: 57% — this is the number we can actually influence. The 11 unavoidable losses (two acquisitions, six budget shutdowns of the warehouse function, three company closures) do not belong in the intervention plan.
Churn Reasons — Avoidable Churn Only
| Reason | Count | % of avoidable churn | ARR lost | Representative quote |
|---|---|---|---|---|
| No multi-warehouse support | 9 | 37% | $219K | "We opened a second site in March and had to run it on spreadsheets." |
| Onboarding stalled — never reached live operations | 7 | 29% | $118K | "Four months in, we were still reconciling manually. We stopped believing." |
| Champion left, account unmanaged after | 5 | 21% | $95K | "Our ops lead who chose Harborline moved on; nobody here knew why we had it." |
| Support responsiveness on peak-season issues | 3 | 13% | $30K | "A Black Friday ticket sat for 30 hours." |
Theme synthesis: Avoidable churn clusters into two themes: a product ceiling (multi-warehouse, 37% of avoidable ARR) that growing customers hit at exactly the moment they become most valuable, and value-realisation failures (onboarding + champion loss, 50% combined) where the product was never the problem — the account just never got, or lost, its internal reason to exist.
Churn by Segment
By Tier
| Tier | Churn rate | vs. Overall | Notes |
|---|---|---|---|
| Enterprise (38 accts) | 2.6% | −6.2pp | 1 loss — acquisition |
| Mid-Market (156 accts) | 5.8% | −3.0pp | Product-gap losses concentrate here |
| SMB (286 accts) | 11.2% | +2.4pp | Onboarding and involuntary losses concentrate here |
By Cohort (Acquisition Year)
| Cohort | Churn rate | Notes |
|---|---|---|
| 2022 and earlier | 4.1% | Survivors are sticky |
| 2023 | 8.3% | |
| 2024 | 12.6% | Worst cohort — acquired during the self-serve push, lightest onboarding |
Key pattern: The 2024 SMB cohort is the epicentre: acquired with a low-touch motion, onboarded without a check-in, and churning inside year one. The headline 8.8% is calm; this cell is not.
Timing Analysis
- Average contract length before churn: 14 months
- Highest-risk moment: Months 3–6 — trial enthusiasm has faded, but live operations (the actual value moment) haven't started for stalled accounts
- Churn timing distribution:
| When churn occurred | % of churned accounts |
|---|---|
| 0–3 months | 17% |
| 3–6 months | 31% |
| 6–12 months | 24% |
| 12+ months | 28% |
Early Warning Signals
| Signal | Lead time before churn | How to detect |
|---|---|---|
| No live warehouse connected by day 45 | ~3 months | Onboarding pipeline report |
| Weekly active operators < 3 | ~8 weeks | Usage dashboard threshold alert |
| Champion contact goes dark (no login, no email reply ×3) | ~10 weeks | CRM activity flag |
| Second physical site added without a plan conversation | ~4 months | CSM account-review checklist |
Intervention Recommendations
| Intervention | Addresses | Est. churn reduction | Effort | Owner |
|---|---|---|---|---|
| 30/60/90-day onboarding gates with human check-in for SMB (no account "graduates" without live ops) | Onboarding stalls | ~5 accounts / $85K ARR | Med | CS |
| Multi-warehouse tier on the roadmap with a bridge offer (manual multi-site config + roadmap letter) for accounts opening site #2 | Product ceiling | ~4 accounts / $95K ARR | High | Product |
| Champion-change playbook: detect departure, re-onboard the successor within 30 days | Champion loss | ~3 accounts / $55K ARR | Low | CS |
Priority call: The champion-change playbook — lowest effort, immediately deployable, and it protects the existing base this quarter while the product ceiling fix (the bigger prize) takes two quarters to ship.
What We Don't Know (Data Gaps)
- Exit survey response rate is 38% — reasons for 26 of 42 accounts rest on CSM notes, which skew toward relationship explanations over product ones
- No usage telemetry for the 2023-and-earlier cohort (instrumented in Jan 2024) — early-warning thresholds are calibrated on newer accounts only
- Involuntary churn (7 accounts) has no dunning data — we can't yet say how many were recoverable payment failures
Why it's shaped this way
- The denominator is the starting cohort (480), not year-end count — the skill's anti-pattern list bans the flattering version of the math.
- NRR sits beside gross churn in the headline table because 7.1% gross alone would look healthy while the base quietly treads water; 102.4% tells the truer story.
- Interventions target only the avoidable 57% — the acquisitions and shutdowns are reported, then excluded, exactly as the category table demands.
- Every intervention row names the reason it addresses — the skill bans recommendations without a root-cause match, so "improve product marketing"-style orphans don't appear.
- The segment section leads with the over-indexing cell (2024 SMB cohort), not tier averages — averages are what the anti-patterns call out as hiding the pattern.
- The priority call picks the low-effort playbook over the big product fix — a realistic tension: the largest ARR driver is not the first move, and the report says why.
- Data gaps admit the 38% survey response rate up front, per the anti-pattern about exit-survey self-selection — the reasons table is presented as evidence, not gospel.
Supporting file: templates/churn-report.md
Churn report: [period] — [segment scope]
Headline
Gross churn: [n logos / $x MRR] ([x]%) · Net revenue retention: [x]% · vs last period: [Δ]
Classification (three-signal verified — references/avoidability-calls.md)
| Cluster | Logos | MRR | Stated vs verified reason | Avoidable? | Signal we missed & when |
|---|
The avoidability split
Avoidable: [x]% of churned MRR → intervention territory Bad-fit at acquisition: [x]% → routed to [marketing/sales] with segment: […] Truly unavoidable: [x]% → priced into the model, not grieved
Timing analysis
Engagement death preceded cancellation by median [n] days. The missed window: [what signal, when].
Early-warning signals (from this cohort's trajectories)
| Signal | Lead time | Detectable today? | If not — instrument: |
|---|
Interventions (ranked by saved-MRR estimate ÷ effort)
| # | Intervention | Fires at [signal moment] | Est. MRR protected | Owner | Test |
|---|
What we'll know next quarter that we don't now
[the instrumentation/interviews committed]
Supporting file: skills/professional-brain/SKILL.md
Professional Brain Skill
🚀 New to this? Start with the 5-minute Quickstart (../../BRAIN_QUICKSTART.md) — a folder + one file, with a worked example. This file is the full reference.
Most skills start cold — you paste the same context every time, and decisions made six weeks
ago lose the why. This skill gives the library a memory: a plain-markdown brain/ folder
on disk that skills read before they answer and write to after. No vector DB, no cloud — just
grep-able files you (and Claude) can audit and edit.
This is the state layer of an AI teammate. Pair it with the action layer (skills that file tickets / open PRs) and you get a loop: recall → do the work → record the decision → review.
What This Skill Produces
- A scaffolded
brain/folder with a fixed schema (see below). - Provenance-tagged knowledge — every claim says where it came from and how strong it is.
- Four operations you can invoke: init, ingest, recall, review.
- A standing contract other skills follow: read the relevant brain files first; write durable outcomes (decisions, new facts, stakeholder asks) back.
Required Inputs
Ask for these only if they aren't already on disk or in the request:
- Which operation —
init,ingest,recall, orreview(default: infer from the ask). - For ingest: the artifact (a pasted note, a file path, a transcript) and what it's about.
- For recall: the topic or question to answer from memory.
- The brain location — default
./brain/at the project root.
The Brain Schema
brain/
context.md # who/what: product, ICP, metrics definitions, voice (supersedes pm-context.md)
knowledge/ # durable facts — strategy.md, market.md, users.md, org.md
decisions/ # one file per decision: what, why, alternatives rejected, reopen-when
hypotheses/ # assumptions: statement, evidence, status (open/validated/invalidated)
stakeholders/ # one file per person: asks, concerns, comms history
entities/ # typed objects: features, accounts, experiments — the artifact graph
source/ # immutable originals (audit trail) — never edited after capture
It is Obsidian-vault compatible: open brain/ as a vault and the links become a graph.
Provenance Tags (the trust mechanism)
Every fact carries a tag in square brackets so its strength is explicit. Skills must keep the tag when they reuse a fact, and downgrade confidence for weak tags.
| Tag | Means | Strength |
|---|---|---|
[data] | from analytics / a metric / a measured result | strong |
[interview] | from a documented user or customer interview | strong |
[external] | from third-party / market research | medium |
[verbal] | said in a meeting, not independently documented | weak |
[hunch] | informed intuition, no evidence yet | weakest |
Example: Mobile drives 65% of DAU [data]. Enterprise wants SSO before renewing [verbal].
Operations
init — Create the folder schema. Migrate an existing pm-context.md into context.md.
Offer to ingest any artifacts the user already has (Notion export, Jira CSV, notes).
ingest <thing> — Store the original verbatim in source/, then synthesise it into the
right durable file(s) (knowledge/, decisions/, hypotheses/, stakeholders/), tagging each
extracted claim with its provenance. Never discard the source.
recall <query> — Answer from memory. Use the helper script to find matching facts across
the brain, then synthesise an answer that cites each fact's file and tag. If memory is thin,
say so rather than inventing.
record — The write-back half of the loop (Phase 1). After a skill produces an artifact (or on demand), extract the durable outcomes worth remembering — decisions made, new facts learned, assumptions surfaced, stakeholder asks — and propose them as a numbered list, each with its target section and provenance tag. This is the action surface, so it is approval-gated and dry-run by default:
- Propose — show the records you'd write (section · tag · text). Preview with
brain_write.py …(no--commit), which prints exactly what would be appended. - Approve — the user confirms, edits, or drops items. Never write without a yes.
- Append — write the approved records with
--commit. Append-only: decisions become a new numbered file; everything else appends to its named file. Nothing is overwritten.
Downgrade weak evidence honestly — a conclusion from one call is [interview], a gut call is
[hunch]; don't launder it into [data].
review — Weekly sweep. Flag: stale hypotheses (open too long with no new evidence),
decisions whose reopen-when condition now holds, contradictions between files, and facts that
are only [hunch]/[verbal] but are being treated as settled. Draft the updates; don't apply
silently.
Programmatic Helper
scripts/brain_query.py (stdlib only) does deterministic recall — it greps the brain for a
query and returns matches with their file and detected provenance tag, so retrieval is
transparent (no embeddings, no guessing).
# Find what the brain knows about "activation", newest-first, as text
python3 scripts/brain_query.py ./brain "activation"
# JSON for chaining into another step
python3 scripts/brain_query.py ./brain "enterprise SSO" --json
Use its output as the grounded evidence set, then synthesise the answer on top — never answer a recall from outside the brain without saying so.
scripts/brain_write.py is the write-back counterpart — it appends a provenance-tagged record
(append-only, never overwrites) and is dry-run by default so you can preview before committing:
# Preview what would be written (changes nothing):
python3 scripts/brain_write.py ./brain decisions "Prioritise mobile" --tag data --body "68% of churn is mobile" --source "Q3 analytics"
# Write it after approval:
python3 scripts/brain_write.py ./brain decisions "Prioritise mobile" --tag data --body "…" --source "Q3 analytics" --commit
The contract for other skills
A brain-aware skill adds a short "Reads from / Writes to the Brain" section:
- Reads: before producing, pull the relevant files (e.g.
prd-templatereadscontext.md,knowledge/strategy.md, and any relatedhypotheses/+entities/). - Writes: after producing, append durable outcomes (e.g.
meeting-noteswrites each decision todecisions/, new asks to the relevantstakeholders/file), each provenance-tagged.
Output Format
For ingest, confirm what was captured:
Ingested: [artifact]
- Source saved:
source/[file] - Knowledge updated:
knowledge/[file]— [facts added, each tagged] - Decisions logged:
decisions/[id]— [if any] - Hypotheses touched: [statement → status]
- Open follow-ups: [anything needing a human]
For recall, answer then show your grounding:
Recall: [query]
[Synthesised answer.]
Grounded in:
decisions/0003-...md— "..."[data]stakeholders/sarah.md— "..."[verbal]
Quality Checks
- Every extracted claim carries a provenance tag
- The verbatim original is saved in
source/before synthesis - Recall answers cite the file + tag for each fact, and flag thin memory instead of inventing
- Decisions record the rejected alternatives and a
reopen-whencondition -
[hunch]/[verbal]facts are never presented with the confidence of[data]/[interview]
Anti-Patterns
- Do not paraphrase a source into the durable layer without keeping the original in
source/— the audit trail is the point - Do not drop provenance tags when reusing a fact — an untagged claim is an unfalsifiable one
- Do not answer a recall from general knowledge and present it as something the brain "knows" — say when memory is empty
- Do not overwrite a decision when it changes — append a new dated entry so the history survives
- Do not build a vector database or hide memory behind embeddings — the brain stays plain, grep-able markdown a human can read and correct
Common questions
How do I install Churn analysis in Cursor, Claude Code, or Codex?
Run npx skills add mohitagw15856/pm-claude-skills --skill churn-analysis in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only Churn analysis, not every skill in the repository.
Where does Churn analysis come from and what license is it under?
Churn analysis comes from the mohitagw15856/pm-claude-skills repository on GitHub. That repository has 1.1K GitHub stars. The skill is published under the MIT license.
Prefer plain text? Read the Churn analysis guide as markdown.
Related skills
More from mohitagw15856