Get a straight verdict on every open deal.
Healthy, slipping, stuck, or dead. Checks real activity, whether the rep qualified it, and whether the deal is multi-threaded.
Inside: The risk taxonomy, the activity checks, and the per-deal verdict format.
Install it in one line, or paste it in.
~/.claude/skills/ and runs automatically when it is relevant.Connect your context. Set it to your motion.
it reads all of the above automatically, across the whole pipeline.
tightens the multi-thread and gone-dark checks.
adds usage momentum on trials.
This was built for a B2B SaaS org running a staged pipeline. Set these to your stack:
Run any methodology you like. The skill checks "is this deal qualified for the stage it claims," so point it at your qualification fields, not anyone else's.
| Set this | What it is | Default / Example |
|---|---|---|
| STAGE field | the opportunity stage | Opportunity.StageName |
| FORECAST field | commit / best-case category | ForecastCategoryName |
| QUALIFICATION fields | your methodology's fields | MEDDICBANTyour custom fields |
| ACTIVITY sources | where "last touch" lives | AccountOpportunityTaskEvent dates |
| CONTACT ROLES | how you see who is on a deal | OpportunityContactRole |
| DARK_DAYS | no-activity days that mean at risk | 14 (re-tune to your cycle) |
| STUCK_DAYS | days in one stage that mean stuck | 21 (re-tune) |
Everything the skill does, in full.
Reads your open opportunities and gives each one a straight verdict: healthy, slipping, stuck, or dead. It checks whether a deal has real activity behind it, whether the rep actually qualified it, and whether they are talking to more than one person. Then it names the next move on the deals that need one.
- 1Deal-risk verdict (8 states)
Every open deal gets exactly one: HEALTHY, MOMENTUM, AT_RISK, SLIP_RISK, STUCK, STALE, CHAMPION_DROP, GHOST.
- GHOST: no activity across any activity source for DARK_DAYS or more. Must show the source dates that prove it.
- STUCK: same stage past STUCK_DAYS with no forward step.
- SLIP_RISK: close date inside the period, but activity or qualification is thin.
- CHAMPION_DROP: your main contact has gone quiet, no touches in 30 days.
- AT_RISK: single-threaded, fewer than 2 contacts engaged in 30 days.
- MOMENTUM and HEALTHY: real activity, multi-threaded, qualified for stage.
- 2Activity check (multi-source)
Days dark is today minus the most recent touch across ALL your activity sources, not one. A deal is GHOST only if every source is cold. Show the dates.
- 3Qualification-vs-stage gap
If a deal claims a late stage but the qualification fields for that stage are empty, flag it and name the exact field that is missing. This is the "is the rep sandbagging" check. It is only as good as the fields you map.
- 4Multi-thread check
Fewer than 2 contacts engaged in 30 days is single-thread risk. One champion is one point of failure.
- 5Commit-creep watch
Flag deals that quietly moved from Commit to Best Case in the trailing two weeks. That movement is the forecast telling on itself.
- No GHOST verdict without showing the activity dates that prove it.
- Qualification gaps surface field by field, named, never "incomplete."
- Forecast accuracy is trailing-quarter, never trailing-week. Small samples lie.
ACTIVE DEAL HEALTH · 7 open opps Account Stage / ARR Risk Days-Dark Why Acme Corp Sol Val/$45K HEALTHY 2 Multi-thread + qualified Vertex Prop/$67K SLIP 12 Champion went quiet Blend Labs Sol Val/$28K STUCK 23 No next step set Northwind Eval/$112K GHOST 47 Zero activity, all sources Next moves: 1. Vertex. Re-engage the champion. The deal has no second thread. 2. Blend Labs. Add the missing next step before the next review. 3. Northwind. Declare it lost or run one final outreach this week.
DARK_DAYS (14), STUCK_DAYS (21), and the multi-thread cutoff (2 contacts in 30 days) are defaults, not laws. They suited a mid-market SaaS cycle. If your deals run longer, raise them. The logic does not change. The thresholds are yours.
Where an operator takes this next.
The read is step one. Here is where an operator takes it once the manual version proves out.
The read is only as good as its refresh rate. Automate the refresh.
Schedule a Claude task to score the full pipeline every Thursday and post the GHOST and STUCK deals to the sales leader's Slack DM.
Connect Salesforce field-history tracking so any deal moving from Commit to Best Case triggers an alert the same day, not two weeks later.
Connect Gong or your email tool so days-dark and contacts-engaged pull from real conversation data instead of manually logged activity.
One skill is the on-ramp.
A single skill does one job. Chained into a playbook, or run as a full build, it becomes a system. Here is where this one plugs in.