What problem does it solve? Building CQRS read models in Go often leads to inconsistent patterns: leaked mutation logic, shared base classes, and unjustified atomic operations. This Skill enforces a canonical structure for projections — free record structs driven by projectors through the find → ApplyX → save flow. ## Core Features & Use Cases - Projection Struct Design: Plain Go structs with exported fields and db tags, no base classes or domain events, with ApplyX methods owning per-event transition logic. - Repository Contracts: Minimal per-projection interfaces (FindByKey, Save, InsertIfNew) with Postgres implementations, in-memory mocks, and fx wiring guidance. - Atomic Ops Governance: Rules for when atomic operations are justified (hot-row contention, bulk updates, monotonic constraints) with mandatory trigger documentation. - Use Case: When adding a new read model — for example a message delivery tracker in a WhatsApp channel context — generate the projection struct, repository interface, Postgres implementation, and mock following the enforced patterns and bad-practice checks in registry.yaml. ## Quick Start Ask the agent to create a new Go projection for a domain event flow, naming the context and the events that drive it.