What problem does it solve? Deciding where client-side state should live in a React app is error-prone: developers often misuse useState for shared state, duplicate URL state, or mirror server data in stores. This Skill generates Zustand stores that follow the project's state placement rules, so interactive state ends up in the right layer every time. ## Core Features & Use Cases - Global and Route-Scoped Stores: Generates stores in src/stores/ for app-wide state or routes/[route]/-stores/ for route-private state, with correct file placement and naming. - Middleware Patterns: Applies persist (with partialize), immer, computed selectors, and reset actions following codified project patterns (STR-01 through STR-P10). - State Placement Decision Tree: Enforces the rule that server data goes to TanStack Query, bookmarkable state goes to URL search params, form state goes to TanStack Form, and only ephemeral cross-component UI state goes to Zustand. - Use Case: You need a modal open flag and a multi-select list shared between a toolbar and a table on the products route. The Skill creates a route-scoped store with typed State/Actions interfaces, simple setters, and a reset action. ## Quick Start Create a Zustand store for the products route that tracks selected row IDs, a delete-modal open flag, and a grid/list view mode.