[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-millionco--react-doctor":3,"tool-millionco--react-doctor":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":42,"env_os":102,"env_gpu":103,"env_ram":103,"env_deps":104,"category_tags":110,"github_topics":111,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":117,"updated_at":118,"faqs":119,"releases":150},9065,"millionco\u002Freact-doctor","react-doctor","Let coding agents diagnose and fix your React code","react-doctor 是一款专为 React 开发者打造的智能代码诊断工具，旨在帮助团队快速发现并修复代码库中的潜在问题。只需运行一条命令，它就能自动识别项目框架（如 Next.js、Vite 等）和 React 版本，并行执行深度静态分析与死代码检测。\n\n该工具重点解决了 React 开发中常见的状态管理混乱、性能瓶颈、安全漏洞、架构缺陷以及未使用代码堆积等痛点。扫描结束后，它会生成一份包含具体修改建议的诊断报告，并给出一个直观的 0–100 健康评分，让开发者能清晰掌握代码质量现状。\n\nreact-doctor 特别适合前端工程师、技术负责人及追求高质量代码的团队使用。其独特亮点在于内置了 60 多条针对 React 生态的最佳实践规则，涵盖可访问性、包体积优化及框架特性检查，且规则会根据项目配置自动调整。此外，它还支持与 Claude Code、GitHub Copilot 等主流 AI 编程助手集成，将诊断规则直接赋能给编码代理，实现更智能的自动修复。无论是本地日常开发，还是通过 GitHub Actions 进行 CI\u002FCD 流程管控，react-doctor 都能以轻量","react-doctor 是一款专为 React 开发者打造的智能代码诊断工具，旨在帮助团队快速发现并修复代码库中的潜在问题。只需运行一条命令，它就能自动识别项目框架（如 Next.js、Vite 等）和 React 版本，并行执行深度静态分析与死代码检测。\n\n该工具重点解决了 React 开发中常见的状态管理混乱、性能瓶颈、安全漏洞、架构缺陷以及未使用代码堆积等痛点。扫描结束后，它会生成一份包含具体修改建议的诊断报告，并给出一个直观的 0–100 健康评分，让开发者能清晰掌握代码质量现状。\n\nreact-doctor 特别适合前端工程师、技术负责人及追求高质量代码的团队使用。其独特亮点在于内置了 60 多条针对 React 生态的最佳实践规则，涵盖可访问性、包体积优化及框架特性检查，且规则会根据项目配置自动调整。此外，它还支持与 Claude Code、GitHub Copilot 等主流 AI 编程助手集成，将诊断规则直接赋能给编码代理，实现更智能的自动修复。无论是本地日常开发，还是通过 GitHub Actions 进行 CI\u002FCD 流程管控，react-doctor 都能以轻量无侵入的方式提升项目的整体健壮性。","\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fassets\u002Freact-doctor-readme-logo-dark.svg\">\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\".\u002Fassets\u002Freact-doctor-readme-logo-light.svg\">\n  \u003Cimg alt=\"React Doctor\" src=\".\u002Fassets\u002Freact-doctor-readme-logo-light.svg\" width=\"180\" height=\"40\">\n\u003C\u002Fpicture>\n\n[![version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Freact-doctor?style=flat&colorA=000000&colorB=000000)](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Freact-doctor)\n[![downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdt\u002Freact-doctor.svg?style=flat&colorA=000000&colorB=000000)](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Freact-doctor)\n\nLet coding agents diagnose and fix your React code.\n\nOne command scans your codebase for security, performance, correctness, and architecture issues, then outputs a **0–100 score** with actionable diagnostics.\n\n### [See it in action →](https:\u002F\u002Freact.doctor)\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F07cc88d9-9589-44c3-aa73-5d603cb1c570\n\n## How it works\n\nReact Doctor detects your framework (Next.js, Vite, Remix, etc.), React version, and compiler setup, then runs two analysis passes **in parallel**:\n\n1. **Lint**: Checks 60+ rules across state & effects, performance, architecture, bundle size, security, correctness, accessibility, and framework-specific categories (Next.js, React Native). Rules are toggled automatically based on your project setup.\n2. **Dead code**: Detects unused files, exports, types, and duplicates.\n\nDiagnostics are filtered through your config, then scored by severity (errors weigh more than warnings) to produce a **0–100 health score** (75+ Great, 50–74 Needs work, \u003C50 Critical).\n\n## Install\n\nRun this at your project root:\n\n```bash\nnpx -y react-doctor@latest .\n```\n\nUse `--verbose` to see affected files and line numbers:\n\n```bash\nnpx -y react-doctor@latest . --verbose\n```\n\n## Install for your coding agent\n\nTeach your coding agent all 47+ React best practice rules. Run this at your project root:\n\n```bash\nnpx -y react-doctor@latest install\n```\n\nYou'll be prompted to pick which detected agents to install for. Pass `--yes` to skip prompts and install for every detected agent.\n\nSupports Claude Code, Codex, GitHub Copilot, Gemini CLI, Cursor, OpenCode, Factory Droid, and Pi.\n\n## GitHub Actions\n\n```yaml\n- uses: actions\u002Fcheckout@v5\n  with:\n    fetch-depth: 0 # required for --diff\n- uses: millionco\u002Freact-doctor@main\n  with:\n    diff: main\n    github-token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n| Input          | Default | Description                                                       |\n| -------------- | ------- | ----------------------------------------------------------------- |\n| `directory`    | `.`     | Project directory to scan                                         |\n| `verbose`      | `true`  | Show file details per rule                                        |\n| `project`      |         | Workspace project(s) to scan (comma-separated)                    |\n| `diff`         |         | Base branch for diff mode. Only changed files are scanned         |\n| `github-token` |         | When set on `pull_request` events, posts findings as a PR comment |\n| `fail-on`      | `error` | Exit with error code on diagnostics: `error`, `warning`, `none`   |\n| `offline`      | `false` | Skip sending diagnostics to the react.doctor API                  |\n| `node-version` | `20`    | Node.js version to use                                            |\n\nThe action outputs a `score` (0–100) you can use in subsequent steps.\n\n## Options\n\n```\nUsage: react-doctor [directory] [options]\n\nOptions:\n  -v, --version     display the version number\n  --no-lint         skip linting\n  --no-dead-code    skip dead code detection\n  --verbose         show file details per rule\n  --score           output only the score\n  -y, --yes         skip prompts, scan all workspace projects\n  --project \u003Cname>  select workspace project (comma-separated for multiple)\n  --diff [base]     scan only files changed vs base branch\n  -h, --help        display help for command\n```\n\n## Browser API\n\nImport `react-doctor\u002Fbrowser` to run the same **diagnostics merge, config-based filtering, timing, and scoring pipeline** as `react-doctor\u002Fapi`’s `diagnose`, but with **caller-supplied** inputs: `project` metadata, a virtual `projectFiles` map (contents keyed by paths relative to `rootDirectory`) for ignore\u002Fsuppression resolution, and a `runOxlint` callback that performs linting in your environment (for example a Web Worker with oxlint).\n\nGit history, real filesystem discovery, knip, the CLI, staged-file detection, and interactive prompts are **not** available in the browser bundle; treat those as Node-only or supply equivalents yourself. `react-doctor\u002Fworker` re-exports the same browser-facing modules for worker targets.\n\nIf you call **`diagnoseCore`** yourself in the browser, pass **`calculateDiagnosticsScore`** from this package (re-exported as **`calculateScore`** on `react-doctor\u002Fbrowser`) so the bundle never pulls in Node-only proxy code.\n\n## Configuration\n\nCreate a `react-doctor.config.json` in your project root to customize behavior:\n\n```json\n{\n  \"ignore\": {\n    \"rules\": [\"react\u002Fno-danger\", \"jsx-a11y\u002Fno-autofocus\", \"knip\u002Fexports\"],\n    \"files\": [\"src\u002Fgenerated\u002F**\"]\n  }\n}\n```\n\nYou can also use the `\"reactDoctor\"` key in your `package.json` instead:\n\n```json\n{\n  \"reactDoctor\": {\n    \"ignore\": {\n      \"rules\": [\"react\u002Fno-danger\"]\n    }\n  }\n}\n```\n\nIf both exist, `react-doctor.config.json` takes precedence.\n\n### Config options\n\n| Key               | Type                             | Default  | Description                                                                                                                         |\n| ----------------- | -------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `ignore.rules`    | `string[]`                       | `[]`     | Rules to suppress, using the `plugin\u002Frule` format shown in diagnostic output (e.g. `react\u002Fno-danger`, `knip\u002Fexports`, `knip\u002Ftypes`) |\n| `ignore.files`    | `string[]`                       | `[]`     | File paths to exclude, supports glob patterns (`src\u002Fgenerated\u002F**`, `**\u002F*.test.tsx`)                                                 |\n| `lint`            | `boolean`                        | `true`   | Enable\u002Fdisable lint checks (same as `--no-lint`)                                                                                    |\n| `deadCode`        | `boolean`                        | `true`   | Enable\u002Fdisable dead code detection (same as `--no-dead-code`)                                                                       |\n| `verbose`         | `boolean`                        | `false`  | Show file details per rule (same as `--verbose`)                                                                                    |\n| `diff`            | `boolean \\| string`              | —        | Force diff mode (`true`) or pin a base branch (`\"main\"`). Set to `false` to disable auto-detection.                                 |\n| `failOn`          | `\"error\" \\| \"warning\" \\| \"none\"` | `\"none\"` | Exit with error code on diagnostics of the given severity or above                                                                  |\n| `customRulesOnly` | `boolean`                        | `false`  | Disable built-in react\u002Fjsx-a11y\u002Fcompiler rules, keeping only `react-doctor\u002F*` plugin rules                                          |\n| `share`           | `boolean`                        | `true`   | Show the share-your-results URL after scanning                                                                                      |\n| `textComponents`  | `string[]`                       | `[]`     | React Native only. Component names whose children should not trigger `rn-no-raw-text` (e.g. `[\"MyText\", \"Label.Bold\"]`)             |\n\nCLI flags always override config values.\n\n## Node.js API\n\nYou can also use React Doctor programmatically:\n\n```js\nimport { diagnose } from \"react-doctor\u002Fapi\";\n\nconst result = await diagnose(\".\u002Fpath\u002Fto\u002Fyour\u002Freact-project\");\n\nconsole.log(result.score); \u002F\u002F { score: 82, label: \"Good\" } or null\nconsole.log(result.diagnostics); \u002F\u002F Array of Diagnostic objects\nconsole.log(result.project); \u002F\u002F Detected framework, React version, etc.\n```\n\nThe `diagnose` function accepts an optional second argument:\n\n```js\nconst result = await diagnose(\".\", {\n  lint: true, \u002F\u002F run lint checks (default: true)\n  deadCode: true, \u002F\u002F run dead code detection (default: true)\n});\n```\n\nEach diagnostic has the following shape:\n\n```ts\ninterface Diagnostic {\n  filePath: string;\n  plugin: string;\n  rule: string;\n  severity: \"error\" | \"warning\";\n  message: string;\n  help: string;\n  line: number;\n  column: number;\n  category: string;\n}\n```\n\n## [Scores for popular open-source projects](https:\u002F\u002Freact.doctor\u002Fleaderboard)\n\n| Project                                                | Score  | Share                                                                                   |\n| ------------------------------------------------------ | ------ | --------------------------------------------------------------------------------------- |\n| [tldraw](https:\u002F\u002Fgithub.com\u002Ftldraw\u002Ftldraw)             | **84** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=tldraw&s=84&e=98&w=139&f=40)                    |\n| [excalidraw](https:\u002F\u002Fgithub.com\u002Fexcalidraw\u002Fexcalidraw) | **84** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40excalidraw%2Fexcalidraw&s=84&e=2&w=196&f=80) |\n| [twenty](https:\u002F\u002Fgithub.com\u002Ftwentyhq\u002Ftwenty)           | **78** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=twenty-front&s=78&e=99&w=293&f=268)             |\n| [plane](https:\u002F\u002Fgithub.com\u002Fmakeplane\u002Fplane)            | **78** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=web&s=78&e=7&w=525&f=292)                       |\n| [formbricks](https:\u002F\u002Fgithub.com\u002Fformbricks\u002Fformbricks) | **75** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40formbricks%2Fweb&s=75&e=15&w=389&f=242)      |\n| [posthog](https:\u002F\u002Fgithub.com\u002FPostHog\u002Fposthog)          | **72** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40posthog%2Ffrontend&s=72&e=82&w=1177&f=585)   |\n| [supabase](https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fsupabase)       | **69** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=studio&s=69&e=74&w=1087&f=566)                  |\n| [onlook](https:\u002F\u002Fgithub.com\u002Fonlook-dev\u002Fonlook)         | **69** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40onlook%2Fweb-client&s=69&e=64&w=418&f=178)   |\n| [payload](https:\u002F\u002Fgithub.com\u002Fpayloadcms\u002Fpayload)       | **68** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40payloadcms%2Fui&s=68&e=139&w=408&f=298)      |\n| [sentry](https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry)          | **64** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=sentry&s=64&e=94&w=1345&f=818)                  |\n| [cal.com](https:\u002F\u002Fgithub.com\u002Fcalcom\u002Fcal.com)           | **63** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40calcom%2Fweb&s=63&e=31&w=558&f=311)          |\n| [dub](https:\u002F\u002Fgithub.com\u002Fdubinc\u002Fdub)                   | **62** | [view](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=web&s=62&e=52&w=966&f=457)                      |\n\n## Contributing\n\nWant to contribute? Check out the codebase and submit a PR.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\ncd react-doctor\npnpm install\npnpm -r run build\n```\n\nRun locally:\n\n```bash\nnode packages\u002Freact-doctor\u002Fdist\u002Fcli.js \u002Fpath\u002Fto\u002Fyour\u002Freact-project\n```\n\n### License\n\nReact Doctor is MIT-licensed open-source software.\n","\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".\u002Fassets\u002Freact-doctor-readme-logo-dark.svg\">\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\".\u002Fassets\u002Freact-doctor-readme-logo-light.svg\">\n  \u003Cimg alt=\"React Doctor\" src=\".\u002Fassets\u002Freact-doctor-readme-logo-light.svg\" width=\"180\" height=\"40\">\n\u003C\u002Fpicture>\n\n[![版本](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Freact-doctor?style=flat&colorA=000000&colorB=000000)](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Freact-doctor)\n[![下载量](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdt\u002Freact-doctor.svg?style=flat&colorA=000000&colorB=000000)](https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Freact-doctor)\n\n让编码助手诊断并修复你的 React 代码。\n\n只需一条命令，即可扫描你的代码库中的安全、性能、正确性及架构问题，并输出一个包含可操作诊断信息的 **0–100 分** 评分。\n\n### [立即体验 →](https:\u002F\u002Freact.doctor)\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F07cc88d9-9589-44c3-aa73-5d603cb1c570\n\n## 工作原理\n\nReact Doctor 会检测你使用的框架（Next.js、Vite、Remix 等）、React 版本以及编译器配置，然后以 **并行方式** 执行两轮分析：\n\n1. **Lint 检查**：涵盖状态与副作用、性能、架构、包大小、安全、正确性、无障碍访问以及特定框架（Next.js、React Native）相关的 60 多条规则。这些规则会根据你的项目配置自动启用或禁用。\n2. **死代码检测**：识别未使用的文件、导出、类型和重复代码。\n\n诊断结果会经过你的配置过滤，并按严重程度打分（错误比警告权重更高），最终生成一个 **0–100 的健康评分**（75+ 优秀，50–74 需改进，\u003C50 危急）。\n\n## 安装\n\n在你的项目根目录运行以下命令：\n\n```bash\nnpx -y react-doctor@latest .\n```\n\n使用 `--verbose` 参数可查看受影响的文件和行号：\n\n```bash\nnpx -y react-doctor@latest . --verbose\n```\n\n## 为你的编码助手安装\n\n让你的编码助手掌握所有 47 条以上的 React 最佳实践规则。在你的项目根目录运行以下命令：\n\n```bash\nnpx -y react-doctor@latest install\n```\n\n系统会提示你选择要为其安装的已检测到的助手。使用 `--yes` 参数可跳过提示，直接为所有检测到的助手安装。\n\n支持 Claude Code、Codex、GitHub Copilot、Gemini CLI、Cursor、OpenCode、Factory Droid 和 Pi 等工具。\n\n## GitHub Actions\n\n```yaml\n- uses: actions\u002Fcheckout@v5\n  with:\n    fetch-depth: 0 # required for --diff\n- uses: millionco\u002Freact-doctor@main\n  with:\n    diff: main\n    github-token: ${{ secrets.GITHUB_TOKEN }}\n```\n\n| 输入          | 默认值 | 描述                                                       |\n| -------------- | ------- | ----------------------------------------------------------------- |\n| `directory`    | `.`     | 要扫描的项目目录                                         |\n| `verbose`      | `true`  | 显示每条规则对应的文件详情                                        |\n| `project`      |         | 要扫描的工作区项目（逗号分隔）                    |\n| `diff`         |         | 用于差异模式的基础分支。仅扫描发生更改的文件         |\n| `github-token` |         | 在 `pull_request` 事件中设置时，会将发现的问题作为 PR 评论发布 |\n| `fail-on`      | `error` | 当出现诊断结果时退出并返回错误码：`error`、`warning` 或 `none`   |\n| `offline`      | `false` | 跳过向 react.doctor API 发送诊断信息                  |\n| `node-version` | `20`    | 要使用的 Node.js 版本                                            |\n\n该 Action 会输出一个 `score`（0–100），你可以在后续步骤中使用。\n\n## 选项\n\n```\n用法：react-doctor [directory] [options]\n\n选项：\n  -v, --version     显示版本号\n  --no-lint         跳过 Lint 检查\n  --no-dead-code    跳过死代码检测\n  --verbose         显示每条规则对应的文件详情\n  --score           仅输出分数\n  -y, --yes         跳过提示，扫描所有工作区项目\n  --project \u003Cname>  选择工作区项目（多个项目用逗号分隔）\n  --diff [base]     仅扫描与基础分支相比发生变化的文件\n  -h, --help        显示命令帮助\n```\n\n## 浏览器 API\n\n导入 `react-doctor\u002Fbrowser` 可以运行与 `react-doctor\u002Fapi` 的 `diagnose` 方法相同的 **诊断合并、基于配置的过滤、计时和评分流程**，但输入参数由调用方提供：包括 `project` 元数据、一个虚拟的 `projectFiles` 映射（内容以相对于 `rootDirectory` 的路径为键），用于解析忽略和抑制规则；以及一个 `runOxlint` 回调函数，可在你的环境中执行 Lint 检查（例如使用带有 oxlint 的 Web Worker）。\n\nGit 历史、真实文件系统的发现、knip、CLI、暂存文件检测以及交互式提示等功能在浏览器版本中 **不可用**；这些功能应仅在 Node.js 环境中使用，或者由你自行实现替代方案。`react-doctor\u002Fworker` 重新导出了相同的面向浏览器的模块，适用于 Worker 目标。\n\n如果你在浏览器中直接调用 **`diagnoseCore`**，请同时传递来自本包的 **`calculateDiagnosticsScore`** 函数（在 `react-doctor\u002Fbrowser` 中重命名为 **`calculateScore`**），以避免捆绑包引入仅限 Node.js 的代理代码。\n\n## 配置\n\n在你的项目根目录创建一个 `react-doctor.config.json` 文件，以自定义行为：\n\n```json\n{\n  \"ignore\": {\n    \"rules\": [\"react\u002Fno-danger\", \"jsx-a11y\u002Fno-autofocus\", \"knip\u002Fexports\"],\n    \"files\": [\"src\u002Fgenerated\u002F**\"]\n  }\n}\n```\n\n你也可以在 `package.json` 中使用 `\"reactDoctor\"` 键来代替：\n\n```json\n{\n  \"reactDoctor\": {\n    \"ignore\": {\n      \"rules\": [\"react\u002Fno-danger\"]\n    }\n  }\n}\n```\n\n如果两者都存在，`react-doctor.config.json` 将优先生效。\n\n### 配置选项\n\n| 键               | 类型                             | 默认值  | 描述                                                                                                                         |\n| ----------------- | -------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |\n| `ignore.rules`    | `string[]`                       | `[]`     | 要抑制的规则，使用诊断输出中显示的 `plugin\u002Frule` 格式（例如 `react\u002Fno-danger`、`knip\u002Fexports`、`knip\u002Ftypes`） |\n| `ignore.files`    | `string[]`                       | `[]`     | 要排除的文件路径，支持 glob 模式（`src\u002Fgenerated\u002F**`、`**\u002F*.test.tsx`）                                                 |\n| `lint`            | `boolean`                        | `true`   | 启用或禁用 lint 检查（与 `--no-lint` 相同）                                                                                    |\n| `deadCode`        | `boolean`                        | `true`   | 启用或禁用死代码检测（与 `--no-dead-code` 相同）                                                                               |\n| `verbose`         | `boolean`                        | `false`  | 显示每条规则的文件详情（与 `--verbose` 相同）                                                                                  |\n| `diff`            | `boolean \\| string`              | —        | 强制启用 diff 模式（`true`）或固定基准分支（`\"main\"`）。设置为 `false` 可禁用自动检测。                                 |\n| `failOn`          | `\"error\" \\| \"warning\" \\| \"none\"` | `\"none\"` | 当诊断信息达到指定严重级别或更高时，以错误码退出程序                                                                          |\n| `customRulesOnly` | `boolean`                        | `false`  | 禁用内置的 react\u002Fjsx-a11y\u002Fcompiler 规则，仅保留 `react-doctor\u002F*` 插件规则                                                    |\n| `share`           | `boolean`                        | `true`   | 扫描完成后显示分享结果的 URL                                                                                                    |\n| `textComponents`  | `string[]`                       | `[]`     | 仅适用于 React Native。指定其子组件不应触发 `rn-no-raw-text` 的组件名称（例如 `[\"MyText\", \"Label.Bold\"]`）             |\n\nCLI 标志始终会覆盖配置值。\n\n## Node.js API\n\n你也可以以编程方式使用 React Doctor：\n\n```js\nimport { diagnose } from \"react-doctor\u002Fapi\";\n\nconst result = await diagnose(\".\u002Fpath\u002Fto\u002Fyour\u002Freact-project\");\n\nconsole.log(result.score); \u002F\u002F { score: 82, label: \"Good\" } 或 null\nconsole.log(result.diagnostics); \u002F\u002F Diagnostic 对象数组\nconsole.log(result.project); \u002F\u002F 检测到的框架、React 版本等。\n```\n\n`diagnose` 函数接受一个可选的第二个参数：\n\n```js\nconst result = await diagnose(\".\", {\n  lint: true, \u002F\u002F 运行 lint 检查（默认：true）\n  deadCode: true, \u002F\u002F 运行死代码检测（默认：true）\n});\n```\n\n每个诊断对象的结构如下：\n\n```ts\ninterface Diagnostic {\n  filePath: string;\n  plugin: string;\n  rule: string;\n  severity: \"error\" | \"warning\";\n  message: string;\n  help: string;\n  line: number;\n  column: number;\n  category: string;\n}\n```\n\n## [热门开源项目的评分](https:\u002F\u002Freact.doctor\u002Fleaderboard)\n\n| 项目                                                | 分数  | 分享                                                                                   |\n| ------------------------------------------------------ | ------ | --------------------------------------------------------------------------------------- |\n| [tldraw](https:\u002F\u002Fgithub.com\u002Ftldraw\u002Ftldraw)             | **84** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=tldraw&s=84&e=98&w=139&f=40)                    |\n| [excalidraw](https:\u002F\u002Fgithub.com\u002Fexcalidraw\u002Fexcalidraw) | **84** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40excalidraw%2Fexcalidraw&s=84&e=2&w=196&f=80) |\n| [twenty](https:\u002F\u002Fgithub.com\u002Ftwentyhq\u002Ftwenty)           | **78** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=twenty-front&s=78&e=99&w=293&f=268)             |\n| [plane](https:\u002F\u002Fgithub.com\u002Fmakeplane\u002Fplane)            | **78** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=web&s=78&e=7&w=525&f=292)                       |\n| [formbricks](https:\u002F\u002Fgithub.com\u002Fformbricks\u002Fformbricks) | **75** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40formbricks%2Fweb&s=75&e=15&w=389&f=242)      |\n| [posthog](https:\u002F\u002Fgithub.com\u002FPostHog\u002Fposthog)          | **72** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40posthog%2Ffrontend&s=72&e=82&w=1177&f=585)   |\n| [supabase](https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fsupabase)       | **69** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=studio&s=69&e=74&w=1087&f=566)                  |\n| [onlook](https:\u002F\u002Fgithub.com\u002Fonlook-dev\u002Fonlook)         | **69** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40onlook%2Fweb-client&s=69&e=64&w=418&f=178)   |\n| [payload](https:\u002F\u002Fgithub.com\u002Fpayloadcms\u002Fpayload)       | **68** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40payloadcms%2Fui&s=68&e=139&w=408&f=298)      |\n| [sentry](https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry)          | **64** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=sentry&s=64&e=94&w=1345&f=818)                  |\n| [cal.com](https:\u002F\u002Fgithub.com\u002Fcalcom\u002Fcal.com)           | **63** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=%40calcom%2Fweb&s=63&e=31&w=558&f=311)          |\n| [dub](https:\u002F\u002Fgithub.com\u002Fdubinc\u002Fdub)                   | **62** | [查看](https:\u002F\u002Fwww.react.doctor\u002Fshare?p=web&s=62&e=52&w=966&f=457)                      |\n\n## 贡献\n\n想贡献代码吗？请查看代码库并提交 PR。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\ncd react-doctor\npnpm install\npnpm -r run build\n```\n\n本地运行：\n\n```bash\nnode packages\u002Freact-doctor\u002Fdist\u002Fcli.js \u002Fpath\u002Fto\u002Fyour\u002Freact-project\n```\n\n### 许可证\n\nReact Doctor 是 MIT 许可证下的开源软件。","# React Doctor 快速上手指南\n\nReact Doctor 是一款专为 React 项目设计的诊断工具，能够自动检测代码库中的安全、性能、正确性及架构问题，并生成 0-100 的健康评分。它支持 Next.js、Vite、Remix 等主流框架，并能与各类 AI 编程助手集成。\n\n## 环境准备\n\n*   **系统要求**：支持 Windows、macOS、Linux。\n*   **前置依赖**：\n    *   已安装 **Node.js** (推荐版本 20+)。\n    *   拥有一个标准的 React 项目目录（包含 `package.json`）。\n*   **网络提示**：该工具通过 `npx` 直接运行，无需全局安装。若国内访问 npm 源较慢，建议配置淘宝镜像或使用代理：\n    ```bash\n    # 临时使用淘宝镜像运行（如 npx 支持）或配置全局\n    npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n    ```\n\n## 安装步骤\n\nReact Doctor 无需预先安装到项目中，推荐使用 `npx` 直接运行最新正式版。\n\n在项目根目录下执行以下命令：\n\n```bash\nnpx -y react-doctor@latest .\n```\n\n> **提示**：`-y` 参数用于自动确认提示，`.` 代表扫描当前目录。\n\n## 基本使用\n\n### 1. 快速扫描与评分\n运行上述安装命令后，工具会自动识别你的框架（Next.js\u002FVite 等）和 React 版本，并行执行以下检查：\n*   **Lint 检查**：覆盖状态管理、副作用、性能、包体积、安全性等 60+ 条规则。\n*   **死代码检测**：查找未使用的文件、导出、类型及重复代码。\n\n扫描完成后，终端将输出一个 **0-100 的健康评分**：\n*   **75+**：优秀 (Great)\n*   **50-74**：需要改进 (Needs work)\n*   **\u003C50**：严重 (Critical)\n\n### 2. 查看详细报告\n若需查看具体受影响的文件路径和行号，请添加 `--verbose` 参数：\n\n```bash\nnpx -y react-doctor@latest . --verbose\n```\n\n### 3. 为 AI 编程助手配置\n如果你使用 Claude Code、GitHub Copilot、Cursor 等 AI 编程助手，可以运行以下命令将 React 最佳实践规则注入到助手上下文中：\n\n```bash\nnpx -y react-doctor@latest install\n```\n*   运行后会提示选择要安装的助手，输入 `--yes` 可跳过提示并为所有检测到的助手安装。\n\n### 4. 自定义配置（可选）\n在项目根目录创建 `react-doctor.config.json` 以忽略特定规则或文件：\n\n```json\n{\n  \"ignore\": {\n    \"rules\": [\"react\u002Fno-danger\", \"jsx-a11y\u002Fno-autofocus\"],\n    \"files\": [\"src\u002Fgenerated\u002F**\"]\n  }\n}\n```\n或者在 `package.json` 中添加 `\"reactDoctor\"` 字段进行配置。CLI 命令行参数优先级高于配置文件。","某电商团队在重构遗留 React 项目并接入 AI 编程助手时，面临代码质量参差不齐且难以量化评估的困境。\n\n### 没有 react-doctor 时\n- **人工审查效率低**：资深开发者需花费数小时手动排查状态管理混乱、副作用滥用等隐蔽问题，严重拖慢重构进度。\n- **AI 修复不精准**：编码代理（Coding Agents）因缺乏统一的 React 最佳实践约束，常生成包含内存泄漏风险或冗余渲染的代码。\n- **死代码清理困难**：项目中存在大量未使用的组件、类型定义和重复逻辑，传统工具难以精准识别，导致打包体积虚高。\n- **质量评估主观化**：缺乏客观的健康度评分，团队无法量化重构成果，难以向管理层汇报技术债务的偿还情况。\n\n### 使用 react-doctor 后\n- **一键全面诊断**：运行单条命令即可并行扫描 60+ 项规则，自动识别架构缺陷、安全漏洞及性能瓶颈，将数小时的工作压缩至分钟级。\n- **赋能 AI 代理**：通过 `install` 命令让 Claude Code 或 Copilot 等助手内建 47+ 条 React 规范，确保 AI 生成的代码从源头符合高性能与正确性标准。\n- **精准清除冗余**：自动检测并列出未使用的文件、导出项及重复代码，指导团队安全删除死代码，显著优化构建产物大小。\n- **量化健康得分**：输出 0-100 的健康评分（如从 45 分提升至 82 分），用直观数据展示代码库的“健康状况”，让技术改进成果一目了然。\n\nreact-doctor 不仅将模糊的代码质量转化为可量化的健康分数，更成为连接人类开发者与 AI 助手的桥梁，确保 React 项目在快速迭代中始终保持架构整洁与高性能。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmillionco_react-doctor_6647ed30.png","millionco","Million Software, Inc.","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmillionco_56eabc48.png","",null,"https:\u002F\u002Fmillion.dev","https:\u002F\u002Fgithub.com\u002Fmillionco",[82,86,90,94],{"name":83,"color":84,"percentage":85},"TypeScript","#3178c6",98.8,{"name":87,"color":88,"percentage":89},"Shell","#89e051",1.1,{"name":91,"color":92,"percentage":93},"CSS","#663399",0.1,{"name":95,"color":96,"percentage":97},"JavaScript","#f1e05a",0,6235,195,"2026-04-18T05:30:05","MIT","Linux, macOS, Windows","未说明",{"notes":105,"python":103,"dependencies":106},"该工具是基于 Node.js 的命令行工具，非 AI 模型，无需 GPU。主要通过 npx 运行，支持 Next.js、Vite、Remix 等框架。需安装 Node.js（GitHub Actions 示例中默认使用版本 20）。",[107,108,109],"Node.js 20+","oxlint","knip",[13],[112,113,114,115,116],"agents","code-review","doctor","react","skill","2026-03-27T02:49:30.150509","2026-04-18T22:35:29.914808",[120,125,130,135,140,145],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},40664,"为什么运行时会报错 'jsx-a11y\u002Fno-noninteractive-element-interactions' 规则不存在？","这是由于 bundled oxlint 版本中缺少该规则导致的。维护者已在后续版本中修复。如果暂时无法升级，可以手动注释掉 `node_modules\u002Freact-doctor\u002Fdist\u002Fcli.js` 第 1311 行附近的 `\"jsx-a11y\u002Fno-noninteractive-element-interactions\": \"warn\",` 配置来避免检查失败。","https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fissues\u002F113",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},40665,"在 pnpm monorepo 项目中运行时，为什么提示 'No React dependency found in package.json'？","这是因为工具之前未能正确识别 `peerDependencies` 或 pnpm catalog 中的 React 依赖。该问题已在最新版本（通过 PR #108）中修复，请升级到最新版 react-doctor 即可解决。","https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fissues\u002F105",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},40666,"为什么 react-doctor 报告的 'set-state-in-effect' 问题与 eslint-plugin-react-hooks 不一致？","这是设计使然。react-doctor 的 `set-state-in-effect` 规则旨在捕捉更广泛的模式，侧重于代码质量而非仅仅是编译安全性。即使 React Compiler 的 eslint 规则没有标记，通过 useEffect 同步 props 到 state 也被视为一种常见的反模式，因此会被 react-doctor 指出。","https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fissues\u002F95",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},40667,"如何针对单行代码禁用特定的 react-doctor 诊断规则？","可以使用行内抑制注释。在需要忽略的代码上一行添加 `\u002F\u002F react-doctor-disable-next-line \u003Crule-name>` 即可。例如：`\u002F\u002F react-doctor-disable-next-line react-doctor\u002Fno-array-index-as-key`。该功能已在最新版本中支持。","https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fissues\u002F72",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},40668,"输出显示 '85\u002F2104 files'，是否意味着只分析了 85 个文件而忽略了其他文件？","不是 Bug。这表示在总共扫描的 2104 个文件中，有 85 个文件发现了问题。工具实际上扫描了所有文件，只是输出标签可能引起歧义。","https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fissues\u002F45",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},40669,"在 Windows 上运行时遇到 'SyntaxError: Unexpected token with' 错误怎么办？","该错误通常由依赖包（如 cli-spinners）的导入语法兼容性引起。维护者已通过构建时打包（bundling）修复了此问题。如果遇到此错误，请尝试清除 npm 缓存并重新安装最新版本的 react-doctor。","https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fissues\u002F26",[151,156],{"id":152,"version":153,"summary_zh":154,"released_at":155},324176,"react-doctor@0.0.38","## 新增内容\n\n### GitHub Action 改进\n- **`offline` 输入** — 在受限环境中跳过 API 调用（`offline: \"true\"`）\n- **`fail-on` + `offline`** 已在 README 的输入表中记录\n- **修复分离 HEAD 状态下的 diff 模式**，适用于 pull_request 事件\n- **移除 PR 评论中的 ANSI 转义码**（`NO_COLOR=1`）\n- **更新 PR 评论**，而非删除后重新创建（不再出现重复通知）\n\n### CLI 改进\n- **可点击的文件路径** — 输出现采用 `file:line` 格式，在 VS Code 及其他终端中可点击\n\n### 网站\n- **修复终端演示组件中的 Hydration 不匹配问题**\n\n### 文档\n- **所有配置选项均已记录** — 在 README 中新增了 `failOn`、`customRulesOnly`、`share`、`textComponents`","2026-04-17T04:06:25",{"id":157,"version":158,"summary_zh":159,"released_at":160},324177,"0.0.1","## 变更内容\n* 由 @aidenybai 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F1 中修复\n* 由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F3 中修复多选框的“a”键全选行为\n* 修复（CLI）：由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F4 中调整多行诊断帮助输出的缩进\n* 修复（CLI）：由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F5 中按严重程度为诊断计数添加颜色\n* 修复（CLI）：由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F6 中在摘要计数中添加严重程度图标\n* 新功能（CLI）：由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F7 中优化摘要页脚输出\n* 改进代理修复的 --prompt 剪贴板输出，由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F2 中完成\n* 将视频叠加文字移至底部，并添加较暗的渐变效果，由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F9 中完成\n* 更新 React Doctor 品牌资产及 README 中的主题感知型 Logo，由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F11 中完成\n* 修复 Favicon 徽章环形镂空问题，由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F12 中完成\n* 将 Twitter 图片设置为 React Doctor 横幅图，由 @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F14 中完成\n* 修复：由 @olivermontes 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F17 中将 TypeScript 添加为依赖项，以解决 npx\u002Fdlx 环境中的 knip 对等依赖问题\n* 杂项：将 Node.js 加入排行榜 ;)，由 @ovflowd 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F37 中完成\n* 检测 Expo 项目中的 React 编译器，由 @pchalupa 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F33 中完成\n* 修复（43）：移除静默的全局安装，由 @ankushdharkar 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F44 中完成\n\n## 新贡献者\n* @aidenybai 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F1 中做出了首次贡献\n* @ben-million 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F3 中做出了首次贡献\n* @olivermontes 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F17 中做出了首次贡献\n* @ovflowd 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F37 中做出了首次贡献\n* @pchalupa 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F33 中做出了首次贡献\n* @ankushdharkar 在 https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fpull\u002F44 中做出了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fmillionco\u002Freact-doctor\u002Fcommits\u002F0.0.1","2026-02-19T12:38:52"]