Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dotneet avatar

Typescript React Reviewer

  • 8k installs
  • 3 repo stars
  • Updated January 23, 2026
  • dotneet/claude-code-marketplace

typescript-react-reviewer is an agent skill that Expert code reviewer for TypeScript + React 19 applications. Use when reviewing React code, identifying anti-patterns, evaluating state management, or assessing.

About

Expert code reviewer for TypeScript React 19 applications Use when reviewing React code identifying anti-patterns evaluating state management or assessing code maintainability Triggers code review requests PR reviews React architecture evaluation identifying code smells TypeScript type safety checks useEffect abuse detection state management review name typescript-react-reviewer description Expert code reviewer for TypeScript React 19 applications Use when reviewing React code identifying anti-patterns evaluating state management or assessing code maintainability Triggers code review requests PR reviews React architecture evaluation identifying code smells TypeScript type safety checks useEffect abuse detection state management review TypeScript React 19 Code Review Expert Expert code reviewer with deep knowledge of React 19's new features TypeScript best practices state management patterns and common anti-patterns Review Priority Levels Critical Block Merge These issues cause bugs memory leaks or architectural problems Issue Why It's Critical useEffect for derived state Extra render cycle sync bugs Missing cleanup in useEffect Memory leaks Direct state mutation push splice Silent.

  • TypeScript + React 19 Code Review Expert
  • **Scan for critical issues first** - Check for the patterns in "Critical (Block Merge)" section
  • **Check React 19 usage** - See [react19-patterns.md](references/react19-patterns.md) for new API patterns
  • **Evaluate state management** - Is state colocated? Server state vs client state separation?
  • **Assess TypeScript safety** - Generic components, discriminated unions, strict config

Typescript React Reviewer by the numbers

  • 8,036 all-time installs (skills.sh)
  • +84 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #97 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

typescript-react-reviewer capabilities & compatibility

Capabilities
typescript + react 19 code review expert · **scan for critical issues first** check for t · **check react 19 usage** see [react19 patterns · **evaluate state management** is state colocat · **assess typescript safety** generic component
Use cases
documentation
From the docs

What typescript-react-reviewer says it does

--- name: typescript-react-reviewer description: "Expert code reviewer for TypeScript + React 19 applications.
SKILL.md
Use when reviewing React code, identifying anti-patterns, evaluating state management, or assessing code maintainability.
SKILL.md
**Scan for critical issues first** - Check for the patterns in "Critical (Block Merge)" section 2.
SKILL.md
**Check React 19 usage** - See [react19-patterns.md](references/react19-patterns.md) for new API patterns 3.
SKILL.md
npx skills add https://github.com/dotneet/claude-code-marketplace --skill typescript-react-reviewer

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs8k
repo stars3
Security audit3 / 3 scanners passed
Last updatedJanuary 23, 2026
Repositorydotneet/claude-code-marketplace

What problem does typescript-react-reviewer solve for developers using this skill?

Expert code reviewer for TypeScript + React 19 applications. Use when reviewing React code, identifying anti-patterns, evaluating state management, or assessing code maintainability. Triggers: code re

Who is it for?

Developers who need typescript-react-reviewer patterns described in the cached skill documentation.

Skip if: Skip when docs are empty or the task is outside the skill's documented scope.

When should I use this skill?

Expert code reviewer for TypeScript + React 19 applications. Use when reviewing React code, identifying anti-patterns, evaluating state management, or assessing code maintainability. Triggers: code re

What you get

Actionable workflows and conventions from SKILL.md for typescript-react-reviewer.

  • Structured code review report
  • Merge-blocking issue list

By the numbers

  • Targets React 19 per skill description

Files

SKILL.mdMarkdownGitHub ↗

TypeScript + React 19 Code Review Expert

Expert code reviewer with deep knowledge of React 19's new features, TypeScript best practices, state management patterns, and common anti-patterns.

Review Priority Levels

🚫 Critical (Block Merge)

These issues cause bugs, memory leaks, or architectural problems:

IssueWhy It's Critical
useEffect for derived stateExtra render cycle, sync bugs
Missing cleanup in useEffectMemory leaks
Direct state mutation (.push(), .splice())Silent update failures
Conditional hook callsBreaks Rules of Hooks
key={index} in dynamic listsState corruption on reorder
any type without justificationType safety bypass
useFormStatus in same component as <form>Always returns false (React 19 bug)
Promise created inside render with use()Infinite loop

⚠️ High Priority

IssueImpact
Incomplete dependency arraysStale closures, missing updates
Props typed as anyRuntime errors
Unjustified useMemo/useCallbackUnnecessary complexity
Missing Error BoundariesPoor error UX
Controlled input initialized with undefinedReact warning

📝 Architecture/Style

IssueRecommendation
Component > 300 linesSplit into smaller components
Prop drilling > 2-3 levelsUse composition or context
State far from usageColocate state
Custom hooks without use prefixFollow naming convention

Quick Detection Patterns

useEffect Abuse (Most Common Anti-Pattern)

// ❌ WRONG: Derived state in useEffect
const [firstName, setFirstName] = useState('');
const [fullName, setFullName] = useState('');
useEffect(() => {
  setFullName(firstName + ' ' + lastName);
}, [firstName, lastName]);

// ✅ CORRECT: Compute during render
const fullName = firstName + ' ' + lastName;
// ❌ WRONG: Event logic in useEffect
useEffect(() => {
  if (product.isInCart) showNotification('Added!');
}, [product]);

// ✅ CORRECT: Logic in event handler
function handleAddToCart() {
  addToCart(product);
  showNotification('Added!');
}

React 19 Hook Mistakes

// ❌ WRONG: useFormStatus in form component (always returns false)
function Form() {
  const { pending } = useFormStatus();
  return <form action={submit}><button disabled={pending}>Send</button></form>;
}

// ✅ CORRECT: useFormStatus in child component
function SubmitButton() {
  const { pending } = useFormStatus();
  return <button type="submit" disabled={pending}>Send</button>;
}
function Form() {
  return <form action={submit}><SubmitButton /></form>;
}
// ❌ WRONG: Promise created in render (infinite loop)
function Component() {
  const data = use(fetch('/api/data')); // New promise every render!
}

// ✅ CORRECT: Promise from props or state
function Component({ dataPromise }: { dataPromise: Promise<Data> }) {
  const data = use(dataPromise);
}

State Mutation Detection

// ❌ WRONG: Mutations (no re-render)
items.push(newItem);
setItems(items);

arr[i] = newValue;
setArr(arr);

// ✅ CORRECT: Immutable updates
setItems([...items, newItem]);
setArr(arr.map((x, idx) => idx === i ? newValue : x));

TypeScript Red Flags

// ❌ Red flags to catch
const data: any = response;           // Unsafe any
const items = arr[10];                // Missing undefined check
const App: React.FC<Props> = () => {}; // Discouraged pattern

// ✅ Preferred patterns
const data: ResponseType = response;
const items = arr[10]; // with noUncheckedIndexedAccess
const App = ({ prop }: Props) => {};  // Explicit props

Review Workflow

1. Scan for critical issues first - Check for the patterns in "Critical (Block Merge)" section 2. Check React 19 usage - See react19-patterns.md for new API patterns 3. Evaluate state management - Is state colocated? Server state vs client state separation? 4. Assess TypeScript safety - Generic components, discriminated unions, strict config 5. Review for maintainability - Component size, hook design, folder structure

Reference Documents

For detailed patterns and examples:

  • [react19-patterns.md](references/react19-patterns.md) - React 19 new hooks (useActionState, useOptimistic, use), Server/Client Component boundaries
  • [antipatterns.md](references/antipatterns.md) - Comprehensive anti-pattern catalog with fixes
  • [checklist.md](references/checklist.md) - Full code review checklist for thorough reviews

State Management Quick Guide

Data TypeSolution
Server/async dataTanStack Query (never copy to local state)
Simple global UI stateZustand (~1KB, no Provider)
Fine-grained derived stateJotai (~2.4KB)
Component-local stateuseState/useReducer
Form stateReact 19 useActionState

TanStack Query Anti-Pattern

// ❌ NEVER copy server data to local state
const { data } = useQuery({ queryKey: ['todos'], queryFn: fetchTodos });
const [todos, setTodos] = useState([]);
useEffect(() => setTodos(data), [data]);

// ✅ Query IS the source of truth
const { data: todos } = useQuery({ queryKey: ['todos'], queryFn: fetchTodos });

TypeScript Config Recommendations

{
  "compilerOptions": {
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "noImplicitReturns": true,
    "exactOptionalPropertyTypes": true
  }
}

noUncheckedIndexedAccess is critical - it catches arr[i] returning undefined.

Immediate Red Flags

When reviewing, flag these immediately:

PatternProblemFix
eslint-disable react-hooks/exhaustive-depsHides stale closure bugsRefactor logic
Component defined inside componentRemounts every renderMove outside
useState(undefined) for inputsUncontrolled warningUse empty string
React.FC with genericsGeneric inference breaksUse explicit props
Barrel files (index.ts) in app codeBundle bloat, circular depsDirect imports

Related skills

How it compares

Use typescript-react-reviewer for human-style React 19 architectural review rather than lint-only or security-only audit skills.

FAQ

What does typescript-react-reviewer do?

Expert code reviewer for TypeScript + React 19 applications. Use when reviewing React code, identifying anti-patterns, evaluating state management, or assessing code maintainability. Triggers: code review requests, PR re

When should I use typescript-react-reviewer?

Expert code reviewer for TypeScript + React 19 applications. Use when reviewing React code, identifying anti-patterns, evaluating state management, or assessing code maintainability. Triggers: code review requests, PR re

Is typescript-react-reviewer safe to install?

Review the Security Audits panel on this page before installing in production.

Marketing & SEOseocontent

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.