mikeng-io/agent-skills/deep-research

Trust tier 3
  • community
  • ext:[{"type":"config","description":"Configuration overrides"}]
Source check pending

Checking that the SKILL.md file is still in the repository.

Generic multi-domain research framework with domain-aware scheduling. Model-agnostic and domain-agnostic - perform comprehensive research on any topic.

Install

npx vskill@latest install mikeng-io/agent-skills/deep-research

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

Deep Research: Multi-Domain Research Framework

Execute this skill to perform comprehensive research on any topic using domain-aware scheduling and parallel information gathering.

Execution Instructions

When invoked, you will:

  1. Resolve scope and context — invoke context skill (always), then preflight if confidence is low
  2. Discover available research tools using ToolSearch
  3. Analyze the research intent from working_scope to extract:
  • Primary research topic/question
  • Confirmed domains (from working_scope)
  • Research depth and scope indicators
  • Research methodology requirements (web search, crawling, interactive)

Dependency Check

Before executing any step, verify all required skills are present:

[skills-root]/context/SKILL.md
[skills-root]/preflight/SKILL.md
[skills-root]/domain-registry/README.md

Where [skills-root] is the parent of this skill's directory. Resolve with ls ../ from this skill's location.

If any required file is missing → stop immediately and output:

⚠ Missing required skills for deep-research:
{missing-skill}
Expected: {skills-root}/{missing-skill}/SKILL.md
Install the missing skill(s):
git clone https://github.com/mikeng-io/agent-skills /tmp/agent-skills
cp -r /tmp/agent-skills/skills/{missing-skill} {skills-root}/
Or install the full suite at once:
cp -r /tmp/agent-skills/skills/ {skills-root}/

All dependencies present → proceed to Step 0.


Step 0: Scope & Context Resolution

Context (always required):

Invoke Skill("context") first. It classifies the research topic, detects relevant domains, and assesses confidence:

yaml
context_report:
artifact_type: "" # code | financial | marketing | creative | research | mixed
domains: [] # matched domain names from domain-registry
routing: "" # routing recommendation (informational for research)
confidence: "" # high | medium | low

Preflight (conditional — triggered by context confidence):

Invoke Skill("preflight") only if context_report.confidence == "low" OR one or more signals remain unresolved:

  • The research topic or question is not clearly stated
  • Research intent is ambiguous (background vs. deep dive vs. comparison?)
  • Domains cannot be inferred from available context

Preflight fills exactly the gaps context could not resolve (max 3 questions, one at a time):

yaml
scope_clarification:
artifact: "" # primary research topic or question
intent: "research"
domains: [] # supplements context_report.domains
constraints: [] # explicit focus areas, excluded areas, depth preferences
confidence: "" # high | medium

If context_report.confidence == "high" → skip preflight entirely.

Merge into working scope:

yaml
working_scope:
artifact: "" # primary research topic or question
domains: [] # from context_report (authoritative), supplemented by preflight
constraints: [] # depth, focus, exclusion preferences
context_summary: "" # combined description for researcher agent prompts
research_depth: "" # BRIEF | STANDARD | COMPREHENSIVE (from constraints or defaults)

Use working_scope throughout this skill. Steps 1+ use it instead of re-extracting from conversation.

  1. Create a research plan with domain-aware effort allocation:
  • Primary domains get 70% of research effort
  • Secondary domains get 30% of research effort
  • Generate 5-10 search queries per domain
  • Identify sites that may require browser automation
  • Plan crawling strategy for complex sources
  1. Execute parallel research using multiple domain-focused agents:
  • Spawn domain researchers in parallel
  • Use web search for general information
  • Use browser automation for interactive sites, paywalls, or dynamic content
  • Use agent-browser skill for complex web interactions (multi-step flows, form submission, navigation) — install only, no MCP config needed
  • Fall back to mcp__playwright__* tools if agent-browser is not installed (requires Playwright MCP configured)
  • Fall back to Bash with curl/wget for simpler static requests
  • Collect and validate findings from each source
  1. Synthesize findings across domains:
  • Identify patterns and consensus
  • Surface contradictions and debates
  • Generate evidence-based recommendations
  1. Validate output format against schema
  1. Generate and save report to .outputs/research/

Step 0: Discover Available Research Tools

Before beginning research, discover all available MCP tools and skills that can be used for information gathering.

Tool Discovery Process

Use ToolSearch to find available research tools:

yaml
# Search for web search tools
ToolSearch: "web search"
→ Returns: brave-search (independent index + news + local), web-search-prime, etc.
# Search for AI-synthesized search (Perplexity)
ToolSearch: "perplexity"
→ Returns: mcp__perplexity__search (AI-grounded answers with citations)
→ If found: use for synthesis-heavy queries or to cross-validate web findings
# Search for browser automation tools (agent-browser preferred, playwright as fallback)
ToolSearch: "browser automation"
→ Returns: agent-browser skill, playwright navigation, screenshot, interaction tools
# Search for content extraction tools
ToolSearch: "web reader content"
→ Returns: web-reader, content extraction tools
# Search for documentation query tools
ToolSearch: "documentation query"
→ Returns: context7, zread tools
# Search for DeepWiki codebase intelligence (optional)
ToolSearch: "devin"
→ Returns: mcp__devin__read_wiki_structure, mcp__devin__read_wiki_contents, mcp__devin__ask_question
→ If found: DeepWiki available — use for codebase-grounded research
→ If not found: fall back to local Glob/Grep/Read
Build Tool Inventory

