What problem does it solve? Manually wiring Go application dependencies is error-prone and runtime DI containers hide errors until startup. This Skill guides you through google/wire, which resolves the dependency graph at compile time and generates plain Go constructor calls, so missing dependencies surface as build errors instead of runtime failures. ## Core Features & Use Cases - Provider Sets and Injectors: Organize constructors into per-package wire.NewSet groups and declare injectors with wire.Build behind the //go:build wireinject tag. - Interface Bindings and Struct Injection: Map interfaces to concrete types with wire.Bind, fill struct fields with wire.Struct, and promote config fields with wire.FieldsOf. - Cleanup Chains and Testing: Return (T, func(), error) from providers so wire chains shutdown in reverse order, and build test injectors that swap real providers for fakes. - Use Case: You are building an HTTP service with Postgres, Redis, and layered repositories. Define per-package provider sets, run wire ./..., and commit the generated wire_gen.go so CI builds a fully wired app with compile-time safety. ## Quick Start Ask the AI to set up google/wire dependency injection for your Go service with per-package provider sets, an injector file, and cleanup functions for database connections.