
React Doctor
Run React Doctor before commit to catch regressions in lint, accessibility, bundle size, and architecture with a 0–100 score.
Overview
React-doctor is an agent skill most often used in Ship (also Build) that runs React Doctor CLI scans for a 0–100 health score and blocks commits when --diff shows regression.
Install
npx skills add https://github.com/millionco/react-doctor --skill react-doctorWhat is this skill?
- 0–100 React health score across security, performance, correctness, and architecture
- Pre-commit command: npx react-doctor@latest --verbose --diff to block score regressions
- Full-repo cleanup mode without --diff for errors then warnings
- --verbose lists affected files and line numbers per rule
- 0–100 health score
- --verbose shows affected files and line numbers per rule
Adoption & trust: 9.2k installs on skills.sh; 12.4k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are about to commit React changes but have no fast check that lint, a11y, bundle, and architecture issues—and score—got worse.
Who is it for?
Solo builders maintaining React apps who want an automated pre-commit quality gate without configuring multiple separate tools.
Skip if: Non-React stacks, or teams that already enforce equivalent CI gates and do not want agent-driven npx scans on every edit.
When should I use this skill?
Finishing a feature, fixing a bug, before committing React code, or when improving code quality or cleaning up a codebase; checks score regression.
What do I get? / Deliverables
You run verbose diff scans, fix regressions by severity, and commit only when the health score holds or improves.
- React Doctor score report (optionally --score only)
- Regression-safe commit after fixes to errors and warnings
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Pre-commit quality gates and score regression checks are canonical Ship/review workflows even when triggered at end of Build. Skill outputs diagnostic review with severity-oriented fixes—aligned with ship review, not pure unit-test authoring.
Where it fits
After finishing a feature branch, run --verbose --diff so only changed TSX files are scored before you merge.
Block a commit when React Doctor reports new errors that drop the 0–100 health score versus main.
Use full-repo --verbose pass to prioritize correctness and a11y fixes before a release candidate.
Periodic cleanup sprint on a legacy React module without --diff to burn down warnings systematically.
How it compares
CLI checker with a single health score—use instead of ad-hoc “looks fine” review before commit.
Common Questions / FAQ
Who is react-doctor for?
Indie developers and small teams shipping React UIs who want the agent to enforce a scored quality pass before commits or during cleanup sprints.
When should I use react-doctor?
After Build frontend edits when finishing a feature or bugfix (run with --diff), and during Ship review for full --verbose sweeps or general codebase improvement.
Is react-doctor safe to install?
The skill runs npx against published packages; review the Security Audits panel on this page and pin or audit react-doctor versions in CI if you need stricter supply-chain control.
SKILL.md
READMESKILL.md - React Doctor
# React Doctor Scans React codebases for security, performance, correctness, and architecture issues. Outputs a 0–100 health score. ## After making React code changes: Run `npx react-doctor@latest --verbose --diff` and check the score did not regress. If the score dropped, fix the regressions before committing. ## For general cleanup or code improvement: Run `npx react-doctor@latest --verbose` (without `--diff`) to scan the full codebase. Fix issues by severity — errors first, then warnings. ## Command ```bash npx react-doctor@latest --verbose --diff ``` | Flag | Purpose | | ----------- | --------------------------------------------- | | `.` | Scan current directory | | `--verbose` | Show affected files and line numbers per rule | | `--diff` | Only scan changed files vs base branch | | `--score` | Output only the numeric score |