Online verification engine: for uncertain technical questions, check first, then judge; conclusions must carry source attribution.
Why It Exists
Jeffrey's observation (pinned on 2026-10-02): during development, tutorials are often not proactively looked up, judgments are made from memory, and mistakes are frequent; in the past this relied on manual reminders to "look up the tutorial online." This skill hardens "check first before saying anything" into default behavior. Companion provisions are in ~/.claude/rules/workflow.md"Pre-verification of technical assertions" — rules govern "must check" (unconditionally loaded in every session), and this skill governs "how to check."
Priority and Yielding
Ordinary search-type intents hit this skill first, and this skill internally routes tools:
| Intent | Belongs To |
|---|---|
| Search online / search / search for a tutorial / look up insights / verify / check how to use | This skill(other search skills yield) |
| Install software / configure tools (5 local tutorials including claude-mem, ECC, etc.) | laohan-jiaocheng |
| AI news / daily report / hot topics | aihot |
| Platform content download, comments, blogger data | laohan-xiazai |
| Video channel download, JS rendering/anti-scraping fetch degradation | See ~/.claude/rules/cli-tools.md master routing |
Three-route retrieval (choose the route by question type)
| Question Type | Route | Action |
|---|---|---|
| API usage / configuration semantics / parameter meaning | Official docs | anysearch search(--content_types doc) → hit the official URL → anysearch extract to read the original text |
| Error attribution / version compatibility / "why doesn't it work" | GitHub issue | gh search issues "关键词" --repo owner/repo、gh api repos/:owner/:repo/releases; issues are more accurate than search engines (empirically verified on 2026-09-30: WebSearch self-doubt misjudged, gh verified one by one that all 9 issues were real) |
| "How did others solve it" / pitfall insights / best practices | Community insights | anysearch (including reddit/blog results) → agent-reach (platform) → WebFetch to read the original text |
When a question spans categories (such as "why is this API throwing an error"), check issues + official docs together and cross-verify.
Toolchain and Degradation
-
anysearch(default engine):
python3 ~/.claude/skills/anysearch/scripts/anysearch_cli.py search "query" --max_results 5 # 批量:batch_search --queries '[{"query":"q1"},{"query":"q2"}]' # 读正文:extract "URL"Endpoint-agnostic (local CLI calls api.anysearch.com), does not consume Zhipu search quota; the only usable general search when the huo endpoint WebSearch returns 403 (measured on 2026-10-02). When the anysearch skill is already loaded, prefer the command configured in its runtime.conf.
-
Native WebSearch: degrade to it when anysearch fails/is rate-limited. Note: the cc endpoint = Zhipu web_search_prime backend (consumes Zhipu quota, often 429 code 1310); the huo endpoint is unavailable with 403. Starting 2026-10-03, the
pre:websearch-to-anysearchhook (10 directories) intercepts WebSearch and injects the anysearch command in the deny reason — when intercepted, run anysearch according to the command in the reason; do not retry WebSearch (see~/.claude/rules/custom-hooks.md)。 -
gh: use directly for GitHub-related questions, without going through search engines.
-
WebFetch / anysearch extract: read the body text for known URLs.
Output Contract (Mandatory)
Every verification output must include:
- Conclusion: directly answer the question
- Source citation:
(verified: URL)(following the anti-patterns #18 format); no citation = violation - Version/date: the version number or release date of the source—APIs change with versions, and old tutorials will deceive you
- Memory conflict: when the verification result conflicts with old memory, state explicitly "the memory is wrong, the actual situation is X"
- Not found: truthfully say "no reliable source found, the following is inference"; it is forbidden to pass off inference as verification
Security boundaries
- Sensitive information (keys, internal data, undisclosed business) must not go into search terms—anysearch/WebSearch both send queries to third parties
- Minimize query terms: include only technical keywords, without business context
Installation and verification
The real thing:~/Documents/laohan-skills/laohan-sousuo/(git repository).
# symlink(已建则跳过)
ln -s ~/Documents/laohan-skills/laohan-sousuo ~/.agents/skills/laohan-sousuo
ln -s ../../.agents/skills/laohan-sousuo ~/.claude/skills/laohan-sousuo
# 验证
readlink ~/.claude/skills/laohan-sousuo # 应输出 ../../.agents/skills/laohan-sousuo
python3 ~/.claude/skills/anysearch/scripts/anysearch_cli.py search "test" --max_results 1 # CLI 通