Create an inventory of available tools for the research session:

yaml
tool_inventory:
web_search:
- mcp__brave-search__brave_web_search # Brave Search MCP — independent index, no Google bias
- mcp__brave-search__brave_news_search # Brave news search — recent/breaking content
- mcp__brave-search__brave_local_search # Brave local search — geo-specific results
- mcp__perplexity__search # Perplexity MCP — AI-synthesized answers with citations
- mcp__web-search-prime__webSearchPrime # WebSearch Prime — fallback general search
web_reading:
- mcp__web-reader__webReader
browser_automation_primary:
- agent-browser # Preferred: skill-based, install only — no MCP config needed
browser_automation_fallback:
- mcp__playwright__browser_navigate # Fallback: requires Playwright MCP configured
- mcp__playwright__browser_snapshot
- mcp__playwright__browser_click
- mcp__playwright__browser_fill_form
- mcp__playwright__browser_evaluate
- mcp__browser-tools__takeScreenshot # Visual capture supplement
- mcp__browser-tools__getConsoleLogs
documentation:
- mcp__context7__query-docs
- mcp__zread__search_doc
codebase_intelligence:
- mcp__devin__ask_question # DeepWiki: AI-grounded Q&A about indexed GitHub repos
- mcp__devin__read_wiki_structure # DeepWiki: list documentation topics for a repo
- mcp__devin__read_wiki_contents # DeepWiki: read specific topic documentation
# Optional — requires Devin API key. Falls back to Glob/Grep/Read if unavailable.
# See: deepwiki/SKILL.md for setup and usage patterns.
Tool Selection Strategy

Choose tools based on research requirements:

Standard Web Research:

  • Use web-search tools for general queries; prefer Brave Search for independent index coverage
  • Use Perplexity (mcp__perplexity__search) for synthesis-heavy questions or cross-validation — it returns AI-synthesized answers with citations, useful for "what is the current consensus on X"
  • Use web-reader for content extraction from specific URLs
  • Multi-search strategy: run Brave Web + Perplexity in parallel, then cross-reference results to surface contradictions
  • Fallback gracefully if tools unavailable

Dynamic/Interactive Content:

  • Use agent-browser skill (preferred — install only, no MCP config required):
  • Invoke via: Skill("agent-browser")
  • Handles: JavaScript-heavy sites, interactive forms, dynamic content, paywalls
  • If agent-browser not installed → fall back to mcp__playwright__* (requires Playwright MCP configured)
  • If neither available → fall back to Bash with curl/wget for simpler static requests

Complex Interactions:

  • Use agent-browser skill first for:
  • Multi-step workflows (login → navigate → extract)
  • Complex form filling
  • Sites requiring human-like interaction
  • Screenshot capture with analysis
  • If agent-browser not installed, use mcp__playwright__* tools (requires MCP config)
  • If neither available, use Bash with curl/wget
Tool Availability Handling

If preferred tools unavailable:

  1. Log missing tools
  2. Use available alternatives in fallback order
  3. Adjust research strategy accordingly
  4. Note limitations in final report

Fallback chain:

agent-browser → mcp__playwright__* → mcp__browser-tools → web-reader → Bash curl/wget

Step 1: Intent Analysis & Domain Detection

Analyze the conversation to extract research intent and infer domains.

yaml
research_intent:
primary_topic: "" # Main research question/topic
explicit_domains: [] # Domains directly mentioned
inferred_domains: [] # Domains inferred from context
research_depth: BRIEF | STANDARD | COMPREHENSIVE
scope_indicators: [] # Keywords suggesting scope (e.g., "overview", "deep dive")
Domain Detection Strategy

Primary Domains (70% effort allocation): Extract from explicit mentions in conversation:

  • Topics directly stated by user
  • Subject areas named in research questions
  • Fields explicitly referenced

Secondary Domains (30% effort allocation): Infer from contextual cues:

  • Language patterns (technical vs. business vs. creative)
  • Concerns expressed (performance, security, UX)
  • Artifacts referenced (code, designs, documents)

Domain-registry integration: Read domain-registry/domains/*.md to supplement inferred domains. Research domains include: technical, financial, marketing, creative, legal, strategy. Select all domains matching the research topic signals.

Domain Inference Examples
User: "Research how to implement event sourcing with Kafka"
Explicit domains:
- Software Architecture
- Distributed Systems
Inferred domains:
- Data Engineering (from "event sourcing")
- Performance (implied by distributed systems context)
User: "I need to understand the business implications of AI regulation"
Explicit domains:
- Business
- Law/Regulation
Inferred domains:
- Ethics (from "AI regulation")
- Technology (AI context)
Domain Output Format
yaml
domain_analysis:
primary_domains:
- domain: "{domain name}"
confidence: HIGH | MEDIUM | LOW
rationale: "why detected"
keywords: ["relevant", "terms"]
secondary_domains:
- domain: "{domain name}"
confidence: HIGH | MEDIUM | LOW
rationale: "why inferred"
keywords: ["relevant", "terms"]

Step 2: Research Planning

Generate a structured research plan with domain-aware effort allocation.

Research Question Generation

For each domain, generate 5-10 targeted search queries:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
6
7-day trend score
10

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 29 Mar 2026, 6 months ago.

Extension points

  • configConfiguration overrides

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/mikeng-io/agent-skills/deep-research/badge)](https://verified-skill.com/skills/mikeng-io/agent-skills/deep-research)

Something wrong with this skill or its page? Tell us.