skills/do.research/SKILL.md
Deep research workflow for technologies, concepts, or complex topics
npx skillsauth add dull-bird/deeporbit do.researchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are the Research Coordinator for DeepOrbit. When the user wants to deeply understand a topic, you coordinate two specialized agents: one for planning and one for execution.
This skill uses two separate agents to keep context fresh and focused:
/do:research is invoked, spawn the planning agentThe user will provide:
When the user invokes /do:research with their topic, immediately spawn a planning agent using the Task tool:
subagent_type: "general-purpose"
description: "Plan research strategy"
prompt: "Create a research plan for: [user's topic]
Follow these steps:
1. Identify Context via Local RAG First:
- **CRITICAL**: Before searching the internet, execute `python scripts/rag/query_vault.py . "[Topic]"` to map out exactly what the user already knows in the vault.
- Check if this relates to an active project in 20_Projects/
- Determine the relevant Area (SoftwareEngineering, Finance, Health, etc.)
2. Identify Persona & Sources:
- Scan 99_System/Prompts/ for the most relevant expertise.
- **CRITICAL**: Read and strictly follow the whitelist guidelines in `99_System/Prompts/Research_Sources.md` to ensure a high signal-to-noise ratio in your research strategy.
3. Create the plan file at 90_Plans/Plan_YYYY-MM-DD_Research_<Topic>.md using this format:
# Research Plan: [Topic]
## Research Goal
[What the user will understand after completing this research]
## Discovered Context & Existing Internal Knowledge
- Related Area: [Area Name]
- Known Concepts: [Summarize what the local RAG search revealed the user already knows about this topic, using [[Wikilinks]]]
- Related Project: [Project Name (if applicable), or "None"]
## Research Strategy
[ ] Search official documentation
[ ] Use Wikipedia MCP to search [Related Concept 1] [Related Concept 2]
[ ] Find practical examples and use cases
[ ] Identify key concepts for knowledge base extraction
[ ] Create practical examples (if applicable)
[ ] Find common pitfalls and best practices
## Output Structure
- Main Note: 30_Research/<Area>/<Topic>/<Topic>.md
- Atomic Concept: 40_Wiki/<Category>/<Concept Name>.md
- Examples/Resources: 30_Research/<Area>/<Topic>/examples/ (if needed)
## Clarification Questions (Optional)
*If you have answers, please fill them below. If left blank, I will proceed with standard assumptions.*
**Q:** What is your current knowledge level? (Beginner/Intermediate/Advanced)
**A:**
**Q:** Is this for a specific project or general learning?
**A:**
**Q:** Do you prefer a theory-first or example-driven approach?
**A:**
4. Return the path to the created plan file.
"
After the planning agent returns, check the plan file path is 90_Plans/Plan_YYYY-MM-DD_Research_<Topic>.md. Then notify the user:
"I have created the research plan at [plan file path]. Please review and modify as needed, then confirm to proceed with execution."
Once the user confirms the plan, use the run_command tool to launch a Ralph Loop. Ralph will autonomously iterate through the plan's checklist, providing a much higher degree of reliability and iterative focus than a single subagent run.
/ralph:loop "You are the DeepOrbit Research Execution Agent. Your task is to execute the research plan at: 90_Plans/Plan_YYYY-MM-DD_Research_<Topic>.md
CRITICAL RULES for this iteration:
1. READ the plan file. Find the FIRST unchecked '- [ ]' task under 'Research Strategy' or 'Output Structure'.
2. Execute ONLY THAT TASK in this specific turn. For example:
- If the task is to search the web, execute the search and read the results.
- If the task is to create the main research note, draft 30_Research/<Area>/<Topic>/<Topic>.md.
- If the task is to create an atomic Wiki concept, write it to 40_Wiki/<Category>/<ConceptName>.md.
3. Apply Obsidian formatting rules (CRITICAL):
- Frontmatter MUST be at the very top (line 1), starting/ending with ---.
- Main Note Frontmatter: type: reference, created: YYYY-MM-DD, area, tags, status: complete.
- Wiki Notes: Keep atomic (1-3 paragraphs), use 99_System/Templates/Wiki_Template.md layout.
- Related Links: Do NOT put related/see-also links in frontmatter. Put them in '## Related Reading' section at the BOTTOM of the note body.
4. After successfully completing the single task, modify the plan file tracking: change that specific '- [ ]' to '- [x]'.
5. End your turn. Ralph will automatically start the next iteration for the next unchecked task.
6. When ALL tasks in the plan are marked '- [x]', do the final linking (Append a link to 10_Diary/YYYY-MM-DD.md, archive the plan to 90_Plans/Archive/) and output exactly '<promise>RESEARCH_COMPLETE</promise>'." --completion-promise "RESEARCH_COMPLETE" --max-iterations 20
After the Ralph loop finishes (detects RESEARCH_COMPLETE promise), you (the Orchestrator) provide a final summary to the user:
Created:
Key Takeaways:
Next Steps:
If user asks for changes:
deeporbit.json from the workspace root to determine the interaction language. Use this language for all your responses and generated note contents (e.g. zh-CN). The Obsidian folder paths themselves will ALWAYS remain in English.run_command tool to execute obsidian open path="<absolute_path>" for every Markdown file you create or modify. See the do.obsidian-open skill for details.documentation
Takes your raw thoughts, reorganizes and polishes them into fluent, smooth prose in a plain and genuine style (平实通顺), then saves the result as a structured note under 15_Writings with AI suggestion callouts. Use when the user wants to freewrite, draft an essay, record a subjective thought, or dump unstructured ideas. Triggers on "write about", "freewrite", "draft", "polish", "润色", "my thoughts on", or when instructed to save something to the Writings directory.
documentation
Translate documents smartly. Accepts a URL or a PDF file as input. Detects if it is an arXiv URL or paper. If yes, runs do.arxiv-translator. If it is a standard PDF, runs do.pdf-to-markdown followed by do.translate-markdown.
documentation
Translate Markdown documents to a target language with guaranteed completeness. Uses section-by-section processing with structural verification to prevent paragraph loss. Triggers: "translate markdown", "translate this md", "translate note", "translate to Chinese/English/Japanese"
tools
Exact string or regex matching search for Obsidian Vault files