stage-integrity-audit

$npx mdskill add t0ddc3by/claude-for-customer-success/stage-integrity-audit

Detects CRM stage anomalies that distort pipeline forecasts.

  • Identifies stage-skipping, backward movement, and stale stages in CRM.
  • Reads CRM system and avg sales cycle days from config files.
  • Compares deal stage changes against historical averages and stage criteria.
  • Produces an audit report for human review without editing CRM.

SKILL.md

.github/skills/stage-integrity-auditView on GitHub ↗
---
name: stage-integrity-audit
version: 1.0.0
deployment_target: plugin
status: PROPOSED
description: "Detects CRM hygiene issues that distort forecasts: stage-skipping (multi-stage jumps in one update), backward movement, and stale stage (stuck >2x historical avg). Produces audit report for human review before any CRM edits. Never updates CRM autonomously. Triggers: 'stage integrity', 'stage skipping', 'backward movement', 'CRM stage hygiene', 'stale stage'."
---

[PROPOSED]

# Stage Integrity Audit

Detects the three stage anomaly patterns that most distort pipeline forecasts.
All findings are proposals for human review — no autonomous CRM edits.

**Reference:** Governance tiers (Write Protocol) → `../../../shared/revops-domain-model.md §9`
**Config reads:** `crm_system`, `avg_sales_cycle_days`

---

## Pre-flight

Read `~/.claude/plugins/config/claude-for-customer-success/rev-ops/CLAUDE.md` and
`~/.claude/plugins/config/claude-for-customer-success/company-profile.md`.

If either is missing or contains `[PLACEHOLDER]` markers, stop and prompt for
`/rev-ops:cold-start-interview`.

Note from config: `crm_system`, `avg_sales_cycle_days`

**G-code dependency:** All G-code guardrails referenced in this skill (G1–G9) are defined in the CLAUDE.md config loaded above. If Pre-flight halts or config is missing, G-codes are undefined — do not proceed with partial config.
---

## Use when
- CRM stage data needs validation against defined stage entry/exit criteria
- Deals appear to be in wrong stages based on activity signals
- Pipeline hygiene audit requires stage-level integrity check

## Do NOT use for
- Pipeline velocity or conversion analysis (use pipeline-velocity-tracking)
- Full CRM hygiene sweep (use crm-hygiene-audit)
- Deal health scoring (use deal-health-scoring)

## Typical Activation
"Stage integrity audit", "are deals in the right stages", "stage hygiene check", "audit stage progression for [rep/team/period]"

---

## Reasoning Protocol

Before generating output, apply these primers:

