Client health review
Skills + workspace for AI agents in B2B service firms
npx -y skills add b2bforce/b2bforce --skill client-health-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Sweep every client folder and report what needs attention — renewals inside 90 days, accounts in their first 90 days, missing success definitions, accounts with no QBR in two quarters, unfilled proof stubs, stale reviews, and referral-ready accounts. Use for portfolio review, retention review, or before starting new prospecting.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.1 KB, as published. Nobody here has run it
Client Health Review
The portfolio sweep. intel-weekly-report does this for competitors; this does it for
the client base, which is where the revenue already is.
It exists for a specific reason: everything else in workspace/clients/ is per-client
and therefore only runs when someone remembers an account. The account nobody
remembers is the one that churns. Small firms carry roughly twice the annual churn of
large ones, and the difference is not talent — it is that somebody's job is to look
at the whole list on a schedule.
Read First
- Every
workspace/clients/*/!_account.md. - Each account's
onboarding.md,account-plan.md,qbr/, andnotes.md. workspace/firm/proof/— which records are still empty stubs.workspace/sales/opportunities/*/outcome.md— wins with no client folder.
Start with the mechanical pass; it produces the structural facts without judgment:
scripts/validate-account.sh
When to Use
- Monthly or quarterly portfolio review.
- Before starting new prospecting. This is the renewal review rule in
AGENTS.md: a renewal inside 60 days or an account with no QBR in two quarters gets surfaced before the firm spends effort on new logos. Acquisition is the expensive channel; running it while an existing account quietly lapses is the mistake this ordering prevents. - Anything about retention, churn risk, renewals, or where growth could come from.
Signals
Each row is a fact plus the skill that resolves it. Nothing here is a judgment call.
| Signal | Condition | Resolve with |
|---|---|---|
| Renewal approaching | renewal_date within 90 days | client-qbr, then client-account-plan |
| In the danger window | start_date within 90 days | client-onboarding checkpoints |
| No success definition | active account, no success_definition | client-onboarding |
| Review overdue | no qbr/ file in two quarters | client-qbr |
| Stale review | reviewed_at older than 90 days | human review, then bump |
| Stale green | stale reviewed_at and health: green | hard failure — verify or downgrade |
| Gone quiet | last_contact older than 6 weeks on an active account | contact, then notes.md |
| Health declared without cause | health is amber/red, health_reason empty | fill the reason |
| Unfilled proof stub | proof record exists with empty metrics | sales-outcome-log |
| Referral-ready | referenceable: true, no referral asked in the last two QBRs | client-qbr |
| Referral undecided | referenceable: pending past day 90 | ask the client |
| Won, not onboarded | outcome.md with result: won, no client folder | client-onboarding |
| Single-threaded | one named contact on an active account | client-account-plan |
Stale green is the one to take seriously. A health: green last reviewed seven
months ago is worse than no file at all, because a human will act on it. Unlike a
competitor snapshot, nothing here refreshes itself — the file is only as true as the
last person who touched it. Report stale green as a failure, not an item.
Workflow
- Run
scripts/validate-account.shfor the structural pass. - Walk every account folder and collect the signals above with dates.
- Group by what to do, not by client. A list organized by account produces reading; a list organized by action produces action.
- Compute the portfolio numbers from frontmatter only (below).
- Write the report.
- State the top three actions, with an account and an owner. Not ten.
Portfolio Numbers
Computable from !_account.md frontmatter. Report only what the files support, and
mark the rest unknown — an estimated retention rate is worse than an absent one.
| Number | Healthy |
|---|---|
| Active accounts, and how many are retainer vs project | Project engagements churn far harder |
| Accounts with a written success definition | 100%. The strongest leading indicator here. |
| Accounts with a QBR in the last two quarters | 100% |
referenceable: true share | Higher performers sit near 80% |
| Accounts inside their first 90 days | Watch closely — this is where most churn happens |
| Renewals in the next 90 days | Each one needs a QBR first |
| Stale reviews, and stale greens | Stale greens should be zero |
Do not compute NRR, churn rate, or logo retention here unless the firm records the
inputs. If the firm wants those tracked over time, that is firm-pdca-setup with this
report as the source of truth — not a number guessed once inside a report.
Output
workspace/clients/reports/{YYYY-MM-DD}-health.md
---
generated: 2026-12-01
accounts_active: 11
accounts_with_success_definition: 8
accounts_missing_qbr: 3
renewals_90d: 2
in_first_90_days: 1
stale_reviews: 4
stale_greens: 1
unfilled_proof_stubs: 3
referenceable: 5
---
Body: Do this first (three actions), Renewals and reviews, At risk, Referral and proof opportunities, Portfolio numbers, Data quality — the accounts whose files are too stale to trust, which is a finding about the firm's habits rather than about a client.
Rules
- Report only what the files say. Never infer that an account is healthy because nothing is recorded — that is the absence of data, not a green light.
- Never guess a renewal date, an MRR band, or a health colour.
- If most accounts are stale, lead with that. A report built on stale files is itself unreliable, and saying so is more useful than ranking fictional risk.
- Group by action. Cap "Do this first" at three.
- Do not write into client folders from here. This report reads and recommends; the per-client skills write.
Testing Requirements
- Run with no client folders; confirm it says the folder is empty and points to
client-onboardingrather than producing an empty report. - Create an account with
health: greenandreviewed_atsix months old; confirm stale green is reported as a failure, and thatvalidate-account.shexits non-zero. - Create a won
outcome.mdwith no client folder; confirm it appears as "won, not onboarded". - Create a proof record with empty
metrics; confirm it appears as an unfilled stub. - Confirm no portfolio number is reported that the frontmatter does not support.
Related Skills
| Skill | When |
|---|---|
client-onboarding | Resolves missing accounts and missing success definitions |
client-qbr | Resolves overdue reviews and upcoming renewals |
client-account-plan | Resolves single-threaded accounts before renewal |
sales-outcome-log | Fills the proof stubs this report surfaces |
firm-pdca-setup | Turns these numbers into a tracked outcome over time |
intel-weekly-report | The same sweep pattern, for competitors |