Research Skill
Tool-assisted research with Tavily integration. Transforms basic questions into comprehensive search strategies using AI-optimized web search.
Setup
This skill includes a bundled Tavily CLI script at scripts/tavily-cli.ts.
Requirements
- •Deno - Install from https://deno.land
- •Tavily API Key - Get one at https://tavily.com (free tier available)
Configuration
Set your API key:
export TAVILY_API_KEY="your-key-here"
Create an alias for convenience (add to your shell profile):
# Adjust path to where this skill is installed alias tavily='deno run --allow-net --allow-env /path/to/skills/research/scripts/tavily-cli.ts'
Or run directly:
deno run --allow-net --allow-env ./scripts/tavily-cli.ts "your query"
Commands below use tavily assuming the alias is configured.
Quick Reference
Common Commands
# Basic search tavily "your query" # With AI answer summary tavily "your query" --answer # Deep search with more results tavily "your query" --depth advanced --results 10 --answer # News/recent content tavily "your query" --topic news --time week # Exclude familiar sources to find new perspectives tavily "your query" --exclude wikipedia.org,reddit.com
Phase Summary
| Phase | Type | Purpose |
|---|---|---|
| 0 | Manual | Analyze topic, set scope |
| 1 | Tavily | Discover expert terminology |
| 2 | Tavily | Foundational search |
| 3 | Tavily | Counter-perspectives |
| 4 | Manual | Synthesize findings |
Scope → Tavily Depth
| Decision Stakes | Tavily Settings |
|---|---|
| Low, reversible | --depth basic --results 3 |
| Moderate | --depth basic --results 5 --answer |
| High, irreversible | --depth advanced --results 10 --answer |
Phase 0: Analysis
Goal: Structure topic before searching. Prevents unfocused searches and scope mismatch.
Scope Calibration
Before searching, assess stakes:
| Decision Type | Confidence Needed | Research Depth |
|---|---|---|
| Reversible, low-stakes | 60-70% | Quick scan (minutes) |
| Reversible, moderate | 75-85% | Working knowledge |
| Irreversible, moderate | 85-90% | Solid grounding |
| Irreversible, high | 90-95% | Deep expertise |
Analysis Template
# Research Analysis: [Topic] ## Core Concepts - **Primary terms:** [Key terms requiring definition] - **Terminology variants:** [Synonyms, jargon, historical terms] - **Ambiguous terms:** [Terms with multiple meanings] ## Stakeholders - **Primary actors:** [Who is directly involved?] - **Affected groups:** [Who bears consequences?] - **Opposing interests:** [Who benefits from different outcomes?] ## Temporal Scope - **Historical origins:** [When did this begin?] - **Key transitions:** [What changed and when?] - **Current state:** [What's happening now?] ## Domains - **Primary field:** [Main discipline] - **Adjacent fields:** [Related disciplines] ## Controversies - **Active debates:** [What's contested?] - **Competing frameworks:** [Different ways of understanding]
Phase 0 Checklist
- • Identified primary terms
- • Listed potential stakeholders
- • Assessed decision stakes
- • Determined appropriate research depth
Phase 1: Vocabulary Discovery
Goal: Discover expert terminology to unlock deeper search results.
Why Vocabulary Matters
- •Outsider terms → introductory material
- •Expert terms → research, nuanced analysis
- •Cross-domain terms → bridge bodies of work
Tavily Commands for Vocabulary Discovery
| Discovery Need | Command |
|---|---|
| Expert terminology | tavily "[topic] terminology experts" --answer |
| Academic terms | tavily "[topic] academic research terminology" --answer |
| Cross-domain synonyms | tavily "[topic] also known as called" --answer |
| Historical terms | tavily "[topic] history original term" --answer |
Vocabulary Discovery Process
- •
Run initial terminology search:
bashtavily "[topic] terminology" --answer --results 5
- •
From results, note:
- •Expert terms (technical vocabulary)
- •Outsider terms (popular/introductory language)
- •Cross-domain equivalents
- •
Update vocabulary map (template below)
- •
Re-run searches with expert terms:
bashtavily "[expert-term]" --answer
- •
Compare result quality - expert terms should surface deeper content
Vocabulary Map Template
## Core Terms | Term | Domain | Depth Level | |------|--------|-------------| | [expert term] | [field] | Expert | | [outsider term] | General | Introductory | ## Cross-Domain Synonyms | Concept | Terms by Domain | |---------|-----------------| | [concept] | Field A: [term], Field B: [term] | ## Depth Indicators | Level | Terms | What They Surface | |-------|-------|-------------------| | Introductory | [terms] | Overviews, explainers | | Expert | [terms] | Research, nuanced analysis |
Phase 1 Checklist
- • Ran terminology discovery search
- • Identified expert vs. outsider terms
- • Mapped cross-domain synonyms
- • Created vocabulary map
Phase 2: Foundational Search
Goal: Build foundational understanding with authoritative sources.
Question Pattern → Tavily Command
| Question Pattern | Strategy | Command |
|---|---|---|
| "What is X?" | Consensus from authorities | tavily "[expert-term] definition" --answer --depth advanced |
| "Should I X?" | Pros/cons, alternatives | tavily "[expert-term] pros cons comparison" --answer |
| "Is X true?" | Evidence, counter-evidence | tavily "[claim] evidence research" --answer --depth advanced |
| "How do I X?" | Step-by-step, pitfalls | tavily "[expert-term] guide tutorial" --answer |
| Historical context | Origins and evolution | tavily "[topic] history origins development" --answer |
Source Type Selection
| Source Type | Best For | Tavily Approach |
|---|---|---|
| Academic/Research | Mechanism, causation | --depth advanced --results 10 |
| Practitioner content | How things work, edge cases | --topic general --answer |
| News/Current | Recent developments | --topic news --time week |
| Official docs | Technical specs, policy | --include [official-domain] |
Foundational Search Process
- •
Start with expert terminology from Phase 1
- •
Run foundational queries:
bash# Definition/overview tavily "[expert-term] comprehensive overview" --answer --depth advanced # Key perspectives tavily "[expert-term] major approaches" --answer --results 7
- •
For each major perspective found, get 2-3 authoritative sources:
bashtavily "[perspective-name] [expert-term]" --answer --results 5
- •
Track sources in research notes
Phase 2 Checklist
- • Used expert terminology from Phase 1
- • Searched for foundational overview
- • Identified 2-3 major perspectives
- • Found authoritative sources per perspective
- • Tracked sources
Phase 3: Counter-Perspective Search
Goal: Explicitly find opposing viewpoints to avoid confirmation bias.
Why Counter-Perspectives Matter
Single-perspective research:
- •All sources support one viewpoint
- •Missing counterarguments
- •Echo chamber risk
Tavily Commands for Counter-Perspectives
| Need | Command |
|---|---|
| General criticism | tavily "[topic] criticism problems" --answer |
| Opposing viewpoint | tavily "[topic] skeptics critique" --answer |
| Alternative approaches | tavily "[topic] alternatives instead of" --answer |
| Failure cases | tavily "[topic] failures when wrong" --answer |
| Avoid echo chamber | tavily "[topic] debate" --exclude [familiar-sources] |
Counter-Perspective Process
- •
Identify your current understanding/lean
- •
Search for strongest counterargument:
bashtavily "[topic] strongest argument against" --answer --depth advanced
- •
Exclude sources you've already seen:
bashtavily "[topic]" --exclude [domains-already-searched]
- •
Search for failure modes:
bashtavily "[topic] when fails problems limitations" --answer
- •
Document opposing perspectives in research notes
Phase 3 Checklist
- • Identified current understanding/position
- • Searched for strongest counterargument
- • Used --exclude to find new sources
- • Searched for limitations/failure cases
- • Documented opposing perspectives
Phase 4: Synthesis
Goal: Synthesize findings with explicit confidence markers.
Completion Criteria
Minimum Viable (Quick Decisions)
- • Can define core concepts in own words
- • Know 2-3 major perspectives
- • Found authoritative source per perspective
- • Identified known unknowns
Working Knowledge (Most Decisions)
- • Can explain historical context
- • Understand stakeholder positions
- • Encountered counterarguments
- • Checked multiple domains
Deep Expertise (High-Stakes)
- • Traced claims to primary sources
- • Can evaluate competing evidence
- • Understand knowledge limitations
Diminishing Returns Signals
Stop when:
- •New sources cite same foundational works (circular)
- •New searches return familiar content (repetitive)
- •Each hour adds less than previous (marginal)
- •Can make decision or take action (sufficient)
Confidence Markers
| Level | Phrases to Use |
|---|---|
| Established | "X is...", "X works by..." |
| Strong evidence | "Evidence strongly suggests..." |
| Moderate evidence | "Most sources report..." |
| Limited evidence | "One study found..." |
| Unknown | "No reliable information found..." |
Synthesis Template
## Summary [Direct answer to question] ## Confidence Level [High/Medium/Low] - [Justification] ## Key Findings 1. [Finding with source type] ## Perspectives | Perspective | Key Argument | Source Quality | |-------------|--------------|----------------| | [view] | [argument] | [assessment] | ## Counter-Evidence - [What argues against the main conclusion] ## Caveats - [What wasn't consulted] - [What assumptions were made] ## For Deeper Investigation [What would increase confidence]
Phase 4 Checklist
- • Met completion criteria for stakes level
- • Checked diminishing returns signals
- • Applied confidence markers
- • Completed synthesis template
- • Stored findings for future reference
Tavily Command Reference
Basic Usage
tavily "search query" [options]
Options
| Option | Description | Values |
|---|---|---|
--answer | Include AI-generated answer summary | flag |
--depth | Search depth | basic (default), advanced |
--results | Number of results | 1-20 (default: 5) |
--topic | Topic category | general (default), news, finance |
--time | Time filter | day, week, month, year |
--include | Only include domains | comma-separated |
--exclude | Exclude domains | comma-separated |
--raw | Include raw page content | flag |
--json | Output as JSON | flag |
Scenario → Command Mapping
| Research Scenario | Command |
|---|---|
| Quick overview | tavily "query" --answer |
| Deep dive | tavily "query" --depth advanced --results 10 --answer |
| Recent news | tavily "query" --topic news --time week |
| Academic focus | tavily "query" --depth advanced --include scholar.google.com,arxiv.org |
| Avoid Wikipedia | tavily "query" --exclude wikipedia.org |
| Fresh perspectives | tavily "query" --exclude [already-seen-domains] |
| Financial data | tavily "query" --topic finance --answer |
| Raw content for analysis | tavily "query" --raw --json |
Diagnostic States
Use these to identify where research is stuck and which phase to revisit.
| State | Symptom | Phase to Revisit |
|---|---|---|
| R0: No Analysis | Searching without structuring topic | Phase 0 |
| R1: No Vocabulary | Using outsider terms, finding only surface content | Phase 1 |
| R2: Single-Perspective | All sources support one view | Phase 3 |
| R3: Domain Blindness | Searching only in familiar field | Phase 1 (cross-domain terms) |
| R4: Recency Bias | Only recent sources | Phase 2 (historical queries) |
| R5: Breadth Without Depth | Many tabs, no synthesis | Phase 4 |
| R6: Completion Uncertainty | Unsure when to stop | Phase 4 (completion criteria) |
| R7: Complete | Can explain, identify uncertainties, act | Done |
Quick Diagnostic
- •Can you explain the topic in expert terminology? → If no, Phase 1
- •Have you found opposing viewpoints? → If no, Phase 3
- •Can you state your confidence level with justification? → If no, Phase 4
- •Is your research depth proportional to stakes? → If no, Phase 0
Anti-Patterns
| Pattern | Symptom | Fix |
|---|---|---|
| Confirmation Trap | Searching to confirm, not learn | Phase 3: Search for strongest counterargument |
| Authority Fallacy | Accepting claims by source prestige | Evaluate evidence, not source |
| Recency Trap | Only recent sources | Phase 2: Historical context queries |
| Breadth Trap | 50 tabs, none read | Phase 4: 3-source rule, synthesize before continuing |
| Single-Source | One source as final answer | Require 3 independent sources |
| Jargon Blind Spot | Missing other fields' terminology | Phase 1: Cross-domain vocabulary |
| Infinite Rabbit Hole | Lost original purpose | Phase 0: Return to scope/stakes |
| Echo Chamber | Same sources repeatedly | Phase 3: Use --exclude flag |
Output Persistence
Output Discovery
Before doing any other work:
- •Check for
context/output-config.mdin the project - •If found, look for this skill's entry
- •If not found or no entry for this skill, ask the user first:
- •"Where should I save output from this research session?"
- •Suggest:
explorations/research/or a sensible location for this project
- •Store the user's preference
What to Store
| Layer | Contents |
|---|---|
| Vocabulary Map | Terms, domains, depth levels |
| Sources | URLs, relevance scores, quality notes |
| Synthesis | Summary, confidence, findings, caveats |
| Query Log | Tavily commands that worked/failed |
| Gaps | What remains unknown |
File Naming
Pattern: {topic}-research-{date}.md
Example: competency-frameworks-research-2025-01-15.md
Integration Points
| Skill | Connection |
|---|---|
| doppelganger | Research informs decisions; apply /truth-check to findings |
| context-networks | Store research findings in appropriate network node |
| boundary-critique | Apply to advice and recommendations encountered |
Health Check Questions
During research, ask:
- •Am I searching to learn or to confirm?
- •What's the strongest argument against my current view?
- •Have I looked outside my familiar domains?
- •Am I using expert or outsider vocabulary?
- •Is my depth proportional to the stakes?
- •Have I stored what I've learned for future use?
Source Framework
Derived from: frameworks/research/research-framework.md