research
Skill1 starsChanged 3 months agoMITView on GitHub
Gather current information from the web using multiple sources in parallel. Use when the user needs facts, tools, best practices, or community opinions that may not be in training data. Triggers on: "search for", "look up", "find out", "what's the latest", "research".
- Reads credentials
189 other projects use a version of this.
Adopted by
Most recently taken up by
- dialog-db/dialog-dbtheir own version, first seen Nov 9, 2026
- howells/skillstheir own version, first seen Nov 8, 2026
- xiaoxiaosrm/dsh-mattpocock-skillstheir own version, first seen Nov 8, 2026
- Suge8/friedbuntheir own version, first seen Nov 8, 2026
- wowyuarm/dsh-agent-teamtheir own version, first seen Nov 8, 2026
- Contexera/dsh-agent-teamtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use daily-arxiv, exp-eval and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
LambenthanSkilldaily-arxiv
每日从 arXiv 拉取新论文,过滤相关性,auto-ingest 高优先级论文,检测 SOTA 更新
Also in 5 projects that use this
LambenthanSkillexp-eval
实验判决门:Review LLM 独立评判实验结果 → 4 种判决路径 → 自动更新 claims confidence、ideas status、graph edges
Also in 5 projects that use this
truongtv22SkillProblem-Solving Techniques
Apply systematic problem-solving techniques for complexity spirals (simplification cascades), innovation blocks (collision-zone thinking), recurring patterns (meta-pattern recognition), assumption constraints (inversion exercise), scale uncertainty (scale game), and dispatch when stuck. Techniques derived from Microsoft Amplifier project patterns adapted for immediate application.
Also in 5 projects that use this
liufeng1976Skillsetup-ts-deep-modules
Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.
Also in 43 projects that use this
skyllwtSkillexp-pilot-eval
Pilot result evaluation — read pilot results, apply success criteria, update idea page (pilot_result, failure_reason if failed), generate PILOT_VERDICT_REPORT. Called by /ideate Phase 5 after /exp-pilot-run.
Also in 4 projects that use this
skyllwtSkillexp-pilot-run
Pilot experiment execution — read Pilot Spec YAML, write pilot code, run experiment(Confirm with the user before operation and require the applicant to conduct manual inspection), return results. Called by /ideate Phase 5. Does NOT modify wiki pages or judge pass/fail.
Also in 4 projects that use this
- +5 more from Lambenthan
- +1 more from skyllwt
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- mattpocock/skills★ 309ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- udecode/plate★ 17ksame name
- openai/plugins★ 7.8ksame name
- ArcReel/ArcReel★ 6.3ksame name
- vinvcn/mattpocock-skills-zh-CN★ 5.5ksame name
- withcoral/coral★ 4.9ksame name
179 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docxSkill
- pdfSkill
- app-icon-studioSkill
- audit-promptSkill
- bootstrap-goal-projectSkill
- boy-scoutSkill
- brand-namingSkill
- create-engineering-skillSkill
- create-prSkill
- elevenlabsSkill
- firebase-adminSkill
- firebase-hosting-basicsSkill
- gmailSkill
- linearSkill
- nano-banana-app-iconSkill
- new-projectSkill
- plainSkill
- product-researchSkill
- pr-qa-browserSkill
- publish-researchSkill
- readme-best-practicesSkill
- ripple-checkSkill
- roadmap-pageSkill
- scopeSkill
- searchexaSkill
- slackSkill
- triage-pr-commentsSkill
- write-loopSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. 0 are common, 6 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 169 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 74
Before executing, decide the mode from the shape of the question:
- Very specific: line 110
Run research.py prior "<sub-question>" once per decomposed sub-question.
- Very specific: line 111
Add --since 6m for fast-moving topics (frameworks, APIs, market data).
- Distinctive: line 125
If no results → state so and proceed to Step 3.
- Distinctive: line 127
All DROPPED → synthesize from prior files.
- Very specific: line 140
Create the run directory: ~/Documents/Research/<run-id>/.
- Distinctive: line 172
After all subagents return, read the final angle files before drafting synthesis.
- Distinctive: line 177
When sources conflict, primary sources override secondary/tertiary
- Very specific: line 192
After synthesis, persist the run to disk.
- Very specific: line 196
Verify angle files: Read each expected angle path.
- Very specific: line 198
Prepend to INDEX.md: Add a new entry at the top: title + date line, Tags: line, one bullet per angle file + one for the synthesis, each …
- Distinctive: line 201
If any write fails, still return the research results to the user — persistence is best-effort, never blocking.
- Very specific: line 231
Run research config to see resolved configuration (which keys are set, persistence status, which env files loaded).
“Common” is measured: kept by at least 6 in 10 of the 169 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<objective>
Web research orchestration — find, verify, and structure information from online sources. Scales from quick single-source lookups to comprehensive multi-subagent investigations.The user runs this instead of searching by hand because they expect deeper and more reliable results than a manual search: the answer usually feeds a decision, so a confident claim that is wrong or a well-known option that goes unmentioned costs more than a slower run. Source diversity and verification against primary sources are how the skill earns that trust.
This skill handles web research only. Claude handles codebase exploration natively — don't use this skill for questions answerable from the local project. When a request mixes both, explore the codebase with the usual tools, use this skill for the web part, and synthesize the two together.
The user's explicit instructions take precedence over anything in this skill. Ask the user a question only when the missing detail would change which sub-questions to pursue or what counts as done; otherwise state the assumption and proceed.
</objective>
<cli_cheatsheet> Quick syntax reference — all commands on one line each.
Script path: ~/.agents/skills/research/scripts/research.py
uv run <script> ask "<query>" [--site S] [--recency R] [--after YYYY-MM-DD] [--before YYYY-MM-DD] [--no-cache]
uv run <script> search "<q1>" ["<q2>" ... up to 5] [--site S] [--recency R] [--after YYYY-MM-DD] [--before YYYY-MM-DD] [--country CC] [--limit N] [--no-cache]
uv run <script> google "<query>" [--region CC] [--recency R] [--page N] [--no-cache]
uv run <script> reason "<query>" [--site S] [--recency R] [--after YYYY-MM-DD] [--before YYYY-MM-DD] [--no-cache]
uv run <script> docs <lib> "<query>" [--max-tokens N] [--no-cache]
uv run <script> map <url> [--search KW] [--limit N] [--no-cache]
uv run <script> scrape <url> [--no-cache]
uv run <script> credits
uv run <script> config
uv run <script> audit [--days N] [--session S] [--detail]
uv run <script> prior "<query>" [--since S] [--limit N] [--min-score N]
--site: a real domain name like stripe.com or pay.uk (NOT topics/phrases). Repeatable.
--recency: preset window — hour | day | week | month | year. For custom ranges use --after/--before with YYYY-MM-DD dates.
Cost: search ~$0.005 per request (one request covers up to 5 queries) | ask ~$0.01 | reason ~$0.02-0.03 | google 1 SC credit | docs free | map/scrape 1 FC credit each | prior free (local)
`ask` and `reason` run Perplexity Agent API research loops (effort `low` and `medium`): the answer cites sources as `[web:N]`, and `sources` lists each `N` with its URL, title and date. `metadata.cost_usd` is the exact charge.
Also available: WebSearch (free, broad), WebFetch (free, page summary)
All CLI calls and WebSearch/WebFetch usage are logged to ~/.cache/research/logs/YYYY-MM-DD.jsonl
YouTube script: `~/.agents/skills/research/scripts/youtube.py`
uv run <yt-script> search "<query>" [--question Q] [--max-videos N] [--after today|this_week|this_month|this_year] [--no-preprocess] [--no-select]
uv run <yt-script> transcript <url> [--no-cache]
uv run <yt-script> comments <url> [--order top|newest] [--limit N] [--cursor C] [--no-cache]
Cost: ScrapeCreators PAYG when `SCRAPECREATORS_API_KEY` is configured (search cached 24h, transcripts 30d); otherwise free fallback via yt-dlp + youtube-transcript-api (`comments` has no free fallback). Pre-processing uses Claude subscription (claude -p).
Notes: `--after` only accepts `today`, `this_week`, `this_month`, `this_year`; `--max-videos` is a cap under ScrapeCreators first-page search; `metadata.backend` reports `scrapecreators`, `yt-dlp`, or `mixed`.
Social script: `~/.agents/skills/research/scripts/social.py`
uv run <social-script> reddit "<query>" [--question Q] [--subreddit S] [--timeframe all|day|week|month|year] [--sort relevance|new|top|comment_count] [--max-threads N] [--no-cache]
uv run <social-script> thread <url> [--max-comments N] [--cursor C] [--no-cache]
uv run <social-script> shortform "<query>" [--no-cache]
Reddit search defaults to the full archive (--timeframe all); narrow only when recency matters. `thread` fetches one thread at full fidelity (post body + nested comments).
Requires: SCRAPECREATORS_API_KEY in ~/.claude/research/.env. ScrapeCreators credits are abundant — use SC-backed commands freely whenever they fit the question; every response reports actual credits used.</cli_cheatsheet>
<complexity_assessment> Before executing, decide the mode from the shape of the question:
QUICK — a single clear answer is expected ("what version of X is latest?", "does Y support Z?", "what's the URL for X?"). Resolve it directly, no subagents.
STANDARD / DEEP — the question has several information angles, asks for a comparison or recommendation, or depends on practitioner experience ("how do I set up X?", "what tools exist for Y?", "evaluate X vs Y for our use case"). Decompose it and run one subagent per sub-question; the number of subagents follows from the decomposition, not from a tier. </complexity_assessment>
<quick_mode>
For QUICK complexity queries, resolve the lookup directly — no subagents, no run directory. Start with the tool that best fits the question (WebSearch or research google for discovery, research docs for library APIs, WebFetch/research scrape for a known page), and verify version numbers or feature claims against the primary source before answering. Done means: the answer comes from an authoritative source and specific claims are verified.
</quick_mode>
<research_mode> For STANDARD and DEEP complexity queries:
STEP 1: DECOMPOSE
Analyze the question and generate 2-4 specific sub-questions. For each, assign a source strategy by fit — which surfaces would a capable human researcher actually consult for this sub-question? Combine official and community surfaces when both carry signal (e.g. legal research: official sources for the rules, communities for how they play out in practice).
Source menu (cost is not a selection criterion — ScrapeCreators credits are abundant and Perplexity calls cost cents; pick whatever fits):
- Broad discovery: WebSearch,
research google(real Google SERP;--regionfor country-specific topics),research search(Perplexity ranking). Different engines surface different results — use a second engine when the first pass looks thin. - Official/primary sources: WebFetch a known page,
research scrapewhen pages are JS-heavy or block fetching,research mapto find pages on a site,research docsfor library APIs. - Synthesis and reasoning:
research ask/research reason(Perplexity Agent API;reasonchains several rounds of search and page fetching). Useful as a supplementary triangulation pass — treat the answer as tertiary evidence, never as the sole source for a claim; the returnedsourceslist is what to verify against. - YouTube:
youtube searchwhen watching someone show, explain, or review would help (tutorials, talks, product reviews, "what is X actually like?");youtube transcript <url>when a specific video is already known;youtube comments <url>for community corrections under a video you've used as evidence. - Reddit:
social redditwhen real people's experiences and recommendations matter ("best X for Y", troubleshooting, local knowledge, "has anyone tried X?"). Defaults to all-time search; add--timeframeonly when recency genuinely matters. Follow up withsocial thread <url>to read a promising thread in full. - Short-form video:
social shortformonly when trends/viral consumer sentiment is clearly relevant.
Evidence rules (apply to every subagent):
- Match rigor to stakes. For each sub-question, weigh what it costs if the answer is wrong or incomplete and how cheaply the decision it feeds can be reversed later. A claim behind a cheap-to-reverse decision is answered from one credible source; a load-bearing claim behind a costly or hard-to-reverse one gets independent corroboration and, for official features, prices, or laws, the canonical source. Put that judgment in the brief instead of a uniform source count.
- Trust hierarchy: primary sources (official docs, source code, author's post) > secondary (well-known blogs, curated lists) > tertiary (Perplexity synthesis, random forum posts).
- Every run includes at least one broad discovery pass so unknown-unknowns can surface, and what it surfaces is accounted for: in a comparison or recommendation, a candidate the pass turned up but didn't evaluate is named with the reason it was set aside. A cap on candidates bounds how many are evaluated in depth, not which ones may be considered.
STEP 2: CONSULT PRIOR RESEARCH
Skip if the configured research directory does not exist (default: ~/Documents/Research/; override with RESEARCH_DIR). Otherwise mandatory.
- Run
research.py prior "<sub-question>"once per decomposed sub-question. Add--since 6mfor fast-moving topics (frameworks, APIs, market data). - If results returned:
a. Read the top-scoring
role: anglefiles first — they are shorter and directly comparable to your sub-question. b. Read matchingrole: synthesisfiles only when you need a decision-level summary or the angle files point to broader run context. c. Treat weak/default-threshold matches as leads, not coverage, until you read the file. Use--min-score 0only when you intentionally want broad recall. d. Treat research older than ~6 months on fast-moving topics as context, not authority. - Produce an explicit per-sub-question mapping before proceeding:
- SQ-A "X pricing" → covered by
2026-03-12-x/02-pricing.md→ DROP - SQ-B "X rate limits" → partial: free tier only → KEEP, narrow to paid
- SQ-C "X webhooks" → no prior coverage → KEEP
- SQ-D "X auth rotation" → new angle from
2026-03-12-x/03-auth.md→ ADD
- SQ-A "X pricing" → covered by
- If no results → state so and proceed to Step 3.
- Branch on the mapping:
- All DROPPED → synthesize from prior files. No subagents. Cite prior files.
- Some KEPT/ADDED → spawn subagents only for those. Paste relevant prior angle-file excerpts into prompts as verified context to extend.
Without the explicit mapping, this step degenerates into a glance.
STEP 3: SPAWN SUBAGENTS
One research-subagent per retained sub-question, launched in parallel with the harness's delegation tools and its locally configured agent definition.
Sub-agents write their findings directly to files you assign. Do path coordination BEFORE spawning:
- Generate the run-id:
YYYY-MM-DD-<3-5-word-kebab-slug>. - Create the run directory:
~/Documents/Research/<run-id>/. - For each sub-question, derive an angle slug (3-5 word kebab of the sub-question). Assemble target paths
<run-dir>/0N-<angle-slug>.mdstarting at01.
Each subagent prompt must include:
You are a research subagent investigating: [specific sub-question]
First, read ~/.agents/skills/research/references/cli-reference.md for full CLI details.
TARGET PATH: <absolute path, e.g. /Users/you/Documents/Research/<run-id>/0N-<angle-slug>.md>
SOURCE STRATEGY: [which commands + built-in tools fit THIS sub-question, and why]
STAKES: [what being wrong costs here and how reversible the downstream decision is; this sets the depth]
DONE WHEN: [the concrete comparison or decision this evidence must support]
BOUNDS: [scope and exclusions the user actually stated; what uncertainty to report rather than chase]
WRITE PROTOCOL:
- Write your findings to TARGET PATH: YAML frontmatter (schema in
~/.agents/skills/research/references/persistence-format.md) followed by the findings
body with inline citations, verbatim quotes where relevant, and 3-7 specific tags.
- Your RETURN MESSAGE is a short summary only: one-line key finding, tags, confidence
level, source URLs. Do NOT paste the full findings body — it lives in the file.Include relevant prior-research excerpts (from STEP 2) as verified context to extend. The DONE WHEN line is the subagent's stopping rule: it stops when that comparison or decision is supported by cited evidence, not when a budget runs out.
The parent owns local baseline/history and synthesis, not a duplicate discovery pass over delegated angles. Fetch shared live data once and pass it to the children.
STEP 4: SYNTHESIZE
After all subagents return, read the final angle files before drafting synthesis; synthesize only from files whose writers have finished.
Then:
- Cross-reference findings:
- When sources conflict, primary sources override secondary/tertiary
- Flag contradictions explicitly in the response
- Findings from a single source get lower confidence
- Confidence signaling (not numeric scores):
- Verified against official docs → state the source
- From community discussion → note it's community-sourced
- Single unverified source → flag as unverified
- Follow up only where it changes the answer. Spawn one more targeted subagent when a load-bearing claim is still unverified or two sources contradict each other on a point the decision turns on. Otherwise report the uncertainty and stop.
- Write the answer for the decision it feeds. Lead with the answer or recommendation, then the evidence that supports it, the material caveats and contradictions, and the next action. Drop detail that would not change what the reader does next. Let the format follow the question: a table when options are being compared, a yes/no first when existence is asked, steps with code when the reader will implement, sentiment proportions when the question is how people feel; plain prose otherwise. Every non-obvious claim carries its source.
STEP 5: PERSIST
After synthesis, persist the run to disk. First run research config — if persistence is false, skip this step. Read ~/.agents/skills/research/references/persistence-format.md for full format details.
The run directory already exists (created in STEP 3) and sub-agents have already written their angle files. Your job here is verification, synthesis, and indexing.
- Verify angle files. Read each expected angle path. For any that are missing or malformed, write the file yourself from the sub-agent's text return and set
write_fallback: truein the frontmatter. - Write the synthesis. Create
<run-dir>/00-synthesis.mdin the decision-oriented style described in the persistence-format reference: the decision or answer, its confidence, the contradictions that remain, and a link to each angle file for the evidence. Finding bodies live in the angle files, not here. Tags = union of angle tags + any synthesis-level additions. - Prepend to INDEX.md. Add a new entry at the top: title + date line,
**Tags:**line, one bullet per angle file + one for the synthesis, each with a one-line finding. - Return the user-facing answer. Can be the synthesis body verbatim or a tighter version of it.
If any write fails, still return the research results to the user — persistence is best-effort, never blocking. </research_mode>
<configuration>
## Env file configurationThe CLI loads skill-specific env files before reading API keys. This lets users set dedicated keys for the research skill without polluting their shell environment.
File locations (loaded in order — later files override earlier ones, and all override shell env):
| Priority | Path | Scope |
| 1 (lowest) | Shell environment | Global |
| 2 | ~/.claude/research/.env | Skill-global |
| 3 (highest) | .claude/research.env (in project root) | Project-specific |
Supported variables:
# API Keys
PERPLEXITY_API_KEY=pplx-...
CONTEXT7_API_KEY=...
FIRECRAWL_API_KEY=fc-...
SCRAPECREATORS_API_KEY=...
# Settings
RESEARCH_NO_PERSIST=0 # Set to 1 to disable research output persistence
RESEARCH_DIR=~/Documents/Research # Optional override for persisted researchRun research config to see resolved configuration (which keys are set, persistence status, which env files loaded).
</configuration>
<success_criteria>
- Contradictions between sources are flagged, not silently resolved
- Findings cite their sources; official claims verified against primary sources
- A recommendation names the candidates it considered; a candidate surfaced but not evaluated has a stated reason
- Community surfaces (YouTube, Reddit) consulted wherever practitioner or owner experience adds value, not just web search
- Standard/deep runs are persisted as per-run directories under the configured research directory (default:
~/Documents/Research/) with angle files written by sub-agents, a decision-focused00-synthesis.mdwritten by the orchestrator, and INDEX.md updated - Prior research consulted via
research.py prior(when the configured research directory exists), with an explicit drop/keep/add mapping per sub-question before any subagent spawns - Quick lookups resolve without subagents when the answer is clear
- Provider failures are reported as failures — an errored source is never presented as "no evidence found" </success_criteria>
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

