hoangsonww/api-error-report
> Produce a detailed report on APIError events from Agent Monitor data — counts over time, which sessions and models are affected, and the likely root cause (rate limits, overload/529, or context-window pressure) inferred from each event's summary and data payload. Use when API errors spike or when you need to explain why requests are failing.
npx skills add https://github.com/hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report
Drill into APIError events: how many, when, where, and most likely why.
The user provides: $ARGUMENTS
This may be:
| Endpoint | Returns |
|----------|---------|
| GET /api/analytics | event_types (total APIError count), daily_events (365d) — APIError volume and trend over time |
| GET /api/events?session_id=X | Per-session event stream — each APIError carries summary, data, and timestamp used to classify the cause |
| GET /api/sessions?limit=N | Sessions with id, model, started_at — attribute each error to a model and place it on the timeline |
From GET /api/analytics: total APIError count and its share of total_events. Use daily_events to chart APIErrors over the requested window and flag any day that spikes above the window mean.
For each session in scope, pull GET /api/events?session_id=X and collect APIError events. Group by session_id and, via GET /api/sessions, by model. Report the top affected sessions and which model accounts for the most errors.
Inspect each error's summary/data and bucket it:
Compaction events).summary.Report the count and percentage in each bucket.
List the most recent APIErrors with timestamp, session_id, model, classified cause, and a one-line summary excerpt.
session_id, model, timestamp, and summary values — never invent a cause not supported by the payload; bucket as "Other" when unclear.curl cannot reach http://localhost:4820, tell the user to start the dashboard with npm start from the repo root.Take hoangsonww/api-error-report from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.