What problem does it solve? Manually wiring Go services at the composition root becomes fragile as applications grow, and ad-hoc dependency injection leads to concrete-type coupling, hidden failures, and leaked request-scoped state. This Skill guides you through registering, resolving, and testing services with the samber/do/v2 DI container. ## Core Features & Use Cases - Provider-based registration: Register services with lazy, eager, value, or transient lifecycles using provider functions, and resolve them by interface via implicit aliasing. - Module and scope organization: Group registrations into packages with do.Package, compose them at the root, and isolate request-scoped services in child scopes. - Lifecycle and testing support: Wire graceful shutdown with signal handling, run health checks, and clone containers with overrides for isolated tests. - Use Case: You are refactoring a Go service that constructs its dependency graph by hand in main. Use this Skill to convert each constructor into a provider, group them into infrastructure and service packages, and resolve the API server by interface with graceful shutdown. ## Quick Start Ask the AI to refactor your Go main function to register all services with samber/do providers and resolve the server by interface.