Keep endpoint contracts, typed DTOs, filters, mutations, errors, and persistence aligned with product semantics instead of transport accidents. Use when designing or refactoring endpoints, serializers, typed clients, storage adapters, integration layers, or cross-layer contracts.
Design or extend a typed CRM-domain client packaged as a reusable module with business-level methods, stable DTOs, and explicit installation boundaries. Use when replacing raw endpoint calls with a product-facing client library or when planning an API surface for agent-built CRM extensions.
Define and preserve business terms, single sources of truth, and invariants across UI, API, storage, and integrations. Use when adding or refactoring product logic, renaming fields, aligning frontend and backend semantics, or reviewing domain models for duplication and drift.
Keep modules split by responsibility and prevent orchestration, transport, state, domain logic, and UI concerns from collapsing into kitchen-sink files. Use when designing or refactoring pages, composables, services, stores, handlers, routes, or integration modules.