name: ipps-deep-research description: Apply when conducting deep research on technologies, APIs, frameworks, or other software development topics requiring systematic investigation
Deep Research Skill
Systematic research patterns for in-depth investigation of software development topics.
Table of Contents
Core
Patterns
- MEPI vs MCPI - When to use quick vs exhaustive research
- Source Hierarchy - Priority order for sources
- Verification Labels - How to mark claims
Strategies
- Technology/API Research (MCPI) - 6-phase exhaustive documentation
- Quick Research (MEPI) - Abbreviated approach for low-stakes
Planning & Tracking
- Planning Structure - STRUT vs TASKS
- Time Tracking - Net research time calculation
Reference
- Tool Reference - Source collection, PDF processing, transcription
- Source ID Format - How to cite sources
- File Naming Conventions - Prefix rules for documents
When to Use
Deep research (this skill):
- "Should we use X or Y for our project?"
- "How does X work internally?"
- "What are the production considerations for X?"
- Multi-source synthesis required
- Exhaustive documentation needed
Quick lookup (not this skill):
- "What's the syntax for X?"
- "How do I install Y?"
- Single-source answers
MUST-NOT-FORGET
- Start with assumptions check - write down what you think you know before researching
- Primary sources > secondary sources > community opinions
- Document all sources with URLs and access dates
- Flag information age (APIs change rapidly)
- Distinguish facts from opinions from assumptions
- Version-match community sources to subject version
- Create INFO document for findings
- Always create STRUT for research session orchestration
- Track time - log task start/end for net research time calculation
- Track credits - detect model via screenshot, log switches, calculate usage
- Never auto-switch models - respect user's model selection throughout research
Global Patterns
MEPI vs MCPI
MEPI (Most Executable Point of Information) - Default
- Present 2-3 curated options
- Filter and recommend
- Use for: reversible decisions, time-constrained, action-oriented
MCPI (Most Complete Point of Information) - Exception
- Present exhaustive options
- Document everything
- Use for: irreversible decisions, high-stakes, archival reference
Source Hierarchy
- Official PDFs/papers - Legislation, specs, whitepapers, academic papers (often not available as web)
- Official documentation - Authoritative, version-specific
- Official blog/changelog - Announcements, rationale
- GitHub repo - Source code, issues, PRs, discussions
- Conference talks by maintainers - Design decisions, roadmap
- Reputable tech blogs - Analysis, comparisons
- Stack Overflow - Specific problems (verify currency)
- Community forums/Discord - Anecdotes, edge cases
Source Persistence: Download and store all sources in session folder for later reference. Web content changes - PDFs and local copies ensure reproducibility.
Verification Labels
[VERIFIED]- Confirmed from official documentation[ASSUMED]- Inferred but not explicitly stated[TESTED]- Manually tested by running code[PROVEN]- Confirmed from multiple independent sources[COMMUNITY]- Reported by community sources (cite source ID)
Source ID Format
[TOPIC]-IN01-SC-[SOURCE]-[DOCNAME]
Examples:
GRPH-IN01-SC-MSFT-APIOVERVIEW- Microsoft Graph official docsGRPH-IN01-SC-SO-RATELIMIT- Stack Overflow rate limit discussionGRPH-IN01-SC-GH-ISSUE1234- GitHub issue #1234
File Naming Conventions
__prefix (double underscore): Master/index documents (SOURCES, TOC, TEMPLATE)_prefix (single underscore): Topic content files (INFO documents)- No prefix: Tracking files (TASKS, NOTES, PROBLEMS, PROGRESS)
Information Currency
- Note version numbers for all API/library info
- Check last updated date on documentation
- Cross-reference with changelog for breaking changes
- Mark stale info with
[STALE: YYYY]tag
Research Strategies
Available research strategies (each has its own file):
- Technology/API Research (MCPI) - RESEARCH_STRATEGY_TECH_MCPI.md - Exhaustive API/framework documentation
Quick research (MEPI-style) until full strategy implemented: For reversible/low-stakes decisions, use abbreviated approach:
- Phase 1 (Preflight): 5-10 sources max, skip community deep-dive
- Skip Phases 2-4 (no TOC, template, or TASKS)
- Phase 5: Create single
_INFO_[TOPIC].mdwith findings - Phase 6: Quick
/verify, done
Future strategies (not yet implemented):
- Technology Research (MEPI) - Quick technology evaluation
- Decision Research - Choose between options
- Problem-Solving Research - Debug and fix issues
Tool Reference
See RESEARCH_TOOLS.md for:
- Source collection tools (search_web, read_url_content, Playwright)
- Document processing tools (pdf-tools)
- Transcription tools (llm-transcription)
- Tool selection flowchart
- Common workflows
Planning Structure
STRUT (high-level orchestration) - REQUIRED for all research:
- Tracks phases, objectives, deliverables, transitions
- Contains time log for net research time
- Created at research start, updated at phase transitions
- File:
STRUT_[TOPIC].mdin session folder
TASKS (low-level execution) - Created in Phase 4:
- Flat list of individual research tasks with durations
- Each task: file to create, sources to use, done-when criteria
- Tracks task timing:
[HH:MM-HH:MM]per task - File:
TASKS.mdin session folder
Time Tracking
Net research time = active work time, excluding pauses.
STRUT time log format:
## Time Log
Started: 2026-01-30 09:00
Ended: 2026-01-30 14:30
Active intervals:
- 09:00-10:30 (Phase 1-3)
- 11:00-12:15 (Phase 4-5)
- 13:00-14:30 (Phase 5-6)
Net research time: 4h 15m
TASKS timing format:
- [x] TK-01: Research auth [10:00-10:45] 45m
- [x] TK-02: Research limits [10:15-11:00] 45m (parallel)
Rules:
- Pause detection: Gap > 30min in file timestamps = pause (don't count)
- Parallel tasks: Overlapping intervals count once, not doubled
- Log start time when beginning task, end time when completing
Credit Tracking (Mandatory)
Workflow:
- At phase start:
simple-screenshot.ps1→ detect model from Windsurf header - Lookup cost in
windsurf-model-registry.json - Log model + timestamp in STRUT Credit Tracking section
- At session end: calculate total estimated credits
STRUT Credit Tracking format:
## Credit Tracking
Phase 1: Claude Opus 4.5 (Thinking) [5x] - 09:00
Phase 2: Claude Opus 4.5 (Thinking) [5x] - 09:30
Phase 4: Claude Sonnet 4.5 [2x] - 10:15 (user switched)
Phase 5: Claude Sonnet 4.5 [2x] - 10:45
Phase 6: Claude Sonnet 4.5 [2x] - 11:30
Estimated credits: (2 phases × 5x) + (3 phases × 2x) = 16 units
Rules:
- Never auto-switch models - respect user's model selection
- Detect via screenshot only - passive observation
- Log when model changes (user-initiated)
- Registry:
[DEVSYSTEM_FOLDER]/skills/windsurf-auto-model-switcher/windsurf-model-registry.json
Output Format
Deep research outputs an INFO document. Key sections:
- Research Question - What we're investigating
- Key Findings - MEPI-style summary (2-3 main points) or MCPI exhaustive list
- Detailed Analysis - Full investigation results
- Limitations and Known Issues - From community sources
- Sources - All references with quality indicators
- Recommendations - Actionable conclusions
Usage
- Determine research type (MEPI quick vs MCPI exhaustive)
- Read this SKILL.md for core principles
- Read the appropriate strategy file
- Read RESEARCH_TOOLS.md for tool guidance
- Follow the strategy's phases systematically
- Output findings as INFO document