CtrlK
BlogDocsLog inGet started
Tessl Logo

uinaf/react-ban-use-effect

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

1.02x
Quality

95%

Does it follow best practices?

Impact

98%

1.02x

Average score across 4 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

99%

-1%

Enforce the No Direct useEffect Policy

Criteria
Baseline
With context

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%

100%

Network Awareness Hook

Browser-value subscription hook using useSyncExternalStore

Criteria
Baseline
With context

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%

100%

4%

Replace Derived State and Fetch Effects

Criteria
Baseline
With context

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%

94%

3%

Replace Event-Flag and Reset Effects

Criteria
Baseline
With context

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%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents