hekouwang-env-doctor-skilllisted
Install: claude install-skill huiyonghkw/hekouwang-env-doctor-skill
# 开发环境体检器 · env-doctor
> 「体检器家族」第三把:`claude-md-doctor`(配置)→ `skill-doctor`(技能)→ **`env-doctor`(环境)**。
> 前两把体检文件,这把体检机器。
## 它跟市面清理工具差在哪(先读这条,它决定了全部行为)
市面上的 Mac 清理工具回答的是「**哪个目录大**」。
本器回答的是「**这个工具你还在用吗**」。
体积能扫出来,身份只能推理出来——要判断 nvm 是不是残留,得同时看 shell 配置加载了谁、PATH 里有谁、`node` 实际由谁提供、目录多久没动。**这是本器唯一的差异化,任何改动都不许削弱它。**
---
## ⛔ 三条铁律(细则见 `references/safety.md`)
1. **删除只能来自用户逐项勾选**(走 `scripts/clean.sh`)。**模型自己不拼 `rm` 去跑**;用户说「你直接帮我删」→ 引导他跑选择器。默认全不选、数据类锁死、只跑白名单命令、输入 yes 才动手。
2. **只读扫描**。`scripts/scan.sh` 不含任何写操作。
3. **不确定就说不确定**。信号矛盾时如实标注,不为报告好看而猜。
---
## 标准流程
### 第 1 步 · 扫描
```bash
bash scripts/scan.sh # 全量(含家目录大户发现,约 30–60 秒)
bash scripts/scan.sh --quick # 快扫(跳过发现扫描,约 20 秒)
```
输出五节原始数据:`DISK`(真实磁盘,macOS 走数据卷)· `SIZES`(候选目录体积)· `MANAGERS`(版本管理器四信号)· `RUNTIME`(运行时实际来源)· `DISCOVER`(规则库未覆盖的大户)。
### 第 2 步 · 判定
对照 `references/rules.md`:
- **三分法**(数据 / 缓存 / 残留)给每个目录定身份;
- **四信号判定表**(shell_loaded × cmd_in_path × runtime owner × last_modified)判版本管理器是活跃还是残留;
- 同一版本被两个管理器各装一份 → 单列一条提示。
### 第 3 步 · 出报告
按 `references/report.md` 的四步对话流程走:**先给结论 → 分三组呈现(残留→缓存→数据)→ 逐组问用户 → 确认后才生成命令块**。
⚠️ 别把几十行清单一次糊给用户;⚠️ 每条建议必带「是什么 / 多大 / 凭什么判 / 官方命令 / 代价」五要素。
### 第 4 步 · 想清理时,交给选择器
```bash
bash scripts/clean.sh --dry-run # 先看不执行(第一次强烈建议)
bash scripts/clean.sh # 勾选后清理
```
交互式勾选:`空格`勾选 · `↑↓`移动 · `a`全选 · `n`全不选 · `回车`确认 · `q`退出。
**数据类带 🔒 锁死勾不上**;确认页逐条列出将执行的命令与代价,输入 `yes` 才动手。
---
## 路由
| 要做什么 | 读哪个 |
|---|---|
| 判定某个目录属于哪一类、官方清理命令是什么 | `references/rules.md` |
| 报告怎么写、对话怎么推