1. **CLASSIFY**: What type of stage integrity request is this?
   - Single-deal audit (one account — all three pattern checks against its history)
   - Cohort audit (all open pipeline or a rep/team subset — pattern frequency summary)
   - Rep-period analysis (stage hygiene across a rep's deals for a specific period)
   - Below-threshold remediation (specific deal already flagged — what needs correction)

2. **CONSTRAINTS**: What limits the solution space?
   1. Confirm activation — user asking about stage hygiene, CRM accuracy, or forecast distortion
   2. Pull HubSpot stage change history for scope; declare connector status and unavailability if missing
   3. Apply G6 — data-as-of timestamp required on all stage history reads
   4. Apply G9 — no autonomous CRM edits; all corrections are proposals for human confirmation
   5. Apply G5 — findings are inputs for manager and CRM admin review, not auto-executed corrections
   6. Confirm `avg_sales_cycle_days` from config before running Pattern 3 (stale stage ratio requires baseline)
   7. If `crm_system` is not HubSpot, declare connector assumptions explicitly before proceeding

3. **EXPERT CHECK**: What would a veteran RevOps CRM analyst verify before surfacing findings?
   - Is the stage change history scoped correctly? Pulling all-time history for a deal will surface
     legitimate re-stages (e.g., after a lost reopen) alongside hygiene problems — the analyst
     filters to the current active deal cycle, not the full deal lifetime.
   - Is the stale-stage ratio segment-aware? Enterprise deals have longer median stage duration than
     SMB — applying a single `avg_sales_cycle_days` baseline to a mixed-segment pipeline produces
     false positives on enterprise and misses SMB stalls. Confirm segment before applying the 2x flag.
   - Is write-tier confirmation surfaced before any CRM action is queued? Any proposed stage
     correction is Write-tier under G9 — the analyst confirms the escalation path (CRM admin or
     manager) before the finding is delivered, not after.
   - Is the escalation path specific? "Review with manager" is not actionable — the finding must
     name the rep's manager and the recommended resolution step per pattern type.

4. **ANTI-PATTERNS**: Common mistakes to avoid:
   - Proposing autonomous CRM stage corrections without human confirmation (G9 violation)
   - Applying stale-stage ratio without segment-level baseline (produces noise in mixed-segment pipelines)
   - Pulling HubSpot stage history without data-as-of timestamp (G6 violation)
   - Routing stage anomaly findings directly to reps — escalation path is manager and CRM admin, not rep

**After execution**, verify:
- G6 data-as-of label applied to all HubSpot stage history reads
- G9 compliance confirmed — no CRM corrections queued without explicit human confirmation
- G5 framing applied — findings are analytical inputs, not correction mandates
- Escalation path named per finding (manager + CRM admin where applicable)
- Confidence: High when HubSpot connected and stage history current; Moderate when connector unavailable or `avg_sales_cycle_days` is estimated
    - Confidence: [High] when HubSpot connected and stage history current / [Medium] when connector unavailable or `avg_sales_cycle_days` is estimated / [Low] if all inputs are manual or unverified

---

## Three Anomaly Patterns

**Pattern 1 — Stage skipping**
Deal advanced 2+ stages in a single update, with no intermediate stage entry recorded.
Signal: retroactive CRM entry rather than real-time progression. Distorts time-in-stage
averages and velocity metrics.

**Pattern 2 — Backward movement**
Deal moved to an earlier stage after being in a later one.
Signal: may indicate a stalled or lost deal not yet marked closed/lost.
Requires investigation before accepting the regression as valid.

**Pattern 3 — Stale stage**
Deal has been in the same stage for >2x the historical median for that stage and segment.
Signal: pipeline may be padded with deals unlikely to close in the stated quarter.

---

## Output

```
STAGE INTEGRITY AUDIT — [Quarter/Scope]
[HubSpot ✓ live — as of YYYY-MM-DD] [Confidence: High]

Pattern 1 — Stage skipping ([N] deals)
  [Account A]  Skipped Discovery→Proposal→Negotiation on [date]  Rep: [name]
  [Account B]  Skipped Qualification→Proposal on [date]           Rep: [name]

Pattern 2 — Backward movement ([N] deals)
  [Account C]  Moved Negotiation→Proposal on [date]              Investigate: lost deal?
  [Account D]  Moved Proposal→Discovery on [date]                Investigate: restart?

Pattern 3 — Stale stage ([N] deals)
  [Account E]  In Proposal 41 days (avg 18d, ratio 2.3x)         Rep: [name]
  [Account F]  In Discovery 35 days (avg 12d, ratio 2.9x)        Rep: [name]

Recommended actions (require human confirmation before CRM edits):
  [ ] Review backward movement deals for closed/lost reclassification
  [ ] Validate stage-skip deals for accurate close date
  [ ] Review stale stage deals for pipeline qualification

[DRAFT — RevOps internal] [Confidence: High]
[Write-tier: CRM corrections require human confirmation before execution]
```

---

## Reference Files

| File | Purpose |
|------|---------|
| `references/reasoning-blueprint.md` | Problem classification taxonomy, domain heuristics, common failure modes, and expert judgment patterns for this skill |

## Security & Permissions

**Network access:** None direct — all external data access is mediated by host-provided MCP connector tools (HubSpot, CS platform, Slack, Linear). This skill makes no direct outbound HTTP calls.
**Filesystem scope:** None — this skill does not read or write local files. All data is provided at runtime via parameters or MCP connector responses.
**Subprocess execution:** None.
**Dynamic code execution:** None — pseudocode in this skill represents the logic contract and is not executed at runtime.
**Data sensitivity:** Inputs may contain confidential deal and pipeline data. Handle with RevOps-level confidentiality.

## Trust & Verification

**Input trust model:** All user-provided parameters are treated as untrusted at intake. Numeric inputs are validated for plausible range before use in calculations. String inputs are not evaluated as code.
**Output trust model:** All outputs are proposals or analytical inputs — no outputs constitute approved decisions, revenue commitments, or system actions without explicit human confirmation.
**Connector data:** Data retrieved via MCP connectors is treated as read-only observed state. Timestamps and data-as-of labels are applied to all connector-sourced values per G6.
**Write-tier confirmation:** Any proposed write to HubSpot, Linear, or Slack is surfaced as a draft requiring explicit user confirmation before execution.

## Guardrails

- G9 (Write Protocol): No autonomous CRM edits. All corrections are proposals.
- G5: Stage anomalies are signals for manager and CRM admin review
- G6: Data-as-of required

More from t0ddc3by/claude-for-customer-success

SkillDescription
account-research>
annual-planning-workflowOrchestrates the six-phase annual (or mid-year) planning cycle: forecast scenarios → UoG three-scenario capacity modeling → quota sensitivity → comp simulation → baseline save → change communication. Each phase gates on human approval before the next begins. Invokes unit-of-growth-calculator for capacity modeling. Triggers: 'annual planning', 'planning cycle', 'run the plan', 'quota comp planning', 'mid-year replan'.
blocker-review>
call-prep>
change-communication-packagingProduces a three-part communication package for sensitive planning changes: (1) data-backed rationale memo for reps, (2) FAQ with top 5 anticipated objections and data responses, (3) rollout sequence with audience, channel, and order. Triggered automatically by annual-planning-workflow for territory, quota, or comp changes. Requires RevOps lead review before any distribution. Triggers: 'communicate changes', 'territory announcement', 'quota rationale', 'comp change communication', 'help me tell reps about [change]'.
churn-rcaRoot cause analysis for individual customer churn events and cohort-level churn pattern analysis. Produces structured RCA with root cause taxonomy, contributing factors, timeline reconstruction, and remediation pathway. Scoped to full cancellation — contract contraction redirected to renewals:downgrade-analysis.
closed-won-to-cs-capacity-modelingConverts rolling sales forecast into CS resource demand using UoG formulas. Runs three-scenario capacity check (P10/P50/P90 from scenario-modeling). Compares projected CSM demand to current headcount and UoG annual plan baseline. Surfaces CS capacity gaps with a hiring lead time flag. Updates when SA1 forecast moves >10%. Triggers: 'CS capacity', 'can CS absorb', 'CSM headcount needed', 'CS ceiling', 'will CS be able to handle new logos'.
cold-start-interview>
comp-simulationModels comp plan payout scenarios before plan is finalized. Stress-tests OTE, accelerators, and threshold structures against attainment distributions (50/65/75/85/100%). Surfaces cost-to-company and unintended payout behaviors. G3 applies — all outputs require HR + Finance dual review before rep distribution. Triggers: 'comp simulation', 'model comp payouts', 'comp plan cost', 'stress test comp plan', 'what does the plan cost at 80/100/120%'.
crm-hygiene-auditOverall CRM health score plus rep-level hygiene scorecard across three dimensions: completeness, accuracy, and recency. Produces weekly hygiene report for RevOps review before sharing with Sales managers. Never writes to CRM — all corrections are proposals. Triggers: 'CRM hygiene', 'data quality', 'hygiene report', 'field completeness', 'CRM health score'.