Skip to main content

deep-research

Deep, iterative, multi-source research that explores a topic from multiple perspectives, detects contradictions, and produces a comprehensive vault note with fact-level citations and a confidence map. Use this skill whenever the user says /deep-research, "deep research X", "research X thoroughly", "investigate X deeply", "I need to really understand X", or wants research that goes beyond a quick web search. Also use when the user wants to understand a complex, contested, or multi-faceted topic, compare competing approaches with evidence, or build a comprehensive mental model they can trust for decisions. This is heavier than /research — it searches web, academic papers, Reddit, and the vault, then loops through exploration and critique rounds until the evidence base is solid. When in doubt between /research and /deep-research, prefer this one if the topic is complex, contested, or the user wants depth over speed.

Ir para a instalação

Informações da origem

Repositório
tuan3w/obsidian-vault-agent
Última atividade na origem
26 de março de 2026 às 14:49
Idioma detectado do SKILL.md
inglês
Estrelas
39
Forks
2

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
7 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
deep-research
description
Deep, iterative, multi-source research that explores a topic from multiple perspectives, detects contradictions, and produces a comprehensive vault note with fact-level citations and a confidence map. Use this skill whenever the user says /deep-research, "deep research X", "research X thoroughly", "investigate X deeply", "I need to really understand X", or wants research that goes beyond a quick web search. Also use when the user wants to understand a complex, contested, or multi-faceted topic, compare competing approaches with evidence, or build a comprehensive mental model they can trust for decisions. This is heavier than /research — it searches web, academic papers, Reddit, and the vault, then loops through exploration and critique rounds until the evidence base is solid. When in doubt between /research and /deep-research, prefer this one if the topic is complex, contested, or the user wants depth over speed.
allowed-tools
Bash, Read, Write, Edit, Agent, Grep, Glob, WebFetch, WebSearch, mcp__reddit-mcp-buddy__search_reddit, mcp__reddit-mcp-buddy__get_post_details, mcp__obsidian-vault__search_notes, mcp__obsidian-vault__read_note, mcp__obsidian-vault__read_multiple_notes, mcp__obsidian-vault__write_note, mcp__obsidian-vault__update_frontmatter
argument-hint
<topic or question> [--quick | --deep]
<Purpose> Iterative, multi-perspective research that explores broadly and goes deep. Unlike `/research` (single-pass, web-only, 5-10 sources), this skill: - Discovers PERSPECTIVES before searching (not just sub-questions) - Searches 4 source types in parallel: web, academic papers, Reddit, vault - Runs an exploration → critique loop that finds gaps, contradictions, and new angles - Uses an outline-first approach to prevent hallucination - Produces a note with fact-level citations, a confidence map, and explicit uncertainty The architecture is inspired by Stanford's STORM (perspective discovery + outline-first), Anthropic's multi-agent research system (parallel exploration + intelligent critique), and pi-autoresearch (living state files that survive context resets). </Purpose> <Use_When> - User wants DEEP understanding, not a quick summary - Topic is complex, contested, or multi-faceted - User needs to make a decision based on the research - User wants to compare competing approaches with evidence - User explicitly asks for /deep-research or "thorough research" </Use_When> <Do_Not_Use_When> - User wants a quick answer (use /research instead) - User wants to find academic papers specifically (use /paper-discover) - User wants to process an existing vault note (use /process) - User wants cross-domain vault synthesis (use /synthesize) </Do_Not_Use_When> <Steps> ## Stage 0: SETUP Parse `$ARGUMENTS` for the topic and optional depth flag: - `--quick`: faster, fewer rounds, sonnet everywhere, no perspective discovery - `--deep`: more rounds, opus for critic and synthesis, outline reviewed by user - Default (no flag): balanced — perspective discovery, 2-4 rounds, opus for synthesis Create the workspace: ```bash TOPIC_SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | cut -c1-30) WORK_DIR="temp/research-${TOPIC_SLUG}" mkdir -p "$WORK_DIR"/{findings,gaps} ``` **Resume check**: Before creating, check if the workspace already exists: ```bash ls "$WORK_DIR/state.md" 2>/dev/null ``` If `state.md` exists, read it and ask the user: "Found incomplete research on [topic] (round N). Resume or start fresh?" If resuming, read `state.md` to determine which stage to skip to. Tell the user what's happening: ``` Deep researching "{topic}" ({depth mode}). Setting up workspace at {WORK_DIR}... ``` ## Stage 1: PLAN — Decompose + Discover Perspectives Read the agent definition: ``` Read(".claude/skills/deep-research/agents/research-planner.md") ``` Launch the planner agent: ``` Agent( model="sonnet", prompt="You are Research Planner. Follow these instructions exactly: [INSERT FULL CONTENT OF agents/research-planner.md HERE] TOPIC: {topic} DEPTH_MODE: {quick|standard|deep} WORK_DIR: {WORK_DIR} Write state.md and ideas.md to the WORK_DIR." ) ``` After the planner completes, read `state.md` briefly and tell the user: ``` Perspectives identified: {list} Sub-questions: {count} Exploration ideas: {count} Starting exploration... ``` ## Stage 2: EXPLORE — Parallel Deep Dives Read the agent definition and source tiers reference: ``` Read(".claude/skills/deep-research/agents/research-explorer.md") Read(".claude/skills/deep-research/references/source-tiers.md") ``` Read `ideas.md` and pick the 3-5 highest-priority unexplored ideas. For EACH selected idea, launch an explorer agent in the background: ``` Agent( model="sonnet", run_in_background=true, prompt="You are Research Explorer. Follow these instructions exactly: [INSERT FULL CONTENT OF agents/research-explorer.md HERE] SOURCE TIERS REFERENCE: [INSERT FULL CONTENT OF references/source-tiers.md HERE] ANGLE: {the idea to explore} PERSPECTIVE: {which perspective this serves} QUERIES: {the search queries from ideas.md} STATE_CONTEXT: {summary from state.md — what's already known} OUTPUT_FILE: {WORK_DIR}/findings/angle-{NN}-{slug}.md Write your findings to OUTPUT_FILE using the Write tool." ) ``` Wait for all explorer agents to complete. Verify each output file exists: ```bash ls {WORK_DIR}/findings/ ``` Update `ideas.md` — mark explored ideas as `[x]`. If explorers discovered new threads, append them to ideas.md under "## Discovered During Research". Tell the user: ``` Round {N} complete: explored {count} angles, found {count} sources. Running critique... ``` ## Stage 3: CRITIQUE — The Intelligence Layer **For `--quick` mode**: skip the critic agent entirely. Instead, briefly review the findings yourself — check if any sub-questions are obviously thin. If so, do ONE more targeted search round. Then proceed to Stage 5. **For standard and `--deep` mode**: Launch the critic agent. Read the agent definition: ``` Read(".claude/skills/deep-research/agents/research-critic.md") ``` ``` Agent( model="opus", prompt="You are Research Critic. Follow these instructions exactly: [INSERT FULL CONTENT OF agents/research-critic.md HERE] WORK_DIR: {WORK_DIR} ROUND: {current round number} Read all files in the workspace, then write your critique to {WORK_DIR}/gaps/critique-round-{N}.md. Also update {WORK_DIR}/state.md with the coverage map. If you have new research ideas, append them to {WORK_DIR}/ideas.md." ) ``` ## Stage 4: DECIDE — Continue or Proceed Read the critic's output: `{WORK_DIR}/gaps/critique-round-{N}.md` Check the recommendation: CONTINUE or SUFFICIENT. **If CONTINUE AND within guardrails**: - Read updated `ideas.md` for new angles - Loop back to Stage 2 with the new ideas **If SUFFICIENT OR guardrails hit**: - Proceed to Stage 5 **Guardrails** (override critic recommendation if needed): - Max rounds: 2 (quick), 4 (standard), 8 (deep) - Max total source files: 15 (quick), 30 (standard), 50 (deep) - If the latest round's explorers produced < 3 new substantive claims → stop - Count rounds by reading how many `critique-round-*.md` files exist Tell the user: ``` Critic says: {CONTINUE/SUFFICIENT}. {brief reason} {If continuing: "Exploring {N} more angles..."} {If done: "Evidence base ready. Building outline..."} ``` ## Stage 5: OUTLINE — Structure Before Content Build an outline that maps each section to its supporting evidence. This is the STORM discipline — commit to structure before writing to prevent hallucination. Read the final critique, all findings files, and state.md. Then write `{WORK_DIR}/outline.md` with this structure: ```markdown # Outline: {Topic} ## TL;DR - {Key finding 1} ← supported by: angle-{NN}, angle-{NN} - {Key finding 2} ← supported by: angle-{NN} - {Key finding 3} ← supported by: angle-{NN}, angle-{NN} ## Section: {Theme 1 — insight as heading} - Key point: {insight} - Sources: angle-{NN} (claims X,Y), angle-{NN} (claim Z) - Vault links: [[(Type) Note]] if relevant ## Section: {Theme 2 — insight heading} - Key point: {insight} - Sources: ... ## Section: Where Experts Disagree - Contradiction 1: angle-{NN} vs angle-{NN} on {topic} - Contradiction 2: ... ## Section: What's Still Uncertain - {Gap from critic} - {Single-source claim} ## Confidence Map Notes - {Finding}: {confidence level} — {evidence basis} ``` **For `--deep` mode**: Show the outline to the user and wait for approval: "Here's the outline. Want me to adjust anything before I write the full note?" **For standard and `--quick`**: Proceed automatically. ## Stage 6: SYNTHESIZE — Write the Research Note Read the agent definition: ``` Read(".claude/skills/deep-research/agents/research-synthesizer.md") ``` Launch the synthesizer: ``` Agent( model="opus", # sonnet for --quick prompt="You are Research Synthesizer. Follow these instructions exactly: [INSERT FULL CONTENT OF agents/research-synthesizer.md HERE] WORK_DIR: {WORK_DIR} OUTPUT_FILE: {WORK_DIR}/synthesis.md Read outline.md, all findings files, all gap files, and state.md. Write the complete vault note body to OUTPUT_FILE. Do NOT include frontmatter — just the note content starting with # title." ) ``` ## Stage 7: INTEGRATE — Create Vault Note 1. Read `{WORK_DIR}/synthesis.md` 2. Generate timestamp: ```bash date +%Y%m%d%H%M%S ``` 3. Determine subfolder — match the topic to existing vault folders: - ML/AI topics → `notes/ml/` - Startup/business → `notes/startup/` - Psychology → `notes/psychology/` - Finance → `notes/finance/` - Default → `notes/research/` 4. Create the vault note using `mcp__obsidian-vault__write_note` or Write: ```markdown --- id: {YYYYMMDDHHMMSS} type: note processing_status: processed created_date: {YYYY-MM-DD} updated_date: {YYYY-MM-DD} --- {synthesis.md content} ``` 5. Report to user: ``` Research complete! Created: {note path} - Sources: {N} web, {N} academic, {N} community, {N} vault - Exploration rounds: {N} - Contradictions found: {N} - Key uncertainty: {biggest gap} Suggested next steps: - Extract terms: {list of concepts for extraction} - Related research: {follow-up topics} - Vault connections: {notes that should link to this} Workspace at {WORK_DIR}/ — delete when done. ``` </Steps> <Tool_Usage> - **Agent**: 4 agent types — planner (sonnet), explorer (sonnet, parallel), critic (opus), synthesizer (opus) - **WebSearch**: Multi-query web search within explorer agents - **WebFetch**: Deep-read URLs within explorer agents - **Bash**: Workspace creation, timestamp, search_papers.py execution - **Grep/Glob**: Vault search within planner agent - **MCP obsidian-vault**: Vault search and note creation - **MCP reddit**: Community source search within explorer agents - **Read**: Agent definitions, workspace files, source tiers reference - **Write**: Workspace files (state, ideas, outline), vault note creation </Tool_Usage> <Examples> <Good> User: /deep-research context engineering for AI agents 1. Setup → temp/research-context-engineering/ 2. Plan → 4 perspectives (researcher, practitioner, framework builder, skeptic), 6 sub-questions, 12 exploration ideas 3. Round 1 → 4 explorer agents, 16 sources (web + papers + Reddit) 4. Critique → "practitioner perspective is thin, contradictions on context window vs. summarization tradeoff, missing: cost analysis angle" 5. Round 2 → 3 more explorers targeting gaps, 9 new sources 6. Critique → "SUFFICIENT — good coverage, 2 genuine ongoing debates to present" 7. Outline → 5 themes + disagreements + uncertainties, all mapped to sources 8. Synthesize → 55-bullet note with 25 sources, confidence map, 4 vault connections 9. Integrate → notes/ml/(Research) Context Engineering for AI Agents.md </Good> <Bad> - Searches once and stops — no critique, no gap-filling - Creates a note that just lists what each source said - Ignores the vault — no wikilinks, no checking what already exists - All sources are web — no papers, no Reddit, no diversity - No confidence map — claims everything with equal certainty - No "Where Experts Disagree" — hides contradictions instead of presenting them - Doesn't write workspace files — can't resume if interrupted </Bad> </Examples> <Escalation_And_Stop_Conditions> - **Topic too broad** ("deep research AI"): Ask user to narrow. Suggest 2-3 specific angles. - **No results from any source**: Inform user, offer to create a vault-only synthesis from existing notes. - **Mostly paywalled academic sources**: Note limitation, prioritize open-access and preprints. - **Topic already deeply covered in vault**: Show existing notes, ask if user wants fresh perspectives or an update. - **Explorer agent fails**: Check the output file. If missing, log the failure and continue with other angles — don't block the entire research on one failed agent. - **Context getting large**: The workspace files ARE the state. If context is approaching limits, the user can restart and the skill will offer to resume from the workspace. </Escalation_And_Stop_Conditions> $ARGUMENTS
Ver no GitHub