observability
Instrument code so production behavior is visible and diagnosable — structured logs with correlation ids, metrics, traces, symptom-based alerts and minimal…
Skill by pabloleonalcaide
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pabloleonalcaide-observability
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/observability
What's inside
- Skill name
observability- Description
- Instrument code so production behavior is visible and diagnosable — structured logs with correlation ids, metrics, traces, symptom-based alerts and minimal runbooks. Use when adding an endpoint, job, cron, queue consumer or third-party integration, when a production issue was hard to diagnose, or when the user asks for logging, metrics, tracing, dashboards or alerts. Invoked by /develop when the blueprint declares observability impact.
- License
- MIT
- Instructions
- 60 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Observability
Instrument for the questions the on-call will ask, not for the code you wrote. **Metrics tell you
*that* something is wrong, traces tell you *where*, logs tell you *why*.**
## When NOT to use
- Temporary debug logging while diagnosing a bug — that is `diagnose` (tagged logs, removed after).
- Pure refactors with no new entry point or integration.
## Process
1. **Define "working" first.** Write 2-4 questions the on-call will ask about this code at 3 a.m.:
"Did last night's run process every record?", "Are payments to provider X failing?", "Which
tenant is slow?". Every signal you add must answer one of them; drop the rest.
2. **Structured logs, one event per meaningful step.** JSON, stable field names, a level that
means something (`error` = someone must act). Every line carries:
- a **correlation id** propagated across calls and queue hops;
- an **`entryPoint`** field when several origins (HTTP, cron, consumer) write to the same
sink — so a line can be traced to what started it;
- the business identifiers needed to act (ids, not personal data).
3. **Metrics: RED for services, USE for resources.** Rate, Errors, Duration per endpoint/job;
Utilization, Saturation, Errors for pools and queues. Report latency as **percentiles**
(p50/p95/p99), never averages.
4. **Watch cardinality.** Labels are bounded sets (endpoint, status class, provider). **Never** a
label per user, tenant, id or free text — that belongs in logs or trace attributes.
5. **Traces at the boundaries.** A span per inbound request, outbound call and queue hop, with the
correlation id; prefer the platform's OpenTelemetry setup over hand-rolled timing.
6. **Alert on symptoms, not causes.** Two severities: **page** (users are hurting now) and
**ticket** (will hurt soon). Every alert gets a 3-line runbook: what it means, first check,
who owns it.
7. **Verify the telemetry itself.** Trigger each new log, metric and alert once (in a test,
staging or a dry run) and confirm it arrives where the on-call will look.
## Common Rationalizations
| Rationalization | Reality |
|---|---|
| "We'll add logs when something breaks" | When it breaks you need the logs from *before* it broke. |
| "Log everything, we'll grep later" | Noise hides the signal and the bill grows; log what answers the on-call's questions. |
| "The average latency is fine" | Averages hide the tail; the p99 is what your slowest users feel. |
| "Add the user id as a label, it's handy" | Unbounded cardinality explodes the metrics backend. Put it in the log line. |
| "The alert is configured, done" | An alert never fired is an alert never tested. Fire it once. |
## Red Flags
- A new cron, job or consumer that logs nothing on success — you can't tell "ran fine" from "didn't run".
- `console.log` / unstructured strings in production code.
- A catch block that logs without the correlation id or the identifiers needed to act.
- Personal data or secrets in log lines.
- An alert without a runbook or owner.
## Verification
- [ ] The on-call questions are written down and each one is answerable from the new signals
- [ ] Logs are structured, carry correlation id (and `entryPoint` if the sink is shared), no PII
- [ ] Metric labels are bounded; latency as percentiles
- [ ] Each new alert has severity, runbook and owner, and was fired onceFrom pabloleonalcaide/development-skills, MIT.
More from pabloleonalcaide/development-skills
- 0.592score
disk-cleanup
pabloleonalcaide
Reclaim local disk space safely on a development machine — leftover git worktrees, Docker leftovers from integration tests (Testcontainers containers, orphan…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
develop
pabloleonalcaide
Orchestrates any non-trivial development or analysis task end-to-end — discovery, alignment, blueprint, registration, implementation and delivery.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
api-design
pabloleonalcaide
Design stable public interfaces — HTTP endpoints, event payloads, module boundaries, SDK-style ports — and make retried operations safe with idempotency keys.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
deprecation
pabloleonalcaide
Retire code, endpoints, fields, flags and dependencies safely, and migrate data without downtime using expand/contract.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
security-hardening
pabloleonalcaide
Threat-model a change and harden it before it ships — trust boundaries, authn/authz, input validation, secrets, SSRF, destructive operations, rate limits and…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
setup
pabloleonalcaide
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub by default, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
create-pr
pabloleonalcaide
Commit the current branch, push it, and open a pull request.
SkillAFreshness: A★ 1Claude Code +9 - 0.567score
diagnose
pabloleonalcaide
Disciplined diagnosis loop for hard bugs and performance regressions.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
grilling
pabloleonalcaide
Grill the user relentlessly about a plan or design until shared understanding — interview one decision at a time, no code until confirmed.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
tdd
pabloleonalcaide
Test-driven development with red-green-refactor loop.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
write-a-skill
pabloleonalcaide
Create new agent skills with proper structure, progressive disclosure, and bundled resources.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
receiving-code-review
pabloleonalcaide
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires…
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 7, 2026 (22 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pabloleonalcaide
- 0.592score
disk-cleanup
pabloleonalcaide
Reclaim local disk space safely on a development machine — leftover git worktrees, Docker leftovers from integration tests (Testcontainers containers, orphan…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
develop
pabloleonalcaide
Orchestrates any non-trivial development or analysis task end-to-end — discovery, alignment, blueprint, registration, implementation and delivery.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
deprecation
pabloleonalcaide
Retire code, endpoints, fields, flags and dependencies safely, and migrate data without downtime using expand/contract.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
api-design
pabloleonalcaide
Design stable public interfaces — HTTP endpoints, event payloads, module boundaries, SDK-style ports — and make retried operations safe with idempotency keys.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
security-hardening
pabloleonalcaide
Threat-model a change and harden it before it ships — trust boundaries, authn/authz, input validation, secrets, SSRF, destructive operations, rate limits and…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
setup
pabloleonalcaide
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub by default, or…
SkillAFreshness: A★ 1Claude Code +9
Cite this page
observability skill. Agent Mart. https://agentmart.dev/skills/pabloleonalcaide-observability (last updated 2026-10-24)