mcpField
W
wuji-cli-doctor

wuji-cli-doctor

github.com/wuji-technologyテスト・品質5206 回インストール5 日前に更新
リポジトリ

wuji-cli-doctor について

wuji-cli-doctorは、Wujiデバイスのオペレーター向けコマンドライン診断スキルです。環境とデバイスの読み取り専用チェックに加え、明示的な許可が必要な手の動作テストを実行し、テキストまたは構造化データで結果を報告します。

主な機能

  1. 01全デバイスの読み取り専用チェック
  2. 02グローブのEMF・触覚センサー異常検出
  3. 03任意の親指対向動作テスト
  4. 04テキスト、JSON、JSONL形式のレポート
  5. 05接続せずに診断項目を一覧表示

活用シーン

  1. 01使用前のWujiデバイス状態確認
  2. 02指や触覚センサーの問題箇所特定
  3. 03許可を得た手の動作チェック
  4. 04スクリプトでの診断結果収集

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wuji-technology/wuji-cli --skill wuji-cli-doctor

インストール後、Claude Code で/wuji-cli-doctorを入力して読み込まれたか確認します。

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

wuji doctor は各デバイスに接続し、リアルタイムデータをサンプリングして(約100フレーム、数秒以内に完了)、ツリー形式の診断レポートを出力します。

現在サポートしているデバイスと障害の種類:

  • wuji_glove
    • EMF 切断の検出:影響を受けている指を特定し、RX(受信)障害と TX(送信)障害を判別します
    • 触覚センサーのデッドピクセル/不良行/不良列の検出(手袋は動かさず、装着したり押したりしないでください。誤検出が発生する場合があります)

使用方法

wuji doctor                # Diagnose all devices
wuji doctor --sn <SN>      # Diagnose one device only
wuji doctor -v             # Show all check items (passing items hidden by default)
wuji doctor --json         # The same information as the tree report, as structured JSON

レポートの読み方

  • ステータス:✔ 合格/! 警告(参考情報としての異常)/✘ 失敗(確認済みの障害)/~ スキップ(チェックが適用されない、または実行できなかった)
  • Tip: 行は修正方法の提案です
  • 終了コード:0 = 失敗なし(警告は許容)。1 = 失敗あり、または診断を完了できなかった場合。スクリプトでそのまま使用できます。デバイスが接続されていないことはエラーではありません。ホスト環境と検出のチェックは引き続き実行され、終了コードを決定します。
  • 触覚チェックの結果は参考情報のみです(警告を上限とします)。Wuji Studio の触覚ヒートマップで確認してください
  • デバイスの IP 重複チェックとホストのサブネットチェックは、検出で UDP デバイスが見つかった場合にのみ実行されます。すべてのデバイスが USB または Zenoh を使用している場合、両方のチェックは ~ not attempted: no UDP devices と表示されます。これらのスキップされたチェックによって終了コードが1になることはありません。
  • 診断レシピのないデバイスには、~ connect & diagnose ノードが表示されます。このスキップされたノードによって終了コードが1になることはありません。接続またはデータ収集に失敗した場合は ✘ が表示され、1 が返されます。

例

$ wuji doctor

 ══════ Environment ══════
~ Software: version info incomplete
├─ ✔ CLI: 2026.8.3 (up to date)
├─ ~ SDK: not installed or version undetectable (skipped)
└─ ✔ Studio: 2026.8.3 (up to date)

✔ System: supported
└─ ✔ OS: Ubuntu 26.04 (supported)

! Network interfaces: 2 interfaces, see interface count
├─ ✔ eth0 (192.168.1.100/24, fe80::abcd:.../64)
└─ ! Interface count: 2 interfaces — multiple interfaces may cause routing issues

══════ Generic ══════
✔ Device discovery: 2 device(s) found, no issues
├─ ✔ Devices found: 2 device(s) found
├─ ✔ Duplicate device IP
└─ ✔ Host subnet

══════ wuji_glove: WG1KXXXXXXXXXX01 ══════
├─ ✔ EMF disconnect check: all 5 fingers normal
└─ ! tactile dead-pixel check: 0 dead pixels, 0 bad rows, 0 bad cols

══════ wuji_glove: WG1KXXXXXXXXXX02 ══════
├─ ✔ EMF disconnect check: all 5 fingers normal
└─ ! tactile dead-pixel check: 0 dead pixels, 2 bad rows, 2 bad cols
   ├─ ! Bad rows: 2 bad row(s)
   └─ ! Bad cols: 2 bad col(s)
   Tip: Tactile check result is for reference only. Verify via tactile heatmap in Wuji Studio

