clash-doctor · git:20260831.fe75ff5 · 2026-08-31 · sha256 65883e5655e7c38a

clash-doctor git:20260831.fe75ff5A

Immutable. This exact content is served forever at /api/v1/blob/65883e5655e7c38a.

---
name: clash-doctor
description: >
  Clash Verge 与 mihomo 诊断和 profile 管理。当用户遇到代理失败、需要配置
  AI 工具路由、本地 Hub 拓扑、多机对齐、TUN 绕过、克隆或切换订阅,或同步后
  配置未生效时使用。进程线路使用 clash-routes,出口 IP 质量使用 ip-check。
  普通网络测速不使用。
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
metadata:
  argument-hint: '[host | profiles | status | hub | align | roles | switch-check <name> | clone <src> <dst> | setup-ai <name> | switch <name> | rustdesk <IP> | bypass <IP>]'
---

# Clash Verge Diagnostics

Inspect Clash Verge or mihomo, manage profile-specific routing, and diagnose connectivity.

## Routing

- Confirm the target profile, constraints, requested access path, and done-when signal.
- Load `references/full-guide.md` for commands, templates, and diagnosis matrices.
- Load `references/local-hub.md` before `hub`, `align`, `roles`, `clone`, `setup-ai`, or `switch`, and whenever the user says a previous sync did not apply.
- Keep the change limited to the requested target.

## Safety

- Diagnose and align are read-only. Writes require a shown summary and explicit confirmation.
- Edit enhancement overlays or the confirmed local-hub YAML. Do not edit raw subscription dumps.
- `tun.route-exclude-address` is union-only. `DIRECT` is not a TUN bypass.
- Never invent or print node IPs, credentials, subscription UIDs, or machine hostnames.
- After an overlay or hub-YAML write, quit and reopen Clash Verge. `PUT /configs` does not re-merge overlays.

## Modes

| Argument | Mode |
|---|---|
| empty or a hostname | diagnose |
| `profiles` / `list` / `ls` | list local and remote profiles |
| `status` | live kernel, TUN, and selected nodes |
| `hub` / `roles` | local-hub topology |
| `align` / `sync-check` | read-only multi-machine comparison |
| `switch-check` / `health` | pre-switch health |
| `clone` / `setup-ai` / `switch` | confirmed profile writes |
| `rustdesk` / `bypass` | TUN exclusion for a relay IP |

Resolve the named target before `setup-ai`. Apply airport-style enhancement overlays only when that target is `type: remote`; edit the named hub YAML when it is `type: local`.

## Verify

- Parse the target YAML after every write.
- Query mihomo by trying both Unix sockets and then the configured HTTP controller; fall back on request failure, not socket existence alone.
- For routes, `chains[-1]` is the matched group and `chains[0]` is the dialed node.
- Report files changed, commands run, evidence, and remaining risk.

## References

- `references/full-guide.md` — commands, templates, and diagnosis matrix
- `references/local-hub.md` — hub ownership, node roles, alignment, and landmines