# zustand-patterns

Справочник по управлению состоянием на Zustand 5.x: слайсы, middleware, Immer, useShallow, персистентность и devtools. Пригодится, когда хочется уйти от Redux без лишнего кода.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1400 установок · ★ 298
- Автор: OrchestKit
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/yonatangross/orchestkit/tree/HEAD/src/skills/zustand-patterns/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/zustand-patterns

## Что делает

Скилл открывается, когда агент работает с файлами вроде `*.store.*`, `**/store/**` или `*.zustand.*`. Внутри — семь основных паттернов с примерами на TypeScript и разбор антипаттернов: деструктуризация всего стора, хранение серверного состояния, прямая мутация. Механику Zustand скилл не пересказывает, а держит только дельту OrchestKit в `references/ork-delta.md` и файлах `rules/`.

Ключевые решения собраны в таблицы. Структура — слайсы в одном сторе, а не несколько сторов, потому что так проще ходить между слайсами. Для вложенности от трёх уровней советует Immer, для 2–5 связанных значений — `useShallow`. Порядок middleware задан жёстко: immer, затем subscribeWithSelector, devtools и persist. Серверное состояние скилл отдаёт TanStack Query, а в Zustand оставляет только клиентское.

Требуется Zustand 5.0.0 и выше, скилл рассчитан на Claude 2.1.277+. Модель — haiku, доступны только `Read`, `Write`, `Grep`, `Glob`. Вызывать вручную нельзя: `user-invocable: false`. Если в проекте ещё Zustand 4.x, паттерны из справочника не совпадут с вашим API — это повод сначала обновить библиотеку.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yonatangross/orchestkit --skill zustand-patterns -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/zustand-patterns/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/zustand-patterns/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yonatangross/orchestkit --skill zustand-patterns -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/zustand-patterns/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yonatangross/orchestkit --skill zustand-patterns -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/zustand-patterns/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install yonatangross/orchestkit zustand-patterns
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/zustand-patterns/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add yonatangross/orchestkit --skill zustand-patterns -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/yonatangross/orchestkit --path src/skills/zustand-patterns
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/zustand-patterns/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add yonatangross/orchestkit --skill zustand-patterns -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/yonatangross/orchestkit/tree/HEAD/src/skills/zustand-patterns/SKILL.md

## Когда брать
- разложить большой стор на слайсы и не потерять типы
- собрать middleware в правильном порядке
- убрать лишние ре-рендеры через `useShallow`
- добавить persist с миграцией схемы между версиями
- отделить серверное состояние от клиентского

## Примеры запросов агенту
- Создай типизированный стор Zustand с двумя слайсами: корзина и пользователь
- Проверь мой стор на антипаттерны Zustand и покажи, что переписать
- Настрой persist с partialize и миграцией с версии 1 на 2

## Похожие
- [zustand](https://affpapa.org/nevibecode/skills/bobmatnyc-zustand.md) — скилл · 485 установок
- [zustand-store-ts](https://affpapa.org/nevibecode/skills/zustand-store-ts.md) — скилл · 3 установки
- [zustand-state-management](https://affpapa.org/nevibecode/skills/zustand-state-management.md) — скилл · 959 установок
- [zustand-5](https://affpapa.org/nevibecode/skills/zustand-5.md) — скилл · 911 установок
- [state-management](https://affpapa.org/nevibecode/skills/state-management.md) — скилл · 783 установки
- [frontend-state-management](https://affpapa.org/nevibecode/skills/frontend-state-management.md) — скилл · 480 установок

Из того же набора: [yonatangross/orchestkit](https://affpapa.org/nevibecode/by/yonatangross/orchestkit.md) — 11 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
