Loading...
Loading...
Audit React components for unnecessary useEffect patterns. Detects 9 anti-patterns from "You Might Not Need an Effect" and proposes fixes with severity levels.
npx skill4agent add fusengine/agents react-effects-audituseEffectPHASE 1: Scan target files (Glob *.tsx, *.jsx, *.ts, *.js)
PHASE 2: Detect anti-patterns (Grep detection rules)
PHASE 3: Analyze context (Read flagged files)
PHASE 4: Generate report with fixes| # | Anti-Pattern | Severity | Detection |
|---|---|---|---|
| 1 | Derived state in Effect | WARNING | |
| 2 | Expensive calculation in Effect | WARNING | |
| 3 | State reset via Effect | WARNING | |
| 4 | Event logic in Effect | CRITICAL | User interaction logic inside |
| 5 | Parent notification via Effect | WARNING | |
| 6 | Effect chains | CRITICAL | Multiple |
| 7 | Missing cleanup in fetch | CRITICAL | |
| 8 | Manual store subscription | WARNING | |
| 9 | App init in Effect | INFO | One-time init logic in |
| Level | Meaning | Action |
|---|---|---|
| CRITICAL | Bugs, race conditions, memory leaks | Fix immediately |
| WARNING | Performance issues, unnecessary re-renders | Fix same session |
| INFO | Readability, minor inefficiency | Fix if time allows |
| Reference | When to Consult |
|---|---|
| anti-patterns.md | Understanding each anti-pattern |
| detection-rules.md | Grep patterns for scanning |
| fix-patterns-core.md | Fix examples #1-5 |
| fix-patterns-advanced.md | Fix examples #6-9 |
| report-format.md | Generating audit report |
| Project Type | SOLID Skill | Key Rule |
|---|---|---|
| Next.js | | No |
| React | | No |
1. Glob **/*.{tsx,jsx} in target directory
2. Detect project type (next.config.* → Next.js, package.json → React)
3. Load corresponding SOLID skill references if applicable
4. For each detection rule in detection-rules.md:
→ Grep pattern across all files
→ Read flagged files for context analysis
→ Confirm or dismiss (false positive check)
5. For each confirmed finding:
→ Identify severity from anti-patterns.md
→ Propose fix from fix-patterns-core.md or fix-patterns-advanced.md
→ Cross-check with SOLID rules (SRP, file size, hooks separation)
6. Output report using report-format.md| Feature | Impact on Audit |
|---|---|
| React Compiler | Auto-memoizes; |
| useEffectEvent | Stable in 19.2; solves stale closure in Effects without adding deps |
| Activity API | Alternative to conditional rendering; reduces mount/unmount Effects |
| useSyncExternalStore | Replaces manual subscription Effects (anti-pattern #8) |
| Server Components | Eliminates many data-fetching Effects entirely |