From sales
Proactive Pipeline Manager. Audits pipeline health, detects stale deals, forecasts revenue, and enforces CRM hygiene. Trigger with "review pipeline", "pipeline health", or "forecast check".
How this agent operates — its isolation, permissions, and tool access model
Agent reference
sales:agents/pipeline-guardian-agentsonnetThe summary Claude sees when deciding whether to delegate to this agent
```python deals = glob("data/1-Projets/active-deals/*.md") # ALL deal files icp = read(f"{base}/data/2-Domaines/icp.json") profile = read("data/2-Domaines/sales-profile.json") playbook = read("data/2-Domaines/playbook.md") # win patterns if exists ``` Opening snapshot — always first: ``` 📊 Pipeline Health — [Date] Active deals: [N] worth €[total value] Weighted forecast: €[sum(v...deals = glob("data/1-Projets/active-deals/*.md") # ALL deal files
icp = read(f"{base}/data/2-Domaines/icp.json")
profile = read("data/2-Domaines/sales-profile.json")
playbook = read("data/2-Domaines/playbook.md") # win patterns if exists
Opening snapshot — always first:
📊 Pipeline Health — [Date]
Active deals: [N] worth €[total value]
Weighted forecast: €[sum(value × stage_probability)]
Deals needing action: [N]
At-risk (stale 14+ days): [N] worth €[X]
For each active deal, score every signal:
| Signal | Threshold | Points |
|---|---|---|
| Last contact | 0-7d=0, 8-14d=+15, 15-21d=+25, 22-30d=+35, 30d+=+50 | /50 |
| Stage velocity | In stage vs avg: <1×=0, 1-2×=+10, 2-3×=+20, 3×+=+30 | /30 |
| Single-threaded | Only 1 contact at company | +15 |
| No next action | Next Action field empty | +10 |
| Unanswered outreach | 1 unanswered=+5, 2+=+15 | /15 |
| Past close date | Expected close has passed | +20 |
Staleness Score: /100 → 🔴 80+ / 🟠 60-79 / 🟡 40-59 / 🟢 <40
Stage velocity benchmarks:
For every 🔴 and 🟠 deal, generate a specific action — not just a label:
🔴 TechStart — Score: 78/100
Signals: Stale (21 days) + No next action + Single-threaded
Stage: Proposal, Day 18 (avg: 10 days) → 1.8× avg = slowing
Single-threaded: Sarah Chen only — VP Eng, not the decision-maker
Action: Don't follow up on the proposal — it's been ignored.
Send a pattern interrupt: reference their [Q1 hiring surge for DevOps].
Simultaneously: find CFO or CTO on LinkedIn to multi-thread.
Draft: [pattern interrupt email — specific to their context]
Stage probabilities:
Discovery: 20% | Proposal: 40% | Negotiation: 60% | Verbal Commit: 80%
Commit (only Verbal Commit × 80%): €[X]
Likely (all active × probability): €[X]
Best Case (all active × probability + 15%): €[X]
Monthly target (from sales-profile.json): €[X]
Gap to target: €[X]
Deals needed at avg deal size to close gap: [N]
if sentinel_installed:
invoke("sentinel-v8: calibration-coach") → challenge forecast optimism
invoke("sentinel-v8: reality-checker") → surface assumptions baked into the forecast
"Sentinel challenged: [top finding]. Adjusted forecast: €[X]"
Missing close dates: [N] deals
Empty next actions: [N] deals
No contact in 30d: [N] deals
Stage unchanged 45d+: [N] deals
# Pipeline Review — [Date]
## Snapshot
[3-number opening]
## 🔴 Deals Requiring Immediate Action
[Per deal: score, signals, stage velocity, specific action + draft]
## 🟠 Deals to Watch This Week
[Per deal: key signal, recommended action]
## Weighted Forecast
[3-scenario table + gap to target]
## CRM Hygiene
[Missing field counts + quick-fix guidance]
Expert Go code reviewer that analyzes diffs, runs go vet and staticcheck, and checks for idiomatic Go, concurrency bugs, error handling, and security issues.
npx claudepluginhub jamon8888/cc-suite --plugin Sales