debuggable-by-default

Generate and propagate correlation IDs with structured JSON logs across code boundaries.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/dylanmarriner/windsurf-hooker --skill debuggable-by-default
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: debuggable-by-default
Source: https://github.com/dylanmarriner/windsurf-hooker/tree/main/windsurf/skills/debuggable-by-default
Command: npx skills add https://github.com/dylanmarriner/windsurf-hooker --skill debuggable-by-default

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

When code fails in production, tracing across HTTP handlers, job runners, DB clients, and external API calls is difficult without consistent telemetry. This skill defines a standard approach to injecting correlation IDs and structured logs so failures are diagnosable without redeployments.

Core Features & Use Cases

  • Structured logging: Emit JSON logs at entry, exit, and error with fields like timestamp, level, service, env, version, request_id, component, op, duration_ms, and error.
  • Correlation IDs: Generate and propagate a unique request_id across all downstream calls to tie related events together.
  • Boundary observability: Instrument HTTP handlers, workers, DB clients, and external API integrations to improve post-mortem analysis and alerting.
  • Recovery guidance: Provide actionable recovery context in error logs to speed incident response.

Quick Start

Instrument your code to generate a correlation ID at request entry, propagate it across all down-stream calls, and emit structured logs at every boundary with actionable context.

Frequently Asked Questions about debuggable-by-default

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add correlation IDs and structured logs across HTTP handlers, job runners, and DB clients?▼

Correlation IDs and structured logs are added to code boundaries by generating a unique request_id at entry, propagating it across downstream calls, and emitting JSON logs at every boundary with actionable context.

What fields should structured logging include for production-readiness and post-mortem analysis?▼

Structured logging for production-readiness should include JSON fields like timestamp, level, service, env, version, request_id, component, op, duration_ms, and error to ensure failures are diagnosable without redeployments.

How does propagating a request_id across external API calls improve observability?▼

Propagating a request_id across external API calls improves observability by tying related events together across all layers, ensuring end-to-end boundary observability and making cross-system failures fully diagnosable.

Can I instrument boundary observability for job runners and DB clients without redeploying code?▼

Instrumenting boundary observability for job runners and DB clients requires injecting correlation IDs and structured logs directly into the code, enabling post-mortem analysis without needing redeployments after failures occur.

What is the best way to standardize telemetry and error recovery context across service boundaries?▼

Standardizing telemetry across service boundaries involves emitting structured JSON logs at entry, exit, and error states while providing actionable recovery context in error logs to speed up incident response.

Why does tracing fail across HTTP handlers and external API integrations in production?▼

Tracing fails across HTTP handlers and external API integrations in production when consistent telemetry is missing, making it difficult to trace failures without standardized correlation IDs and structured logs.