react-expert · jeffallan — скилл для React 18+ и React 19 в Claude Code
Скилл для разработки на React 18+, Next.js App Router и create-react-app. Генерирует компоненты, хуки, чинит рендер и переводит классовые компоненты на функциональные.
npx skills add Jeffallan/claude-skills --skill react-expert -a claude-codeЧто делает react-expert
react-expert добавляет агенту профильные знания по React 19, Server Components и архитектуре приложений. По source_description скилл вызывается в .jsx и .tsx файлах, в проектах на Next.js App Router и create-react-app.
Внутри — референсы по Server Components, React 19, управлению состоянием, хукам, производительности, тестированию и миграции классовых компонентов. Агент подгружает нужный справочник по контексту задачи: например, references/server-components.md для паттернов RSC в Next.js, references/state-management.md для Context, Zustand, Redux и TanStack.
Рабочий цикл скилла включает валидацию через tsc --noEmit с исправлением ошибок типов до чистой сборки. Тесты пишутся на React Testing Library. Из обязательного: TypeScript в strict mode, error boundaries, корректные key props, очистка эффектов, семантический HTML и ARIA. Связанные скиллы — fullstack-guardian, playwright-expert, test-master.
Какие задачи решает
- создать компоненты и кастомные хуки с типами TypeScript
- настроить формы на useActionState в React 19
- мигрировать классовые компоненты на функциональные с хуками
- поймать лишние ре-рендеры и применить memo/lazy
- написать тесты на React Testing Library без угадывания структуры
Примеры запросов агенту
- Создай компонент списка пользователей как Server Component для Next.js App Router
- Перепиши эту форму на useActionState из React 19
- Проверь типы через tsc --noEmit и исправь все ошибки, потом покажи результат
Как установить react-expert
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a claude-code2Вручную: положить файлы
~/.claude/skills/react-expert/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/react-expert/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a codex2Вручную: положить файлы
.agents/skills/react-expert/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a cursor2Вручную: положить файлы
.cursor/skills/react-expert/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills react-expert2Вручную: положить файлы
.github/skills/react-expert/SKILL.md1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a gemini-cli2Командой платформы
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/react-expertВручную: положить файлы
.devin/skills/react-expert/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill react-expert -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора61
Весь набор →Другие версии react-expert
Похожие
Вопросы о react-expert
Как установить react-expert в Claude Code?
Выполни npx skills add Jeffallan/claude-skills --skill react-expert -a claude-code. Скилл попадёт в ~/.claude/skills/react-expert/SKILL.md.
Что делает react-expert?
Генерирует React-компоненты, кастомные хуки, формы на useActionState, Server Components и Suspense boundary. Разбирает проблемы рендера, мигрирует классовые компоненты и помогает с выбором state management.
Чем react-expert отличается от обычной модели без скилла?
Внутри лежат референсы по конкретным темам — Server Components, React 19, производительность, тестирование. Агент подгружает нужный файл по контексту, а не держит всё в памяти. Плюс цикл валидации с tsc --noEmit заставляет чинить типы до конца.
Исходный текст
SKILL.md · MIT
---
name: react-expert
description: Use when building React 18+ applications in .jsx or .tsx files, Next.js App Router projects, or create-react-app setups. Creates components, implements custom hooks, debugs rendering issues, migrates class components to functional, and implements state management. Invoke for Server Components, Suspense boundaries, useActionState forms, performance optimization, or React 19 features.
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: frontend
triggers: React, JSX, hooks, useState, useEffect, useContext, Server Components, React 19, Suspense, TanStack Query, Redux, Zustand, component, frontend
role: specialist
scope: implementation
output-format: code
related-skills: fullstack-guardian, playwright-expert, test-master
---
# React Expert
Senior React specialist with deep expertise in React 19, Server Components, and production-grade application architecture.
## When to Use This Skill
- Building new React components or features
- Implementing state management (local, Context, Redux, Zustand)
- Optimizing React performance
- Setting up React project architecture
- Working with React 19 Server Components
- Implementing forms with React 19 actions
- Data fetching patterns with TanStack Query or `use()`
## Core Workflow
1. **Analyze requirements** - Identify component hierarchy, state needs, data flow
2. **Choose patterns** - Select appropriate state management, data fetching approach
3. **Implement** - Write TypeScript components with proper types
4. **Validate** - Run `tsc --noEmit`; if it fails, review reported errors, fix all type issues, and re-run until clean before proceeding
5. **Optimize** - Apply memoization where needed, ensure accessibility; if new type errors are introduced, return to step 4
6. **Test** - Write tests with React Testing Library; if any assertions fail, debug and fix before submitting
## Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|-------|-----------|-----------|
| Server Components | `references/server-components.md` | RSC patterns, Next.js App Router |
| React 19 | `references/react-19-features.md` | use() hook, useActionState, forms |
| State Management | `references/state-management.md` | Context, Zustand, Redux, TanStack |
| Hooks | `references/hooks-patterns.md` | Custom hooks, useEffect, useCallback |
| Performance | `references/performance.md` | memo, lazy, virtualization |
| Testing | `references/testing-react.md` | Testing Library, mocking |
| Class Migration | `references/migration-class-to-modern.md` | Converting class components to hooks/RSC |
## Key Patterns
### Server Component (Next.js App Router)
```tsx
// app/users/page.tsx — Server Component, no "use client"
import { db } from '@/lib/db';
interface User {
id: string;
name: string;
}
export default async function UsersPage() {
const users: User[] = await db.user.findMany();
return (
<ul>
{users.map((user) => (
<li key={user.id}>{user.name}</li>
))}
</ul>
);
}
```
### React 19 Form with `useActionState`
```tsx
'use client';
import { useActionState } from 'react';
async function submitForm(_prev: string, formData: FormData): Promise<string> {
const name = formData.get('name') as string;
// perform server action or fetch
return `Hello, ${name}!`;
}
export function GreetForm() {
const [message, action, isPending] = useActionState(submitForm, '');
return (
<form action={action}>
<input name="name" required />
<button type="submit" disabled={isPending}>
{isPending ? 'Submitting…' : 'Submit'}
</button>
{message && <p>{message}</p>}
</form>
);
}
```
### Custom Hook with Cleanup
```tsx
import { useState, useEffect } from 'react';
function useWindowWidth(): number {
const [width, setWidth] = useState(() => window.innerWidth);
useEffect(() => {
const handler = () => setWidth(window.innerWidth);
window.addEventListener('resize', handler);
return () => window.removeEventListener('resize', handler); // cleanup
}, []);
return width;
}
```
## Constraints
### MUST DO
- Use TypeScript with strict mode
- Implement error boundaries for graceful failures
- Use `key` props correctly (stable, unique identifiers)
- Clean up effects (return cleanup function)
- Use semantic HTML and ARIA for accessibility
- Memoize when passing callbacks/objects to memoized children
- Use Suspense boundaries for async operations
### MUST NOT DO
- Mutate state directly
- Use array index as key for dynamic lists
- Create functions inside JSX (causes re-renders)
- Forget useEffect cleanup (memory leaks)
- Ignore React strict mode warnings
- Skip error boundaries in production
## Output Templates
When implementing React features, provide:
1. Component file with TypeScript types
2. Test file if non-trivial logic
3. Brief explanation of key decisions
## Knowledge Reference
React 19, Server Components, use() hook, Suspense, TypeScript, TanStack Query, Zustand, Redux Toolkit, React Router, React Testing Library, Vitest/Jest, Next.js App Router, accessibility (WCAG)
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/frontend/react-expert/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills