PluginBench
Skill
Review
Audit score 70

react-expert

reactjs/react.dev

Authoritative React API research using source code, tests, and git history—not training data.

What is react-expert?

This skill produces exhaustive documentation research on any React API or concept by searching the React repository's tests, source code, PRs, issues, and git history rather than relying on LLM training knowledge. Use it when you need to verify React behavior, find edge cases, understand design rationale, or generate accurate usage examples with source references.

  • Searches React test files to extract actual usage patterns and edge cases with file paths and line numbers
  • Locates warnings, errors, and implementation details in React source code to understand trigger conditions
  • Retrieves commit messages and git history to understand design decisions and behavior changes
  • Queries GitHub PRs and issues to find design rationale and common confusion points
  • Inspects Flow and TypeScript type signatures to verify API contracts and note discrepancies
  • Spawns parallel research agents to comprehensively cover tests, source, git history, PRs, issues, and types

How to install react-expert

npx skills add https://github.com/reactjs/react.dev --skill react-expert
Prerequisites
  • Git installed and accessible
  • GitHub CLI (gh) installed and authenticated for PR/issue queries
  • Local access to React repository (skill clones it to .claude/react if needed)
Claude Code
Cursor
Windsurf
Cline

How to use react-expert

  1. 1.Invoke the skill with /react-expert followed by the API or concept name (e.g., /react-expert useTransition)
  2. 2.The skill clones or updates the React repository locally to .claude/react
  3. 3.Six parallel research agents spawn automatically: test-explorer, source-explorer, git-historian, pr-researcher, issue-hunter, and types-inspector
  4. 4.Each agent searches its designated source (tests, source code, git history, PRs, issues, types) and reports findings with file paths and line numbers
  5. 5.Review the consolidated research output, which includes actual code examples, warnings, design rationale, and common confusion points
  6. 6.Use the source references to cite authoritative behavior in documentation or code

Use cases

Good for
  • Researching an unfamiliar React API (e.g., useTransition, Suspense) to understand actual behavior vs. training-data assumptions
  • Documenting a React feature with authoritative examples and edge cases pulled directly from test files
  • Debugging unexpected React behavior by finding the exact warning/error message and its trigger condition in source
  • Understanding why a React API was designed a certain way by reading PR discussions and commit messages
  • Verifying type signatures and catching discrepancies between Flow and TypeScript definitions
Who it's for
  • Documentation writers creating accurate React guides
  • Developers debugging React behavior and needing authoritative sources
  • Code agents (Claude Code, Cursor) researching React APIs for code generation
  • Technical leads verifying React API contracts and design decisions

react-expert FAQ

Why does this skill exist if I can just read the React docs?

React's training data may be outdated or incorrect, and the docs may not cover all edge cases or design rationale. This skill searches the actual source code, tests, and git history—the authoritative ground truth—rather than relying on LLM knowledge.

What if the skill finds something that contradicts my understanding?

That's the point. The skill is designed to flag discrepancies between common patterns and actual source behavior. Trust the source code and tests over prior assumptions.

Can I use this skill for non-React libraries?

No. This skill is hardcoded to search the React repository. It will not work for other libraries.

How long does a research run take?

Depends on the topic and network speed. Parallel agents typically complete in 1–3 minutes. Complex topics with many PRs/issues may take longer.

What if the GitHub CLI is not authenticated?

PR and issue queries will fail or return limited results. Authenticate with `gh auth login` before using the skill.

Full instructions (SKILL.md)

Source of truth, from reactjs/react.dev.


name: react-expert description: Use when researching React APIs or concepts for documentation. Use when you need authoritative usage examples, caveats, warnings, or errors for a React feature.

React Expert Research Skill

Overview

This skill produces exhaustive documentation research on any React API or concept by searching authoritative sources (tests, source code, PRs, issues) rather than relying on LLM training knowledge.

<CRITICAL> **Skepticism Mandate:** You must be skeptical of your own knowledge. Claude is often trained on outdated or incorrect React patterns. Treat source material as the sole authority. If findings contradict your prior understanding, explicitly flag this discrepancy.

Red Flags - STOP if you catch yourself thinking:

  • "I know this API does X" → Find source evidence first
  • "Common pattern is Y" → Verify in test files
  • Generating example code → Must have source file reference </CRITICAL>

Invocation

/react-expert useTransition
/react-expert suspense boundaries
/react-expert startTransition

