用途:把本机多套包管理器与运行时并存的“接缝问题”变成可查账的状态——谁排在 PATH 前面、node/python 归谁、全局包装进哪个 prefix、哪个链接失效。定位类似 brew doctor / npm doctor 的环境医生。
主要能力:
- 确定性体检。运行 bash "<本skill目录>/scripts/env-doctor.sh" 为快速体检(本地信息,秒级);加 full 为深度体检(追加 brew outdated,需网络);snapshot 用于建立漂移基线(rc 哈希 + LaunchAgents 名单);record "说明" 用于记账。输出八段:node/npm/npx 垫片归属比对、PATH 解析与解释器版图、各包管理器与全局落点、缓存体积、~/.local/bin 符号链接与死链、LaunchAgents 与 cron 明细、账本尾部、环境漂移对照。
- 退出码:0 正常;2 检测到垫片漂移;3 无法解析 nvm 默认。第 8 节环境漂移只报告不计入退出码。agent 巡检以退出码为准。
- 账本位于 ~/.config/env-ledger.md,纯文本追加,每行记录日期时间、操作与回滚方式。
安装纪律:Node 包用 npm i -g 且 npm 必须来自 nvm 当前默认版本(用 npm prefix -g 核对);Python CLI 用 uv tool install 或 pipx install,不用 pip install --user 手装 CLI;系统依赖用 brew install;bun 全局尽量少用,装了必记账。修改 shell rc、注册 LaunchAgent 或 cron、在 ~/.local/bin 新增或改指运行时垫片,默认禁止,除非用户当次明示授权并事后记账。~/.local/bin 为全机唯一垫片层,只允许跟随 nvm default 重指并记账。
限制:无外部硬依赖,需 bash 3.2+ 与 macOS 标准命令;npm/uv/pipx/brew 缺失时对应段自动降级。判断归属看链接与 prefix,版本号一致不代表同一个 node。厂商应用升级后先体检,报 🚨 时只报告不擅自改回。部署为 ~/.agents/skills/env-doctor 符号链接,跨 agent 生效。已知基线见 references/known-baseline.md,漂移时更新并记账。