What problem does it solve? Go errors often lose context as they travel up the call stack, leaving on-call engineers without the domain, attributes, or trace IDs needed to diagnose failures. This Skill guides structured error wrapping with samber/oops so every error carries enough context for diagnosis and groups correctly in APM tools like Datadog, Loki, and Sentry. ## Core Features & Use Cases - Layer-boundary wrapping: Wrap errors at each package boundary with .Wrapf, attaching the context that layer knows via .With, .In, .Tags, and .Code. - Low-cardinality messages: Keep error messages static and move runtime values (user IDs, queries, tenants) into attributes so APM tools group errors correctly. - Panic recovery and enrichment: Convert panics to structured errors with .Recover at goroutine boundaries, and attach HTTP requests, identity, and trace context with .Request, .User, and .Trace. - Use Case: While reviewing a Go service, you find handlers returning bare fmt.Errorf results. Use this Skill to rewrite each layer to wrap errors with domain, code, and attributes, then read back Code/Stacktrace at the top for logging and public messages. ## Quick Start Ask the AI to refactor your Go error handling to wrap errors with samber/oops, adding domain, code, and attributes at each layer boundary.