react
SkillDev toolsReact 18/19 patterns and anti-patterns, hooks discipline, component architecture, state management
Then ask your AI: use the react skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
What this skill tells your AI
The instructions your AI receives, as published by xoai/sage in skills/react/SKILL.md and read by Ahel’s review.
Layer 2 — Framework Pack
React-specific patterns and anti-patterns for React 18/19. Hooks discipline, component architecture, state management, and the mistakes agents make from stale training data.
Philosophy
React is the framework where LLM training data is most polluted. Fifteen years of blog posts, Stack Overflow answers, and tutorials mix class components with hooks, lifecycle methods with effects, Redux boilerplate with context, and pre-React-19 patterns with post-React-19 patterns. An agent trained on all of this produces code that "works" but uses outdated idioms.
This pack corrects the most common stale-training-data mistakes and establishes the modern React mental model as the baseline for all React code in the project.
What's Included
| Type | Files | Coverage |
|---|---|---|
| Patterns | 7 | Component composition, hooks discipline, state management, data fetching, error boundaries, forms, testing |
| Anti-patterns | 6 | useEffect abuse, derived state in useState, prop drilling, index keys, class components, inline object props |
| Constitution | 1 | 5 React-specific principles |
Key Corrections
- useEffect is not a lifecycle method. It synchronizes with external systems. If you're using it to derive state, transform data, or respond to props — stop.
- Not everything needs to be in state. Values computed from existing state/props should be calculated during render, not stored in separate useState calls.
- React.memo / useMemo / useCallback are optimization tools, not defaults. Profile first, then memoize the bottleneck. Premature memoization adds complexity and can mask architectural problems.
Overridden by nextjs
When nextjs is also installed, it overrides the data-fetching and
routing patterns from this pack, since Next.js handles those differently
(server components, App Router).
Signals
- GitHub stars
- 28
- Forks
- 7
- Last commit
- Sep 2026
- Hacker News mentions
- 20
Advanced
- Item type
- skill
- Key
react-xoai- Source
- github.com/xoai/sage
Related picks
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · sickn33
The pick for JavaScriptlogs-nextjs
Skill · posthog
The pick for Next.jsclerk-nextjs-patterns
Skill · clerk
The pick for Next.jsreact-component-performance
Skill · davila7
The pick for Reactreact-doctor
Skill · millionco
The pick for React