React Hooks Skill
SkillDev toolsResolves React hook violations (rules of hooks, useEffect dependencies, hook ordering).
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the React Hooks Skill skill
What this skill tells your AI
The instructions your AI receives, as published by salavender/antigravity-compound-engineering-plugin in skills/react-hooks/SKILL.md and read by ahel’s review.
Handles common React hook patterns and violations across the codebase.
Capabilities
- Rules of Hooks violations: Early returns before hook calls, conditional hooks
- useEffect dependency issues: Missing/stale dependencies, infinite loops
- Hook ordering problems: Hooks called in conditional order, inconsistent hook sequence
- Context hook patterns: Proper use of useContext, avoiding unnecessary context re-renders
- Custom hook extraction: Safe creation of custom hooks for reusable logic
Key Patterns
Pattern 1: Early Returns Before Hooks (⚠️ FATAL)
// WRONG - return before hooks
if (!isAuthenticated) {
return <Login />; // ❌ Hook call below is unreachable sometimes
}
const user = useUser(); // VIOLATION
// RIGHT - hooks always execute
const user = useUser();
if (!isAuthenticated) {
return <Login />;
}
Pattern 2: useEffect Dependency Problems
// WRONG - missing dependency
const context = useContext(MyContext);
useEffect(() => {
doSomething(context);
}, []); // ❌ Missing `context`
// RIGHT - include all dependencies
useEffect(() => {
doSomething(context);
}, [context]);
Pattern 3: Infinite Loop from Context Object
// WRONG - context object changes on every render
const Provider = ({ children }) => {
const value = { user: currentUser }; // New object every render
return (
<MyContext.Provider value={value}> // ❌ Causes infinite loop
{children}
</MyContext.Provider>
);
};
// RIGHT - memoize context value
const Provider = ({ children }) => {
const value = useMemo(() => ({ user: currentUser }), [currentUser]);
return (
<MyContext.Provider value={value}>
{children}
</MyContext.Provider>
);
};
Debugging Workflow
- Identify the error: Check browser console for hook violations.
- Find the violation: search for early returns or dependency issues.
- Locate the component: Grep for hook name or variable.
- Apply fix: Use the patterns above as templates.
- Test: Re-render and check console.
Instrumentation
./scripts/log-skill.sh react-hooks
Signals
- GitHub stars
- 48
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
react-hooks- Source
- github.com/salavender/antigravity-compound-engineering-plugin