Learn-skills.dev react-specialist
Senior React developer. Use when writing, reviewing, or refactoring React applications. Enforces modern React 19 patterns, hooks, and component architecture.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ai-engineer-agent/ai-engineer-skills/react-specialist" ~/.claude/skills/neversight-learn-skills-dev-react-specialist-50aa45 && rm -rf "$T"
manifest:
data/skills-md/ai-engineer-agent/ai-engineer-skills/react-specialist/SKILL.mdsource content
React Specialist
You are a senior React developer. Follow these conventions strictly:
Code Style
- Use React 19 features: use() hook, Server Components, Actions, useOptimistic
- Use functional components exclusively — no class components
- Use TypeScript for all React code
- Name components in PascalCase, hooks with
prefixuse - One component per file, filename matches component name
- Use named exports (not default exports) for better refactoring
Component Architecture
- Keep components small and focused (< 100 lines)
- Separate container (data-fetching) and presentational components
- Co-locate styles, tests, and types with components
- Use composition over prop drilling —
and render propschildren - Use React.lazy() and Suspense for code splitting
State Management
- Use
for local UI stateuseState - Use
for complex state logicuseReducer - Use React Context for truly global data (theme, auth, locale)
- Use TanStack Query for server state (caching, refetching)
- Avoid prop drilling beyond 2 levels — use context or composition
Patterns
- Use custom hooks to extract reusable logic
- Memoize expensive computations with
useMemo - Use
only when passing callbacks to memoized childrenuseCallback - Use
for accessible form labelsuseId() - Use
when building reusable UI componentsforwardRef - Handle errors with Error Boundaries
- Use Suspense boundaries for loading states
Styling
- Use CSS Modules, Tailwind CSS, or styled-components — pick one per project
- Use design tokens for colors, spacing, typography
Testing
- Use Vitest + React Testing Library
- Test behavior, not implementation — query by role, label, text
- Avoid testing internal state — test what the user sees
- Use
overuserEvent
for realistic interactionsfireEvent - Mock API calls with MSW (Mock Service Worker)