web-searchlisted
Install: claude install-skill wangjs-jacky/jacky-skills
# Web Search 工具决策
> 完整 Tradeoff 矩阵和经验沉淀参考 Obsidian 文章 OBA-w8s3k7p2。
> `${CLAUDE_SKILL_DIR}` 指本 SKILL.md 所在目录。
## 0. 一句话决策(90% 场景)
```
拿到信息获取请求
│
├─ GitHub URL?────────→ 原生 `gh` 结构化获取
│ ↓ `gh` 确实无法获取所需内容
│ Layer 3 / Layer 4 网页降级
│
├─ 其他 URL?──────────→ Layer 1(OpenCLI 路由)
│ ├─ 内置 100+ 站点
│ ├─ External CLI 桥接(lark/notion/...)
│ └─ 本机扩展 CLI(yuque-cli/linear/...)
│ ↓ 全部未命中
│ Layer 3(已知 URL 读取)
│ ↓ 需要登录/SPA 失败
│ Layer 4(浏览器 CDP 兜底)
│
└─ 没有 URL ───────────→ Layer 2(通用搜索降级链)
WebSearch → Tavily → DuckDuckGo
```
**核心原则**:零成本优先、按需升级、一工具失败立即换下一级,**不要在同一工具反复重试**。
## 1. 首次使用提示(仅出现一次)
进入 skill 时先读 `${CLAUDE_SKILL_DIR}/experience.local.md` 顶部。如果**没有** `setup-completed: ` 标记:
> 💡 提示:跑 `/web-search setup` 可一次性完成 Tavily API Key 配置 + 扫描本机的搜索/采集 CLI 工具(语雀/Linear/Notion 等)。配好后下次自动用上,不会有打断。
跑过一次后,setup 命令会在 experience.local.md 顶部写入 `setup-completed: {ISO 时间}`,从此不再提示。
## 1.5 GitHub 特殊路由:原生 `gh` 绝对优先
当 URL 为 `github.com` 或任务明确涉及 GitHub 仓库、文件、PR、Issue、Release、Actions 等信息时:
1. **必须首先使用本机原生 `gh` CLI**,优先调用 `gh api`,或使用 `gh repo` / `gh pr` / `gh issue` / `gh release` / `gh run` 等结构化命令。
2. 需要阅读仓库源码时,优先用 `gh api repos/<owner>/<repo>/contents/<path>` 、Git Trees API 或临时 clone,不先抓 GitHub HTML 页面。
3. 只有在 `gh` 已证明无法取得目标内容时