agentsclimarketplace

React anti patterns

Skill joacod/skills/skills/react-anti-patterns

My custom AI Agent Skills

Install
npx -y skills add joacod/skills --skill react-anti-patterns

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Introduce React anti-patterns and common mistakes into existing React codebases for training, review, or teaching. Use when asked to intentionally degrade React performance or code quality while keeping apps functional, or to generate anti-pattern examples for junior developer education.

SKILL.md

5.4 KB, as published. Nobody here has run it

React Anti-Patterns

Overview

Inject React anti-patterns and performance pitfalls into existing React apps while keeping them functional, so teams can practice identifying and fixing issues.

Parameters

Amount (how many modifications)

  • low: 1-3 subtle changes, app fully functional
  • medium (default): 5-8 changes, noticeable performance issues
  • high: 10+ changes, can cause build failures (TypeScript/lint errors allowed)

Level (experience targeting)

  • junior: Obvious issues - easy to spot during code review
  • semi-senior: Moderate complexity - requires React knowledge
  • senior: Subtle issues - requires profiling or deep knowledge
  • mixed (default): Combination of all levels

Flags

  • --comments: Add inline comments identifying the anti-pattern
  • --comments-hint: Add comments with a hint on how to fix
  • --comments-fix: Add comments with full fix explanation
  • --specific <category>: Target specific category only (e.g., --specific rerender)

Categories

React: rerender, state, effect, list, conditional, data

Next.js: waterfall, bundle, boundary, actions, rsc

Workflow

1. Framework Detection

Check if project is Next.js:

  • Look for next.config.js, next.config.mjs, or next.config.ts
  • Check package.json for next dependency

If Next.js detected, ask user:

"This is a Next.js project. Include Next.js-specific anti-patterns in addition to React patterns?"

2. Gather Parameters

If not specified in invocation, ask user:

Amount (default: medium): "How many anti-patterns should I introduce?"

  • low: 1-3 subtle changes
  • medium: 5-8 noticeable changes
  • high: 10+ changes, may break build

Level (default: mixed): "What experience level should patterns target?"

  • junior: obvious issues, easy to spot
  • semi-senior: moderate complexity, requires React knowledge
  • senior: subtle issues, requires profiling
  • mixed: combination of all levels

Comments (default: none): "Should I add comments explaining the anti-patterns?"

  • none: no comments added
  • --comments: identify only
  • --comments-hint: with hints
  • --comments-fix: with full fixes

3. Load Patterns

Based on selections, load relevant reference files:

references/anti-patterns-index.md     # Always load for pattern selection
references/react/junior.md            # If level includes junior
references/react/semi-senior.md       # If level includes semi-senior
references/react/senior.md            # If level includes senior
references/nextjs/junior.md           # If Next.js + level includes junior
references/nextjs/semi-senior.md      # If Next.js + level includes semi-senior
references/nextjs/senior.md           # If Next.js + level includes senior

4. Select Patterns

Using the index, select patterns based on:

  • Amount determines count
  • Level determines which files to pull from
  • --specific filters by category
  • Prioritize variety across categories unless --specific is set

Selection by amount:

  • low: 1-3 patterns from selected level(s)
  • medium: 5-8 patterns, spread across selected level(s)
  • high: 10+ patterns, include build-error patterns if available

When level=mixed: distribute patterns roughly evenly across junior/semi-senior/senior. When specific level selected: all patterns from that level only.

5. Apply Changes

For each selected pattern:

  1. Find suitable injection point in codebase
  2. Apply the "After" transformation from the pattern definition
  3. Add appropriate comment based on flag:
    • --comments: // ANTI-PATTERN: pattern-id
    • --comments-hint: Add the hint comment from pattern
    • --comments-fix: Add the fix comment from pattern
  4. Verify the change doesn't break the app (unless high amount with build-error pattern)

6. Report

After all changes, provide summary:

## Anti-Patterns Applied

### Files Modified
- path/to/Component.tsx: 3 patterns
- path/to/hooks/useData.ts: 2 patterns

### Patterns Introduced
| Pattern | Level | Category | File |
|---------|-------|----------|------|
| list-keys-index | junior | list | Component.tsx:45 |
| usememo-inline-defeat | semi-senior | rerender | Component.tsx:23 |
...

### Next Steps
Run the app and use React DevTools Profiler to identify the performance issues,
or review the code to spot the anti-patterns.

Example Invocations

# Defaults (medium, mixed levels, no comments)
/react-anti-patterns

# Few junior patterns with hints
/react-anti-patterns --comments-hint low junior

# Many senior patterns with full explanations
/react-anti-patterns --comments-fix high senior

# Only waterfall patterns (Next.js)
/react-anti-patterns --specific waterfall

# Medium amount, semi-senior level, identify comments
/react-anti-patterns --comments medium semi-senior

Resources

  • Anti-pattern catalog: references/anti-patterns-index.md
  • React patterns: references/react/
  • Next.js patterns: references/nextjs/

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.