wuji doctor -v はすべてのチェック項目を表示します。合格した項目はデフォルトで非表示のため、すべて表示するには -v を追加してください。デバイスのセクションのみを示しています。簡潔にするため、上記の Environment/Generic セクションは省略しています(実際の出力ではデバイスの前に表示されます)。

$ wuji doctor

══════ wuji_glove: WG1KXXXXXXXXXXX ══════
├─ ✔ EMF disconnect check: all 5 fingers normal
└─ ! tactile dead-pixel check: 0 dead pixels, 0 bad rows, 1 bad col
   └─ ! Bad cols: 1 bad col(s)
   Tip: Tactile check result is for reference only. Verify via tactile heatmap in Wuji Studio

$ wuji doctor -v

══════ wuji_glove: WG1KXXXXXXXXXXX ══════
├─ ✔ EMF disconnect check: all 5 fingers normal
│  ├─ ✔ Thumb
│  ├─ ✔ Index
│  ├─ ✔ Middle
│  ├─ ✔ Ring
│  └─ ✔ Pinky
└─ ! tactile dead-pixel check: 0 dead pixels, 0 bad rows, 1 bad col
   ├─ ✔ Thumb
   ├─ ✔ Index
   ├─ ✔ Middle
   ├─ ✔ Ring
   ├─ ✔ Pinky
   ├─ ✔ Palm
   └─ ! Bad cols: 1 bad col(s)
   Tip: Tactile check result is for reference only. Verify via tactile heatmap in Wuji Studio

wuji doctor --json は、ツリーレポートと同じ情報を機械可読形式で出力します。トップレベルのオブジェクトには2つの配列があります。

  • env:ホスト環境のチェック。ソフトウェアのバージョン(CLI/SDK/Studio)、システム、ネットワークインターフェースがそれぞれチェックノードになります(children を介してネストされます)
  • device:デバイス層の結果。デバイス検出チェックを含む sn のない Generic エントリ(スキャンが実行された場合、デバイスが見つからなくても追加されます)に続いて、デバイスごとに1つのエントリ(label + sn + チェックツリー)が含まれます

各配列は、空の場合にのみ省略されます。オンラインでは env は常に含まれます。スキャンが実行された場合、またはデバイスが指定された場合は device が含まれます。例:

この例では、検出によって UDP デバイスが見つかったことを想定しています。USB または Zenoh デバイスしかない場合、検出ノードと両方の IP チェックは "status": "skip" となり、サマリーには UDP デバイスが見つからなかったことが示されます。

$ wuji doctor --json

{
  "env": [
    {
      "id": "env_software",
      "label": "Software",
      "status": "warn",
      "summary": "updates available or unable to verify latest",
      "children": [
        {
          "label": "CLI",
          "status": "warn",
          "summary": "2026.8.3 (unable to check latest version)"
        },
        {
          "label": "SDK",
          "status": "skip",
          "summary": "not installed or version undetectable (skipped)"
        },
        {
          "label": "Studio",
          "status": "pass",
          "summary": "2026.8.3 (up to date)"
        }
      ]
    },
    {
      "id": "env_system",
      "label": "System",
      "status": "pass",
      "summary": "supported",
      "children": [
        {
          "label": "OS",
          "status": "pass",
          "summary": "Ubuntu 26.04 (supported)"
        }
      ]
    }
  ],
  "device": [
    {
      "label": "Generic",
      "children": [
        {
          "id": "device_discovery",
          "label": "Device discovery",
          "status": "pass",
          "summary": "1 device(s) found, no issues",
          "children": [
            {
              "label": "Devices found",
              "status": "pass",
              "summary": "1 device(s) found"
            },
            {
              "label": "Duplicate device IP",
              "status": "pass"
            },
            {
              "label": "Host subnet",
              "status": "pass"
            }
          ]
        }
      ]
    },
    {
      "label": "wuji_glove",
      "sn": "WG1KXXXXXXXXXXX",
      "children": [
        {
          "id": "emf_disconnect",
          "label": "EMF disconnect check",
          "status": "pass",
          "summary": "all 5 fingers normal",
          "children": [
            {
              "label": "Thumb",
              "status": "pass",
              "summary": "normal"
            },
            {
              "label": "Index",
              "status": "pass",
              "summary": "normal"
            },
            {
              "label": "Middle",
              "status": "pass",
              "summary": "normal"
            },
            {
              "label": "Ring",
              "status": "pass",
              "summary": "normal"
            },
            {
              "label": "Pinky",
              "status": "pass",
              "summary": "normal"
            }
          ]
        }
      ]
    }
  ]
}

コメント