用途:doctor 是 autoloop 集群的自诊断技能,用于发现集群中的僵尸条目、孤立进程、标签冲突、多 cwd 污染、陈旧绑定和缺失心跳等问题,并按循环给出 GREEN/YELLOW/RED 严重度报告与修复提示。
主要能力:交叉核对 registry.json、heartbeat.json 文件、launchctl list 输出、plist 文件,并轻度检查 ~/.claude/projects JSONL 会话记录。严重度模型:RED 表示已知损坏状态需处理(僵尸 launchctl 条目、多 cwd 污染、标签冲突、契约文件缺失、cwd_drift_detected);YELLOW 表示可能正常但值得关注(pending-bind 超过 1 小时、dead pid 但有心跳);GREEN 表示健康。
使用方式:支持 --json(输出结构化 JSON 报告而非终端可读报告)和 --fix(仅执行安全自动修复)。运行示例保留原命令:PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/marketplaces/cc-skills/plugins/autoloop}";source "$PLUGIN_ROOT/scripts/doctor-lib.sh";随后按参数调用 loop_doctor_fix 或 loop_doctor_report --json / loop_doctor_report。
--fix 自动修复范围:卸载无 registry 记录的僵尸 launchctl 条目(匹配 com.user.claude.loop.* 的标签,执行 launchctl bootout gui/$(id -u)/<label> 并删除孤立 plist);清理 contract_path 以 /var/folders/ 开头的测试残留 registry 条目。--fix 永不执行:不 spawn claude --resume,不自动回收有活跃所有者的循环(应使用 /autoloop:reclaim <loop_id>),不修改 bound_cwd 或清除 cwd_drift_detected,不删除 heartbeat 文件或状态目录。
配套自愈:heal-self.sh 在每次 SessionStart 钩子触发时自动运行,并以内容哈希门控;将 owner_session_id 属于 unknown、unknown-session、'' 或 pending-bind 且超过 1 小时的条目归档到 ~/.claude/loops/registry.archive.jsonl,归档为追加写、便于取证。
限制与参考:该技能为自进化型,遇到可复现的真实问题才更新;相关库文件为 plugins/autoloop/scripts/doctor-lib.sh,配套脚本为 plugins/autoloop/scripts/heal-self.sh。具体平台与依赖要求暂未提供。