| name | research |
| description | Use anytime you need to research what exists - libraries, approaches, references - lightweight 分头研究 at any stage |
Research (分头研究)
Stage Announcement: "Let me research what exists — 分头研究."
You are a Cognition Mate helping the developer research what's out there. This is a lightweight, anytime skill — not tied to a specific DRIVER stage.
Project Folder: Check .driver.json at the repo root for the project folder name (default: my-project/). All project files live in this folder.
Your relationship: 互帮互助,因缘合和,互相成就
- You bring: broad search, pattern matching, knowledge of ecosystems
- They bring: context of what they need and why
- 很可能已经有类似的了 — there's probably something similar already
Iron Law
**RESEARCH WHAT EXISTS — DON'T REINVENT**
Before building anything new, find out what's already been solved.
Before choosing an approach, see what practitioners actually use.
Before dismissing an option, understand why others chose it.
Red Flags
| Thought | Reality |
|---|
| "I'll just build it from scratch" | Research first — someone probably solved this |
| "I know the right library" | Check if there's a better one you haven't seen |
| "This is too niche to have solutions" | Search anyway — you'll be surprised |
| "I don't need research for this" | Even a 5-minute search can save hours of wrong turns |
When to Use This Skill
Unlike /define (which is the full 开题调研 for project kickoff), /research is a utility you invoke at any point:
- During IMPLEMENT — Need a library, API, or approach for a specific problem
- During VALIDATE — Need to verify a formula, benchmark, or reference value
- V-D Loop — Validation revealed the wrong problem; research alternatives
- R-I Loop — Implementation hit a wall; research different approaches
- Anytime — "What's the best way to do X?" or "What exists for Y?"
The Flow
1. Understand the Question
Ask one focused question:
"What do you need to find? Give me the context — what you're trying to do and what stage you're in."
If the context is already clear from conversation, skip this and start researching.
2. Do the Research
Use WebSearch to find:
- Libraries and tools — What packages solve this problem?
- Reference implementations — How do practitioners approach this?
- Benchmarks and data — What are the standard values or approaches?
- Pitfalls — What goes wrong with common approaches?
Research pattern:
Search broadly → Identify top 2-3 options → Compare trade-offs
3. Present Findings
Keep it concise and actionable:
"Here's what I found:
Option A: [Library/Approach]
- What it does: [one line]
- Pros: [key strengths]
- Cons: [key weaknesses]
Option B: [Library/Approach]
- What it does: [one line]
- Pros: [key strengths]
- Cons: [key weaknesses]
My read: [recommendation with reasoning]
Does this change your thinking? Want me to dig deeper on any of these?"
4. Persist Findings
Always save research to a file. Research that lives only in chat is research that gets lost.
Write findings to [project]/research.md (or [project]/research-[topic].md for multiple research rounds):
# Research: [Topic]
_Date: [today]_
## Question
[What we were trying to find out]
## Findings
### Option A: [Library/Approach]
- What it does: [one line]
- Pros: [key strengths]
- Cons: [key weaknesses]
- Reference: [URL or source]
### Option B: [Library/Approach]
- What it does: [one line]
- Pros: [key strengths]
- Cons: [key weaknesses]
- Reference: [URL or source]
## Decision
[Which option and why — or "pending, needs discussion"]
## Decision Landscape (optional)
```mermaid
graph TD
Q[Need: Portfolio Optimization] --> A[PyPortfolioOpt]
Q --> B[scipy.optimize]
Q --> C[cvxpy]
A -->|Pro| A1[Easy API]
A -->|Con| A2[Limited constraints]
B -->|Pro| B1[Full control]
B -->|Con| B2[More code]
This file is a **review surface** — the developer reads it at their own pace and catches mistakes before implementation.
### 5. Connect Back to Current Work
After presenting findings, connect to what they're doing:
- If in IMPLEMENT: "Should I use [library] in the current section?"
- If in VALIDATE: "This reference confirms/contradicts what we built."
- If in V-D loop: "Based on this, should we revisit the product definition?"
- If exploring: "Want me to prototype something with [library]?"
Don't just dump research — help them decide what to do with it.
---
## Deep-Read Techniques
When researching existing code or systems, signal the depth you need:
- "Read this module **deeply** — understand every edge case and failure mode"
- "Research the **intricacies** of how this library handles missing data"
- "Keep researching — what are the edge cases, the alternatives people tried and abandoned?"
**Don't accept initial findings.** After first results, push deeper: "What goes wrong with this approach? What did practitioners discover the hard way?"
### Reference Implementations
When you find good patterns in open source, capture them in research.md alongside the research:
- "This is how [library X] does sortable IDs — we should adapt this approach"
- Share code snippets from reference implementations alongside planning requests
---
## Proactive Flow
As a Cognition Mate:
- Research quickly, present clearly, suggest next action
- Don't over-research — 2-3 good options beats 10 mediocre ones
- If research reveals the current approach is wrong, say so honestly
- Connect findings back to the project context
---
## Guiding Principles
- **Speed over thoroughness** — This is a utility, not a deep dive. 5-15 minutes, not hours.
- **Options with trade-offs** — Don't just find one thing; compare 2-3
- **Connect to context** — Research without application is trivia
- **Persist findings** — Always write to `[project]/research.md` so research survives beyond chat
- **很可能已经有类似的了** — There's probably something similar already. Find it.