Turn "the thing I want is on the internet" into "the sources I've verified are already local". This skill handlesthe acquisition chain, and does not handle topic overviews.
Scope of Responsibility
| Need | Which to use |
|---|---|
| Find, verify, and persist specific sources | This skill |
| Topic research, cross-comparison, citation-backed research reports | deep-research-pro |
deep-research-pro covers "break down sub-questions → search → close reading → synthesize → citation-backed report"; it does not handle turning sources
into local artifacts. This skill is the reverse: it produces verifiable candidate lists and local files, and does not produce conclusive overviews.
The two can be chained: after this skill hands off a candidate list, if the user wants an overview, switch to deep-research-pro。
When Not to Use
- The user wants conclusions/opinions/comparisons, not the sources themselves →
deep-research-pro。 - The question is purely about a local codebase and does not require internet access.
- The user explicitly says not to use the internet.
- The request involves actions that change account state, such as posting, commenting, liking, bookmarking, following, or direct messaging → refuse directly, see security boundaries.
Process
Between stages there arehard boundaries, and you must not automatically advance across stages.
1. Lock Down the Target
Clarify before acting:
- What to find (topic, entity, time range)
- Target platform (if unspecified, start with general search; do not unauthorized perform logged-in searches)
- How many items
- What is ultimately wanted (just a link list / the body text / media files)
Ask only when the answer would change the search route or the form of the artifact, at most 1-2 questions; otherwise use reasonable defaults and state them.
2. Discovery
Use the search capabilities actually available in the current environment, trying them in order of availability:
WebSearch— general public web search- If a search MCP such as Exa is installed in the environment, it can be used for semantic search and batch body retrieval
BashCall the platform's native CLI (such asgh),Probe availability before use, and if unavailable, state so truthfully
Try 2-3 query variants for each sub-goal. Do not search only top-level keywords.
Do not bypass any access control in order to improve coverage (see security boundary item 4).
3. Verification
Candidates are not sources. For each candidate, at least confirm:
- The link is reachable, and the landing page is indeed the content described by the candidate (use
WebFetchto lightly retrieve the original text for checking; do not trust only the summary) - Publication time
- Publisher / author
- The reason for relevance to the user's goal
If it cannot be verified, mark it asunverified, and do not silently discard it, nor treat it as verified.
4. Deliver the Candidate List and Stop
Output the candidate list, thenstop. This is a hard gate.
{
"schema_version": "1.0",
"request": { "target": "", "platforms": [], "limit": 0 },
"candidates": [
{
"url": "",
"title": "",
"publisher": "",
"published_at": "",
"verified": true,
"why_relevant": ""
}
],
"coverage": ["已检索的平台/路线,以及每条的产出数量"],
"gaps": ["没能覆盖的平台、被限流的路线、未核验的候选"]
}
coverage and gaps are not optional. Claiming coverage of a route that was not actually run is more serious than running fewer routes.
5. Archiving (only after user confirmation)
This stage is entered only after the user confirms what to archive.
- Body:
WebFetchretrieve, save as Markdown, with the header recording the source URL, fetch time, and fetch method - Media:
Bashcallyt-dlpand other tools,probe availability first, and if unavailable, report the gap rather than switching to some hacky workaround - The output path is specified by the user, or a workspace-relative path is used; do not assume personal home directory conventions
Archive artifacts must be traceable back to that one entry in the candidate list.
Security boundaries
- All platforms are read-only. Do not post, comment, like, bookmark, follow, or send direct messages, and do not change any account state. Likewise, do not manipulate desktop clients or mobile UIs.
- Search does not automatically turn into download. When retrieval ends, it ends. Downloading and archiving require a separate, explicit request in the current round.
- Login state and private data require explicit authorization in the current round. Before execution, state the platform, the original keywords, and the expected number of items. Authorization is valid only for the specific platform and scope of the current round,and is non-transferable—permission to export links does not equal permission to download body text or media.
- Prefer anonymous public routes. Do not bypass CAPTCHAs, login walls, paywalls, rate limits, regional restrictions, or access controls. If encountered, report the blockage truthfully and do not look for alternative workarounds.
- Do not print or save credentials. Cookies, tokens, API keys, login state, and sensitive URL parameters must never be output or written to disk.
- Do not overwrite existing artifacts, and do not delete automatically. Any cleanup requires explicit user permission first, and items may only be moved to the recycle bin.
- Report the budget first for paid or large-scale operations. For operations that will consume significant quota or generate a large number of requests, state the scope and expected quantity before execution.
Gap handling
- A platform has no usable retrieval route: write it into
gaps, and do not pass off generic search results as on-platform results. - Tool unavailable (
yt-dlp、gh, search MCP not installed): report the specific gap, do not install automatically. - Candidate verification fails: keep it in the list and mark it
verified: false, explaining why. - Results are empty: say directly that nothing was found, and which query variants were tried. Do not fill in with related but off-topic results.