# Skill: Observability > **Atelier source:** `domains/observability/` (first-principles + logging, > metrics, tracing) > **Core principles:** C7 Observability > **BA.A mapping:** basic observability bootstrap > **Consumer:** read this before any production submission (W3.E requires > `dashboard` + `oncall` for prod). ## First Principles (citizen-developer-relevant subset) - **Logs are structured.** JSON with fields, not free-form text. Every log line carries a timestamp, level, message, and context fields. - **Every request has a correlation ID.** A request ID propagates from ingress through every downstream call. Logs, metrics, and traces share the same ID. - **No high-cardinality labels in metrics.** User IDs, request IDs, and other unbounded values go in logs/traces, not metric labels. - **Alerts have runbooks.** Every alert links to a runbook (`runbook` field in the submission, W3.E prod mandatory) that explains what to do when it fires. ## Agent-Checklist Triggers (§ Observability) - Logs are structured (JSON, fields) - Every request has a correlation ID - No high-cardinality labels in metrics - Alerts have runbooks ## How Nova Uses This The W3.E per-env mandatory table requires `runbook` + `dashboard` + `oncall` for `prod` submissions — the submission-readiness gate enforces this. The observability skill tells you what those artifacts must contain: structured logs, correlation IDs, bounded metric labels, and runbook-linked alerts. Nova provides the infrastructure (CloudWatch, the uptime monitor); you provide the application-level observability (structured logs, dashboards, runbooks).