用途:针对 Clash Verge Rev TUN 模式下的应用联网故障做“证据优先”的诊断与可逆修复,适用于应用在无 TUN 时正常、开启 TUN 后失败或卡顿,微信文字可用但图片上传/朋友圈图片失败,规则改动后症状加重,订阅声明 ipv6: false 但运行时仍用 IPv6,以及日志出现 no route to host、context deadline exceeded 或异常规则/策略等情况。不适用于订阅获取、节点购买或绕过组织网络策略。
主要能力:提供 diagnose(只读诊断,读取应用级 config.yaml 覆盖、生成的 clash-verge.yaml 顶层与 DNS IPv6 值、Mihomo Unix socket 的 /configs、/rules、/connections 及近期服务日志)、direct-list(基于证据生成或应用 DIRECT 主机列表,支持 --host 指定、--output 导出、--apply 应用)、fix-wechat(微信修复,默认 dry run,预览直连规则与关闭应用级 IPv6 覆盖及将备份/修改的文件)、rollback(默认恢复最新备份,不自动删除备份)。
使用方式:先解析 SKILL_DIR,再运行只读诊断,例如 python3 "$SKILL_DIR/scripts/clash_tun_doctor.py" diagnose --app wechat;确认证据后选择最窄修复,如 python3 "$SKILL_DIR/scripts/clash_tun_doctor.py" fix-wechat 预览,加 --apply 才实际修改;direct-list 可先预览再 --apply 持久化并热加载;修复后重启受影响应用并复诊,必要时 rollback --apply。CLI 支持 --data-dir、--socket、--app、--host、--output、--log-limit、--apply、--no-reload、--no-restart、--json 等选项。
限制:仅依赖 Python 3.8+ 标准库;需用户授权才做文件系统更改与重启/恢复;修复需保持 Clash Verge 运行(规则热加载流程)或按流程停止再启动;验证失败时只报告备份路径,不宣称成功;不自动删除备份。运行前读取 skill.yaml 并由宿主提供 skill-runtime/v1 上下文,缺失 required 字段时需向用户提出聚焦问题。