Skip to content
Back to skills

Deep Research

ASecurity

Multi-stage research pipeline with evidence-quality ratings and citations. Classifies intent, clarifies scope, then routes to shallow (single-pass) or deep (parallel fan-out) research. Composes with Parallel AI MCP when available.

  • 51 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 28, 2026
ai-agentspythongobashgitbackend

Works with

  • claude code
  • mcp

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add sliamh11/Deus --skill deep-research --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Deep Research?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Deep Research
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sliamh11-deep-research/badge)](https://www.skillsdirectory.com/skills/sliamh11-deep-research)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: deep-research
description: Multi-stage research pipeline with evidence-quality ratings and citations. Classifies intent, clarifies scope, then routes to shallow (single-pass) or deep (parallel fan-out) research. Composes with Parallel AI MCP when available.
user_invocable: true
triggers:
  - deep.?research
  - research.+(for|about|on|into)
  - produce.+report
  - deep.?dive.+into
  - write.+brief.+on
  - comprehensive.+analysis
---

# Deep Research Pipeline

Host-side only (Claude Code). See `docs/agent-agnostic-debt.md` AAG-012 for backend parity status.

A 4-stage research pipeline. Classifies research depth, clarifies scope when ambiguous, then routes to shallow or deep retrieval with structured citation-backed output.

**Design pattern: Mediator.** This skill is the central coordinator. Research scouts and brainstormer are independent peers invoked through the Agent tool without cross-coupling. Neither agent knows about the other or about the pipeline stages.

Composes existing infrastructure — does NOT duplicate it:
- **Research scout agents** for evidence-classified source finding (deep path)
- **brainstormer** agent for creative synthesis (when the user wants ideas, not just facts)
- **Parallel AI MCP** for web search when available (graceful fallback to WebSearch)
- **Vault memory** for prior decisions and research
- **NotebookLM** for querying existing notebooks when relevant

## Instructions

When the user invokes `/deep-research <topic>` or a trigger phrase matches:

### Stage 1: Classify intent

Read the query and classify into one of:

| Depth | Signal | Example |
|-------|--------|---------|
| **SHALLOW** | Single fact, narrow scope, recent event, quick comparison | "What's the latest on X?", "Compare A vs B briefly" |
| **DEEP** | Multi-source synthesis, historical overview, regulatory landscape, decision brief, "research X" | "Research the regulatory landscape for Y", "Produce a brief on Z" |
| **CREATIVE** | Solution design, brainstorming, "how could we", exploration of alternatives | "How could we improve X?", "What are creative approaches to Y?" |

State the classification and proceed. Do NOT ask the user to confirm depth — only ask if the topic itself is ambiguous (Stage 2).

### Stage 2: Clarify scope (conditional)

**Skip this stage** if the query is specific enough to research directly. Most queries are.

Only use `AskUserQuestion` when genuinely ambiguous — when researching the wrong scope would waste significant effort:

```
AskUserQuestion:
  question: "Your query could mean several things. Which scope should I research?"
  options:
    - { label: "<interpretation 1>", description: "<what this covers>" }
    - { label: "<interpretation 2>", description: "<what this covers>" }
    - { label: "Both", description: "Research both angles" }
```

Also clarify if the user hasn't indicated:
- **Time horizon** — for queries where recency matters ("last 6 months" vs "all time")
- **Output format** — only if unclear (default: structured report with citations)

### Stage 3: Retrieve (route by depth)

---

#### SHALLOW path

Single-pass retrieval. No subagents. Target: 30-60 seconds.

1. **Vault memory** — check for prior work:
   ```bash
   python3 ~/deus/scripts/memory_tree.py query "<topic keywords>" 2>/dev/null
   ```
   Read top 2-3 results if confidence > 0.4.

2. **Web search** — run 2-3 queries with different phrasings:
   - If Parallel AI is available: prefer `mcp__parallel-search__search` (faster, structured results)
   - If that tool is not registered (tool-not-found error): fall back to `WebSearch`
   - Use `WebFetch` to read the top 2-3 most relevant results in full

3. **Synthesize inline** — produce a concise answer with source citations. Go directly to Stage 4 output format (abbreviated — no evidence taxonomy needed for shallow).

---

#### DEEP path

Parallel fan-out via subagents. Target: 2-5 minutes.

**Step 1: Parallel retrieval — launch in a single message**

Launch these retrieval tasks in parallel using the Agent tool:

**A. Research scout (primary domain):**
```
Agent(subagent_type="general-purpose", model="sonnet"):
  You are a research scout. Find and classify sources with evidence-quality ratings.
  You cast a wide net but NEVER synthesize — list and classify only.

  Research topic: <primary domain framing of the query>
  Focus: primary domain sources — papers, benchmarks, implementations, authoritative references.

  Procedure:
  1. Run 2-3 WebSearch queries with different phrasings
  2. Read top results with WebFetch
  3. Search GitHub (via WebSearch) for relevant implementations
  4. Classify every source using this taxonomy:
     - empirical: peer-reviewed or reproducible experiment
     - benchmark: quantitative comparison on a standard dataset
     - implementation: working code that demonstrates the approach
     - anecdotal: first-person experience without controlled methodology
     - vendor: claims from the entity selling the tool
     - theoretical: formal analysis without empirical validation

  Output for each source (mandatory schema):
  ### <source number>. <source title>
  - **URL**: <url>
  - **Evidence quality**: <label from taxonomy>
  - **Date**: <publication date>
  - **Core claim**: <one sentence>
  - **Relevance**: <why this matters for the research question>
  - **Limitations**: <what this source doesn't cover>

  Minimum 5 sources. Never fabricate URLs. Include a source count by evidence quality at the end.
```

**B. Research scout (adjacent domain):**
```
Agent(subagent_type="general-purpose", model="sonnet"):
  You are a research scout. Find and classify sources with evidence-quality ratings.
  You cast a wide net but NEVER synthesize — list and classify only.

  Research topic: <adjacent domain framing — a related field with transferable insights>
  Focus: cross-pollination from <adjacent field>. Look for techniques, patterns, or solutions
  from this domain that could transfer to the primary question.

  Procedure:
  1. Run 1-2 WebSearch queries in the adjacent domain
  2. Read top results with WebFetch
  3. Search GitHub (via WebSearch) for relevant implementations
  4. Classify every source using the evidence taxonomy:
     empirical | benchmark | implementation | anecdotal | vendor | theoretical

  Output for each source (mandatory schema):
  ### <source number>. <source title>
  - **URL**: <url>
  - **Evidence quality**: <label from taxonomy>
  - **Date**: <publication date>
  - **Core claim**: <one sentence>
  - **Relevance**: <why this matters for the research question>
  - **Limitations**: <what this source doesn't cover>

  Document what was searched even if nothing relevant was found. Include coverage gaps.
```

**C. Vault + internal context:**
```bash
python3 ~/deus/scripts/memory_tree.py query "<topic keywords>" 2>/dev/null
```
Read top results. Also check `~/deus/docs/decisions/INDEX.md` for relevant ADRs.

**D. Parallel AI deep research (optional — only when available AND topic warrants it):**

If Parallel AI MCP is available (tool resolves without error) and the topic is complex enough to justify async research:
```
AskUserQuestion:
  question: "I can also run Parallel AI deep research on this topic (2-5 min, higher cost). Include it?"
  options:
    - { label: "Yes", description: "Adds a comprehensive AI-generated analysis to the source pool" }
    - { label: "No, existing sources are enough", description: "Proceed with web research results only" }
```

If yes: call `mcp__parallel-task__create_task_run` and poll for results. Include the Parallel AI output as one source in the synthesis (with `vendor` evidence quality label since it's AI-generated).

**E. NotebookLM (optional — only when the user has notebooks related to the topic):**

If the topic overlaps with known NotebookLM notebooks:
```
mcp__notebooklm-mcp__notebook_query: query the most relevant notebook
```
Include results as internal source material.

**Step 2: Wait for all parallel tasks to complete.**

Collect all findings. You should now have:
- Primary domain findings (5+ classified sources)
- Adjacent domain findings (additional sources)
- Vault memory hits (prior decisions, research notes)
- Optionally: Parallel AI analysis, NotebookLM results

**Step 3: Synthesize.**

This is where you add value beyond what the research scouts provide. Scouts find and classify — you synthesize, connect, and conclude.

Synthesis rules:
- Every factual claim must cite a specific source from the findings
- When sources disagree, present both positions with their evidence quality labels
- Highlight cross-domain connections (insights from adjacent domain that apply to primary)
- Flag coverage gaps — what the research couldn't find
- Distinguish between what's well-established (multiple `empirical`/`benchmark` sources) and what's speculative (single `anecdotal`/`vendor` source)

---

#### CREATIVE path

Route to brainstormer with the research context.

1. Run the SHALLOW retrieval first (vault + web search) to gather context.
2. Launch brainstormer with the enriched prompt:
   ```
   Agent(subagent_type="brainstormer"):
     Problem statement: <user's query>
     Pre-gathered context: <vault memory hits and web search findings>
     Generate 3-5 ranked solution ideas with effort/impact/risk.
   ```
3. Present brainstormer output directly — it already has a structured format.

---

### Stage 4: Output

#### Shallow output format

```markdown
# Research: <topic>

<2-4 paragraph synthesis answering the query>

## Sources
1. [<title>](<url>) — <one-line summary>
2. ...

## Vault Context
- <relevant prior decisions or research, if any>
```

#### Deep output format

```markdown
# Research Report: <topic>

**Date:** YYYY-MM-DD
**Depth:** Deep | Research time: ~Xm
**Sources reviewed:** N (M empirical, N benchmark, O implementation, P anecdotal, Q vendor)

## Executive Summary

<3-5 sentences capturing the key findings and their confidence level>

## Findings

### <Theme/Section 1>

<Synthesis paragraph with inline citations [1][2]>

### <Theme/Section 2>

<Synthesis paragraph with inline citations [3][4]>

### Cross-Domain Insights

<Connections from adjacent domain research that apply here>

## Evidence Map

| # | Source | Evidence Quality | Core Claim |
|---|--------|-----------------|------------|
| 1 | [<title>](<url>) | empirical | <one sentence> |
| 2 | [<title>](<url>) | benchmark | <one sentence> |
| ... | ... | ... | ... |

## Confidence Assessment

- **High confidence:** <claims backed by multiple empirical/benchmark sources>
- **Medium confidence:** <claims with implementation evidence but limited empirical>
- **Low confidence / Speculative:** <claims from single anecdotal/vendor sources>

## Coverage Gaps

- <what was searched for but not found>
- <domains that might have relevant work but weren't explored>

## Prior Decisions (Vault)

- <relevant ADRs, research notes, or past decisions — with memory path citations>
- <or "No prior decisions found for this topic">
```

#### Creative output format

Use the brainstormer's native output format (ranked ideas with effort/impact/risk table).

### Stage 5: Follow-up

After presenting results, offer next steps via `AskUserQuestion`:

```
AskUserQuestion:
  question: "Research complete. What would you like to do next?"
  options:
    - { label: "Save to vault", description: "Persist this research to Deus memory for future reference" }
    - { label: "Go deeper on a section", description: "Run targeted deep research on a specific finding" }
    - { label: "Done", description: "No further action needed" }
```

**If "Save to vault":** Use the preserve skill to save the research report as a durable memory artifact.

**If "Go deeper":** Ask which section, then re-run the DEEP path scoped to that subtopic.

## Constraints

- NEVER fabricate URLs or citations. Every source must come from actual retrieval results.
- NEVER present AI-generated content (from Parallel AI or your own synthesis) as primary evidence — always label it.
- NEVER skip the evidence quality classification on deep path. Every source gets a label.
- NEVER run the deep path for queries that are clearly shallow — respect the user's time.
- If vault memory has a relevant prior decision that contradicts web sources, flag the conflict explicitly rather than silently favoring either.
- Minimum 5 sources for deep path reports. If fewer found, document what was searched.
- Adjacent domain search is mandatory on deep path, even if it yields nothing — document the attempt.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.