What problem does it solve? Adding a new route to a contract-driven NestJS backend risks drifting from the specified wire format, idempotency semantics, and module conventions. This Skill walks through a disciplined seven-phase process so every endpoint matches API_CONTRACT.md exactly — no invented routes, fields, or status codes. ## Core Features & Use Cases - Contract-first implementation: Reads the matching section of API_CONTRACT.md and copies paths, fields, statuses, and error codes verbatim, stopping to ask when a route is not in the contract. - Idempotency wiring: Generates mutation handlers with @IdempotencyKey, @CanonicalBodyHash, and conditional 200/201 replay status via the idempotency service. - Layered conventions: Enforces controller naming by URL segment, class-validator DTOs, service-method ordering (validate → claim key → lock balances → ledger → audit → outbox), and named error-code exceptions. - Use Case: Ask to implement POST /waste from the contract and receive a controller handler, CreateWasteDto, response type, waste service method with transactional ledger postings, and passing lint/build/test runs. ## Quick Start Ask the assistant to add the endpoint POST /waste from the API contract using the add-endpoint skill.