Skip to content
Back to skills

Observability First

ASecurity

Use when debugging production-like failures, long workflows, installers, background processes, external integrations, or hard-to-reproduce state - and when WRITING any app, CLI, service, installer, game or script, so its next failure produces evidence instead of a mystery.

  • 5 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsdebugging

Works with

  • cli

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add ShugokiFable/Ultimate-AI-Starter-Bundle --skill observability-first --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Observability First?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Observability First
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shugokifable-observability-first/badge)](https://www.skillsdirectory.com/skills/shugokifable-observability-first)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: observability-first
description: Use when debugging production-like failures, long workflows, installers, background processes, external integrations, or hard-to-reproduce state - and when WRITING any app, CLI, service, installer, game or script, so its next failure produces evidence instead of a mystery.
---

# Observability First

## Core rule
If a failure cannot be reconstructed from **logs** and state, add enough observability before guessing at fixes.

## Diagnostic contract
Capture a stable **correlation** identifier for one run/task where multiple processes or services participate. Log timestamps, version/revision, command/action, target, key state transitions, exit codes, retries, and bounded error detail. Preserve machine-readable reports for doctors and CI.

Never log secrets or huge payloads by default. Prefer structured summaries plus paths to full artifacts. Distinguish warnings from release-blocking failures.

A **diagnostic** should answer: what was attempted, with which version/config, what state existed before, where it failed, and what state remained after.

Observability is not noisy printing. Every emitted field should shorten root-cause time or prove an acceptance criterion.

## Software you write

The same rule applies before there is a failure. Anything you build that runs -- an app, CLI, service, installer, game, background worker -- should be able to explain its own next failure without a second debugging session to add logging.

Scale to the project. A ten-line utility needs no logging framework; a multi-stage tool needs a **run** identifier tying its events together.

Baseline worth emitting: startup with version/build, the configuration actually resolved, each external dependency that failed and why, an actionable message rather than a bare exception class, a stack trace for the unexpected, child-process exits, clean shutdown, and the exit code. Where a durable log is written, print its path.

What not to emit: whole payloads, request bodies, file contents, per-iteration chatter, or anything from `secret-hygiene`. A field that cannot help reproduce, localise or explain a failure is cost with no return.

When existing evidence is not enough to explain a failure, add **targeted** instrumentation, reproduce once, then use what it produced -- rather than editing speculative fixes and re-running. `systematic-debugging` owns the isolation loop itself.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…