What problem does it solve? Inconsistent naming across Java code, REST APIs, database objects, configuration keys, and observability signals creates ambiguity, breaks contracts, and makes renames risky. This Skill provides a single rule hierarchy and vocabulary for choosing and safely renaming identifiers in Java 21+ Spring Boot projects. ## Core Features & Use Cases - Layered naming conventions: Covers Java types, packages, Spring components, tests, REST paths, JSON fields, OpenAPI operationIds, database objects, migrations, configuration properties, feature flags, events, cache keys, metrics, spans, and log fields. - Safe rename migrations: Treats any name that escapes its compilation unit as a contract migration, with inventory, compatibility mechanisms, and never-rename rules. - Project terminology preservation: Enforces the established TO–Domain–Entity vocabulary (UserTO, UserDomain, UserEntity) and deterministic operationId derivation from path plus HTTP method. - Use Case: When adding a new REST endpoint, derive the operationId (e.g., usersUserIdGet), name the controller method to match, choose snake_case table and constraint names, and verify no contract is broken before renaming anything existing. ## Quick Start Ask the assistant to review or propose names for a new Spring Boot endpoint, entity, configuration property, or metric using the project naming conventions.