{"id":"4cf355ad-ae92-4db9-a2de-3ff9c4e2d363","shortId":"jxuFLN","kind":"skill","title":"zustand-store-ts","tagline":"Create Zustand stores following established patterns with proper TypeScript types and middleware.","description":"# Zustand Store\n\nCreate Zustand stores following established patterns with proper TypeScript types and middleware.\n\n## Quick Start\n\nCopy the template from assets/template.ts and replace placeholders:\n- `{{StoreName}}` → PascalCase store name (e.g., `Project`)\n- `{{description}}` → Brief description for JSDoc\n\n## Always Use subscribeWithSelector\n\n```typescript\nimport { create } from 'zustand';\nimport { subscribeWithSelector } from 'zustand/middleware';\n\nexport const useMyStore = create<MyStore>()(\n  subscribeWithSelector((set, get) => ({\n    // state and actions\n  }))\n);\n```\n\n## Separate State and Actions\n\n```typescript\nexport interface MyState {\n  items: Item[];\n  isLoading: boolean;\n}\n\nexport interface MyActions {\n  addItem: (item: Item) => void;\n  loadItems: () => Promise<void>;\n}\n\nexport type MyStore = MyState & MyActions;\n```\n\n## Use Individual Selectors\n\n```typescript\n// Good - only re-renders when `items` changes\nconst items = useMyStore((state) => state.items);\n\n// Avoid - re-renders on any state change\nconst { items, isLoading } = useMyStore();\n```\n\n## Subscribe Outside React\n\n```typescript\nuseMyStore.subscribe(\n  (state) => state.selectedId,\n  (selectedId) => console.log('Selected:', selectedId)\n);\n```\n\n## Integration Steps\n\n1. Create store in `src/frontend/src/store/`\n2. Export from `src/frontend/src/store/index.ts`\n3. Add tests in `src/frontend/src/store/*.test.ts`\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["zustand","store","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-zustand-store-ts","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/zustand-store-ts","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34404 github stars · SKILL.md body (1,820 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:52:02.376Z","embedding":null,"createdAt":"2026-04-18T21:48:03.300Z","updatedAt":"2026-04-22T00:52:02.376Z","lastSeenAt":"2026-04-22T00:52:02.376Z","tsv":"'1':142 '2':147 '3':151 'action':73,77,169 'add':152 'additem':89 'alway':52 'applic':163 'ask':207 'assets/template.ts':37 'avoid':117 'boolean':85 'boundari':215 'brief':48 'chang':111,124 'clarif':209 'clear':182 'console.log':137 'const':65,112,125 'copi':33 'creat':5,19,57,67,143 'criteria':218 'describ':170,186 'descript':47,49 'e.g':45 'environ':198 'environment-specif':197 'establish':9,23 'execut':165 'expert':203 'export':64,79,86,95,148 'follow':8,22 'get':70 'good':104 'import':56,60 'individu':101 'input':212 'integr':140 'interfac':80,87 'isload':84,127 'item':82,83,90,91,110,113,126 'jsdoc':51 'limit':174 'loaditem':93 'match':183 'middlewar':16,30 'miss':220 'myaction':88,99 'mystat':81,98 'mystor':97 'name':44 'output':192 'outsid':130 'overview':173 'pascalcas':42 'pattern':10,24 'permiss':213 'placehold':40 'project':46 'promis':94 'proper':12,26 'quick':31 're':107,119 're-rend':106,118 'react':131 'render':108,120 'replac':39 'requir':211 'review':204 'safeti':214 'scope':185 'select':138 'selectedid':136,139 'selector':102 'separ':74 'set':69 'skill':161,177 'skill-zustand-store-ts' 'source-sickn33' 'specif':199 'src/frontend/src/store':146,155 'src/frontend/src/store/index.ts':150 'start':32 'state':71,75,115,123,134 'state.items':116 'state.selectedid':135 'step':141 'stop':205 'store':3,7,18,21,43,144 'storenam':41 'subscrib':129 'subscribewithselector':54,61,68 'substitut':195 'success':217 'task':181 'templat':35 'test':153,201 'test.ts':156 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':190 'ts':4 'type':14,28,96 'typescript':13,27,55,78,103,132 'use':53,100,159,175 'usemystor':66,114,128 'usemystore.subscribe':133 'valid':200 'void':92 'workflow':167 'zustand':2,6,17,20,59 'zustand-store-t':1 'zustand/middleware':63","prices":[{"id":"f11f0df2-83fa-416f-b219-cf81d2fcf3e5","listingId":"4cf355ad-ae92-4db9-a2de-3ff9c4e2d363","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:48:03.300Z"}],"sources":[{"listingId":"4cf355ad-ae92-4db9-a2de-3ff9c4e2d363","source":"github","sourceId":"sickn33/antigravity-awesome-skills/zustand-store-ts","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/zustand-store-ts","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:03.300Z","lastSeenAt":"2026-04-22T00:52:02.376Z"}],"details":{"listingId":"4cf355ad-ae92-4db9-a2de-3ff9c4e2d363","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"zustand-store-ts","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34404,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-21T16:43:40Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"13af4f55bf80181e6e6b351f28b3594dd169e911","skill_md_path":"skills/zustand-store-ts/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/zustand-store-ts"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"zustand-store-ts","description":"Create Zustand stores following established patterns with proper TypeScript types and middleware."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/zustand-store-ts"},"updatedAt":"2026-04-22T00:52:02.376Z"}}