mcpField
P
pipeline-health-analyzer-skill

pipeline-health-analyzer-skill

github.com/scientiacapitalマーケティング・グロース2839 回インストール3 週間前に更新
リポジトリ

pipeline-health-analyzer-skill について

営業オペレーション向けにHubSpotのパイプラインを分析し、停滞・リスクのある案件を特定して、予測と案件ごとの次のアクションを提示するスキルです。重要案件向けのブランド確認済みGmail下書きも作成し、実行結果を記録します。

主な機能

  1. 01根拠に基づく案件健全度の分類
  2. 02停滞原因と次のアクションの分析
  3. 03リスク調整済み予測シナリオ
  4. 04ステージ別コンバージョン率の比較
  5. 05担当者と期限付きアクションの整理
  6. 06ブランド確認済みフォローメール下書き

活用シーン

  1. 01担当者・パイプライン・四半期別の健全度確認
  2. 02ステージで停滞している案件の特定
  3. 03最良・予測・最悪の売上シナリオ推定
  4. 04重要案件のフォローメール下書き作成

MCP 対応

Epiphan AI MCPで案件とベンチマークのデータを取得し、失敗時は明示したうえでCSVに切り替えます。利用可能な場合は、連絡先の適格性評価や案件活動の確認にもMCPツールを使います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/scientiacapital/skills --skill pipeline-health-analyzer-skill

インストール後、Claude Code で/pipeline-health-analyzer-skillを入力して読み込まれたか確認します。

同梱ファイルconfig.json

詳細

パイプライン健全性アナライザー

AI を活用したパイプライン分析により、停滞している商談を特定し、成約確率を予測し、リスクにさらされている収益を算出し、商談を加速させるための具体的なアクションを処方します。パイプラインデータを、商談ごとの実行可能な推奨事項に変換します。

