From SoMi
Use when adding logs, metrics, or traces — or when reviewing whether code can be debugged in production at 3am. Covers structured logging, the three signals, correlation, cardinality, and alerting philosophy.
How this skill is triggered — by the user, by Claude, or both
Slash command
/somi:observabilityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The principles are in [`rules/40-engineering-practices.md`](../../rules/40-engineering-practices.md)
The principles are in rules/40-engineering-practices.md
§Observability — that's the always-on floor (structured logs, three signals, correlation,
cardinality, alert philosophy). This skill adds operational depth: log-level decision table,
RED/USE frames, the metric-cardinality blast radius, per-change checklist.
The 3am test: a paged on-call engineer must be able to figure out what happened from logs/metrics/traces
alone, without re-deploying with extra printfs. If they can't, observability is missing.
Each is the wrong tool for the others' job:
printf soup.user_id / userId / user.| Level | When |
|---|---|
| ERROR | Something requires human attention (paging, ticketing, retry exhausted) |
| WARN | Anomaly that didn't fail, but you'd want to know if it became common |
| INFO | Notable lifecycle events (start, stop, deploys, scheduled jobs) |
| DEBUG | High-volume detail, gated, off in prod by default |
Don't log INFO for every request — that's a metric, not a log.
Every log line in a request path carries:
request_id / trace_id — correlation across services.user_id or principal_id — when not in a credential endpoint and not leaking PII.service / environment — for multi-service log aggregators.error (when applicable) — full stack/chain, not e.message.user@****.com).A metric http_requests{status="500", path="/api/orders", user_id="<id>"} will blow up your storage when
user IDs proliferate. Rule of thumb:
status, method, route (template, not raw path),
service.Two standard frames:
Latency averages lie. Use histograms (Prometheus, OpenTelemetry). Watch p50, p95, p99.
The single most useful thing for debugging is one ID that ties everything together.
request_id generated at the edge; propagated to every log, metric exemplar, and trace span.X-Request-Id).For a non-trivial change, ask:
printf("here") debugging shipped to prod.npx claudepluginhub skathio/somi --plugin somiCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.