What problem does it solve? Defining how domain entities are stored, retrieved, and queried from the database requires consistent patterns across languages. This Skill scaffolds the persistence boundary for one entity — the repository interface (domain layer) plus its concrete implementation (infrastructure layer) — so domain logic never depends on the database driver. ## Core Features & Use Cases - Language dispatch hub: Routes to TypeScript (Drizzle ORM) or Go (database/sql) playbooks based on file extension or a --lang flag, with per-language registries of mandatory patterns and bad practices. - TypeScript variant: Generates an abstract class extending Repository<T>, a DrizzleXRepository implementation with toDomain/toPersistence mapping, a mock implementation, and registry-based DI bindings. - Go variant: Generates a folder-per-repo package with interface, Postgres implementation (txOrDB transaction handling, IncrementVersion, domain-event draining), in-memory mock, and fx wiring via fx.As. - Use Case: When adding persistence for a new Customer entity, invoke this Skill to produce the repository contract, the Drizzle or Postgres implementation with upsert semantics, the test mock, and the DI registration in one guided flow. ## Quick Start Ask the agent to create a repository for the Customer entity in the TypeScript backend using the repository skill.