react-doctor
$
npx mdskill add databuddy-analytics/Databuddy/react-doctorAudit React codebases for critical security and performance flaws.
- Detects hardcoded secrets, improper state management, and architectural anti-patterns.
- Analyzes code structure against 47+ specific rule categories including Next.js and accessibility.
- Calculates a 0-100 health score to quantify overall codebase integrity.
- Generates file paths and line numbers for every identified diagnostic issue.
SKILL.md
.github/skills/react-doctorView on GitHub ↗
--- name: react-doctor description: Diagnose and fix React codebase health issues. Use when reviewing React code, fixing performance problems, auditing security, or improving code quality. version: 1.0.0 --- # React Doctor Scans your React codebase for security, performance, correctness, and architecture issues. Outputs a 0-100 score with actionable diagnostics. ## Usage ```bash npx -y react-doctor@latest . --verbose ``` ## Workflow 1. Run the command above at the project root 2. Read every diagnostic with file paths and line numbers 3. Fix issues starting with errors (highest severity) 4. Re-run to verify the score improved ## Rules (47+) - **Security**: hardcoded secrets in client bundle, eval() - **State & Effects**: derived state in useEffect, missing cleanup, useState from props, cascading setState - **Architecture**: components inside components, giant components, inline render functions - **Performance**: layout property animations, transition-all, large blur values - **Correctness**: array index as key, conditional rendering bugs - **Next.js**: missing metadata, client-side fetching for server data, async client components - **Bundle Size**: barrel imports, full lodash, moment.js, missing code splitting - **Server**: missing auth in server actions, blocking without after() - **Accessibility**: missing prefers-reduced-motion - **Dead Code**: unused files, exports, types ## Score - **75+**: Great - **50-74**: Needs work - **0-49**: Critical
More from databuddy-analytics/Databuddy
- databuddyWork effectively in the Databuddy monorepo. Use when the user asks to build, debug, review, or refactor anything in Databuddy, including the dashboard, api, basket ingest service, links service, docs app, uptime service, SDK, tracker, auth, RPC, database schema, ClickHouse, or shared packages.
- databuddy-integrationHelp users integrate Databuddy into their own products. Use when the user wants to install or use Databuddy's SDK, React or Vue component, tracker helpers, Node SDK, server-side feature flags, REST API, event tracking endpoint, or LLM observability package.
- desloppifyReduce codebase slop by deleting code, flattening abstractions, and replacing custom helpers/types/assertions with native SDK/npm helpers or straightforward schemas (for example Zod). Use when asked to simplify, delete code, or "desloppify" TypeScript/Bun/Nuxt code.
- typescript-bun-drizzle-qualityBuild or review Bun fullstack TypeScript code with Drizzle-backed SQL. Use for backend or cross-layer changes touching API/domain logic, schema or query design, migrations, runtime/type debugging, and boundary validation between contracts, business rules, and persistence.
- vertical-slicesDesign, implement, and review software using vertical slices (feature-first architecture) instead of horizontal layers. Use when creating a new feature, refactoring layered code (controllers/services/repositories), defining clear API-domain-data boundaries, improving slice-level testability, or reducing cross-module coupling in backend or fullstack TypeScript projects.