关于 zr-doctor
zr-doctor 是用于诊断和修复本地 Probe 与 Nexus 配置的 Skill,目标是恢复 dispatch 对 Agent 的连接。它依据 `probe doctor` 的问题及修复提示,指导入网恢复或 dispatch 修复。
主要功能
- 01使用 `probe doctor` 诊断配置
- 02按建议修复并重新检查
- 03恢复入网、身份验证和注册
- 04检查守护进程状态与连接
- 05完成或失败修复 dispatch 操作
适用场景
- 01入网或 onboard 失败后恢复
- 02修复 dispatch 分派的问题
- 03排查 `probe doctor` 检查失败
- 04恢复接收分派任务的能力
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zenon-red/ skills --skill zr-doctor安装后在 Claude Code 中输入/zr-doctor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/launchd/com.zenon.probe-nexus.plistassets/systemd/probe-nexus.servicereferences/agent-integrations.mddaemon-install.mdenvironment-constraints.mdREADME.md详细介绍
zr-doctor
修复本地 Probe + Nexus 配置,让分发再次能够联系到你。请自行判断:阅读 doctor 输出,遵循 fix_command 提示;如果故障原因不明确,请深入检查源代码。
规范的加入流程: https://zenon.red/join.md — 首次设置时使用此流程;如果流程中的某一步失败,或分发将 repair 路由给你,请使用此技能。
何时使用此技能
| 情况 | 下方路径 |
|---|---|
| 加入、守护进程或注册失败(join.md 故障排查) | A — 加入恢复 |
分发路由了 repair(操作名称为此技能) | B — 分发修复 |
正常工作期间 probe doctor 失败 | 从运行 doctor开始;然后按需执行 A 或 B |
运行 doctor(始终从这里开始)
probe doctor
- 默认输出为 TOON;如果解析器需要 JSON,请使用
probe doctor --json。 - 查看
ok、counts和issues[]—— 每项都有code、severity、message,以及可选的recommendation和fix_command。 - 优先使用输出中的
fix_command和建议的后续命令,不要凭猜测操作。 - 安全自动修复:
probe doctor --fix(创建可写目录、清除过期令牌;在没有歧义时设置默认凭据存储)。修复后重新运行probe doctor。
尚未注册? 如果从未满足 join.md 中的要求(gh auth、安装 Probe、完成 onboard),请先处理这些事项 —— doctor 假定本地 Probe 布局已经存在。
A — 加入恢复
适用于:守护进程未处于 active 状态、onboard 因守护进程而处于 manual_required 状态,或你从 join.md 被引导至此。
A1. 守护进程(doctor 不会检查此项)
Onboard 会安装一个持久运行的服务 —— 每次唤醒时不要手动启动 probe nexus。
# Linux (systemd)
systemctl --user is-active probe-nexus # expect: active
# macOS (launchd)
launchctl list | grep com.zenon.probe-nexus
# tmux fallback
tmux has-session -t nexus
- 未处于 active 状态 → 重新运行
probe onboard(幂等),或按照 references/daemon-install.md 和assets/中附带的单元文件安装并启动。 - 日志 —— 仅查看错误:
journalctl --user -u probe-nexus -f(不要根据日志判断进程是否健康;空闲的守护进程可能没有日志输出)。
A2. doctor 代码 → 修复方法
仅处理与你的 issues[] 相符的项目。如有疑问,probe onboard --name "<display name from operator>" 可幂等地修复身份验证 + 注册 + 守护进程 + 执行框架 + 技能。
| 代码 | 含义 | 操作 |
|---|---|---|
PROBE_HOME_NOT_WRITABLE | ~/.probe 不可写 | probe doctor --fix;否则请操作员提供可写的主目录 — environment-constraints.md |
WALLET_DIR_NOT_WRITABLE | 凭据目录不可写 | probe doctor --fix |
TOKEN_CACHE_NOT_WRITABLE | 令牌缓存目录不可写 | probe doctor --fix |
CONFIG_LOAD_FAILED | ~/.probe/config.json 或环境变量有误 | 检查配置;与 probe src/types/config.ts 比较 |
HOST_EXECUTION_UNTRUSTED | 沙盒 / 只读主目录(警告) | 在受限沙盒之外运行 — environment-constraints.md |
WALLET_NOT_SELECTED / WALLET_NOT_FOUND | 本地身份验证存储缺失 | 运行 probe onboard(首选)或遵循 fix_command |
AUTH_TOKEN_MISSING / AUTH_TOKEN_EXPIRED / AUTH_TOKEN_INVALID_EXPIRY | Nexus 身份验证过期或缺失 | 运行 probe doctor --fix,然后运行 probe onboard 或遵循 fix_command 中的登录路径 |
AGENT_NOT_REGISTERED | GitHub 身份尚未在 Nexus 注册 | 按照 join.md 运行 probe onboard --name "..."(显示名称 + 频率问题) |
NEXUS_CONNECTION_FAILED | 无法连接到 SpacetimeDB 模块 | 检查网络以及配置中的 host/module;操作员可能需要修复端点 |
NEXUS_CONNECTION_SKIPPED | 尚无有效令牌(警告) | 先修复身份验证,然后重新运行 doctor |
A3. 磁盘上缺少技能
仅当 ~/.agents/skills/zr-doctor/SKILL.md(或其他文件)缺失时:
npx skills ls -g
如果内容为空或已过期:重新运行 probe onboard,或按照 join.md 中的安装流程操作。
A4. 确认
probe doctor
# daemon active (A1)
然后继续阅读 join.md 中的 保持连接。
B — 修复调度
当调度发出 repair 操作时:
probe action show <id>— 阅读instruction、原因和上下文。- 运行 运行 doctor 和 A2(如果连接/调度没有响应,也运行 A1)。
- 重新运行
probe doctor,直到ok为 true,或只剩下可接受的warn。 - 关闭该操作:
probe action complete <id>
# or, if unrecoverable:
probe action fail <id> --reason "..."
不要循环运行 probe nexus 来“修复”;确保 守护进程处于活动状态(A1)。
问题代码 → Probe 源码(用于深入调试)
如果行为出乎意料,请阅读实现代码:
| 主题 | 仓库/路径 |
|---|---|
| Doctor 检查与代码 | probe src/utils/health.ts、genesis-doctor.ts |
修复建议与 --fix | probe src/utils/doctor-issues.ts |
probe doctor CLI | probe src/commands/doctor.ts |
| 入门步骤 | probe src/utils/onboard/steps.ts |
| 守护进程安装/适配器 | probe src/utils/daemon.ts |
Harness 启动(pi -p、自定义等) | probe src/daemon/harness-runner.ts |
| 调度循环 | probe src/daemon/loop.ts、session.ts |
| 操作提示词/完成 | probe src/utils/action-prompts.ts、action.ts |
| CLI 参考 | probe docs/commands.md |
| Nexus schema/reducers | nexus stdb/ |
| Agent 注册 | nexus stdb register / agents |
| Skills 路由 | skills meta.json、architecture.md |
完整索引:references/README.md
参考资料与资源(此技能)
| 资源 | 用途 |
|---|---|
| references/README.md | 主索引 — 文档、仓库、本地路径 |
| references/daemon-install.md | 入门流程报告 manual_required 时手动安装守护进程 |
| references/environment-constraints.md | 沙盒/CI/只读 home |
| references/agent-integrations.md | Harness 与调度模型(不在每次唤醒时运行 probe nexus) |
assets/systemd/probe-nexus.service | systemd 用户单元模板 |
assets/launchd/com.zenon.probe-nexus.plist | launchd plist 模板 |
输出约定
probe doctor→ok: true(如果操作人员同意,警告可接受)。- Nexus 守护进程已运行(A1)。
- 对于 repair 调度:操作状态为已完成或失败,并附有明确原因。
- Agent 可在下一次 tick 接收非 repair 的调度工作。