error-scan
Scan recent Claude Code activity for errors and failure signals across all sessions using Agent Monitor data — APIError events and PreToolUse→PostToolUse gaps (tools that started but never completed) — then group failures by tool and model and rank them by frequency. Use when che
Install
npx skills add https://github.com/hoangsonww/Claude-Code-Agent-Monitor/tree/master/plugins/ccam-quality/skills/error-scan
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install hoangsonww-claude-code-agent-monitor@llmmart
git clone https://github.com/hoangsonww/Claude-Code-Agent-Monitor.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole hoangsonww/claude-code-agent-monitor collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Error Scan
Sweep recent events across sessions for error and failure signals, then rank them by how often they occur and which tool or model produced them.
Input
The user provides: $ARGUMENTS
This may be:
- empty or "all" — scan every failure signal (default)
- "api" — APIError events only
- "tools" — tool-failure gaps only
- a number N — limit the scan to the most recent N sessions
- a session ID — scan a single session
Data Sources
| Endpoint | Returns |
|---|---|
GET /api/analytics |
event_types (counts per type incl. PreToolUse, PostToolUse, APIError), tool_usage (top 20), daily_events (365d) — fleet-wide failure baseline |
GET /api/events?session_id=X |
Per-session event stream: event_type, tool_name, summary, data, timestamp — locate APIError and unmatched PreToolUse |
GET /api/sessions?limit=N |
Sessions with id, status, model, started_at — pick the recent window and attribute failures to a model |
Report Sections
1. Scope
Resolve $ARGUMENTS to a session set: pull GET /api/sessions?limit=N (default 50, ordered by started_at). Report how many sessions and what time span are covered.
2. Fleet Failure Counts
From GET /api/analytics event_types, report total APIError count and the PreToolUse→PostToolUse gap: gap = PreToolUse − PostToolUse (unmatched tool starts = likely failures). State both as raw counts and as a share of total_events.
3. Group by Tool
For each session in scope, pull GET /api/events?session_id=X. Match each PreToolUse to its following PostToolUse by tool_name; unmatched starts are failures. Aggregate failures and APIError events per tool_name. Rank tools by failure frequency (descending).
4. Group by Model
Join failures to the owning session's model (from GET /api/sessions). Rank models by APIError count and tool-failure count.
5. Top Offenders
List the single most failure-prone tool, the most error-prone model, and the session with the most failures, each with its exact count and one-line summary excerpt from a representative event.
Output
- A ranked Markdown table: tool/model | APIError count | tool-failure (gap) count | total failures | share of events.
- Rates as percentages to 2 decimals.
- Cite exact
event_type,tool_name, andsession_idvalues — never fabricate counts. - End with the one failure pattern most worth investigating and a concrete next step.
- Read-only: only report what the API returns. If
curlcannot reachhttp://localhost:4820, tell the user to start the dashboard withnpm startfrom the repo root.
Files (claude-code-agent-monitor)
-
agents
-
openai.yaml 256 B
interface: display_name: "Error Scan" short_description: "Scan recent Claude Code activity for errors and failure..." default_prompt: "Use $error-scan to inspect CCAM data and complete this workflow safely." policy: allow_implicit_invocation: true
-
-
SKILL.md 3 KB
--- name: error-scan description: > Scan recent Claude Code activity for errors and failure signals across all sessions using Agent Monitor data — APIError events and PreToolUse→PostToolUse gaps (tools that started but never completed) — then group failures by tool and model and rank them by frequency. Use when checking for errors or asking "what's failing right now". --- # Error Scan Sweep recent events across sessions for error and failure signals, then rank them by how often they occur and which tool or model produced them. ## Input The user provides: **$ARGUMENTS** This may be: - empty or "all" — scan every failure signal (default) - "api" — APIError events only - "tools" — tool-failure gaps only - a number N — limit the scan to the most recent N sessions - a session ID — scan a single session ## Data Sources | Endpoint | Returns | |----------|---------| | `GET /api/analytics` | `event_types` (counts per type incl. PreToolUse, PostToolUse, APIError), `tool_usage` (top 20), `daily_events` (365d) — fleet-wide failure baseline | | `GET /api/events?session_id=X` | Per-session event stream: `event_type`, `tool_name`, `summary`, `data`, `timestamp` — locate `APIError` and unmatched `PreToolUse` | | `GET /api/sessions?limit=N` | Sessions with `id`, `status`, `model`, `started_at` — pick the recent window and attribute failures to a model | ## Report Sections ### 1. Scope Resolve `$ARGUMENTS` to a session set: pull `GET /api/sessions?limit=N` (default 50, ordered by `started_at`). Report how many sessions and what time span are covered. ### 2. Fleet Failure Counts From `GET /api/analytics` `event_types`, report total `APIError` count and the PreToolUse→PostToolUse gap: `gap = PreToolUse − PostToolUse` (unmatched tool starts = likely failures). State both as raw counts and as a share of `total_events`. ### 3. Group by Tool For each session in scope, pull `GET /api/events?session_id=X`. Match each `PreToolUse` to its following `PostToolUse` by `tool_name`; unmatched starts are failures. Aggregate failures and `APIError` events per `tool_name`. Rank tools by failure frequency (descending). ### 4. Group by Model Join failures to the owning session's `model` (from `GET /api/sessions`). Rank models by APIError count and tool-failure count. ### 5. Top Offenders List the single most failure-prone tool, the most error-prone model, and the session with the most failures, each with its exact count and one-line `summary` excerpt from a representative event. ## Output - A ranked Markdown table: tool/model | APIError count | tool-failure (gap) count | total failures | share of events. - Rates as percentages to 2 decimals. - Cite exact `event_type`, `tool_name`, and `session_id` values — never fabricate counts. - End with the one failure pattern most worth investigating and a concrete next step. - Read-only: only report what the API returns. If `curl` cannot reach `http://localhost:4820`, tell the user to start the dashboard with `npm start` from the repo root.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.