关于 ops-doctor
ops-doctor 是用于诊断 ops 插件的 Claude Code 技能,可安排 Agent 处理发现的错误和警告。check-only 选项只报告结果,不继续修复。
主要功能
- 01运行插件健康诊断
- 02以 JSON 报告错误和警告
- 03支持仅检查并报告
- 04安排 Agent 修复问题
- 05修复后再次验证
适用场景
- 01检查插件配置与健康状况
- 02查找清单或注册表中的问题
- 03通过后续诊断验证修复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill ops-doctor安装后在 Claude Code 中输入/ops-doctor确认已加载。
详细介绍
运行时上下文
诊断前,加载:
- 偏好设置:
cat ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json— 检查所有已配置的渠道和服务 - 守护进程健康状态:
cat ${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json— 主要诊断输入 - 密钥:验证密钥解析链是否正常:Doppler MCP → 环境变量 → Doppler CLI → 密码管理器
OPS ► DOCTOR
CLI/API 参考
ops-doctor 二进制脚本
| 命令 | 用法 | 输出 |
|---|---|---|
${CLAUDE_PLUGIN_ROOT}/bin/ops-doctor | 运行完整的健康诊断 | 包含 errors、warnings、tools、env_vars、registry 的 JSON |
${CLAUDE_PLUGIN_ROOT}/bin/ops-doctor 2>/dev/null || echo '{"errors":["diagnostic_script_failed"]}' | 运行并使用回退方案 | JSON 或错误标记 |
诊断读取的关键文件
| 文件 | 用途 |
|---|---|
${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json | 主要守护进程健康状态输入 |
${CLAUDE_PLUGIN_DATA_DIR}/preferences.json | 已配置的渠道和服务 |
${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json | 插件清单验证 |
${CLAUDE_PLUGIN_ROOT}/scripts/registry.json | 项目注册表验证 |
阶段 1 — 运行诊断
运行诊断脚本以获取完整的健康报告:
${CLAUDE_PLUGIN_ROOT}/bin/ops-doctor 2>/dev/null || echo '{"errors":["diagnostic_script_failed"],"warnings":[]}'
解析 JSON 输出。显示摘要:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OPS ► DOCTOR — [timestamp]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Plugin: [version] at [plugin_root]
Skills: [count] defined
Agents: [count] defined
Bin scripts:[count] available
ERRORS [count]
[list each error with description]
WARNINGS [count]
[list each warning with description]
TOOLS
[table of CLI tool availability]
ENV VARS
[table of env var status]
Registry: [status] ([project_count] projects)
Preferences:[status]
Cache: [versions list]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Agent Teams 支持
如果已设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1,当发现多个相互独立的修复类别时(例如清单问题 + 权限问题 + 注册表问题),使用 Agent Teams。这样可以:
- 修复 Agent 并行处理不同的问题类别,互不干扰
- 你可以设定优先级:“先修复清单错误,再处理权限”
- Agent 之间共享上下文,因此修复清单时获取的信息可以帮助修复注册表
团队设置(仅在启用标志且存在多个问题类别时):
TeamCreate("doctor-fixers")
Agent(team_name="doctor-fixers", name="fix-manifest", subagent_type="ops:doctor-agent", ...)
Agent(team_name="doctor-fixers", name="fix-permissions", subagent_type="ops:doctor-agent", ...)
Agent(team_name="doctor-fixers", name="fix-registry", subagent_type="ops:doctor-agent", ...)
如果未设置该标志,或只有一个问题类别,则使用单个 doctor-agent 子 Agent。
阶段 2 — 决策
如果 $ARGUMENTS 包含 --check-only:到此为止,仅显示结果。
如果存在错误或警告:
显示:“发现 [N] 个问题。正在启动 doctor agent 自动修复……”
然后启动 doctor agent(或 Agent Team — 参见上文):
Agent({
subagent_type: "ops:doctor-agent",
prompt: "Fix the following ops plugin issues.\n\nDIAGNOSTIC_JSON: [paste full JSON]\nPLUGIN_ROOT: ${CLAUDE_PLUGIN_ROOT}\nCACHE_DIR: ~/.claude/plugins/cache/ops-marketplace/ops\n\nFix all errors and warnings. Re-run diagnostics after to verify.",
description: "Fix ops plugin issues"
})
如果没有错误和警告:
显示:“所有检查均已通过。插件运行正常。”
阶段 3 — 修复后验证
Agent 完成后,重新运行诊断:
${CLAUDE_PLUGIN_ROOT}/bin/ops-doctor 2>/dev/null
显示更新后的结果。如果仍有错误,向用户报告并提供手动修复说明。
原生工具用法
WebSearch — 查找已知问题
诊断发现错误时,使用 WebSearch 检查该问题是否为已知的 Claude Code 插件缺陷、MCP 服务问题或配置问题。附上相关 GitHub 问题或文档的链接。
WebFetch — MCP 健康检查
对于看起来已断开连接的 MCP 服务,使用 WebFetch 直接测试其底层 API(例如,向 https://api.linear.app/graphql 发送简单查询),以区分“MCP 故障”和“API 不可用”。