{"id":"0da62166-f873-43f7-b025-b7b74d229a9a","shortId":"gMYuuB","kind":"skill","title":"clash-doctor","tagline":"Clash Verge 诊断与配置管理。网络诊断、配置 AI 工具路由规则（Claude/Codex/Cursor/Warp）、查看/克隆订阅配置、切换配置文件。当用户遇到网络问题、要配置代理规则、切换订阅、查看 Clash 配置时使用","description":"# Clash Verge 诊断与配置管理\n\n你是一个 Clash Verge（mihomo 内核）的诊断和配置管理专家。\n\n用户传入的参数：$ARGUMENTS\n\n## 路径常量\n\n```\nVERGE_DIR=~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev\nPROFILES_INDEX=$VERGE_DIR/profiles.yaml\nPROFILES_DIR=$VERGE_DIR/profiles\nVERGE_YAML=$VERGE_DIR/verge.yaml\nMIHOMO_API=http://127.0.0.1:9097\n```\n\n## 命令路由\n\n根据 $ARGUMENTS 判断执行哪个模式：\n\n| 参数模式 | 执行模式 |\n|----------|----------|\n| 无参数 或 域名（如 `github.com`） | **诊断模式** |\n| `profiles` 或 `list` 或 `ls` | **配置文件列表** |\n| `clone <源订阅名> <目标订阅名>` | **克隆覆盖配置** |\n| `setup-ai <订阅名>` | **配置 AI 工具路由** |\n| `switch <订阅名>` | **切换激活配置** |\n| `status` | **当前状态概览** |\n\n---\n\n## 模式一：配置文件列表（profiles）\n\n读取 `$PROFILES_INDEX`，列出所有 remote 类型的订阅，展示：\n\n```\n订阅名称 | UID | 流量使用 | 到期时间 | 覆盖文件状态 | 是否激活\n```\n\n**覆盖文件状态**判断：读取每个订阅的 option 中关联的 merge/rules/proxies/groups 文件，检查内容是否为空模板。\n\n空模板判断标准（以下均视为\"未配置\"）：\n- merge：只有注释行 + 空行\n- rules：`prepend: []` 且 `append: []`\n- proxies：`prepend: []` 且 `append: []`\n- groups：`prepend: []` 且 `append: []`\n- script：只有 `return config;`\n\n输出格式示例：\n```\n📋 Clash Verge 订阅列表\n\n  订阅名              流量          到期        覆盖状态        激活\n─────────────────────────────────────────────────────────────────\n★ Nexitally         179/500 GB    2026-03-01  ✅ 全配置       ← 当前\n  灰狐云互联         57/200 GB     2027-03-04  ✅ 全配置\n  YToo_SS            0/15 GB       2027-03-25  ✅ 全配置\n\n覆盖详情：\n  merge=DNS/TUN  rules=AI路由  proxies=住宅代理  groups=AI组\n```\n\n---\n\n## 模式二：克隆覆盖配置（clone）\n\n将源订阅的 5 个覆盖文件（merge/script/rules/proxies/groups）内容复制到目标订阅的对应覆盖文件。\n\n**步骤**：\n1. 读取 `$PROFILES_INDEX`，通过订阅名（name 字段模糊匹配）找到源和目标的 UID\n2. 从源订阅的 option 中找到 merge/script/rules/proxies/groups 的 UID\n3. 从目标订阅的 option 中找到对应的 UID\n4. 逐个读取源文件内容，写入目标文件\n5. **写入前确认**：列出将要覆盖的文件和内容摘要，等用户确认\n\n**注意事项**：\n- rules 中的 `delete` 部分可能需要适配（源订阅的原始规则和目标可能不同）\n- merge 中的 TUN route-exclude-address 应保留（住宅代理 IP 防回环）\n- 如果目标覆盖文件已有非空内容，警告用户将被覆盖\n\n---\n\n## 模式三：配置 AI 工具路由（setup-ai）\n\n为指定订阅配置完整的 AI 开发工具代理路由。这是最常用的配置操作。\n\n**步骤**：\n1. 读取 `$PROFILES_INDEX`，通过订阅名找到目标 UID 和关联的覆盖文件 UID\n2. 读取当前激活订阅的覆盖文件作为模板（如果有已配置的）\n3. 如果没有现成模板，使用内置的 AI 路由规则集（见下方）\n4. 写入 4 个覆盖文件（merge/rules/proxies/groups）\n5. 提示用户在 Clash Verge 中 reload 配置\n\n### 内置 AI 路由规则集\n\n#### Rules（prepend 最高优先级）\n\n```yaml\nprepend:\n  # --- Claude Code CLI ---\n  - PROCESS-NAME,claude,AI\n  - PROCESS-NAME,Claude,AI\n  - PROCESS-NAME,Claude Helper,AI\n  - PROCESS-NAME,Claude Helper (GPU),AI\n  - PROCESS-NAME,Claude Helper (Renderer),AI\n  - PROCESS-NAME,Claude Helper (Plugin),AI\n  # --- Codex CLI ---\n  - PROCESS-NAME,codex,Proxies\n  - PROCESS-NAME,Codex,Proxies\n  - PROCESS-NAME,Codex Helper,Proxies\n  # --- Cursor ---\n  - DOMAIN,marketplace.cursorapi.com,AI\n  - DOMAIN,api2.cursor.sh,AI\n  # --- Warp Terminal ---\n  - PROCESS-NAME,stable,AI\n  - PROCESS-NAME,Warp,AI\n  - DOMAIN-SUFFIX,warp.dev,AI\n  - DOMAIN-SUFFIX,app.warp.dev,AI\n  - DOMAIN,rtc.app.warp.dev,AI\n  # --- Anthropic 全域名 ---\n  - DOMAIN-SUFFIX,anthropic.com,AI\n  - DOMAIN-SUFFIX,claude.ai,AI\n  - DOMAIN-SUFFIX,claudeusercontent.com,AI\n  - DOMAIN-SUFFIX,claude.com,AI\n  - DOMAIN,api.anthropic.com,AI\n  - DOMAIN,console.anthropic.com,AI\n  - DOMAIN,platform.claude.com,AI\n  - DOMAIN,status.anthropic.com,AI\n  - DOMAIN,anthropic.statuspage.io,AI\n  - DOMAIN-SUFFIX,support.claude.com,AI\n  - DOMAIN-SUFFIX,support.anthropic.com,AI\n  - DOMAIN-SUFFIX,docs.claude.com,AI\n  - DOMAIN-SUFFIX,anthropic.mintlify.app,AI\n  - DOMAIN,cloudcode-pa.googleapis.com,AI\n  - DOMAIN,daily-cloudcode-pa.googleapis.com,AI\n  - DOMAIN,clau.de,AI\n  - DOMAIN-KEYWORD,anthropic,AI\n  - DOMAIN-KEYWORD,claude,AI\n  # --- GitHub Education ---\n  - DOMAIN,education.github.com,AI\n  # --- Tailscale DIRECT ---\n  - IP-CIDR,100.64.0.0/10,DIRECT,no-resolve\n  - IP-CIDR6,fd7a:115c:a1e0::/48,DIRECT,no-resolve\n  # --- Supabase DIRECT ---\n  - DOMAIN-SUFFIX,supabase.co,DIRECT\n  - DOMAIN-SUFFIX,supabase.com,DIRECT\n```\n\n#### Rules delete（清理原始订阅中可能存在的冲突规则）\n\n```yaml\ndelete:\n  - DOMAIN-SUFFIX,anthropic.com,Proxies\n  - DOMAIN-SUFFIX,claude.ai,Proxies\n  - DOMAIN-SUFFIX,claude.com,Proxies\n  - DOMAIN,api.anthropic.com,Proxies\n  - DOMAIN,console.anthropic.com,Proxies\n  - DOMAIN,platform.claude.com,Proxies\n  - DOMAIN,daily-cloudcode-pa.googleapis.com,Proxies\n  - DOMAIN-SUFFIX,support.claude.com,Proxies\n  - DOMAIN-SUFFIX,support.anthropic.com,Proxies\n  - DOMAIN-SUFFIX,docs.claude.com,Proxies\n  - DOMAIN-SUFFIX,anthropic.mintlify.app,Proxies\n  - PROCESS-PATH-KEYWORD,Claude.app,AI\n  - PROCESS-PATH-KEYWORD,Codex.app,Proxies\n```\n\n#### Proxies（住宅代理节点配置）\n\n**优先级**：\n1. 读取当前激活订阅的 proxies 覆盖文件，如有住宅代理节点则直接复制\n2. 如无已配置的住宅代理，进入**交互式配置流程**：\n\n**交互式配置流程**：\n向用户询问以下信息（逐项或一次性提供均可）：\n\n```\n需要你提供住宅代理信息：\n1. 代理类型（socks5/http，默认 socks5）\n2. 服务器地址（IP 或域名）\n3. 端口\n4. 用户名（如有）\n5. 密码（如有）\n6. 节点显示名（默认 🏠 Residential US (AI)）\n\n示例：socks5 / 1.2.3.4 / 44539 / myuser / mypass\n```\n\n用户提供后生成 Proxies 覆盖：\n\n```yaml\nprepend: []\n\nappend:\n  - name: <节点显示名>\n    type: <代理类型>\n    server: <服务器地址>\n    port: <端口>\n    username: <用户名>\n    password: <密码>\n    udp: true\n\ndelete: []\n```\n\n**注意**：同时自动将代理服务器 IP 写入 Merge 的 `route-exclude-address`（TUN 防回环）。\n\n#### Groups\n\n```yaml\nappend:\n  - name: AI\n    type: select\n    url: http://www.gstatic.com/generate_204\n    proxies:\n      # 从 proxies 覆盖中提取住宅代理名称填入\n      - <住宅代理节点名>\n\ndelete:\n  - AI  # 删除原始订阅中可能存在的同名组，确保使用自定义版本\n```\n\n#### Merge\n\n```yaml\ntun:\n  route-exclude-address:\n    # 住宅代理服务器 IP，防止 TUN 回环\n    - <住宅代理IP>/32\n```\n\n---\n\n## 模式四：切换激活配置（switch）\n\n1. 读取 `$PROFILES_INDEX`，通过订阅名找到目标 UID\n2. **确认**：告知用户将从当前订阅切换到目标订阅，列出目标订阅的覆盖配置状态\n3. 如果目标订阅覆盖文件为空，警告用户可能缺少 AI 路由规则\n4. 修改 `$PROFILES_INDEX` 的 `current` 字段为目标 UID\n5. 提示用户在 Clash Verge 中 reload 或重启\n\n---\n\n## 模式五：当前状态概览（status）\n\n并行采集：\n1. 读取 `$PROFILES_INDEX` → 当前激活的订阅名和流量\n2. 读取 `$VERGE_YAML` → TUN/系统代理/端口配置\n3. `curl -s $MIHOMO_API/version` → mihomo 版本\n4. `curl -s $MIHOMO_API/proxies` → 当前选中的节点\n\n输出格式：\n```\n🔍 Clash Verge 状态\n\n内核: mihomo v1.x.x\n激活订阅: Nexitally (179/500 GB, 到期 2026-03-01)\n模式: rule\n端口: mixed=7897 socks=7898 http=7899\nTUN: ✅ 开启 (stack=mixed)\n系统代理: ✅ 开启\n\n当前节点:\n  Proxies → 🇭🇰 Hong Kong 02\n  Google  → 🇺🇸 USA Seattle 03\n  AI      → 🏠 Residential US (AI)\n```\n\n---\n\n## 模式六：诊断模式（默认）\n\n当参数为空或为域名时，执行网络诊断。默认目标为 `github.com`。\n\n### 第一步：采集环境信息\n\n**并行执行以下所有检查命令：**\n\n1. **Shell 代理环境变量**\n```bash\nenv | grep -i -E '(proxy|PROXY|http_proxy|https_proxy|all_proxy|no_proxy|ALL_PROXY|HTTP_PROXY|HTTPS_PROXY|NO_PROXY)' || echo \"[结果] 无代理环境变量\"\n```\n\n2. **macOS 系统代理设置**（检测当前活跃的网络接口）\n```bash\nACTIVE_IF=$(route -n get default 2>/dev/null | awk '/interface:/{print $2}')\nACTIVE_SERVICE=$(networksetup -listallhardwareports | awk -v dev=\"$ACTIVE_IF\" '/Hardware Port/{port=$0} /Device:/{if($2==dev) print port}' | sed 's/Hardware Port: //')\necho \"活跃接口: $ACTIVE_IF ($ACTIVE_SERVICE)\"\necho \"=== Web Proxy ===\"\nnetworksetup -getwebproxy \"$ACTIVE_SERVICE\" 2>/dev/null\necho \"=== Secure Web Proxy ===\"\nnetworksetup -getsecurewebproxy \"$ACTIVE_SERVICE\" 2>/dev/null\necho \"=== SOCKS Proxy ===\"\nnetworksetup -getsocksfirewallproxy \"$ACTIVE_SERVICE\" 2>/dev/null\n```\n\n3. **DNS 解析对比**\n```bash\nTARGET=\"目标域名\"\necho \"=== 本地 DNS ===\"\nnslookup $TARGET 2>&1\necho \"=== 外部 DNS (8.8.8.8) ===\"\nnslookup $TARGET 8.8.8.8 2>&1\necho \"=== 外部 DNS (1.1.1.1) ===\"\nnslookup $TARGET 1.1.1.1 2>&1\n```\n\n4. **Git 代理配置**\n```bash\necho \"=== git http.proxy ===\"\ngit config --global --get http.proxy 2>/dev/null || echo \"未设置\"\necho \"=== git https.proxy ===\"\ngit config --global --get https.proxy 2>/dev/null || echo \"未设置\"\n```\n\n5. **常见代理端口扫描**\n```bash\nfor port in 7890 7891 7897 7898 7899 1080 1087 9090 9097 2080; do\n  result=$(lsof -i :$port -sTCP:LISTEN 2>/dev/null | head -3)\n  if [ -n \"$result\" ]; then\n    echo \"[端口 $port] 在监听:\"\n    echo \"$result\"\n  fi\ndone\necho \"=== 扫描完成 ===\"\n```\n\n### 第二步：连通性测试\n\n**并行执行以下测试：**\n\n1. **直连测试**（不走代理）\n```bash\nTARGET=\"目标域名\"\ncurl --noproxy '*' --connect-timeout 5 -s -o /dev/null -w \"直连: HTTP=%{http_code} 耗时=%{time_total}s IP=%{remote_ip}\\n\" https://$TARGET 2>&1 || echo \"直连: 失败(超时或拒绝)\"\n```\n\n2. **通过代理测试**（对每个发现的监听端口测试）\n```bash\nTARGET=\"目标域名\"\ncurl -x http://127.0.0.1:PORT --connect-timeout 5 -s -o /dev/null -w \"代理(PORT): HTTP=%{http_code} 耗时=%{time_total}s\\n\" https://$TARGET 2>&1 || echo \"代理(PORT): 失败\"\ncurl -x socks5://127.0.0.1:PORT --connect-timeout 5 -s -o /dev/null -w \"SOCKS5(PORT): HTTP=%{http_code} 耗时=%{time_total}s\\n\" https://$TARGET 2>&1 || echo \"SOCKS5(PORT): 失败\"\n```\n\n3. **Ping 测试**\n```bash\nTARGET=\"目标域名\"\nping -c 3 -W 3 $TARGET 2>&1\n```\n\n4. **Clash API 状态检查**\n```bash\ncurl -s $MIHOMO_API/version 2>/dev/null && echo \"\"\ncurl -s $MIHOMO_API/proxies 2>/dev/null | head -c 500\n```\n\n### 第三步：综合诊断\n\n#### 判断矩阵\n\n| DNS 结果 | 直连 | 代理 | 系统代理 | 诊断 |\n|----------|------|------|----------|------|\n| 198.18.x.x (fake-ip) | 超时 | 正常 | 关闭 | **TUN 模式 DNS 劫持生效但流量拦截失败，且系统代理未开启** |\n| 198.18.x.x (fake-ip) | 超时 | 超时 | 关闭 | **代理软件整体异常，需要重启** |\n| 198.18.x.x (fake-ip) | 正常 | 正常 | 任意 | **TUN 模式正常工作** |\n| 正常 IP | 超时 | 正常 | 关闭 | **需要开启系统代理或设置环境变量** |\n| 正常 IP | 超时 | 超时 | 开启 | **代理节点本身有问题，需要切换节点** |\n| 正常 IP | 正常 | - | - | **网络正常，问题可能在浏览器/应用层** |\n\n#### fake-ip 识别规则\n\n- `198.18.0.0/15`（最常见）\n- `28.0.0.0/8`\n- `10.0.0.0/8`（需要结合延迟判断，ping < 1ms 基本是 fake-ip）\n\n#### 诊断输出格式\n\n1. **问题概述**：一句话总结当前网络状态\n2. **详细分析**：逐项说明每个检查结果的含义\n3. **根因**：指出问题的根本原因\n4. **解决方案**：按优先级列出解决方法，包含具体操作步骤\n\n---\n\n## 常见问题的解决方案模板\n\n### TUN 模式异常（DNS 劫持生效但流量不通）\n```\n根因：Clash TUN 模式的 DNS 劫持仍在工作（域名被解析为 fake-ip），\n      但 TUN 虚拟网卡未正确拦截流量，导致连接直接发往 fake-ip 后超时。\n\n解决方案（按优先级）：\n1. 重启代理软件（Clash Verge / mihomo）\n2. 如果重启无效，关闭 TUN 模式，改用系统代理模式\n3. 开启 System Proxy（系统代理）开关\n4. 如果是 macOS，检查是否需要重新授权网络扩展：\n   系统设置 → 隐私与安全性 → 网络扩展\n```\n\n### 系统代理未开启\n```\n解决方案：\n1. 在代理客户端中开启「System Proxy / 系统代理」\n2. 或手动设置：\n   networksetup -setwebproxy \"Wi-Fi\" 127.0.0.1 PORT\n   networksetup -setsecurewebproxy \"Wi-Fi\" 127.0.0.1 PORT\n```\n\n### 代理节点不可用\n```\n解决方案：\n1. 在 Clash 控制面板中切换到其他节点\n2. 测试延迟：在 Clash 中点击「测速」\n3. 如果所有节点都不行，检查订阅是否过期\n```\n\n### Shell/Git 代理环境变量缺失\n```\n解决方案：\n在 ~/.zshrc 中添加：\n  export http_proxy=http://127.0.0.1:7897\n  export https_proxy=http://127.0.0.1:7897\n  export all_proxy=socks5://127.0.0.1:7898\n```\n\n---\n\n## 已知流量模式\n\n### Chrome QUIC/HTTP3 (UDP 443) 产生无法匹配的连接\n\n**现象**：连接表中出现随机域名（如 `8dc9ef6261.n2hlutbws.sbs:443`），类型为 `Tun(udp)`，下载量为 0。\n\n**原因**：Chrome QUIC 协议使用 UDP 443，sniffer 嗅探到 Google QUIC 代理域名（随机字符串），不匹配任何规则。\n\n**解决**（仅在需要时）：Chrome `chrome://flags/#enable-quic` → Disabled → 重启。\n\n### parse-pure-ip 导致所有连接无域名\n\n**现象**：连接表中 `host` 和 `sniffHost` 全部为空。\n\n**修复**：在 merge 覆盖文件中设置：\n```yaml\nsniffer:\n  parse-pure-ip: true\n```\n修改后**重启 Clash Verge 应用**（不是 reload）。\n\n---\n\n## 注意事项\n\n- **诊断操作是只读的**，不修改任何配置\n- **配置操作需要确认**：写入覆盖文件前必须展示将要写入的内容摘要，等用户确认\n- **切换订阅需要确认**：展示目标订阅的覆盖状态，警告可能缺失的配置\n- **不要修改原始订阅文件**（`RxQXGGBzmzSb.yaml` 等），只修改覆盖文件（merge/rules/proxies/groups/script）\n- **住宅代理凭证敏感**：克隆时提醒用户覆盖文件包含代理凭证\n- 用中文输出所有信息\n- 端口以 `$VERGE_YAML` 中的实际配置为准（mixed=7897, socks=7898, http=7899, API=9097）","tags":["clash","doctor","claude","arsenal","majiayu000","agent-skills","ai-agents","ai-coding-assistant","automation","claude-code","code-review","developer-tools"],"capabilities":["skill","source-majiayu000","skill-clash-doctor","topic-agent-skills","topic-ai-agents","topic-ai-coding-assistant","topic-automation","topic-claude","topic-claude-code","topic-code-review","topic-developer-tools","topic-devops","topic-productivity","topic-prompt-engineering","topic-python"],"categories":["claude-arsenal"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/majiayu000/claude-arsenal/clash-doctor","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add majiayu000/claude-arsenal","source_repo":"https://github.com/majiayu000/claude-arsenal","install_from":"skills.sh"}},"qualityScore":"0.464","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 29 github stars · SKILL.md body (10,549 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-01T07:01:12.624Z","embedding":null,"createdAt":"2026-04-18T22:24:01.598Z","updatedAt":"2026-05-01T07:01:12.624Z","lastSeenAt":"2026-05-01T07:01:12.624Z","tsv":"'-01':147,736 '-03':146,154,162,735 '-04':155 '-25':163 '-3':962 '/.zshrc':1299 '/10':456 '/127.0.0.1':1053,1315 '/15':1181 '/32':659 '/48':467 '/8':1184,1186 '/dev/null':816,857,867,876,921,933,960,994,1031,1061,1104,1111 '/device':834 '/generate_204':636 '/hardware':830 '/interface':818 '/library/application':35 '0':833,1331 '0/15':159 '02':756 '03':760 '1':183,242,551,564,663,697,775,889,898,907,980,1010,1045,1075,1093,1195,1233,1259,1282 '1.1.1.1':902,905 '1.2.3.4':589 '10.0.0.0':1185 '100.64.0.0':455 '1080':947 '1087':948 '115c':465 '127.0.0.1':51,1023,1271,1278,1304,1309 '179/500':143,731 '198.18':1124,1137,1147 '198.18.0.0':1180 '1ms':1189 '2':192,250,556,569,669,702,804,815,820,836,856,866,875,888,897,906,920,932,959,1009,1015,1044,1074,1092,1103,1110,1198,1238,1264,1286 '2026':145,734 '2027':153,161 '2080':951 '28.0.0.0':1183 '3':199,253,573,673,709,877,1080,1088,1090,1201,1244,1292 '4':204,259,261,575,678,716,908,1094,1204,1250 '443':1321,1337 '44539':590 '5':178,207,264,578,686,936,991,1028,1058 '500':1114 '57/200':151 '6':581 '7890':942 '7891':943 '7897':741,944,1305,1310,1405 '7898':743,945,1316,1407 '7899':745,946,1409 '8.8.8.8':893,896 '8dc9ef6261.n2hlutbws.sbs:443':1326 '9090':949 '9097':52,950,1411 'a1e0':466 'activ':809,821,828,845,847,854,864,873 'address':223,623,652 'ai':9,77,80,232,236,238,256,272,286,291,297,304,311,318,340,343,350,355,360,365,368,375,380,385,390,393,396,399,402,405,410,415,420,425,428,431,434,439,444,449,541,586,630,643,676,761,764 'ai组':173 'ai路由':169 'anthrop':369,438 'anthropic.com':374,492 'anthropic.mintlify.app':424,534 'anthropic.statuspage.io':404 'api':50,1096,1410 'api.anthropic.com':392,505 'api/proxies':720,1109 'api/version':713,1102 'api2.cursor.sh':342 'app.warp.dev':364 'append':120,124,128,598,628 'argument':31,55 'awk':817,825 'bash':778,808,880,911,938,983,1018,1083,1098 'c':1087,1113 'chrome':1318,1333,1347 'cidr':454 'cidr6':463 'clash':2,4,19,21,25,134,266,688,723,1095,1214,1235,1284,1289,1378 'clash-doctor':1 'clau.de':433 'claud':279,285,290,295,301,308,315,443 'claude.ai':379,497 'claude.app':540 'claude.com':389,502 'claude/codex/cursor/warp':11 'claudeusercontent.com':384 'cli':281,320 'clone':71,176 'cloudcode-pa.googleapis.com':427 'code':280,999,1037,1067 'codex':319,324,329,334 'codex.app':546 'config':132,916,928 'connect':989,1026,1056 'connect-timeout':988,1025,1055 'console.anthropic.com':395,508 'curl':710,717,986,1021,1050,1099,1106 'current':683 'cursor':337 'daily-cloudcode-pa.googleapis.com':430,514 'default':814 'delet':214,485,488,613,642 'dev':827,837 'dir':34,42 'dir/profiles':44 'dir/profiles.yaml':40 'dir/verge.yaml':48 'direct':451,457,468,473,478,483 'disabl':1352 'dns':878,885,892,901,1118,1134,1211,1217 'dns/tun':167 'docs.claude.com':419,529 'doctor':3 'domain':338,341,357,362,366,372,377,382,387,391,394,397,400,403,407,412,417,422,426,429,432,436,441,447,475,480,490,495,500,504,507,510,513,517,522,527,532 'domain-keyword':435,440 'domain-suffix':356,361,371,376,381,386,406,411,416,421,474,479,489,494,499,516,521,526,531 'done':974 'e':782 'echo':801,843,849,858,868,883,890,899,912,922,924,934,967,971,975,1011,1046,1076,1105 'educ':446 'education.github.com':448 'enabl':1350 'enable-qu':1349 'env':779 'exclud':222,622,651 'export':1301,1306,1311 'fake':1127,1140,1150,1177,1192,1221,1228 'fake-ip':1126,1139,1149,1176,1191,1220,1227 'fd7a':464 'fi':973,1270,1277 'flag':1348 'gb':144,152,160,732 'get':813,918,930 'getsecurewebproxi':863 'getsocksfirewallproxi':872 'getwebproxi':853 'git':909,913,915,925,927 'github':445 'github.com':63,771 'global':917,929 'googl':757,1340 'gpu':303 'grep':780 'group':125,172,626 'head':961,1112 'helper':296,302,309,316,335 'hong':754 'host':1361 'http':744,785,795,997,998,1035,1036,1065,1066,1302,1408 'http.proxy':914,919 'https':787,797,1307 'https.proxy':926,931 'index':38,92,186,245,666,681,700 'ip':226,453,462,571,616,654,1004,1006,1128,1141,1151,1158,1164,1171,1178,1193,1222,1229,1357,1374 'ip-cidr':452 'ip-cidr6':461 'keyword':437,442,539,545 'kong':755 'list':67 'listallhardwareport':824 'listen':958 'ls':69 'lsof':954 'maco':805,1252 'marketplace.cursorapi.com':339 'merg':114,166,217,618,646,1367 'merge/rules/proxies/groups':108,263 'merge/rules/proxies/groups/script':1396 'merge/script/rules/proxies/groups':180,196 'mihomo':27,49,712,714,719,727,1101,1108,1237 'mix':740,749,1404 'mypass':592 'myuser':591 'n':812,964,1007,1042,1072 'name':188,284,289,294,300,307,314,323,328,333,348,353,599,629 'networksetup':823,852,862,871,1266,1273 'nexit':142,730 'no-resolv':458,469 'noproxi':987 'nslookup':886,894,903 'o':993,1030,1060 'option':106,194,201 'pars':1355,1372 'parse-pure-ip':1354,1371 'password':609 'path':538,544 'ping':1081,1086,1188 'platform.claude.com':398,511 'plugin':317 'port':605,831,832,839,842,940,956,969,1024,1034,1048,1054,1064,1078,1272,1279 'prepend':118,122,126,275,278,597 'print':819,838 'process':283,288,293,299,306,313,322,327,332,347,352,537,543 'process-nam':282,287,292,298,305,312,321,326,331,346,351 'process-path-keyword':536,542 'profil':37,41,65,89,91,185,244,665,680,699 'proxi':121,170,325,330,336,493,498,503,506,509,512,515,520,525,530,535,547,548,553,594,637,639,753,783,784,786,788,790,792,794,796,798,800,851,861,870,1247,1262,1303,1308,1313 'pure':1356,1373 'quic':1334,1341,1351 'quic/http3':1319 'reload':269,691,1382 'remot':94,1005 'render':310 'residenti':584,762 'resolv':460,471 'result':953,965,972 'return':131 'rout':221,621,650,811 'route-exclude-address':220,620,649 'rtc.app.warp.dev':367 'rule':117,168,212,274,484,738 'rxqxggbzmzsb.yaml':1393 's/hardware':841 'script':129 'seattl':759 'secur':859 'sed':840 'select':632 'server':603 'servic':822,848,855,865,874 'setsecurewebproxi':1274 'setup':76,235 'setup-ai':75,234 'setwebproxi':1267 'shell':776 'shell/git':1295 'skill' 'skill-clash-doctor' 'sniffer':1338,1370 'sniffhost':1363 'sock':742,869,1406 'socks5':568,588,1052,1063,1077,1314 'socks5/http':566 'source-majiayu000' 'ss':158 'stabl':349 'stack':748 'status':85,695 'status.anthropic.com':401 'stcp':957 'suffix':358,363,373,378,383,388,408,413,418,423,476,481,491,496,501,518,523,528,533 'supabas':472 'supabase.co':477 'supabase.com':482 'support.anthropic.com':414,524 'support.claude.com':409,519 'support/io.github.clash-verge-rev.clash-verge-rev':36 'switch':82,662 'system':1246,1261 'tailscal':450 'target':881,887,895,904,984,1008,1019,1043,1073,1084,1091 'termin':345 'time':1001,1039,1069 'timeout':990,1027,1057 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-coding-assistant' 'topic-automation' 'topic-claude' 'topic-claude-code' 'topic-code-review' 'topic-developer-tools' 'topic-devops' 'topic-productivity' 'topic-prompt-engineering' 'topic-python' 'total':1002,1040,1070 'true':612,1375 'tun':219,624,648,656,706,746,1132,1155,1209,1215,1224,1241,1328 'type':601,631 'udp':611,1320,1329,1336 'uid':98,191,198,203,247,249,668,685 'url':633 'us':585,763 'usa':758 'usernam':607 'v':826 'v1.x.x':728 'verg':5,22,26,33,39,43,45,47,135,267,689,704,724,1236,1379,1401 'w':995,1032,1062,1089 'warp':344,354 'warp.dev':359 'web':850,860 'wi':1269,1276 'wi-fi':1268,1275 'www.gstatic.com':635 'www.gstatic.com/generate_204':634 'x':1022,1051 'x.x':1125,1138,1148 'yaml':46,277,487,596,627,647,705,1369,1402 'ytoo':157 '一句话总结当前网络状态':1197 '下载量为':1330 '不修改任何配置':1385 '不匹配任何规则':1344 '不是':1381 '不要修改原始订阅文件':1392 '不走代理':982 '且':119,123,127 '且系统代理未开启':1136 '个覆盖文件':179,262 '中':268,690 '中关联的':107 '中找到':195 '中找到对应的':202 '中添加':1300 '中点击':1290 '中的':213,218 '中的实际配置为准':1403 '为指定订阅配置完整的':237 '交互式配置流程':559,560 '产生无法匹配的连接':1322 '仅在需要时':1346 '从':638 '从源订阅的':193 '从目标订阅的':200 '代理':1033,1047,1121 '代理域名':1342 '代理环境变量':777 '代理环境变量缺失':1296 '代理类型':565,602 '代理节点不可用':1280 '代理节点本身有问题':1168 '代理软件整体异常':1145 '代理配置':910 '以下均视为':112 '任意':1154 '优先级':550 '但':1223 '住宅代理':171,225 '住宅代理ip':658 '住宅代理凭证敏感':1397 '住宅代理服务器':653 '住宅代理节点名':641 '住宅代理节点配置':549 '你是一个':24 '使用内置的':255 '修复':1365 '修改':679 '修改后':1376 '克隆时提醒用户覆盖文件包含代理凭证':1398 '克隆覆盖配置':74,175 '克隆订阅配置':13 '全域名':370 '全部为空':1364 '全配置':148,156,164 '关闭':1131,1144,1161,1240 '内容复制到目标订阅的对应覆盖文件':181 '内核':28,726 '内置':271 '写入':260,617 '写入前确认':208 '写入目标文件':206 '写入覆盖文件前必须展示将要写入的内容摘要':1387 '切换激活配置':84,661 '切换订阅':17 '切换订阅需要确认':1389 '切换配置文件':14 '列出将要覆盖的文件和内容摘要':209 '列出所有':93 '列出目标订阅的覆盖配置状态':672 '删除原始订阅中可能存在的同名组':644 '判断':104 '判断执行哪个模式':56 '判断矩阵':1117 '到期':139,733 '到期时间':100 '劫持仍在工作':1218 '劫持生效但流量不通':1212 '劫持生效但流量拦截失败':1135 '包含具体操作步骤':1207 '协议使用':1335 '原因':1332 '参数模式':57 '只修改覆盖文件':1395 '只有':130 '只有注释行':115 '同时自动将代理服务器':615 '后超时':1230 '向用户询问以下信息':561 '告知用户将从当前订阅切换到目标订阅':671 '命令路由':53 '和':1362 '和关联的覆盖文件':248 '嗅探到':1339 '回环':657 '在':1283,1288,1298,1366 '在代理客户端中开启':1260 '在监听':970 '域名':61 '域名被解析为':1219 '基本是':1190 '外部':891,900 '失败':1013,1049,1079 '如':62,1325 '如无已配置的住宅代理':557 '如有':577,580 '如有住宅代理节点则直接复制':555 '如果所有节点都不行':1293 '如果是':1251 '如果有已配置的':252 '如果没有现成模板':254 '如果目标覆盖文件已有非空内容':228 '如果目标订阅覆盖文件为空':674 '如果重启无效':1239 '字段为目标':684 '字段模糊匹配':189 '密码':579,610 '对每个发现的监听端口测试':1017 '导致所有连接无域名':1358 '导致连接直接发往':1226 '将源订阅的':177 '展示':96 '展示目标订阅的覆盖状态':1390 '工具路由':81,233 '工具路由规则':10 '已知流量模式':1317 '常见代理端口扫描':937 '常见问题的解决方案模板':1208 '并行执行以下所有检查命令':774 '并行执行以下测试':979 '并行采集':696 '应保留':224 '应用':1380 '应用层':1175 '开关':1249 '开发工具代理路由':239 '开启':747,751,1167,1245 '当前':149 '当前激活的订阅名和流量':701 '当前状态概览':86,694 '当前节点':752 '当前选中的节点':721 '当参数为空或为域名时':768 '当用户遇到网络问题':15 '或':60,66,68 '或域名':572 '或手动设置':1265 '或重启':692 '执行模式':58 '执行网络诊断':769 '扫描完成':976 '找到源和目标的':190 '指出问题的根本原因':1203 '按优先级':1232 '按优先级列出解决方法':1206 '控制面板中切换到其他节点':1285 '提示用户在':265,687 '改用系统代理模式':1243 '文件':109 '无代理环境变量':803 '无参数':59 '是否激活':102 '最常见':1182 '最高优先级':276 '服务器地址':570,604 '未设置':923,935 '未配置':113 '本地':884 '查看':12,18 '根因':1202,1213 '根据':54 '检查内容是否为空模板':110 '检查是否需要重新授权网络扩展':1253 '检查订阅是否过期':1294 '检测当前活跃的网络接口':807 '模式':737,1133,1242 '模式一':87 '模式三':230 '模式二':174 '模式五':693 '模式六':765 '模式四':660 '模式异常':1210 '模式正常工作':1156 '模式的':1216 '正常':1130,1152,1153,1157,1160,1163,1170,1172 '步骤':182,241 '注意':614 '注意事项':211,1383 '活跃接口':844 '流量':138 '流量使用':99 '测试':1082 '测试延迟':1287 '测速':1291 '清理原始订阅中可能存在的冲突规则':486 '源订阅名':72 '源订阅的原始规则和目标可能不同':216 '激活':141 '激活订阅':729 '灰狐云互联':150 '版本':715 '状态':725 '状态检查':1097 '现象':1323,1359 '用中文输出所有信息':1399 '用户传入的参数':30 '用户名':576,608 '用户提供后生成':593 '的':197,619,682 '的诊断和配置管理专家':29 '目标域名':882,985,1020,1085 '目标订阅名':73 '直连':996,1012,1120 '直连测试':981 '确保使用自定义版本':645 '确认':670 '示例':587 '空模板判断标准':111 '空行':116 '端口':574,606,739,968 '端口以':1400 '端口配置':708 '第一步':772 '第三步':1115 '第二步':977 '等':1394 '等用户确认':210,1388 '类型为':1327 '类型的订阅':95 '系统代理':707,750,1122,1248,1263 '系统代理未开启':1257 '系统代理设置':806 '系统设置':1254 '结果':802,1119 '综合诊断':1116 '网络扩展':1256 '网络正常':1173 '网络诊断':7 '耗时':1000,1038,1068 '节点显示名':582,600 '虚拟网卡未正确拦截流量':1225 '要配置代理规则':16 '覆盖':595 '覆盖中提取住宅代理名称填入':640 '覆盖文件':554 '覆盖文件中设置':1368 '覆盖文件状态':101,103 '覆盖状态':140 '覆盖详情':165 '见下方':258 '解决':1345 '解决方案':1205,1231,1258,1281,1297 '解析对比':879 '警告可能缺失的配置':1391 '警告用户可能缺少':675 '警告用户将被覆盖':229 '订阅列表':136 '订阅名':78,83,137 '订阅名称':97 '识别规则':1179 '诊断':1123 '诊断与配置管理':6,23 '诊断操作是只读的':1384 '诊断模式':64,766 '诊断输出格式':1194 '详细分析':1199 '读取':90,184,243,664,698,703 '读取当前激活订阅的':552 '读取当前激活订阅的覆盖文件作为模板':251 '读取每个订阅的':105 '超时':1129,1142,1143,1159,1165,1166 '超时或拒绝':1014 '路径常量':32 '路由规则':677 '路由规则集':257,273 '输出格式':722 '输出格式示例':133 '这是最常用的配置操作':240 '进入':558 '连接表中':1360 '连接表中出现随机域名':1324 '连通性测试':978 '逐个读取源文件内容':205 '逐项或一次性提供均可':562 '逐项说明每个检查结果的含义':1200 '通过代理测试':1016 '通过订阅名':187 '通过订阅名找到目标':246,667 '部分可能需要适配':215 '配置':8,79,231,270 '配置操作需要确认':1386 '配置文件列表':70,88 '配置时使用':20 '采集环境信息':773 '重启':1353,1377 '重启代理软件':1234 '问题可能在浏览器':1174 '问题概述':1196 '防回环':227,625 '防止':655 '随机字符串':1343 '隐私与安全性':1255 '需要你提供住宅代理信息':563 '需要切换节点':1169 '需要开启系统代理或设置环境变量':1162 '需要结合延迟判断':1187 '需要重启':1146 '默认':567,583,767 '默认目标为':770","prices":[{"id":"830f8c33-833a-437f-b748-aed24c2ff8b8","listingId":"0da62166-f873-43f7-b025-b7b74d229a9a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"majiayu000","category":"claude-arsenal","install_from":"skills.sh"},"createdAt":"2026-04-18T22:24:01.598Z"}],"sources":[{"listingId":"0da62166-f873-43f7-b025-b7b74d229a9a","source":"github","sourceId":"majiayu000/claude-arsenal/clash-doctor","sourceUrl":"https://github.com/majiayu000/claude-arsenal/tree/main/skills/clash-doctor","isPrimary":false,"firstSeenAt":"2026-04-18T22:24:01.598Z","lastSeenAt":"2026-05-01T07:01:12.624Z"}],"details":{"listingId":"0da62166-f873-43f7-b025-b7b74d229a9a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"majiayu000","slug":"clash-doctor","github":{"repo":"majiayu000/claude-arsenal","stars":29,"topics":["agent-skills","ai-agents","ai-coding-assistant","automation","claude","claude-code","code-review","developer-tools","devops","productivity","prompt-engineering","python","software-development","typescript","workflows"],"license":"mit","html_url":"https://github.com/majiayu000/claude-arsenal","pushed_at":"2026-04-29T04:12:22Z","description":"52 production-ready Claude Code skills and 7 specialized agents for software development, DevOps, product workflows, and automation.","skill_md_sha":"1ab028892d4be76db575608b67d5c98b578bbb4f","skill_md_path":"skills/clash-doctor/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/majiayu000/claude-arsenal/tree/main/skills/clash-doctor"},"layout":"multi","source":"github","category":"claude-arsenal","frontmatter":{"name":"clash-doctor","description":"Clash Verge 诊断与配置管理。网络诊断、配置 AI 工具路由规则（Claude/Codex/Cursor/Warp）、查看/克隆订阅配置、切换配置文件。当用户遇到网络问题、要配置代理规则、切换订阅、查看 Clash 配置时使用"},"skills_sh_url":"https://skills.sh/majiayu000/claude-arsenal/clash-doctor"},"updatedAt":"2026-05-01T07:01:12.624Z"}}