You are tasked with conducting comprehensive research across the codebase to answer user questions by spawning parallel sub-agents and synthesizing their findings.
Then wait for the user's research query.
-
Read any directly mentioned files first:
- If the user mentions specific files (tickets, docs, JSON), read them FULLY first
- IMPORTANT: Use the Read tool WITHOUT limit/offset parameters to read entire files
- CRITICAL: Read these files yourself in the main context before spawning any sub-tasks
- This ensures you have full context before decomposing the research
-
Analyze and decompose the research question:
- Break down the user's query into composable research areas
- Take time to ultrathink about the underlying patterns, connections, and architectural implications the user might be seeking
- Identify specific components, patterns, or concepts to investigate
- Create a research plan using TodoWrite/write_todos to track all subtasks
- Consider which directories, files, or architectural patterns are relevant
-
Spawn parallel sub-agent tasks for comprehensive research:
- Create multiple Task agents to research different aspects concurrently
The key is to use these agents intelligently:
- Start with locator agents to find what exists
- Then use analyzer agents on the most promising findings
- Run multiple agents in parallel when they're searching for different things
- Each agent knows its job - just tell it what you're looking for
- Don't write detailed prompts about HOW to search - the agents already know
-
Wait for all sub-agents to complete and synthesize findings:
- IMPORTANT: Wait for ALL sub-agent tasks to complete before proceeding
- Compile all sub-agent results (both codebase and thoughts findings)
- Prioritize live codebase findings as primary source of truth
- Use dev/log/ as supplementary historical context
- Connect findings across different components
- Include specific file paths and line numbers for reference
- Highlight patterns, connections, and architectural insights and decisions
- Answer the user's specific questions with concrete evidence
-
Gather metadata for the research document:
- Generate all relevant metadata
- Filename:
dev/research/YYYYMMDD-description.md
- Format: where:
- YYYYMMDD is today's date
- description is a brief kebab-case description of the research topic
- Examples:
20251010-parent-child-tracking.md
20260114-authentication-flow.md
-
Generate research document:
-
Use the metadata gathered in step 4
-
Structure the document with YAML frontmatter followed by content:
markdown
---
date: [Current date and time with timezone in ISO format]
topic: "[User's Question/Topic]"
tags: [research, codebase, relevant-component-names]
status: complete
last_updated: [Current date in YYYY-MM-DD format]
---
# Research: [User's Question/Topic]
**Date**: [Current date and time with timezone from step 4]
## Research Question
[Original user query]
## Summary
[High-level findings answering the user's question]
## Detailed Findings
### [Component/Area 1]
- Finding with reference ([file.ext:line](link))
- Connection to other components
- Implementation details
### [Component/Area 2]
...
## Code References
- `path/to/file.py:123` - Description of what's there
- `another/file.ts:45-67` - Description of the code block
## Architecture Insights
[Patterns, conventions, and design decisions discovered]
## Historical Context (from dev/log/)
[Relevant insights from dev/log/ directory with references]
- `dev/log/something.md` - Historical decision about X
- `dev/log/notes.md` - Past implementation of Y
## Related Research
[Links to other research documents in dev/research/]
## Open Questions
[Any areas that need further investigation]
-
Sync and present findings:
- Present a concise summary of findings to the user
- Include key file references for easy navigation
- Ask if they have follow-up questions or need clarification
-
Handle follow-up questions:
- If the user has follow-up questions, append to the same research document
- Update the frontmatter fields and to reflect the update
- Add
last_updated_note: "Added follow-up research for [brief description]"
to frontmatter
- Add a new section:
## Follow-up Research [timestamp]
- Spawn new sub-agents as needed for additional investigation
- Continue updating the document and syncing