redux-toolkit — скилл для Claude Code: что делает и как установить
Набор правил по архитектуре Redux Toolkit для React и Next.js на TypeScript. Пригодится при настройке хранилища, типизации хуков и написании слайсов.
npx skills add Mindrally/skills --skill redux-toolkit -a claude-codeЧто делает redux-toolkit
Скилл задаёт ассистенту стандарты управления глобальным состоянием. Он предписывает делить логику на независимые слайсы через createSlice и закрывать прямой доступ к стейту селекторами createSelector. Для асинхронных запросов и кэширования агент ориентируется на RTK Query и createAsyncThunk.
Внутри заложены чёткие соглашения по TypeScript: строгий режим strict, использование интерфейсов вместо типов для структур объектов и обязательные типизированные хуки useAppDispatch и useAppSelector. Валидацию данных скилл связывает с Zod, а тестирование — с Jest и React Testing Library по схеме Arrange-Act-Assert.
Скилл требует строгого разделения логики по фичам. Если проект построен на одном монолитном хранилище без разделения слайсов, сгенерированный код придётся переделывать вручную.
Какие задачи решает
- структурировать хранилище через
createSlice - настроить кэширование и запросы через RTK Query
- настроить типизированные хуки
useAppDispatchиuseAppSelector - протестировать редьюсеры и селекторы через Jest и React Testing Library
Примеры запросов агенту
- Спроектируй слайс корзины покупок на Redux Toolkit с типами TypeScript
- Настрой RTK Query эндпоинт для получения профиля пользователя с кэшированием
- Напиши тесты для селекторов и асинхронного thunk с помощью React Testing Library
Как установить redux-toolkit
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill redux-toolkit -a claude-code2Вручную: положить файлы
~/.claude/skills/redux-toolkit/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/redux-toolkit/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill redux-toolkit -a codex2Вручную: положить файлы
.agents/skills/redux-toolkit/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill redux-toolkit -a cursor2Вручную: положить файлы
.cursor/skills/redux-toolkit/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills redux-toolkit2Вручную: положить файлы
.github/skills/redux-toolkit/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill redux-toolkit -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path redux-toolkitВручную: положить файлы
.devin/skills/redux-toolkit/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill redux-toolkit -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о redux-toolkit
Как установить redux-toolkit в Claude Code?
Выполните команду npx skills add Mindrally/skills --skill redux-toolkit -a claude-code в терминале.
Что делает скилл redux-toolkit?
Он направляет ИИ-ассистента следовать архитектурным паттернам Redux Toolkit, организовывать слайсы, настраивать RTK Query и писать типизированный код на TypeScript.
Какие библиотеки для тестирования и валидации рекомендует этот скилл?
Скилл предписывает использовать Zod для валидации данных, а для тестов — Jest и React Testing Library с независимой проверкой редьюсеров и селекторов.
Исходный текст
SKILL.md · Apache-2.0
---
name: redux-toolkit
description: Comprehensive Redux Toolkit best practices for React and Next.js applications with TypeScript.
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# Redux Toolkit
You are an expert in Redux Toolkit for state management in React and Next.js applications.
## Development Philosophy
- Write clean, maintainable, and scalable code
- Adhere to SOLID principles
- Favor functional and declarative programming patterns
- Emphasize type safety and component-driven approaches
## Redux State Management
### Core Principles
- Implement Redux Toolkit for global state management
- Use createSlice to define state, reducers, and actions together
- Normalize state structure to prevent deeply nested data
- Employ selectors to encapsulate state access
- Separate concerns by feature; avoid monolithic slices
### Slice Structure
```typescript
import { createSlice, PayloadAction } from '@reduxjs/toolkit'
interface CounterState {
value: number
isLoading: boolean
}
const initialState: CounterState = {
value: 0,
isLoading: false,
}
const counterSlice = createSlice({
name: 'counter',
initialState,
reducers: {
increment: (state) => {
state.value += 1
},
setLoading: (state, action: PayloadAction<boolean>) => {
state.isLoading = action.payload
},
},
})
export const { increment, setLoading } = counterSlice.actions
export default counterSlice.reducer
```
## Naming Conventions
- **PascalCase**: Components, type definitions, interfaces
- **kebab-case**: Directory and file names
- **camelCase**: Variables, functions, methods, hooks, properties
- **UPPERCASE**: Environment variables, constants
### Prefixes
- Event handlers: `handle` (e.g., `handleClick`)
- Boolean variables: verbs (e.g., `isLoading`, `hasError`)
- Custom hooks: `use` (e.g., `useAuth`)
## TypeScript Integration
- Enable strict mode
- Define clear interfaces for props and Redux state structure
- Apply generics where type flexibility is needed
- Prefer interfaces over types for object structures
- Use typed hooks (`useAppDispatch`, `useAppSelector`)
## Async Operations
### RTK Query
- Use RTK Query for data fetching and caching
- Define API slices with endpoints
- Leverage automatic cache invalidation
- Implement optimistic updates when appropriate
### createAsyncThunk
```typescript
export const fetchUser = createAsyncThunk(
'user/fetch',
async (userId: string, { rejectWithValue }) => {
try {
const response = await api.getUser(userId)
return response.data
} catch (error) {
return rejectWithValue(error.message)
}
}
)
```
## Performance Optimization
- Use React.memo() strategically
- Implement useCallback for memoized functions
- Apply useMemo for expensive computations
- Avoid inline function definitions in JSX
- Use dynamic imports for code splitting
- Employ proper keys in lists (avoid index-based keys)
## Selectors
- Create memoized selectors with createSelector
- Encapsulate state shape in selectors
- Compose selectors for derived data
- Avoid computing in components
## Error Handling
- Implement error boundaries with external logging
- Use Zod for validation
- Handle async errors in thunks
- Provide user-friendly error messages
## Testing
- Apply Jest and React Testing Library
- Follow Arrange-Act-Assert patterns
- Mock external dependencies
- Test reducers, selectors, and thunks independently
© Mindrally · Apache-2.0 · Mindrally/skills