What problem does it solve? Wiring a Go application's object graph by hand leads to tangled constructors, duplicated initialization code, and missing-dependency failures discovered only at runtime. This Skill guides correct use of uber-go/dig so constructors, named values, value groups, and scopes are registered and resolved correctly at startup. ## Core Features & Use Cases - Container Wiring Patterns: Covers Provide/Invoke, lazy memoized constructors, dig.In parameter objects, and dig.Out result objects for clean constructor signatures. - Advanced Graph Features: Named values for multiple instances of one type, value groups with flatten, dig.As interface exposure, Decorate, child scopes, and optional dependencies. - Testing & Validation: DryRun graph validation in CI, per-test containers, cycle detection, RootCause error unwrapping, and RecoverFromPanics handling. - Use Case: When building an HTTP server where many handlers must feed one router, use value groups so each handler constructor contributes to a shared slice without the router knowing which handlers exist. ## Quick Start Ask the assistant to wire your Go service's constructors with uber-go/dig using parameter objects and value groups instead of manual initialization in main.