What problem does it solve? Defining events that cross bounded-context boundaries in a modular .NET application is error-prone: wrong naming, leaking domain types into contracts, or publishing before persistence. This Skill scaffolds a consistent, publisher-owned IMessage event record following the project's conventions. ## Core Features & Use Cases - Event Record Scaffolding: Generates a public C# record implementing IMessage in the publisher BC's Messages folder, with templates for simple and nested-payload events. - Convention Enforcement: Applies naming rules (past-tense, no Event suffix), property rules (primitives only, int IDs, DateTimeOffset timestamps), and placement rules. - Architecture Hygiene: Reminds you to update the bounded-context map, consider ADR amendments, and add consumer handlers separately via /create-domain-event. - Use Case: When the Orders BC must notify other contexts that an order was placed, generate an OrderPlaced record in Application/Sales/Orders/Messages and wire the PublishAsync call after SaveChangesAsync. ## Quick Start Ask the assistant to create a message contract named OrderPlaced published by the Sales/Orders bounded context.