Sources (Priority Order)

  1. React Repo Tests - Most authoritative for actual behavior
  2. React Source Code - Warnings, errors, implementation details
  3. Git History - Commit messages with context
  4. GitHub PRs & Comments - Design rationale (via gh CLI)
  5. GitHub Issues - Confusion/questions (react/react + reactjs/react.dev)
  6. React Working Group - Design discussions for newer APIs
  7. Flow Types - Source of truth for type signatures
  8. TypeScript Types - Note discrepancies with Flow
  9. Current react.dev docs - Baseline (not trusted as complete)

No web search - No Stack Overflow, blog posts, or web searches. GitHub API via gh CLI is allowed.

Workflow

Step 1: Setup React Repo

First, ensure the React repo is available locally:

# Check if React repo exists, clone or update
if [ -d ".claude/react" ]; then
  cd .claude/react && git pull origin main
else
  git clone --depth=100 https://github.com/react/react.git .claude/react
fi

Get the current commit hash for the research document:

cd .claude/react && git rev-parse --short HEAD

Step 2: Dispatch 6 Parallel Research Agents

Spawn these agents IN PARALLEL using the Task tool. Each agent receives the skepticism preamble:

"You are researching React's <TOPIC>. CRITICAL: Do NOT rely on your prior knowledge about this API. Your training may contain outdated or incorrect patterns. Only report what you find in the source files. If your findings contradict common understanding, explicitly highlight this discrepancy."

Agentsubagent_typeFocusInstructions
test-explorerExploreTest files for usage patternsSearch .claude/react/packages/*/src/__tests__/ for test files mentioning the topic. Extract actual usage examples WITH file paths and line numbers.
source-explorerExploreWarnings/errors in sourceSearch .claude/react/packages/*/src/ for console.error, console.warn, and error messages mentioning the topic. Document trigger conditions.
git-historianExploreCommit messagesRun git log --all --grep="<topic>" --oneline -50 in .claude/react. Read full commit messages for context.
pr-researcherExplorePRs introducing/modifying APIRun gh pr list -R react/react --search "<topic>" --state all --limit 20. Read key PR descriptions and comments.
issue-hunterExploreIssues showing confusionSearch issues in both react/react and reactjs/react.dev repos. Look for common questions and misunderstandings.
types-inspectorExploreFlow + TypeScript signaturesFind Flow types in .claude/react/packages/*/src/*.js (look for @flow annotations). Find TS types in .claude/react/packages/*/index.d.ts. Note discrepancies.

Step 3: Agent Prompts

Use these exact prompts when spawning agents:

test-explorer

You are researching React's <TOPIC>.

CRITICAL: Do NOT rely on your prior knowledge about this API. Your training may contain outdated or incorrect patterns. Only report what you find in the source files.

Your task: Find test files in .claude/react that demonstrate <TOPIC> usage.

1. Search for test files: Glob for `**/__tests__/**/*<topic>*` and `**/__tests__/**/*.js` then grep for <topic>
2. For each relevant test file, extract:
   - The test description (describe/it blocks)
   - The actual usage code
   - Any assertions about behavior
   - Edge cases being tested
3. Report findings with exact file paths and line numbers

Format your output as:
## Test File: <path>
### Test: "<test description>"
```javascript
<exact code from test>

Behavior: <what the test asserts>


#### source-explorer

You are researching React's <TOPIC>.

CRITICAL: Do NOT rely on your prior knowledge about this API. Only report what you find in the source files.

Your task: Find warnings, errors, and implementation details for <TOPIC>.

  1. Search .claude/react/packages/*/src/ for:
    • console.error mentions of <topic>
    • console.warn mentions of <topic>
    • Error messages mentioning <topic>
    • The main implementation file
  2. For each warning/error, document:
    • The exact message text
    • The condition that triggers it
    • The source file and line number

Format your output as:

Warnings & Errors

MessageTrigger ConditionSource
"<exact message>"<condition>file:line

Implementation Notes

<key details from source code> ```

git-historian

You are researching React's <TOPIC>.

CRITICAL: Do NOT rely on your prior knowledge. Only report what you find in git history.

Your task: Find commit messages that explain <TOPIC> design decisions.

1. Run: cd .claude/react && git log --all --grep="<topic>" --oneline -50
2. For significant commits, read full message: git show <hash> --stat
3. Look for:
   - Initial introduction of the API
   - Bug fixes (reveal edge cases)
   - Behavior changes
   - Deprecation notices

