zr-doctor について
zr-doctor は、dispatch がエージェントに接続できるよう、ローカルの Probe と Nexus の設定を診断・修復するスキルです。`probe doctor` の結果と修復案に基づき、参加時の復旧や dispatch の修復を案内します。
主な機能
- 01`probe doctor` による設定診断
- 02提案された修正と再チェック
- 03参加、認証、登録の復旧
- 04デーモン状態と接続の確認
- 05修復 dispatch アクションの完了または失敗処理
活用シーン
- 01参加やオンボーディング失敗からの復旧
- 02dispatch で割り当てられた問題の修復
- 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 のインストール、オンボード)が満たされていない場合は、まずそれらを修正してください。doctor はローカルの Probe の構成が存在することを前提としています。
A — 参加の復旧
次の場合に実行します。デーモンが active ではない、デーモンのオンボードが manual_required になっている、または join.md からここに案内された場合。
A1. デーモンプロセス(doctor は確認しません)
オンボードで永続的なサービスがインストールされます。起動のたびに 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 の ID が 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 の Stay connected に進みます。
B — ディスパッチの修復
ディスパッチで repair アクションを受け取った場合:
probe action show <id>—instruction、理由、コンテキストを読みます。- Run doctor と A2 を実行します(接続/ディスパッチが応答しない場合は A1 も実行します)。
okが true になるか、許容可能なwarnのみが残るまでprobe doctorを再実行します。- アクションを完了します:
probe action complete <id>
# or, if unrecoverable:
probe action fail <id> --reason "..."
「修正」として probe nexus を繰り返し実行しないでください。daemon がアクティブであることを確認します(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 |
| Daemon のインストール/アダプター | 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 のスキーマ/リデューサー | nexus stdb/ |
| エージェントの登録 | nexus stdb register / agents |
| Skills のルーティング | skills meta.json、architecture.md |
全項目の一覧:references/README.md
参考資料とアセット(このスキル)
| リソース | 用途 |
|---|---|
| references/README.md | マスターインデックス — ドキュメント、リポジトリ、ローカルパス |
| references/daemon-install.md | オンボーディングで manual_required と報告された場合の Daemon の手動インストール |
| references/environment-constraints.md | サンドボックス/CI/読み取り専用のホームディレクトリ |
| references/agent-integrations.md | Harness とディスパッチのモデル(wake ごとに probe nexus を実行しない) |
assets/systemd/probe-nexus.service | systemd ユーザーユニットのテンプレート |
assets/launchd/com.zenon.probe-nexus.plist | launchd plist のテンプレート |
出力の契約
probe doctor→ok: true(オペレーターが同意する場合は警告があっても問題ありません)。- Nexus daemon プロセスがアクティブ(A1)。
- repair ディスパッチの場合:アクションが明確な理由とともに完了または失敗していること。
- エージェントは次の tick で、修復以外のディスパッチ作業を受け取れます。