AGENT
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
You can't fix what you can't see. Observability is the practice of making a system's internal state inspectable from the outside, through three complementary signals plus the artifacts a crash leaves behind.
$ npx -y skills add vanara-agents/skills --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
You can't fix what you can't see. Observability is the practice of making a system's internal state inspectable from the outside, through three complementary signals plus the artifacts a crash leaves behind.
You can't fix what you can't see. Observability is the practice of making a system's internal state inspectable from the outside, through three complementary signals plus the artifacts a crash leaves behind.
| Signal | Answers | Use for | |---|---|---| | **Logs** | "What happened, exactly here?" | discrete events, error context, the bad value | | **Metrics** | "How much / how often, over time?" | rates, latencies, error %, spotting *when* a regression started | | **Traces** | "What was the path across services?" | distributed call graphs, finding the slow/failing hop |
Logs give detail, metrics give trends, traces give causality across boundaries. A bug hunt usually starts at a metric spike ("errors jumped at 14:05"), zooms to a trace ("the payment service hop failed"), then lands on a log line with the exact exception.
1. **Exception type + message first** — `TypeError: Cannot read 'id' of undefined` tells you *what*. 2. **Top user-code frame** — skip framework/stdlib frames; the first frame in *your* files is where to start. (Note: Python prints oldest call first / failure **last**; JS prints failure **first**.) 3. **Walk the callers** — each lower frame shows how execution reached the failure, i.e. who passed the bad value.
JavaScript (most-recent first): Python (most-recent LAST):
TypeError: ... 'id' of undefined Traceback (most recent call last):
at formatOrder (format.js:42) File "list.py", line 88, in render
at renderOrders (list.js:88) File "format.py", line 42, in format_order
KeyError: 'id' <- read this line firstUse `scripts/parse-stacktrace.mjs` to extract the top user frame mechanically from either format.
you'll remove. Never leave `console.log` debug spew in committed code.
When a process dies hard, it may leave a snapshot of memory at the moment of death:
locals with `frame`/`print`.
memory and CPU forensics.
These let you debug a failure you can observe but not re-trigger live.
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Repo: vanara-agents/skills
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
This shows how the api-designer agent reviews a flawed draft. Findings are severity-ranked so the implementer fixes the contract-breakers first. Severity…
The contract is the deliverable. Express it as an **OpenAPI 3.1** document so it is human-readable *and* machine-checkable. This reference covers how to…
Run through this before declaring an API contract done. It is ordered the way you should *design*: resources first, cross-cutting rules last. Every box is a…
APIs are forever once published: a consumer you've never met may depend on any field you expose. Design so you can **add without breaking**, and version…
Copy-paste templates for leaving review comments. Keep each comment to one finding: an anchor, the problem, and the fix.