# DevEnv Doctor **Repository Path**: TWMTBYQY/dev-env-doctor ## Basic Information - **Project Name**: DevEnv Doctor - **Description**: 一条命令诊断 JDK、Maven、Node、Git、PATH、端口和国内镜像问题的 Windows 开发环境医生。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-08-06 - **Last Updated**: 2026-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: 开发工具, Windows ## README
DevEnv Doctor - 开发环境医生
# DevEnv Doctor(开发环境医生) 一条命令,找出 JDK、Maven、Gradle、Python/pip、Go、Docker/WSL、Node、Git、PATH、关键环境变量、端口和国内镜像为什么不能正常工作。 `Windows x64` · `Linux x64/ARM64` · `macOS Intel/Apple Silicon` · `单文件运行` · `只读诊断` · `中英文建议` · `Apache-2.0` 很多“项目跑不起来”并不是代码问题,而是旧版 Java 抢占 PATH、`JAVA_HOME` 已失效、Maven/Gradle 使用了另一套 JDK、Python 与 pip 没有对上、`GOPROXY`/`GOSUMDB` 配置不当、Docker CLI 找得到但本地 Engine 没启动、`ANDROID_HOME` 等项目变量漏配,或者 8080 端口早已被占用。DevEnv Doctor 把这些排查步骤压缩成一次本地扫描。 ## 为什么值得一试 - 无需安装:下载当前平台的单个 `devdoctor` 可执行文件即可运行,无需 Python、Node 或 JVM 作为工具运行时。 - 主程序只读:诊断过程不修改注册表、PATH、环境变量、Maven/Gradle/pip/Go/npm 配置,也不需要管理员权限。 - 不只看“装没装”:分别检查命令发现、实际执行、版本解析和工具间一致性。 - 按需检查项目变量:只读取 `--env` 明确指定的名称,自动判断常见目录、路径列表和 URL,也可手动指定类型。 - 面向国内网络:识别 Maven、Gradle、PyPI 和 Go Modules 国内镜像,同时检查 Gitee、Maven Central、npm 官方源和 npmmirror。 - 报告可分享:支持中文文本、JSON 和适合粘贴到 Gitee Issue 的 Markdown。 - 默认保护隐私:用户主目录在 Windows 替换为 `%USERPROFILE%`、在 Linux/macOS 替换为 `$HOME`;不读取 Maven 密码,不输出 Gradle 脚本正文、pip 索引凭据、Go 私有模块模式或 WSL 发行版名称,不上传任何数据。 ## 30 秒快速开始 ### 1. 下载 从 [Gitee Releases](https://gitee.com/TWMTBYQY/dev-env-doctor/releases) 下载: ```text devdoctor_v2.0.0_windows_amd64.zip devdoctor_v2.0.0_linux_amd64.tar.gz devdoctor_v2.0.0_linux_arm64.tar.gz devdoctor_v2.0.0_macos_amd64.tar.gz devdoctor_v2.0.0_macos_arm64.tar.gz ``` 解压后使用发布页中的 `SHA256SUMS`(Windows)、`SHA256SUMS-linux` 或 `SHA256SUMS-macos` 校验文件完整性。 ### 2. 运行 在 PowerShell 或 CMD 中执行: ```powershell .\devdoctor.exe ``` 不希望访问网络时: ```powershell .\devdoctor.exe --offline ``` 在 Linux 或 macOS 的 bash/zsh/sh 中执行: ```bash chmod +x devdoctor ./devdoctor ./devdoctor --offline ``` ### 3. 按建议修复 ```text [FAIL] PATH Java 与 JAVA_HOME Java 的主版本冲突 · JAVA-004 证据:PATH 主版本:8;JAVA_HOME 主版本:17 建议:将 JAVA_HOME\bin 放到旧 Java 路径之前,并重新打开终端。 [WARN] 已找到 npm,但执行失败 · NODE-002 证据:错误摘要:Error: EPERM: operation not permitted, lstat '%USERPROFILE%' 建议:检查安装目录、当前用户权限及相关配置文件。 ``` `FAIL` 表示 Java Web 核心链路不可用;`WARN` 是值得处理的风险;端口占用等正常现象使用 `INFO`,不会制造假故障。 ### 4. 可选:导出修复脚本 需要把本次问题整理成可审阅的 PowerShell 修复计划时: ```powershell .\devdoctor.exe --offline --export-fix devdoctor-fix.ps1 .\devdoctor-fix.ps1 ``` 直接运行导出的脚本只会预览计划,不会修改任何内容。先阅读完整脚本,再按需显式确认白名单动作: ```powershell # 预览 JAVA_HOME / PATH 调整计划 .\devdoctor-fix.ps1 -JdkHome 'C:\Java\jdk-17' # 确认后写入当前用户 JAVA_HOME,并在缺失时追加 %JAVA_HOME%\bin .\devdoctor-fix.ps1 -Apply -JdkHome 'C:\Java\jdk-17' # 确认后将 npm registry 切换为 npmmirror .\devdoctor-fix.ps1 -Apply -UseNpmMirror ``` 主程序从不运行生成的脚本。脚本不提权、不删除 PATH 项;没有安全白名单动作的问题仍只展示中文人工建议。 Linux/macOS 使用只读 `.sh` 修复计划: ```bash ./devdoctor --offline --export-fix devdoctor-fix.sh sh devdoctor-fix.sh ``` Unix 计划脚本只打印已脱敏的 FAIL/WARN 与人工建议,不包含写文件、改环境变量、改服务或切换软件源的命令。 ## 能检查什么 | 分类 | 当前能力 | | --- | --- | | 系统 | Windows amd64;Linux amd64/arm64;macOS Intel/Apple Silicon 系统版本与 UTF-8 终端输出 | | PATH | 无效、空项、相对目录、重复目录、同名工具多版本及优先级;有界分析超长 PATH/PATHEXT | | 环境变量 | 按需检查存在性、空值、本地路径/目录、路径列表和 URL;具体值始终隐藏 | | Git | 可执行文件位置和 `git --version` 健康状态 | | Java | `java`、`javac`、`JAVA_HOME`、主版本与路径一致性 | | Maven | Maven 版本、实际使用的 Java、用户/全局 `settings.xml` | | Maven 镜像 | 阿里云、华为云、腾讯云、官方及自定义镜像;识别非 HTTPS/凭据/参数风险并最小披露 URL | | Gradle | 版本、Launcher/Daemon JVM、全局初始化脚本及国内镜像,兼容 Gradle 8/9 输出 | | Python/pip | Python 3 解释器、pip 绑定版本、官方配置优先级、国内 PyPI 镜像及依赖混淆风险 | | Go | 本地工具链版本、GOROOT/GOPATH/GOMODCACHE、GOPROXY 回退规则、GOSUMDB 与私有模块范围 | | Docker | CLI 版本;Windows 固定命名管道;Linux 固定 Unix 套接字/systemd;macOS 固定 Docker Desktop 套接字;忽略远程 context | | WSL | Windows 上检查组件/内核版本、默认版本、发行版状态并隐藏名称;Linux/macOS 明确 `SKIP` | | Node/npm | Node 与 npm 分开检查,脱敏读取 npm registry 并识别 HTTP、凭据、查询参数与片段风险 | | 网络 | 五个固定开发站点的 DNS/TCP/TLS/HTTP 连通性与延迟 | | 端口 | 3000、5173、8080、3306、6379、5432、27017、80、22,以及最多 128 个用户追加端口 | | 报告 | Text、JSON、Markdown,统一状态和稳定字段;支持中文与英文界面 | | CI | Gitee Go 普通日志、GitHub Actions 三系统原生测试与注解,以及 `fail`/`warn`/`none` 门禁 | | 团队基线 | 严格 JSON 允许状态与 WARN/FAIL 上限,缺失检查也能识别为偏差 | | 声明式扩展 | 最多 32 项环境变量/本机端口期望,不允许配置命令、脚本或网络目标 | | 公开镜像目录 | 通过固定环境变量/严格 JSON 选择华为云、腾讯云 Maven/npm 公开 HTTPS 端点 | | 修复计划 | Windows 导出默认预览的 PowerShell 5.1 脚本;Linux/macOS 导出只打印建议的 POSIX sh 脚本 | 完整规则、严重度和修复方向见 [检查规则说明](docs/checks.md)。 ## 命令行用法 ```text devdoctor devdoctor --offline devdoctor --ci [--fail-on fail|warn|none] devdoctor --ci --ci-provider auto|gitee|github|plain devdoctor --format text|json|markdown devdoctor --output <文件路径> devdoctor --export-fix <新的.ps1或.sh文件> devdoctor --port <端口> # 可重复,最多 128 次 devdoctor --env # 可重复 devdoctor --lang zh|en # 默认 zh devdoctor --baseline devdoctor --rules devdoctor --mirrors devdoctor --only java,maven devdoctor --exclude network devdoctor --progress devdoctor --interactive devdoctor version devdoctor --help ``` 常用示例: ```powershell # 生成适合附到 Issue 的 Markdown 报告 .\devdoctor.exe --format markdown --output doctor-report.md # 输出 JSON,供脚本读取 .\devdoctor.exe --offline --format json # 导出修复计划;主程序只生成文件,绝不执行 .\devdoctor.exe --offline --export-fix devdoctor-fix.ps1 # 在默认端口之外追加 PostgreSQL 和自定义服务端口 .\devdoctor.exe --port 5432 --port 9090 # 自动判断 ANDROID_HOME,并把内部服务变量明确按 URL 检查 .\devdoctor.exe --offline --env ANDROID_HOME --env INTERNAL_API_URL:url # 输出英文报告;检查 ID、状态和退出码保持不变 .\devdoctor.exe --offline --lang en # 在 Gitee Go 中输出可检索注解,核心 FAIL 阻断流水线 .\devdoctor.exe --ci --ci-provider gitee --offline --fail-on fail # 更严格:任意 WARN 或 FAIL 都阻断流水线 .\devdoctor.exe --ci --offline --fail-on warn # 按团队基线校验稳定检查 ID 与问题数量 .\devdoctor.exe --offline --baseline .\team-baseline.json # 安全追加明确的环境变量与本机端口期望 .\devdoctor.exe --offline --rules .\team-rules.json # 从代码内置目录追加国内公开镜像;文件不能提供任意 URL .\devdoctor.exe --mirrors .\public-mirrors.json # 只检查 Java/Maven 并显示轻量分类进度 .\devdoctor.exe --offline --only java,maven --progress # 在真实终端中交互选择分类,完成后显示分步问题摘要 .\devdoctor.exe --interactive ``` 为防止误覆盖,`--output` 和 `--export-fix` 都只写入不存在的新文件,且不能指向同一路径。`--port` 最多追加 128 项,避免异常命令行放大端口扫描与报告;与默认端口或其他追加项重复时只探测一次。 `--env` 最多使用 32 次,格式为 `NAME[:TYPE]`。变量名仅支持便于跨平台迁移的 `[A-Za-z_][A-Za-z0-9_]{0,63}`;`TYPE` 可选: | TYPE | 检查方式 | | --- | --- | | `auto` | 默认;按变量名推断以下类型 | | `value` | 只检查存在、非空且不含控制字符 | | `path` | 检查本地绝对路径是否存在,可为文件或目录 | | `dir` | 检查本地绝对目录是否存在 | | `path-list` | 按系统分隔符检查最多 64 个本地路径项,只输出汇总数量 | | `url` | 离线检查绝对 URL 格式、HTTP 和内嵌凭据风险 | 自动模式将 `*_URL`、`*_URI`、`*_ENDPOINT` 视为 URL,将 `*_HOME`、`*_ROOT`、`*_DIR` 及常见 SDK 根变量视为目录,将 `PATH`、`CLASSPATH`、`GOPATH`、`PYTHONPATH` 等视为路径列表;其他名称只检查非空。推断不符合实际时请显式指定类型,例如 `--env CUSTOM_PATH:value`。 `--lang zh|en` 只切换帮助、报告和修复建议的显示语言,不改变检查 ID、状态分级、JSON 字段、执行顺序或退出码。英文 JSON 报告会增加 `"language": "en"`;默认中文报告保持原有结构,便于已有脚本继续使用。 `--ci` 会把 FAIL/WARN 的稳定 ID 与脱敏摘要写入标准错误,并按 `--fail-on` 设置门禁:`fail` 保持原有核心 FAIL 退出 1,`warn` 对任意 WARN/FAIL 退出 1,`none` 只报告不阻断。`--ci-provider auto` 自动识别 GitHub Actions,Gitee Go 建议显式使用 `gitee`。完整接入方式见 [CI 运行模式](docs/ci.md)。 `--baseline` 读取不超过 256 KiB 的严格 JSON 普通文件,按稳定 ID 校验允许状态并限制 WARN/FAIL 数量。规则 ID 可精确引用包含小写字母或下划线的动态 `ENV-*` 结果;未知字段、符号链接、读取期间被替换的文件、重复规则与命令形态字段均会被拒绝。文件路径、基线名称和正文不会进入报告。格式与示例见 [团队环境基线](docs/baseline.md)。 `--rules` 只接受 `environment` 与 `port` 两类声明式检查,复用既有只读探针并生成 `RULE-`;`required` 决定不匹配是 FAIL 还是 WARN。配置不能提供命令、脚本、文件内容或网络目标。格式与边界见 [安全声明式检查规则](docs/rules.md)。 `DEVDOCTOR_MIRRORS` 或 `--mirrors` 可从固定目录选择华为云/腾讯云 Maven 与 npm 公开 HTTPS 端点;只接受目录 ID,任何用户 URL 都会被拒绝,`--offline` 仍完全断网。目录与格式见 [固定公开镜像目录](docs/mirrors.md)。 `--only/--exclude` 按固定分类缩短执行时间,`--progress` 只向标准错误输出分类进度;`--interactive` 仅在真实终端中接受编号/分类名并给出分步问题摘要,重定向或 CI 不会阻塞。完整说明见 [分类执行与交互式诊断](docs/interactive.md)。 ### 退出码 | 退出码 | 含义 | | ---: | --- | | `0` | 没有核心 `FAIL`,即使存在 `WARN` 或 `INFO` | | `1` | 至少一个核心检查为 `FAIL` | | `2` | 参数错误、报告写入失败或诊断超过总时限 | CI 模式下,退出码 1 的触发范围由 `--fail-on` 调整;退出码 2 永远不会被门禁配置隐藏。 ## 隐私与安全 DevEnv Doctor 只执行固定白名单中的版本、网络和系统查询命令: - 不扫描整个环境变量集合,只读取 PATH、JAVA_HOME、MAVEN_HOME、GRADLE_HOME、GRADLE_USER_HOME 及明确列出的 pip 配置变量等必要项。 - 不读取 Maven `` 中的账号或密码;`` 最多检查 32 项,只输出脱敏地址、公开分类和 `mirrorOf` 是否设置。 - Gradle 只读取官方全局初始化脚本位置,不扫描项目源码、不输出脚本正文、不运行可能触发下载的 `gradlew`。 - Python 只执行固定版本探针;不会运行 WindowsApps 安装别名、虚拟环境激活脚本或项目 Python 文件。pip 配置只从官方位置和显式 `PIP_CONFIG_FILE` 限量读取,`XDG_CONFIG_DIRS` 仅检查前 64 个绝对目录。 - Go 只执行固定的 `go version` 与 `go env -json`;诊断进程强制 `GOTOOLCHAIN=local`、`GOWORK=off`,不下载工具链、模块或校验数据。 - Docker 只执行 `docker --version`;Windows 用 Win32 API 探测固定命名管道,Linux 读取固定 Unix 套接字元数据与 `systemctl show`,macOS 只读取固定 Docker Desktop 套接字元数据。它不会读取 Docker 配置、枚举容器/镜像,也不会使用 `DOCKER_HOST` 或 context 连接远程主机。 - WSL 仅在 Windows 执行系统目录中的 `wsl.exe --version`、`--status`、`--list --verbose`;不会启动、停止、安装、更新或转换发行版,报告只保留最多 256 项的数量与版本分布,截断时不会误报通过。Linux/macOS 直接跳过。 - 通用环境变量只通过 `os.LookupEnv` 读取最多 32 个显式名称;值、路径、URL、凭据和底层文件错误都不会进入报告。路径只用 `Lstat` 检查本地绝对目标,不跟随符号链接,也不访问 UNC/设备路径;URL 不联网。 - 不执行来自配置文件、网络或用户输入的任意命令。 - Windows `ver` 只保留数字版本,外部命令中的本地化标签与未识别原文不会进入 JSON 系统元数据。 - CI 自动识别只读取四个固定标志变量且不输出其值;CI 控制行不包含证据、建议或流水线密钥。 - 团队基线只接受允许状态和数量上限,不支持命令、脚本、网络地址或配置值;路径、名称和正文不进入报告。 - 声明式规则只扩展明确环境变量和本机端口数字,不能扩大命令白名单;变量值、路径、URL 与规则包身份保持隐藏。 - 公开镜像扩展只接受四个代码内置目录 ID,不能访问用户 URL、内网或本机地址;选择变量的原始值和文件路径不进入报告。 - 交互输入只接受固定分类编号/名称和网络确认,不会作为命令、路径或 URL 使用;非终端输入会直接拒绝。 - 每个外部命令都有超时和输出上限:一般命令每个输出流 64 KiB,Windows/macOS 端口表为 4 MiB;截断状态会进入判定。 - PATH 只分析前 256 项,Windows PATHEXT 最多接受 16 个安全扩展,每个工具最多保留 64 个候选;相对目录和超限都会产生 `WARN`。Windows 固定系统工具从系统目录解析,不信任 PATH、`ComSpec` 或 `SystemRoot`。 - 网络探测只请求代码内置的五个默认 HTTPS 地址,以及用户显式选择的固定公开镜像目录端点;初始地址拒绝 HTTP/凭据,最多跟随 3 次同 HTTPS 源重定向,跨主机或降级跳转会被拒绝。在线模式遵循标准 `HTTP_PROXY`、`HTTPS_PROXY`、`NO_PROXY`(含小写形式),但不会把代理值或底层网络错误原文写入报告;`--offline` 可完全跳过。 - 报告只写到标准输出,除非显式使用 `--output`;只有显式使用 `--export-fix` 才创建修复脚本。 - 中英文转换完全在本机内存中进行,不请求翻译服务,也不会把报告内容发送到网络。 - 导出的脚本只包含已脱敏的 FAIL/WARN 摘要和建议,不包含诊断证据;主程序不会运行脚本。 - Linux 系统信息只限量读取 `/etc/os-release`(缺失时回退 `/usr/lib/os-release`)和 `/proc/sys/kernel/osrelease`;端口检查只读取 `/proc/net/tcp*`,不扫描 `/proc//fd`。 - macOS 系统信息只执行固定 `/usr/bin/sw_vers`;端口检查只执行固定 `/usr/sbin/netstat -an -p tcp`,不收集进程身份。 - 没有遥测、更新检查、云服务或后台进程。 更多细节见 [隐私设计](docs/privacy.md) 和 [安全政策](SECURITY.md)。提交 Issue 前仍建议快速浏览报告,确认其中没有业务私有信息。 ## 从源码构建 要求 Go 1.25 或更高版本,正式发布推荐使用最新稳定补丁版。 ```powershell git clone https://gitee.com/TWMTBYQY/dev-env-doctor.git cd dev-env-doctor .\scripts\test.ps1 .\scripts\build.ps1 -Version v2.0.0 -Target all .\scripts\package.ps1 -Version v2.0.0 ``` 项目仅使用 Go 标准库,不需要下载第三方 Go 模块。`all` 构建 Windows、Linux 与 macOS 共五个受支持目标;PowerShell 打包脚本生成 Windows ZIP,Unix 打包脚本生成 Linux/macOS 双架构发布物: ```bash ./scripts/test.sh ./scripts/build.sh v2.0.0 all ./scripts/package.sh v2.0.0 ``` Unix 打包脚本先在暂存目录设置二进制和文档权限;BSD tar 使用原生文件模式,GNU tar 分支显式固定归档模式,因此 Linux、macOS 与 MSYS 验证都能生成相同的五文件权限布局。 构建和打包脚本只接受 `v?MAJOR.MINOR.PATCH`,以及可选的点分 `-prerelease`、`+build` 后缀;空点段、重复 `+`、路径分隔符或空白会在创建制品前被拒绝。 开发、测试和发布说明见 [开发指南](docs/development.md)。 ## 常见问题 ### 会自动帮我修改 JAVA_HOME 或 PATH 吗? 不会。诊断程序始终只读。Windows 的 `--export-fix` 只生成一个默认处于预览模式的脚本;你必须先阅读脚本,再显式传入 `-Apply` 和 `-JdkHome`,脚本才会写入当前用户的 Java 环境变量。Linux/macOS 生成的 `.sh` 计划始终只打印建议,没有任何写操作或启用写操作的参数。 ### 为什么找到 npm 仍然显示 WARN? 文件存在不代表能够执行。npm 还可能因用户目录权限、损坏的配置文件或 Node 路径异常失败。工具会同时展示发现结果、退出码和脱敏后的关键错误。 ### 没有安装全局 Gradle,为什么显示 SKIP? Gradle 官方推荐项目使用 Wrapper。DevEnv Doctor 不会执行 `gradlew`/`gradlew.bat`,因为 Wrapper 可能联网下载发行包并写入缓存;只有 PATH 中已有全局 `gradle` 时才运行只打印版本信息的 `gradle --version`。因此未安装全局 Gradle 属于可选项缺失,不影响退出码。 ### 为什么只发现 WindowsApps Python 别名时显示 SKIP? 新版 Windows Python 安装管理器在没有运行时时可能自动安装 Python。为保持诊断只读且完全可控,DevEnv Doctor 不执行 `%LocalAppData%\Microsoft\WindowsApps` 下的 `python`/`py` 别名;检测到真实解释器或旧版安全启动器后才运行固定版本命令。 ### pip 镜像报告为什么隐藏了完整 URL? 索引 URL 可能包含账号、密码、token、内部路径或查询参数。报告只显示协议、主机和镜像分类;`extra-index-url` 会提示依赖混淆风险,`trusted-host` 会提示证书校验风险,但不会输出具体主机值。 ### Go 检查会下载工具链或测试拉取模块吗? 不会。工具只运行固定的 `go version` 和 `go env -json`,并在这两个子进程中强制使用 `GOTOOLCHAIN=local`、`GOWORK=off`。它不会运行 `go get`、`go install`、`go mod download` 或任何构建命令,也不会为了测试镜像而写入模块缓存。`GOPROXY`、`GOSUMDB` 和私有模块范围均为本地静态判断。 ### Docker/WSL 检查会启动容器或发行版吗? 不会。Docker 检查只读取 CLI 版本与固定本机元数据:Windows 查询 Engine 命名管道和 `com.docker.service`,Linux 用 `Lstat` 检查固定套接字并以 `systemctl show` 查询服务,macOS 只检查 `$HOME/.docker/run/docker.sock` 等固定本机路径。它不打开套接字,即使设置了 `DOCKER_HOST`/`DOCKER_CONTEXT` 也不会连接远程主机。WSL 仅在 Windows 查询版本、状态和发行版列表;Linux/macOS 直接 `SKIP`。 ### `--env API_TOKEN` 会把令牌写进报告吗? 不会。`value` 类型只判断变量是否存在、非空且不含控制字符;任何类型都不会输出原始值、长度、哈希或局部片段。报告会显示你主动指定的变量名,因此变量名本身包含内部项目代号时,公开分享前仍应检查。 ### 为什么端口占用不是 FAIL? 3306 被 MySQL、6379 被 Redis 占用通常正是正常状态。只有当你的应用需要同一端口时才需要处理,因此统一显示为 `INFO`。 ### 网络检查失败会影响 Java/Maven/Gradle/Python/Go 结果吗? 不会。网络或镜像不可达只记为 `WARN`。使用 `--offline` 可在受限网络中只检查本机环境。 ### Windows 提示“未知发布者”怎么办? 当前开源版本暂无商业代码签名证书。请只从本仓库 Release 下载,核对 `SHA256SUMS`,也可以按上面的步骤自行从源码构建。 更多排查方式见 [故障排查](docs/troubleshooting.md)。 ## Roadmap - v1.0:Windows Java Web 核心链路,只读诊断与三种报告。 - v1.1(功能完成):安全修复计划、分类/进度、常用端口、固定公开镜像目录与 Windows 编码兼容。 - v1.2(功能完成):Gradle、Python/pip、Go Modules、Docker/WSL 与按需环境变量检查。 - v1.3(功能完成):Linux amd64/arm64、macOS Intel/Apple Silicon 与 `--lang zh|en` 中英文界面。 - v2.0(功能完成):CI 门禁、团队基线、安全声明式检查和交互式分类诊断;见 [v2.0.0 发布说明](docs/releases/v2.0.0.md)。 详细计划见 [Roadmap](docs/roadmap.md)。功能优先级由真实 Issue 和社区反馈决定。 ## 参与贡献 欢迎提交以下内容: - 一个可复现的开发环境故障样本。 - 不包含个人信息的命令输出夹具。 - 国内镜像、跨平台适配、Windows 编码或工具版本解析改进。 - 文档纠错和更清晰的中文修复建议。 开始前请阅读 [贡献指南](CONTRIBUTING.md) 和 [行为准则](CODE_OF_CONDUCT.md)。 ## 如果它帮你少踩了一个坑 请在 Gitee 点一个 Star,让更多刚配环境的开发者更容易找到它。遇到误报或漏报,请直接提交 Issue——真实故障样本比堆功能更有价值。 ## License [Apache License 2.0](LICENSE) © 2026 TWMTBYQY