Use BEFORE writing or changing any non-trivial code in `src/` — new code, new/moved/renamed files, a new abstraction, extending behavior, or a refactor that relocates logic. The single entry point that decides what the change is and where it goes before any…
Use before writing any non-trivial utility, helper, algorithm, data transformation, or wrapper that an installed dependency might already provide. Symptoms — about to hand-roll debounce/merge/groupBy/retry, a stream operator, a validator, or a wrapper around…
Use BEFORE `domain-development`/`feature-development` when the target layer (domain, aggregate, feature, widget, shared) is uncertain — multi-layer changes, new abstractions, promoting code out of a feature, or "where should this live?". Skip when the layer…
Use when working in `src/domains/`, introducing/extending a domain's public API (services, resources, hooks, repositories, schemas, README), modeling a user action in domain terms, event-storming domain seams, or deciding whether business logic belongs in a…
Use when working in `src/features/` or `src/routes/` files hosting features, scaffolding a feature, wiring into `src/bootstrap.ts`, defining/injecting DI extension points (slots, pipelines, transformers, side effects, SDKs), placing cross-feature logic, or…
Use when writing, reviewing, or refactoring React code — components, hooks, data fetching, bundle optimization, re-render performance, or rendering throughput. Skip for non-React TypeScript, backend, or framework configuration.
Use to audit a branch diff or PR against THIS project's architecture and code rules — after implementing a change, before merging, or when asked to review a PR/branch. Project-rule-aware (cites docs/claude checklists with blocking/major/minor severity);…