pipeline-review

Installation
SKILL.md

Pipeline Review

Surface deal risks as they emerge — before a winnable deal silently becomes a lost one.

Risk Categories

1. Engagement Risk (Stakeholder Silence)

Signals that key contacts have gone quiet:

Signal How to detect Severity
No email in 14+ days Gmail: search for threads with associated contacts, check last message date HIGH if deal is In Progress/POC
No email in 7-13 days Same as above MEDIUM
No meeting in 21+ days Granola: list_meetings + query_granola_meetings for company name HIGH if In Progress
No upcoming meeting scheduled Google Calendar: gcal_list_events searching for company/contact name MEDIUM
One-sided communication Gmail: check if last 2+ emails are outbound with no reply HIGH

2. Momentum Risk (Deal Velocity)

Signals that the deal is losing speed:

Signal How to detect Severity
Stuck in stage 30+ days Attio: compare created_at or stage change date vs today HIGH
Stuck in stage 14-29 days Same MEDIUM
No deal value set Attio: value field is empty MEDIUM if past Lead stage
No associated people Attio: associated_people is empty HIGH
Next steps overdue Attio: check tasks linked to deal with past deadlines HIGH

3. Competitive Risk

Signals that competition threatens the deal:

Signal How to detect Severity
Competitor mentioned Attio: meddpicc_competition field contains named competitors MEDIUM
Build vs buy tension Attio: meddpicc_competition mentions internal build HIGH
"Do nothing" risk flagged Attio: meddpicc_competition mentions "do nothing" HIGH
Competition score 0 Attio: meddpicc_competition starts with "0/4" — unknown landscape MEDIUM (blind spot)

4. Qualification Risk (MEDDPICC Gaps)

Signals that the deal is under-qualified for its stage:

Stage Expected strong (3-4) Gap = risk if below 2
POC Pain, Metrics, Decision Criteria Any of these below 2 = HIGH
In Progress Pain, Metrics, Criteria, Competition Any below 2 = HIGH
Signal How to detect Severity
MEDDPICC score = 0 Attio: meddpicc_score is 0 or empty CRITICAL — deal is unqualified
MEDDPICC score < 40 Attio: meddpicc_score < 40 HIGH
Key dimension at 0 for stage Parse score from meddpicc_metrics, meddpicc_decision_criteria, meddpicc_competition HIGH
No budget discussed Attio: meddpicc_budget_total is empty AND stage is In Progress MEDIUM

5. Data Risk

Signals that you're flying blind:

Signal How to detect Severity
No Granola meetings found Granola returns empty for company name MEDIUM
No Attio notes on deal semantic-search-notes returns empty MEDIUM
No Gmail threads Gmail search returns empty HIGH — no communication trail
All three empty Combined CRITICAL — ghost deal

Workflow

Step 1: Identify Target Deals

If the user specifies deals, use those. Otherwise:

  1. Call list-records with object: "deals" and filter for active stages (POC, In Progress).
  2. Collect all deal record IDs, names, stages, and associated contacts.

Step 2: Gather Signals (Per Deal)

For each deal, run these checks in parallel where possible:

2a. Attio Deal Data

  • get-records-by-ids to pull full deal record (MEDDPICC fields, value, stage, confidence, associated people/company, created_at)
  • list-tasks filtered to the deal to check for overdue tasks
  • list-comments on the deal for recent activity

2b. Email Activity

  • gmail_search_messages with the company name or associated contact emails
  • Check the date of the most recent message
  • Check if the last 2+ messages are outbound-only (no reply)

2c. Meeting Activity

  • query_granola_meetings with company name to find recent meetings
  • gcal_list_events searching for company/contact name to check for upcoming meetings

Step 3: Score Risks

For each deal, evaluate all risk categories and assign:

  • CRITICAL — Immediate action needed. Deal is at serious risk of being lost.
  • HIGH — Action needed this week. Multiple warning signs.
  • MEDIUM — Monitor closely. Early warning signs present.
  • LOW — On track. No significant risks detected.

Overall deal risk = highest individual risk found.

Count the number of HIGH+ signals to determine urgency ranking across deals.

Step 4: Generate Risk Report

Present a prioritized report, sorted by risk level (CRITICAL first):

## Pipeline Risk Report — {date}

### CRITICAL: {Deal Name}
**Stage:** {stage} | **Value:** {value} | **MEDDPICC:** {score}/100
**Days in stage:** {N}

Risk signals:
- {signal 1 with evidence}
- {signal 2 with evidence}

Recommended actions:
1. {specific action with timeline}
2. {specific action}

---

### HIGH: {Deal Name}
...

Step 5: Offer Actions

After presenting the report, offer:

  1. Re-engage a specific deal (hand off to deal-reengagement skill)
  2. Score a call for a deal that needs MEDDPICC update (hand off to meddpicc-post-call skill)
  3. Prep for a meeting with an at-risk account (hand off to meeting-prep skill)
  4. Draft a follow-up email to break silence (hand off to meeting-followup skill)
  5. Create tasks in Attio for the recommended actions

Attio MCP Tool Reference

Task Tool Key parameters
List active deals list-records object: "deals", filter by stage
Get deal details get-records-by-ids object: "deals", record_ids
Check MEDDPICC fields Already in deal record Parse from attributes
List deal tasks list-tasks filter by linked deal
List deal comments list-comments parent_object: "deals", parent_record_id
Search notes semantic-search-notes query with company name

Gmail MCP Tool Reference

Task Tool
Search for threads gmail_search_messages (query with company/contact)
Read thread content gmail_read_thread (thread_id)

Granola MCP Tool Reference

Task Tool
Find meetings query_granola_meetings (query with company name)
List recent meetings list_meetings

Google Calendar MCP Tool Reference

Task Tool
Check upcoming meetings gcal_list_events (search for company/contact)

Environment

Variable Source Purpose
Attio MCP (Attio connector) CRM — deals, MEDDPICC, tasks, notes
Granola MCP (Granola connector) Meeting history
Gmail MCP (Gmail connector) Email engagement signals
Google Calendar MCP (Google Calendar connector) Upcoming meeting check
Related skills
Installs
1
GitHub Stars
3
First Seen
Apr 17, 2026