What problem does it solve? Event-driven backends need automation handlers that react to domain or integration events, decide whether to act, and append events or mutate documents — but writing them by hand risks missed trigger registrations, non-idempotent handlers, and state-management mistakes that silently break downstream consumers. ## Core Features & Use Cases - Automation Handler Generation: Builds a Wolverine handler triggered by an event (never an HTTP route) from a slice.json definition, covering both same-module domain events via Marten forwarding and cross-module integration events via RabbitMQ. - State Computation Guidance: Creates per-invocation [AutomationName]State types replayed through AggregateStreamAsync for event-sourced modules, or direct document loads for document-store modules, enforcing ADR-019's no-persisted-snapshot rule. - Idempotency and Test-First Discipline: Requires tests before the handler, covering the act case, the not-yet case, and redelivery idempotency, plus trigger registration checks in Program.cs or the module's IntegrationEventQueueName. - Use Case: Given a slice.json describing "when a mutual match is detected, notify both owners", generate a DetectMutualMatchHandler that replays stream state, appends the match event, and returns a MatchCreatedV1 integration event through the durable outbox. ## Quick Start Ask the AI to build the automation slice defined in build-kit-dotnet/.slices/{Context}/{slicename}/slice.json using the build-automation skill.