该技能用于诊断 Grove 安装是否正常。触发场景:Grove 设置未按预期工作,或用户要求排查 Grove 安装。
工作流程:按顺序执行各项检查,收集全部结果,最后打印完整报告。
检查项及判定:
- 平台:运行 diskutil info / | grep "File System"。输出含 APFS 为 PASS;是 macOS 但非 APFS 为 WARN;非 macOS 为 FAIL。
- CLI 是否安装:command -v grove。返回路径为 PASS,未找到为 FAIL,修复见 https://github.com/chrisbanes/grove 的安装说明。
- CLI 版本:grove version。PASS 时记录版本字符串;报错为 FAIL,需重装 CLI。
- 是否已初始化:test -f .grove/config.json。存在为 PASS,不存在为 FAIL,需运行 grove:grove-config 技能初始化。
- Golden copy 健康:git status --porcelain、git rev-parse --abbrev-ref HEAD、git rev-parse --short HEAD。无输出为 PASS,有未提交更改为 WARN(报告脏文件数,建议先提交或暂存),并记录分支名与短提交哈希。
- 工作区目录:读取 .grove/config.json 中的 workspaceDir,再运行 test -d <workspaceDir> && test -w <workspaceDir> 与 df -h <workspaceDir>。目录存在、可写且有空间为 PASS;可用空间低于 5 GB 为 WARN;不存在或不可写为 FAIL,修复用 mkdir -p <workspaceDir> 或调整权限。
- Hooks:test -x .grove/hooks/post-clone。存在且可执行为 PASS,否则 FAIL,修复 chmod +x .grove/hooks/post-clone。
- 活跃工作区:grove list --json。PASS 时报告数量,created_at 超过 7 天标记为可能过期;命令报错为 FAIL。
输出格式:打印 Grove Doctor Report 报告,逐项列出 [PASS]、[WARN]、[FAIL] 及各检查结果;每个 FAIL 附 Fix 行给出具体命令或可操作建议,每个 WARN 附 Suggestion 行。
注意事项:必须在 git 仓库根目录运行,否则检查 4、5 结果会误导;应打印包含 PASS 项的完整清单;每个 FAIL 都要给修复命令。红旗信号:从检查 2 起多项 FAIL 说明 CLI 未安装,后续检查无意义,应先修复 CLI;Golden copy 处于 detached HEAD 时,由其创建的工作区缺少分支上下文;工作区目录位于非 APFS 卷时 CoW 克隆不可用,Grove 要求 APFS。该技能为独立使用,出错时手动调用,不会被其他技能自动调用。