What problem does it solve? Structuring a long-running Go service means wiring dozens of constructors, managing startup and shutdown order, and handling signals correctly. This Skill guides AI agents to build fx application graphs correctly, avoiding common mistakes like blocking OnStart hooks, init()-based side effects, and forgotten fx.Invoke calls. ## Core Features & Use Cases - Application Wiring: Covers fx.New, fx.Provide, fx.Invoke, fx.Supply, fx.Replace, fx.Decorate, and fx.Annotate for name/group/interface bindings. - Lifecycle & Modules: Teaches fx.Lifecycle OnStart/OnStop hooks, fx.Module scoping, signal-aware Run(), and manual Start/Stop control for CLI embedding. - Testing Patterns: Includes fxtest.New, fx.Populate, fx.Replace for fakes, and CI graph validation via app.Err(). - Use Case: When a Go service's main.go accumulates dozens of fx.Provide calls, use this Skill to reorganize them into fx.Module groups with module-scoped decorators and graceful shutdown hooks. ## Quick Start Ask the agent to wire your Go service with uber-go/fx, for example: refactor my main.go to use fx.Module for the HTTP and database concerns with lifecycle hooks for graceful shutdown.