What problem does it solve? Deciding how to signal that something significant happened in a DDD/CQRS backend — and wiring that signal correctly — is error-prone: events get published synchronously from use cases, payloads leak entity references, and naming drifts. This Skill codifies the exact patterns for creating domain events (same bounded context, InternalMediator) and integration events (cross-context, ExternalMediator) with durable, at-least-once delivery via the transactional outbox. ## Core Features & Use Cases - Language-dispatched playbooks: A hub SKILL.md routes to TypeScript or Go variants by file extension, each with its own registry.yaml of mandatory patterns and bad practices. - Transactional outbox enforcement: Events are saved inside the same transaction as the entity and delivered asynchronously by the OutboxDispatcher — direct mediator publishes from use cases are flagged as critical violations. - Intent-based activation decision: A decision table distinguishes events (reactive facts, audit) from CommandQueue (durable single-executor commands), Mailbox (serialized turns), and direct synchronous use case calls. - Use Case: When a transcoding job starts, scaffold a TranscodingJobStartedEvent in Go (type alias over types.DomainEvent[T], past-tense const name, primitive payload with JSON tags), raise it inside the entity method, and let the repository drain it to the outbox. ## Quick Start Ask the agent to create a domain event for a significant occurrence in your bounded context, for example: create an event for when a collaborator is invited in the collaborator context.