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 AI agents to wire dependencies correctly with uber-go/dig, covering containers, constructors, parameter objects, named values, value groups, scopes, and decorators. ## Core Features & Use Cases - Container Wiring: Register lazy, memoized constructors with Provide and resolve graphs with Invoke, keeping the container at the composition root. - Advanced DI Patterns: Use dig.In/dig.Out parameter and result objects, named values for multiple instances of one type, value groups with flatten, dig.As to expose interfaces, and Decorate for cross-cutting behavior. - Testing & Validation: Validate the production graph in CI with DryRun, detect cycles, recover constructor panics as typed errors, and visualize failed graphs in DOT format. - Use Case: When a Go service needs two *sql.DB connections (primary and read replica), the Skill shows how to register both with dig.Name and consume them via name tags instead of wrapper types. ## Quick Start Ask the agent to wire your Go application's dependencies with uber-go/dig, for example by registering constructors for config, logger, database, and server and resolving the graph with Invoke in main.