What problem does it solve? Manually wiring Go application dependencies is error-prone and catches missing dependencies only at runtime. This Skill guides you through google/wire's compile-time code generation so the compiler validates your entire dependency graph before the first request. ## Core Features & Use Cases - Provider and Injector Setup: Write providers, group them into wire.NewSet collections, and declare injectors with the //go:build wireinject tag so wire generates wire_gen.go. - Interface Binding and Disambiguation: Use wire.Bind for explicit interface satisfaction and named types to resolve duplicate provider types. - Cleanup and Testing Patterns: Chain reverse-order cleanups from (T, func(), error) providers, build test injectors that swap fakes, and enforce wire_gen.go freshness in CI. - Use Case: You are building an HTTP server with Postgres and Redis. Define per-package provider sets, declare one injector, run wire ./..., and get a fully wired InitApp constructor with compile-time graph validation. ## Quick Start Ask the AI to wire my Go application's dependency graph with google/wire, including providers, an injector, and interface bindings.