Search & Fetch
General search and content extraction skill, providing two core capabilities: Search Mode (multi-source parallel search + result synthesis) and Fetch Mode (URL content extraction + structured analysis).
Tool Overview
This skill orchestrates the following types of tools, combining them as needed:
| Category | Tool | Description |
|---|
| Built-in Search | | DuckDuckGo search, always available |
| MCP Search | Available MCP search tools in the current environment | Chinese search, professional search, etc., automatically selected based on availability |
| Technical Docs | CLI | Query official docs for programming libraries/frameworks |
| Browser | CLI | Access search engines, extract content from JS-heavy pages (Rust native, token-efficient) |
| Content Extraction | CLI → → MCP fetch → | Degrade by priority |
Refer to
references/tool-catalog.md
for specific invocation syntax.
Intent Detection
This skill is responsible for identifying and routing all URL and search intents. Automatically judge based on user input:
URL Detection
| Scenario | Handling |
|---|
| Message contains only URL (no other text, or only URL + spaces/punctuation) | Directly enter Fetch Mode |
| Message contains URL + reading intent ("read this", "analyze", "take a look at this") | Directly enter Fetch Mode |
| Message contains URL + save intent ("save", "clip", "save", "archive") | After completing Fetch Mode, automatically trigger the Clipping Save of the knowledge base skill |
| URL appears in a long message with unclear intent | Ask: "Would you like me to extract and analyze the content, or just keep the link?" |
| URL is obviously tool-based (localhost, internal network address, file path) | Do not trigger |
Search Detection
| Scenario | Handling |
|---|
| User asks questions, researches topics, needs to find information | Search Mode |
| Provides URL + "search for more similar content" | First Fetch then Search |
| Delegated call by other skills | Execute according to the mode specified by the delegator |
Search Mode
Multi-source parallel search, output structured results after deduplication and synthesis.
Step 1 — Query Classification
Judge the type based on query content, select tool combinations:
| Query Type | Judgment Basis | Tool Combination |
|---|
| Technical Docs | Involves programming libraries, APIs, framework usage | (library → docs) + |
| Chinese Content | Chinese query, or China-specific topics | MCP search + in parallel |
| General Query | Other general questions | + MCP search in parallel |
| In-depth Research | User explicitly requests comprehensive/in-depth research | All tools in parallel, including to access Google/Bing |
Step 2 — Parallel Search Execution
Based on classification results, call multiple search tools in parallel within
the same response round. Refer to
references/tool-catalog.md
for tool invocation details.
Key Principles:
- Call independent tools in parallel, no waiting
- context7 has sequential dependencies: first to resolve library ID, then to query content (max 3 calls per question)
- Adjust wording for different search engines for the same query (e.g., send original Chinese query to MCP search, translate to English for WebSearch)
- For in-depth research, use to open Google/Bing search pages, extract results after getting element references via
Step 3 — Result Synthesis
- Deduplication: Deduplicate by URL, merge information from the same page from different sources
- Grouping: Group by sub-topic or relevance
- Sorting: Sort by relevance and information quality
- Output Format:
markdown
## Search Results: [Query Topic]
### [Sub-topic 1]
- Key point summary (Source: [Title](url))
- Key point summary (Source: [Title](url))
### [Sub-topic 2]
- ...
---
**Source List**
1. [Title](url) — Brief description
2. [Title](url) — Brief description
Step 4 — Follow-up Operations
After displaying search results, provide follow-up options:
- "Would you like me to read the full content of a certain link?" → Switch to Fetch Mode
- "Would you like to save to the knowledge base?" → Guide users to trigger knowledge management skills like obsidian-knowledge
- Users can continue to ask questions to narrow or expand the search scope
Fetch Mode
Extract clean content from URLs and perform structured analysis.
Step 1 — Content Extraction
Attempt in priority order, automatically degrade if the previous one fails (error, returns empty, content < 100 characters):
1. defuddle parse <url> --md ← Preferred, removes noise
2. WebFetch(url) ← General degradation
3. MCP fetch tool (if available) ← MCP degradation
4. agent-browser open <url> → snapshot → get text ← Final resort for JS-heavy pages
Record which tool was used after successful extraction, to transparently inform users.
Refer to
references/tool-catalog.md
for tool invocation details.
Step 2 — Structured Analysis
Selectively apply analysis dimensions based on content type. See
references/analysis-template.md
for detailed templates.
| Content Type | Applicable Dimensions |
|---|
| Articles, comments, papers | All five dimensions (text deconstruction → concept extraction → critical examination → idea deepening → practical transformation) |
| News, product pages | Text deconstruction + concept extraction + practical transformation |
| Tutorials, technical docs | Text deconstruction + concept extraction + practical transformation |
| Data pages, API docs, reference tables | Skip analysis, directly present extracted content |
Step 3 — Output
Two output modes:
Standalone Mode (when used directly by users):
markdown
## [Page Title](url)
**Author**: xxx | **Date**: xxx | **Word Count**: xxx
### Summary
A paragraph summary.
### Analysis
[Output applicable dimensions according to analysis-template.md]
### Key Points
- Point 1
- Point 2
- Point 3
After analysis output, actively prompt: "Would you like to save to the knowledge base?" If the user agrees, guide to trigger the Clipping Save process of obsidian-knowledge.
Integration Mode (when delegated by other skills):
Output the following information blocks in natural language, for direct consumption by the caller (do not output JSON):
- Page Title and Original URL
- One-sentence Summary
- Key Points (list of points)
- Five-dimensional Analysis (output applicable dimensions)
- Full Clean Text (extracted clean markdown full text)
- Extracted Entities: Mentioned tools/software, stocks/companies, people (name + identity), books/papers/resources
Degradation Strategy
Handling methods when a tool is unavailable:
| Tool Unavailable | Impact | Alternative Solution |
|---|
| defuddle | Cannot extract clean main content | Degrade to WebFetch |
| WebFetch | Reduced extraction capability | Use MCP fetch or agent-browser |
| MCP search | Reduced search sources | Use WebSearch for all queries |
| ctx7 | No library doc search | Use WebSearch + site:xxx targeted search |
| agent-browser | Cannot process JS-heavy pages | Inform users, use WebFetch to extract as much as possible |
| All search tools | Cannot search | Inform users, suggest providing URL directly |
Do not interrupt the process because a tool fails — always try the next degradation solution until all are exhausted before informing the user.
Integration Protocol
This skill can be called by other skills. The delegator only needs to specify "delegate to search-and-fetch" in their own SKILL.md.
Behavior When Delegated
- Execute according to the mode (Search/Fetch) specified by the delegator
- Use Integration Mode output format
- Do not directly interact with users about follow-up questions (handled by the delegator)
- If content extraction completely fails, return failure marker and reason, and the delegator decides how to inform the user