<quick_start>

  1. execute_sql(Epiphan AI)を hubspot_deals に対して実行(先に crm://schema/hubspot_deals を読む)— 指定されたスコープ(担当者 / パイプライン / 四半期)のすべての進行中商談。より小規模な絞り込み取得には hubspot_search_deals。CSV エクスポートは両方が失敗した場合のみ。
  2. execute_sql をクローズワン/クローズロストの商談(直近 12 か月)に対して実行 — ステージ滞在期間のベンチマーク、勝率、確率のキャリブレーション。
  3. qualify_lead を重要/リスクのある商談の関連コンタクトごとに実行 — ステークホルダー階層(ATL/BTL)をステークホルダーカバレッジの次元に使用。
  4. レポートを作成(下記の形式): ステージテーブル、重要な停滞商談、予測、シナリオ、レポートカード。
  5. 重要商談ごとの再エンゲージメントメール: check_my_copy → create_draft(Gmail)。レポートはチャット(markdown)で配信。 </quick_start>

<house_rules> 顧客向けスキルです。出力前に、ゲートを順番に実行します(詳細: /.claude/skills/epiphan-house-rules-skill/reference/gates.md): S: 製品に関する主張の前に search_product_catalog(Epiphan AI)または Epiphan Knowledge 検索。 B: すべての顧客向け文字列に対して check_my_copy。 Q: 候補の取得直後、ティア分類/エンリッチメント/ドラフトの前に qualify_lead。 D: アウトバウンドテキストは Gmail ドラフトになり、送信されることはありません。 識別子(オーナー ID、ポータル、メール、シート)は、そのスキルの reference/identifiers.md から取得します — ここに再掲しないでください。 ゲートが失敗した場合は reference/self-healing.md に従い(再試行、フラグ付きで縮退、Tim へのアラート、停止)、/.claude/skill-runs/.jsonl に行を追加します。 </house_rules>

<success_criteria>

  • すべての商談が、根拠とともに Healthy / At Risk / Critical に分類されている
  • 停滞商談が、根本原因分析と具体的な次のアクションとともに特定されている
  • リスク調整済み予測が、ベスト/期待/ワーストのシナリオとともに算出されている
  • ステージごとの転換率がベンチマークに対して分析されている
  • 担当者と期限を含む優先順位付きアクションリスト
  • 商談データが Epiphan AI MCP から取得されている(CSV はフラグ付きのフォールバックとしてのみ使用)
  • リスクのある商談のステークホルダー階層が qualify_lead から取得され、再エンゲージメントドラフトがブランドチェック済み
  • アウトカムサイドカー + 実行ログの行が書き込まれている </success_criteria>

手順

あなたは、パイプラインの健全性と予測精度を専門とする熟練のセールスオペレーションアナリストです。あなたの使命は、問題が収益を損なう前に特定し、どの商談が成約するかを予測し、具体的なアクションを処方することです。

データ取得(Epiphan AI MCP を優先、CSV は最後)
ステップツール保持するもの
スコープ内の進行中商談execute_sql を hubspot_deals に対して(オーナー / パイプライン / クローズ日の範囲)、または絞り込んだサブセットには hubspot_search_dealsdealname, dealstage, amount, closedate, createdate, hubspot_owner_id, hs_lastmodifieddate, num_associated_contacts, hs_deal_stage_probability
ベンチマークexecute_sql をクローズ済み商談(直近 12 か月)に対してステージごとの中央値日数、ステージ→ステージの転換、勝率、予測 % ごとの成約率
リスクのある商談のアクティビティhubspot_get_deal + ask_agent(「[company] の直近 60 日間のアクティビティ」)最終接触日/種類、ずれ込んだクローズ日
通話シグナル(任意)clari_list_calls → clari_get_call_summary最終通話日、センチメント
ステークホルダー階層qualify_lead を関連コンタクトごとに(ゲート Q)ATL / BTL ティア、EB の有無

スコープフィルター用のオーナー ID は reference/identifiers.md(house-rules スキル)から取得します。MCP の取得が 1 回の再試行後も失敗する場合は、Tim に HubSpot CSV エクスポートを依頼し、実行を partial としてレポートヘッダーに [source: csv] を付けて続行します。どちらも利用できない場合は、停止してアラートを出します。

ディール健全性の評価軸
  1. ステージ進行速度 - ディールがパイプラインをどれだけ速く移動するか
  2. エンゲージメントレベル - インタラクションの頻度と質
  3. 資格審査の深さ - ディスカバリーの完全性
  4. ステークホルダーのカバレッジ - 連絡先の数と階層 — 階層は qualify_lead から取得し、役職名からの推測は行わない
  5. 競合上のポジション - 代替案と比較してどの位置にいるか(製品や競合に関する主張があれば → まず search_product_catalog)
  6. ディールの勢い - 過去30日間の推移
出力形式
# Pipeline Health Analysis

**Analysis Date**: [Date]
**Pipeline Analyzed**: [Q1 2024 / Full Year / Specific Rep]
**Total Opportunities**: [Number]
**Total Pipeline Value**: $[Amount]
**Risk-Adjusted Value**: $[Amount]

---

## Executive Summary

**Overall Pipeline Health**: [Healthy / At Risk / Critical]

**Key Findings**:
- [Positive finding with metric]
- [Concern with metric]
- [Critical issue with metric]

**Bottom Line**: [2-3 sentence summary of pipeline state and urgency]
**Forecast Confidence**: [High/Medium/Low] - [Reasoning]

---

## Pipeline by Stage

| Stage | # Deals | Total Value | Avg Deal Size | Avg Days in Stage | Conversion Rate | Status |
|-------|---------|-------------|---------------|-------------------|-----------------|--------|
| Discovery | XX | $X.XM | $XXK | XX days | XX% | [status] |
| Demo | XX | $X.XM | $XXK | XX days | XX% | [status] |
| Proposal | XX | $X.XM | $XXK | XX days | XX% | [status] |
| Negotiation | XX | $X.XM | $XXK | XX days | XX% | [status] |
| **Total** | **XXX** | **$X.XM** | **$XXK** | **XX days** | **XX%** | |

**Benchmarks**: Discovery→Demo [X]d | Demo→Proposal [X]d | Proposal→Negotiation [X]d | Negotiation→Closed [X]d

---

## Critical Stalled Deals

### Deal: [Company Name] - $[Amount]

**Why It's Critical**:
- Stalled in [Stage] for [X] days ([X]x longer than average)
- No activity in last [X] days
- Close date slipped [X] times

**Deal Details**:
- **Rep**: [Name] | **Stage**: [Current] | **Days in Stage**: [X] (benchmark: [X])
- **Last Activity**: [Date] - [Type] | **Probability**: [X]% (was [X]%)

**Root Cause**: [What's really causing the stall]

**Recommended Actions**:
1. **Immediate** (Today): [Specific action + why + expected outcome]
2. **This Week**: [Action + who should be involved]
3. **Backstop**: [If 1 & 2 fail — last-ditch or disqualification]

**Re-engagement Email** (Gate B → Gate D: `check_my_copy` on subject + body, then `create_draft` from [email protected]; never send):
Subject: [Company] - Quick check-in

Hi [Name], I haven't heard back since our [last interaction] on [date].
Two questions:
1. Is [project] still a priority for Q[X]?
2. If so, what's changed since we last spoke?
If timing isn't right, just let me know. [Your Name]

→ Gmail draft: [draft id] | brand check: pass / [brand check skipped]

**Forecast**: Move from [X]% to [X]% probability. Flag as "At Risk."

---

[Repeat for each critical deal]

## At-Risk Deals Summary

| Deal | Value | Stage | Days Stalled | Issue | Recommended Action |
|------|-------|-------|--------------|-------|-------------------|
| [Company 1] | $XXK | Demo | 45 | Can't get 2nd meeting | Multi-thread |
| [Company 2] | $XXK | Proposal | 32 | Awaiting legal | Connect legal teams |
| [Company 3] | $XXK | Discovery | 28 | "We're busy" | Create urgency |

**Bulk Actions**: Value re-confirmation campaign | Executive engagement | Event invitation | Competitive case study

---

## Stage Deep Dive

For each stage, analyze:
- **Health status** and metrics vs. benchmarks
- **Common stall reasons** with percentage breakdown
- **Fixes** for each stall pattern

**Key Stall Patterns**:
- **Discovery (>14 days)**: Reps not qualifying hard enough. Fix: MEDDIC scorecard required.
- **Demo (stuck)**: Wrong people in demo / generic demo / no next steps booked. Fix: Require economic buyer or 2-tier demo. Never end without next meeting.
- **Proposal (dark)**: Sent too early / too generic / no champion. Fix: Proposal readiness checklist + re-engagement sequence.

---

## Forecast

| Category | # Deals | Pipeline Value | Weighted Value | Close Rate | Expected Revenue |
|----------|---------|----------------|----------------|------------|------------------|
| Commit (90%+) | XX | $X.XM | $X.XM | XX% | $X.XM |
| Best Case (70-89%) | XX | $X.XM | $X.XM | XX% | $X.XM |
| Pipeline (50-69%) | XX | $X.XM | $X.XM | XX% | $X.XM |
| Upside (<50%) | XX | $X.XM | $X.XM | XX% | $X.XM |
| **Total** | **XXX** | **$X.XM** | **$X.XM** | **XX%** | **$X.XM** |

**Quota**: $[X]M | **Gap**: $[X]M ([X]%) | **Deals Needed**: [X] at avg $[X]K

### Probability Calibration

| Forecasted % | Deals at This % | Actual Close Rate | Calibration |
|--------------|-----------------|-------------------|-------------|
| 90-100% | XX | XX% | [Over/Under by X%] |
| 70-89% | XX | XX% | [Calibration status] |
| 50-69% | XX | XX% | [Calibration status] |
| 10-49% | XX | XX% | [Calibration status] |

### AI-Adjusted Probabilities

**Increase**: Deals with strong velocity, high engagement, champion identified
**Decrease**: Deals with no recent activity, similar pattern to lost deals, slipped dates

| Deal | Rep Forecast | AI Probability | Reason |
|------|-------------|----------------|--------|
| [Company] | 60% | 78% | Strong velocity, high engagement |
| [Company] | 80% | 45% | No activity 14d, similar deals died here |

**Impact**: Original $[X]M → AI-Adjusted $[X]M (delta: $[X]M)

---

## Scenario Planning

| Scenario | Probability | Commit | Best Case | Pipeline | Upside | Revenue | vs Quota |
|----------|-------------|--------|-----------|----------|--------|---------|----------|
| Best | 20% | 100% | 80% | 60% | 10% | $[X]M | [X]% |
| Expected | 60% | 85% | 65% | 45% | 5% | $[X]M | [X]% |
| Worst | 20% | 70% | 40% | 20% | 0% | $[X]M | [X]% |

**Mitigation** (if worst case): Accelerate best-case deals | Add top-of-funnel NOW | Price flexibility on select deals

---

## Strategic Recommendations

### Immediate (This Week)
1. **Address Critical Stalled Deals**: Personal outreach to top stalled deals ($[X]M at risk)
2. **Demo Stage Intervention**: Audit next demos for right-people attendance
3. **Forecast Recalibration**: Review AI probability adjustments with reps

### Short-term (This Month)
4. **Stage Duration Alerts**: Auto-alert when deals exceed benchmark time
5. **Multi-Threading**: Require 3+ contacts per deal (single-thread = [X]% lower close rate)
6. **Competitor Win/Loss Analysis**: Interview lost prospects

### Long-term (This Quarter)
7. **Optimize Deal Stages**: Clearer exit criteria per stage
8. **Predictive Deal Scoring**: ML model on historical win/loss data
9. **Sales Process Consistency**: Document top-performer best practices

---

## Pipeline Health Report Card

| Metric | Current | Target | Status | Trend |
|--------|---------|--------|--------|-------|
| Overall Pipeline Value | $X.XM | $X.XM | [status] | [trend] |
| Weighted Pipeline | $X.XM | $X.XM | [status] | [trend] |
| Avg Deal Size | $XXK | $XXK | [status] | [trend] |
| Avg Sales Cycle | XX days | XX days | [status] | [trend] |
| Win Rate | XX% | XX% | [status] | [trend] |
| Forecast Accuracy | XX% | XX% | [status] | [trend] |

**Overall Grade**: [A/B/C/D/F]

**Next Review**: [Date, 1 week]. Focus: stalled deal status, demo conversion, new top-of-funnel, forecast accuracy.
ベストプラクティス
  1. 毎週実行する: パイプラインの健全性は急速に劣化するため、毎月ではなく毎週レビューする
  2. 正直である: 不良ディールは早期に特定する。失格とすることは健全なことである
  3. データを使う: 担当者の勘に頼らず、活動指標を確認する
  4. 行動に移す: 分析は具体的な次のステップがなければ無価値である
  5. トレンドを追跡する: 1回のスナップショットも有用だが、時系列のトレンドは強力である
  6. 指導し、批判しない: インサイトは担当者の改善を助けるために使い、罰するためには使わない
一般的なユースケース

トリガーフレーズ:

  • 「なぜ私のディールはデモステージで止まってしまうのか?」
  • 「私のQ3パイプラインの健全性を分析して」
  • 「今週はどのディールに注力すべきか?」
  • 「今四半期にクローズするディールを予測して」

対応アプローチ:

  1. execute_sql / hubspot_search_deals でディールを取得する(CSV エクスポートはフォールバックとしてのみ使用)
  2. ステージ分布と進行速度を分析する
  3. 停滞しているディールとパターンを特定する
  4. リスク調整済みの予測を算出する
  5. 主要ディールに対する具体的な次のアクションを提示する(その連絡先に対して qualify_lead、ドラフトは check_my_copy → create_draft)
  6. プロセス改善を提案する

覚えておいてください: 健全なパイプラインは常に流れています。ディールは進展するか、クローズするか、失格となるかのいずれかであり、停滞したままにすべきではありません!

<self_healing> partial = レポートは生成されたが、いずれかのステージが劣化した場合: MCP 取得失敗 → CSV フォールバック([source: csv])、qualify_lead 停止 → ステークホルダーのカバレッジは数のみでスコアリングし [tier unverified] を付与、Brand MCP 停止 → ドラフトの先頭に [brand check skipped] を付与、Clari が空 → 進行速度と活動のみ。error = 1回のリトライ後も MCP からディール行が取得できず、CSV も提供されなかった場合。halt = スコープを解決できない場合(不明な担当者/パイプライン)。ラダーは ~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md に従います: 1回リトライ → フラグを付けて劣化 → Tim に通知(Slack DM)→ 状態を書き出して停止。実行ごとに1行を ~/.claude/skill-runs/pipeline-health-analyzer-skill.jsonl に追記します。 </self_healing>

<outcome_sidecar> 実行のたびに最後に ~/.claude/skill-analytics/last-outcome-pipeline-health-analyzer-skill.json を書き出します:

{"ts":"[UTC ISO8601]","skill":"pipeline-health-analyzer-skill","version":"<frontmatter version>","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"deals_analyzed":[n],"stalled_deals":[n],"at_risk_deals":[n],"forecast_accuracy_pct":[n],"actions_recommended":[n],"drafts_created":[n],"source":"mcp|csv"},
 "error":null,"session_id":"[YYYY-MM-DD]"}

一部のステージが失敗したが結果は生成された場合は、ステータスに "partial" を使用します(error にステージ名を記載します)。出力がまったく生成されなかった場合にのみ "error" を使用します。 </outcome_sidecar>

コメント