What problem does it solve? Building long-running Go services requires coordinating dependency wiring, boot order, and graceful shutdown by hand. This Skill guides you through structuring an application with uber-go/fx so constructors, lifecycle hooks, and modules stay correct and maintainable. ## Core Features & Use Cases - Application Wiring: Compose apps with fx.New, fx.Provide, fx.Invoke, and signal-aware app.Run() with configurable start/stop timeouts. - Lifecycle Management: Register OnStart/OnStop hooks via fx.Lifecycle, keep hooks non-blocking, and honor context cancellation for graceful shutdown. - Modules and Annotations: Organize providers into fx.Module with scoped decorators, and use fx.Annotate with name/group tags, fx.As interface binding, and value groups. - Testing and Validation: Validate the graph in CI with app.Err(), and test with fxtest, fx.Replace, fx.Populate, and standalone lifecycles. - Use Case: You are building an HTTP service with a database, metrics, and background workers. Use this Skill to wire the full graph with modules, register graceful shutdown hooks, and add a CI test that fails on missing providers. ## Quick Start Ask the AI to wire a Go HTTP server with uber-go/fx including lifecycle hooks for startup and graceful shutdown.