Investigate a topic, validate decisions, compare options, or run autonomous discovery. Absorbs intel and nightly-research. Trigger: 'исследуй', 'research', 'изучи', 'что лучше', 'сравни'.
Two modes: interactive (user asks a question) and discovery (autonomous, finds gaps and researches them).
User asks to research something specific.
Determine type:
Primary: firecrawl_search(query="<topic>", limit=3).
Fallback: WebSearch if Firecrawl unavailable.
Run 2-3 searches with different angles. Preview results with head -c 4000.
Prioritize: official docs, reputable blogs, GitHub discussions, benchmarks. Skip: SEO spam, articles >2 years old for fast-moving topics.
For highly relevant results: firecrawl_scrape(url=<url>, formats=["markdown"], onlyMainContent=true) — max 2 scrapes per run.
## Summary
One paragraph, lead with recommendation if it's a decision.
## Key Findings
- **Finding** — explanation [source]
## Trade-offs & Risks
- **Risk** — when it matters, mitigation
## Alternatives
- **Alternative** — why rejected or when better
## Sources
1. [Title](URL) — what it contributed
## Confidence: N/100
One sentence: what makes this confident or uncertain.
Save to Supabase if finding is significant:
memory_store(type="reference", name="research_{slug}", description="...", content="...", source_provenance="skill:research")
If finding is actionable → create GitHub issue in appropriate repo:
gh issue create --repo <R> --title "[RESEARCH] <topic>" --body "..."
For scheduled runs. Finds gaps in current knowledge and researches them.
memory_recall(type="decision", limit=10)
memory_recall(query="working_state", type="project", limit=3)
Also check recent GitHub issues for each repo in config/repos.conf.
From context, find genuine gaps:
Score: impact × urgency. Pick top 3. Each becomes a specific research question.
Bad: "research AI agents" Good: "how do iterative planners detect premature convergence?"
For each topic: WebSearch or firecrawl_search, max 3 searches per topic.
Per topic:
memory_store(type="reference", name="research_{slug}", project="{project}", content="...", source_provenance="skill:research")
Actionable findings → GitHub issues (check for duplicates first).
Dedup marker:
memory_store(type="project", name="research_last_run", content="{date} — topics: {t1}, {t2}, {t3}", source_provenance="skill:research")