cli-doctorlisted
Install: claude install-skill MaxHou-infinity/cli-doctor
# cli-doctor Skill
## 何时使用
- 用户想了解本机 CLI 相关工具**版本现状 / 谁需要升级 / 升级风险**。
- 用户升级前想评估:哪些是工具、哪些是依赖库、彼此耦合、升级风险。
- 升级完成后用于**验证**是否全部到位(此时应看到"无待升级项"或只剩刻意保留项)。
## 铁律(安全边界)
1. **只读检查,绝不自动升级。** 未经用户明确同意(且给出范围),不执行任何 `brew upgrade` / `npm i -g` / `pip install -U` / `rustup update` 等写操作。
2. 报告必须能让用户**自己拍板**:每条给出 当前版本 / 最新版本 / 手动升级命令 / 作用 / 耦合 / 风险。
3. 升级正在运行的 CLI 自身(如 dsh)需提醒避开运行期;npm 12+ 有 install 脚本拦截;brew 服务类升级后需重启服务。
## 执行步骤
### 第 1 步:采集数据
运行 Skill 自带 CLI 的 JSON 模式,作为 Agent 分析输入:
```bash
node <本skill目录>/bin/check.js --json
```
> 通过 npx 从 GitHub 源运行时,npm 12+ 需加放行参数:
> `npx --yes --allow-git=all github:MaxHou-infinity/cli-doctor [--json|--fast]`
> (也可一次性 `npm config set allow-git all`。)
可选参数:`--fast`(跳过网络刷新与版本比对)、`--no-update`(跳过 brew update)、`--pypi-index <url>`(指定 pip 镜像)。
若本机没有 node / 没有仓库副本,用下面"手工回退命令表"逐项采集。
### 第 2 步:分类与分块(报告骨架固定)
- **一级分类**:工具类 / 依赖包类
- **二级分块**:Homebrew、npm 全局、Python/pip、Rust·Bun·uv 自管理、无统一升级渠道 CLI
- 判定标准(CLI 已自动做,手工时按此):
- Homebrew:`brew leaves` = 工具类;`brew outdated` 中非 leaves = 依赖库。
- npm 全局:顶层包基本全是工具;判断是否提供命令看其 package.json 的 bin。
- pip:**反查 console_scripts**(有入口的才是 CLI 工具),其余 90% 是依赖库 —— 不要把 158 个库全列成"工具"。
- rust:rustup 组件(rustc/clippy/rustfmt)≠ cargo install 的第三方工具;uv tools 单独列。
- 无统一渠道:hermes/agy/bsk/browse-now/luckin 等,各自自查,不做自动版本比对。
### 第 3 步:生成最终报告(强制输出契约)
默认直接在 Agent 对话中输出 Markdown,不创建额外文件。CLI 的 Markdown 模式只是采集层摘要,**不得直接复制为 Skill 的最终答案**。
报告层级和顺序固定:
1. **工具类**
- Homebrew
- npm 全局
- Python / pip
- Rust / Bun / uv 等自管理工具
-