Format your output as:
## Key Commits
### <short hash> - <subject>
**Date:** <date>
**Context:** <why this change was made>
**Impact:** <what behavior changed>

pr-researcher

You are researching React's <TOPIC>.

CRITICAL: Do NOT rely on your prior knowledge. Only report what you find in PRs.

Your task: Find PRs that introduced or modified <TOPIC>.

1. Run: gh pr list -R react/react --search "<topic>" --state all --limit 20 --json number,title,url
2. For promising PRs, read details: gh pr view <number> -R react/react
3. Look for:
   - The original RFC/motivation
   - Design discussions in comments
   - Alternative approaches considered
   - Breaking changes

Format your output as:
## Key PRs
### PR #<number>: <title>
**URL:** <url>
**Summary:** <what it introduced/changed>
**Design Rationale:** <why this approach>
**Discussion Highlights:** <key points from comments>

issue-hunter

You are researching React's <TOPIC>.

CRITICAL: Do NOT rely on your prior knowledge. Only report what you find in issues.

Your task: Find issues that reveal common confusion about <TOPIC>.

1. Search react/react: gh issue list -R react/react --search "<topic>" --state all --limit 20 --json number,title,url
2. Search reactjs/react.dev: gh issue list -R reactjs/react.dev --search "<topic>" --state all --limit 20 --json number,title,url
3. For each issue, identify:
   - What the user was confused about
   - What the resolution was
   - Any gotchas revealed

Format your output as:
## Common Confusion
### Issue #<number>: <title>
**Repo:** <react/react or reactjs/react.dev>
**Confusion:** <what they misunderstood>
**Resolution:** <correct understanding>
**Gotcha:** <if applicable>

types-inspector

You are researching React's <TOPIC>.

CRITICAL: Do NOT rely on your prior knowledge. Only report what you find in type definitions.

Your task: Find and compare Flow and TypeScript type signatures for <TOPIC>.

1. Flow types (source of truth): Search .claude/react/packages/*/src/*.js for @flow annotations related to <topic>
2. TypeScript types: Search .claude/react/packages/*/index.d.ts and @types/react
3. Compare and note any discrepancies

Format your output as:
## Flow Types (Source of Truth)
**File:** <path>
```flow
<exact type definition>

TypeScript Types

File: <path>

<exact type definition>

Discrepancies

<any differences between Flow and TS definitions> ```

Step 4: Synthesize Results

After all agents complete, combine their findings into a single research document.

DO NOT add information from your own knowledge. Only include what agents found in sources.

Step 5: Save Output

Write the final document to .claude/research/<topic>.md

Replace spaces in topic with hyphens (e.g., "suspense boundaries" → "suspense-boundaries.md")

Output Document Template

# React Research: <topic>

> Generated by /react-expert on YYYY-MM-DD
> Sources: React repo (commit <hash>), N PRs, M issues

## Summary

[Brief summary based SOLELY on source findings, not prior knowledge]

## API Signature

### Flow Types (Source of Truth)

[From types-inspector agent]

### TypeScript Types

[From types-inspector agent]

### Discrepancies

[Any differences between Flow and TS]

## Usage Examples

### From Tests

[From test-explorer agent - with file:line references]

### From PRs/Issues

[Real-world patterns from discussions]

## Caveats & Gotchas

[Each with source link]

- **<gotcha>** - Source: <link>

## Warnings & Errors

| Message | Trigger Condition | Source File |
|---------|------------------|-------------|
[From source-explorer agent]

## Common Confusion

[From issue-hunter agent]

## Design Decisions

[From git-historian and pr-researcher agents]

## Source Links

### Commits
- <hash>: <description>

### Pull Requests
- PR #<number>: <title> - <url>

### Issues
- Issue #<number>: <title> - <url>

Common Mistakes to Avoid

  1. Trusting prior knowledge - If you "know" something about the API, find the source evidence anyway
  2. Generating example code - Every code example must come from an actual source file
  3. Skipping agents - All 6 agents must run; each provides unique perspective
  4. Summarizing without sources - Every claim needs a file:line or PR/issue reference
  5. Using web search - No Stack Overflow, no blog posts, no social media

Verification Checklist

Before finalizing the research document:

  • React repo is at .claude/react with known commit hash
  • All 6 agents were spawned in parallel
  • Every code example has a source file reference
  • Warnings/errors table has source locations
  • No claims made without source evidence
  • Discrepancies between Flow/TS types documented
  • Source links section is complete