Ban direct `useEffect` in React components. Use when writing, refactoring, or reviewing React code so derived state, data fetching, user actions, resets, and mount-only external synchronization use declarative replacement patterns instead of dependency-array choreography.
95
95%
Does it follow best practices?
Impact
98%
1.02xAverage score across 4 eval scenarios
Passed
No known issues
Import ban
100%
100%
Namespace call ban
100%
100%
Hook exception scoped
100%
100%
Domain hook owns lifecycle
100%
100%
Reactive dependencies explicit
100%
100%
No hidden dependency escape
100%
100%
Hooks lint preserved
100%
100%
No unrelated bans
100%
100%
Message points to replacements
100%
100%
Verification named
100%
80%
Browser-value subscription hook using useSyncExternalStore
useSyncExternalStore used
100%
100%
No direct useEffect import
100%
100%
No direct useEffect call
100%
100%
Subscribe returns cleanup
100%
100%
getSnapshot reads browser value
100%
100%
Correct subscribe signature
100%
100%
Design rationale documented
100%
100%
No prop-copy or state-relay misuse
100%
100%
No direct useEffect
100%
100%
Derived during render
100%
100%
Existing query pattern used
100%
100%
Abort signal preserved
100%
100%
No mirrored state
100%
100%
Behavior preserved
100%
100%
Effect categories explained
100%
100%
Verification named
66%
100%
No direct useEffect
100%
100%
Submit in handler
100%
100%
Flag state removed
100%
100%
Reset semantics declarative
100%
100%
Draft editing preserved
100%
100%
Scope controlled
100%
100%
Categories explained
100%
100%
Verification named
25%
50%