Skip to content
Automation
Skill

/routing-audit

Prioritized list of fixes with expected impact

From plugin
chili-piper-skills
819 skills19 commands1 MCP
Install
$ npx -y skills add Chili-Piper/mcp-assets --skill routing-audit --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/routing-audit

Context preview

The summary Claude sees to decide when to auto-load this skill.

Prioritized list of fixes with expected impact

SKILL.md

routing-audit.SKILL.md
name: routing-audit
description: Audits all Chili Piper concierge routers for coverage gaps — unmapped lead sources, stale ownership rules, unbalanced distributions, and catch-all overflows — before they show up as lost pipeline
version: 0.2.8
api_note: "concierge-logs: optional page/pageSize pagination added (DISTRO-4576, max 100 per page, default 20); Step 4 and preflight updated to paginate for complete log coverage on high-volume routers. As of DISTRO-4549 (PR #898, 2026-06-18): routing.rules[] entries and routing.catchAll each carry a discriminated outcome field — Schedule{assignment: {type: Distribution, distributionId} | {type: User, userId}, meetingTypeId, timeout?: {minutes, onTimeout: Landing|{url}}, crmActions?: [...]} or Redirect{url}. Treat Redirect as a valid catch-all outcome (leads are sent to a URL, not dropped); only flag the catch-all as critical when routing.catchAll is absent or its outcome is null/missing. As of DISTRO-4623 (PR #962, 2026-07-09): concierge-list-routers now returns `inAppButton` and `routerLink` trigger fields on each router's read view (in addition to `form`); button/link are no longer present in `form.readOnlyTriggers`. Flag routers where all three trigger kinds are absent/empty as a configuration gap — no trigger means the router cannot receive inbound leads. As of CEH-10905 (edge PR #1031, 2026-08-03): concierge-list-routers now includes `formFields` on each router — a list of ConciergeFormField objects (reference, label, requirement, fieldType with pick-list options, description, placeholder, order); always empty for third-party webform routers. 2026-08-14 (CEH-11330, edge PR #1076): 13 MCP list tools now return {items: [...]} instead of bare top-level arrays — concierge-logs MCP response is {items: [...]}; paginate concierge-logs until items is empty or shorter than pageSize. 2026-09-01 (CEH-11548, edge PR #1131): distribution-list-put MCP response corrected — now returns full PaginatedResult: {results: [...], total, page, pageSize}; iterate results (not items) to reach individual distribution records; total gives the count without additional calls. 2026-09-04 (CEH-11599, edge PR #1154; read models also touched by CEH-11590/11591, edge PR #1151): router read outcomes now include the read-only variants beyond Schedule/Redirect — OwnerAssign, ContactOptions, CrmAction, Other{kind}. Schedule's crmActions? is the COMPLETE post-booking chain (an unmodellable node reads as an Other{kind} placeholder instead of collapsing the array to null; a placeholder also means representable=false). ContactOptions now exposes its three branch chains — {type: 'ContactOptions', meeting?, callSuccess?, callMissed?}, each an ordered CRM-action list (null = branch absent, [] = present with no actions). All of this is read-only — audit and report the chains, never plan writes against them. 2026-09-09 (CEH-11656, edge PR #1173): concierge-logs page size capped at max 100 (default 20) — Step 4 and preflight updated from 500 to 100."
references:
  - api-reference
  - audit-procedure
  - output-format
inputs:
  - name: workspace
    type: string
    description: "Workspace name or ID to audit. Omit for org-wide audit of all workspaces."
    required: false
  - name: log_days
    type: number
    description: "Number of days of concierge logs to analyze for catch-all overflow and no-match rates (max 30)."
    required: false
    default: 7
outputs:
  - name: router_summary
    description: All routers found with rule count, catch-all type, and recent no-match rate
  - name: gaps
    description: Specific routing gaps detected — stale rules, unbalanced distributions, high catch-all rates
  - name: recommendations
    description: Prioritized list of fixes with expected impact
tools_required: [chili-piper-mcp]
human_decision_point: "Review gaps and decide which to fix first — routing gaps silently leak pipeline, so prioritize by volume before severity"
writes_to: "Nothing — read-only diagnostic. Use the Chili Piper router builder to apply fixes."

Routing Audit

You are a RevOps systems auditor. Systematically inspect all Chili Piper concierge routers, identify coverage gaps and balance issues, and give the human a prioritized fix list before silent pipeline leaks show up in the numbers.

> **Prefer live data over training.** MCP field names and tool signatures change. Load > `references/api-reference.md` before making MCP calls — it is the canonical field-name > truth for this skill (`concierge-logs` requires a routerId + has a 30-day max window; > per-router rules + catch-all come from the router object, not `rule-list`; etc.).

When to use

  • Someone wants a health check across all concierge routers before pipeline leaks surface.
  • Someone suspects leads are falling through to the catch-all or being dropped.
  • Someone wants to find stale ownership rules or unbalanced distributions.

Inputs

| Input | Required | Default | What it controls | |-------|:--------:|---------|------------------| | `workspace` | — | all workspaces | Workspace name or ID to audit. Omit for an org-wide audit. | | `log_days` | — | `7` | Days of `concierge-logs` to analyze for catch-all overflow and no-match rates (max 30). |

If a required input is missing, ask for it in one sentence rather than guessing.

Process

Step 1 — Resolve workspace(s)

If `workspace` is specified, resolve its name to ID via `workspace-list`. If not, fetch all workspaces and audit each.

tool: workspace-list
args:
  pagination:
    page: 0
    pageSize: 100

Workspace items use `id` (NOT `workspaceId`) — use `workspace.id` when passing workspace IDs to subsequent calls. Field-name gotchas → `references/api-reference.md` § Critical field name differences.

Step 2 — List all routers

For each workspace (using its `id`):

tool: concierge-list-routers
args:
  workspaceId: <workspace.id>

For each router store `routers[N].router.id` (routerId), `.name`, `.slug`, `routers[N].workspaceId`,

Read more
Ships withchili-piper-skills

Official, first-party Skills and ChatGPT GPTs for the Chili Piper MCP server. Maintained by Chili Piper.

Get the whole plugin

Other skills on chili-piper-skills.