What problem does it solve? Spring Data JDBC has strict aggregate-boundary rules that differ fundamentally from JPA, and mixing the two stacks produces broken mappings, illegal relationship shapes, and repositories for owned children. This Skill enforces correct Spring Data JDBC patterns by detecting project conventions first, then applying implementation rules for entities, aggregates, and repositories. ## Core Features & Use Cases - Entity authoring and review: Creates or modifies @Table entities with correct @Id, @Column, @Embedded, and @MappedCollection usage, with explicit guards against JPA leakage (jakarta.persistence imports, HibernateProxy patterns, @GeneratedValue). - Aggregate boundary management: Models cross-aggregate links with AggregateReference, enforces link entities for one-to-many and many-to-many relationships between aggregates, and guides migrations between owned children and separate aggregate roots. - Repository generation: Creates repositories only for aggregate roots, with derived queries, named-parameter @Query methods, @Modifying statements, and service-layer transaction boundaries. - Use Case: When asked to add a one-to-many relationship between Order and Product (both aggregate roots), the Skill reads the aggregate rules first and generates a link entity (OrderProductRef) held via @MappedCollection with AggregateReference<Product, Long>, instead of an illegal direct @MappedCollection to the other root. ## Quick Start Add a Spring Data JDBC entity for customers with a repository, following the project's existing conventions.