# Pipeline Review

> Pipeline health check — usage vs plan, lead delivery + action rates, queue health. Use when the user says "how's my pipeline", "check my usage", "weekly review", "are we on track", or as a Monday-morning check-in.

- Skill: `catchintent/pipeline-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add catchintent/pipeline-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/catchintent/pipeline-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: CatchIntent (https://skillmd.com/u/catchintent)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/catchintent/pipeline-review

---


# Pipeline Review

You are giving a GTM operator a 60-second pipeline status. Numbers first, diagnosis second, action items last.

## What To Do

1. **Pull the headline numbers** — `workspace_usage` (period defaults to `month`). The shape is:

   - `workspace.products` `{ used, limit }`, `workspace.teamMembers` `{ used, limit }`
   - `subscription` (present only when there is an active subscription — if absent, the workspace is on a fresh trial or has no plan; say so and skip the usage table):
     - `subscription.monthly` `{ delivered, cap }` — leads delivered this billing period
     - `subscription.daily` `{ delivered, cap }` — leads delivered today
     - `subscription.limits` — plan caps
     - `subscription.stats` `{ delivered, toReview, hot, actedOn }` — `toReview` = leads still NEW, `hot` = hot warmth tier, `actedOn` = saved + pushed

   There is **no** pre-computed funnel and **no** agent field in `workspace_usage`. Derive the action rate from `stats`: `actedOn / delivered`.

2. **Pull queue health** — `lead_search` with `status: ['new']`, `pageSize: 1`, read the total. If >50, suggest `/daily-triage`.

3. **Show the report** — one section per area, scannable:

   ### Usage (this period)
   | Metric | Used | Cap |
   | leads delivered (month) | `monthly.delivered` | `monthly.cap` |
   | leads delivered (today) | `daily.delivered` | `daily.cap` |
   | products | `products.used` | `products.limit` |
   | team members | `teamMembers.used` | `teamMembers.limit` |

   ### Lead funnel (this period)
   - Delivered: `stats.delivered`
   - Still to review (NEW): `stats.toReview`
   - Hot: `stats.hot`
   - Acted on (saved + pushed): `stats.actedOn` → action rate `actedOn/delivered`

   ### Queue
   - X new leads — link to `/daily-triage` if >50

4. **Diagnosis** — pick the lowest-performing area:
   - **Action rate <20%** → leads surfacing but not actioned. Queue overload or low-quality leads. Suggest `/daily-triage` or `/tune-audience`.
   - **Lots delivered, few hot** → targeting is loose. Suggest `/tune-audience`.
   - **Usage near cap** → flag plan limits; mention upgrade path.
   - **Low delivery** → the Audience may be too narrow or paused. Suggest `/tune-audience`, and remind the user the Audience and its signal strategies are managed in the dashboard.

5. **Monthly retro mode** — when the user asks for a "retro", "review last month", or when run monthly: add a lead-quality retro, not just current state.
   - `product_list`, then for each product: `lead_search` by `productId` with `status: ['saved', 'pushed']` vs `status: ['archived']` over the period. The kept:archived ratio is the product's quality proxy — what the user kept vs threw away.
   - Surface the best product (high kept ratio) and the worst (high archived ratio), and inspect a sample of the archived leads (`reasonLine`) to spot the pattern.
   - Output: 3 concrete changes for next cycle (e.g. "ICP too broad on Product X — 38 of 40 archived were the wrong seniority"). Link the worst product to `/tune-audience`.

6. **Three actions** — end with exactly three concrete next steps, prioritized, each linking to a skill.

## Guidelines

- **Handle missing `subscription`.** No active subscription (fresh trial / no plan) means no usage caps yet — state that plainly instead of rendering an empty table.
- **Honest about thin data.** Action rate isn't meaningful with <10 delivered leads. Say so explicitly.
- **No vague advice.** "Improve targeting" is useless; "Run /tune-audience on Product X — 38 of 40 leads archived, ICP too broad" is actionable.
- **Stay scannable.** Tables for numbers, bullets for actions. No paragraphs.
- **Per client.** For agencies, run this once per product (`product_list` → loop) so each client gets its own snapshot.

