What problem does it solve?
This Skill helps you design and wire Go applications with uber-go/dig so dependencies stay explicit, startup composition stays clean, and complex object graphs remain testable.
Core Features & Use Cases
- Parameter Objects: Use dig.In to keep constructors readable when they need many dependencies.
- Multiple Implementations: Register the same type under different names or expose concrete values as interfaces.
- Grouped Contributions: Collect many providers into one slice for routers, handlers, or migrations.
- Scoped Wiring and Decoration: Create child scopes for request- or module-level dependencies and decorate existing values without rewriting constructors.
- Validation and Safety: Validate graphs with dry runs, handle constructor panics as errors, and keep the container at the composition root.
Quick Start
Use this Skill to review my Go codebase and show how to wire it with uber-go/dig using the right patterns for constructors, scopes, groups, and validation.