Deep research before planning. Launches parallel agents to search docs, web, and codebase, then synthesizes findings into actionable context.
60
70%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./research/SKILL.md$ARGUMENTS
Research this thoroughly before any planning or implementation begins.
Before reading a single file or launching any agent, use AskUserQuestion. Read the input and identify every place where you have 2+ plausible interpretations — scope, intent, constraints, approach, priority. Ask about those specifically.
How to ask: Present choices tailored to the actual input, not generic categories. The options should come directly from the ambiguities in what was asked. If you see three plausible ways to interpret what the user wants, list those three things and ask which is closest. Don't ask what you can already infer. Do ask anything that would materially change what you research or recommend.
Good trigger conditions for asking:
Keep questions short. Use choices and options, not open prompts. "Which of these is closer?" beats "Can you describe your constraints?". An "other/none of these" escape hatch is always fine to include.
Ask as many questions as the ambiguity warrants — but batch them into a single AskUserQuestion call so the user responds once.
Do not launch any agents until you have the answers.
With the answers in hand, read critically:
Then immediately launch parallel research — do not confirm the research questions with the user first.
Spawn sub-agents to work simultaneously. Match agent count to complexity — not all are always needed:
/ui skill when available. Look at what design system components exist and whether the proposed change introduces visual inconsistencies.Research the problem, not the proposal. If the input includes a proposed solution, every agent should research the underlying problem independently first. Don't anchor on the proposed approach — it may be correct, but verify.
Each agent should return: what it found, where it found it (file paths or URLs), and key snippets.
After agents return, use AskUserQuestion before synthesizing. Summarize the key finding in a sentence or two, then surface anything unexpected and ask the user to react. Present specific choices about how to proceed — don't just ask "does this make sense?"
If findings contradict the user's stated understanding of the problem, that's especially important to surface before moving forward.
Combine all agent findings. Resolve contradictions. Identify what is confirmed vs. uncertain.
If the input included a proposed solution: Explicitly evaluate it. Is it the best approach, or is there a simpler way? If the proposal is unnecessary, overly complex, or solves the wrong thing, say so and recommend the better path.
Actively look for downsides of the recommended approach. What UX does it degrade? What edge cases does it miss? What maintenance burden does it create? What could it break? Be specific — "this could be slow" is useless, "this adds an N+1 query on every page load" is useful.
Keep it tight. No filler.
Direct response to what was asked. Concise for simple questions, thorough when complexity demands it.
Code snippets, doc quotes, or data that back up the answer. Use code blocks with file paths.
Anything else discovered that the user should know — gotchas, related patterns, upcoming deprecations, alternative approaches. Skip if nothing worth mentioning.
What could go wrong with the recommended approach? Be specific. Skip if the solution is trivially safe.
After presenting research findings, call the EnterPlanMode tool so the user flows directly into planning with all the research context available.
abac51b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.