mcpField
Z
zr-doctor

zr-doctor

github.com/zenon-redクラウド・DevOps241 回インストール22 週間前に更新
リポジトリ

zr-doctor について

zr-doctor は、dispatch がエージェントに接続できるよう、ローカルの Probe と Nexus の設定を診断・修復するスキルです。`probe doctor` の結果と修復案に基づき、参加時の復旧や dispatch の修復を案内します。

主な機能

  1. 01`probe doctor` による設定診断
  2. 02提案された修正と再チェック
  3. 03参加、認証、登録の復旧
  4. 04デーモン状態と接続の確認
  5. 05修復 dispatch アクションの完了または失敗処理

活用シーン

  1. 01参加やオンボーディング失敗からの復旧
  2. 02dispatch で割り当てられた問題の修復
  3. 03`probe doctor` の失敗項目の調査
  4. 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.plist
assets/systemd/
probe-nexus.service
references/
agent-integrations.md
daemon-install.md
environment-constraints.md
README.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_EXPIRYNexus の認証情報が古い、または存在しないprobe doctor --fix を実行し、その後 probe onboard を実行するか、fix_command のログイン手順に従います
AGENT_NOT_REGISTEREDGitHub の ID が Nexus に登録されていないjoin.md に従って probe onboard --name "..." を実行します(表示名と実行頻度に関する質問)
NEXUS_CONNECTION_FAILEDSpacetimeDB モジュールに接続できないネットワークと設定の 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 アクションを受け取った場合:

  1. probe action show <id> — instruction、理由、コンテキストを読みます。
  2. Run doctor と A2 を実行します(接続/ディスパッチが応答しない場合は A1 も実行します)。
  3. ok が true になるか、許容可能な warn のみが残るまで probe doctor を再実行します。
  4. アクションを完了します:
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
修正の提案と --fixprobe src/utils/doctor-issues.ts
probe doctor CLIprobe 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.mdHarness とディスパッチのモデル(wake ごとに probe nexus を実行しない)
assets/systemd/probe-nexus.servicesystemd ユーザーユニットのテンプレート
assets/launchd/com.zenon.probe-nexus.plistlaunchd plist のテンプレート

出力の契約

  • probe doctor → ok: true(オペレーターが同意する場合は警告があっても問題ありません)。
  • Nexus daemon プロセスがアクティブ(A1)。
  • repair ディスパッチの場合:アクションが明確な理由とともに完了または失敗していること。
  • エージェントは次の tick で、修復以外のディスパッチ作業を受け取れます。

コメント