home / skills / jwynia / agent-skills / research

This skill helps you diagnose research quality and guide systematic query expansion to ensure thorough, unbiased topic understanding.

npx playbooks add skill jwynia/agent-skills --skill research

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
15.3 KB
---
name: research
description: Diagnose research quality and guide systematic query expansion. Use when starting research on any topic, when stuck in research, or when unsure if research is complete.
license: MIT
metadata:
  author: jwynia
  version: "2.0"
  domain: research
  cluster: methodology
  type: diagnostic
  mode: assistive
---

# 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

1. **Deno** - Install from https://deno.land
2. **Tavily API Key** - Get one at https://tavily.com (free tier available)

### Configuration

Set your API key:
```bash
export TAVILY_API_KEY="your-key-here"
```

Create an alias for convenience (add to your shell profile):
```bash
# 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:
```bash
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

```bash
# 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

```markdown
# 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

1. Run initial terminology search:
   ```bash
   tavily "[topic] terminology" --answer --results 5
   ```

2. From results, note:
   - Expert terms (technical vocabulary)
   - Outsider terms (popular/introductory language)
   - Cross-domain equivalents

3. Update vocabulary map (template below)

4. Re-run searches with expert terms:
   ```bash
   tavily "[expert-term]" --answer
   ```

5. Compare result quality - expert terms should surface deeper content

### Vocabulary Map Template

```markdown
## 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

1. Start with expert terminology from Phase 1

2. Run foundational queries:
   ```bash
   # Definition/overview
   tavily "[expert-term] comprehensive overview" --answer --depth advanced

   # Key perspectives
   tavily "[expert-term] major approaches" --answer --results 7
   ```

3. For each major perspective found, get 2-3 authoritative sources:
   ```bash
   tavily "[perspective-name] [expert-term]" --answer --results 5
   ```

4. 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

1. Identify your current understanding/lean

2. Search for strongest counterargument:
   ```bash
   tavily "[topic] strongest argument against" --answer --depth advanced
   ```

3. Exclude sources you've already seen:
   ```bash
   tavily "[topic]" --exclude [domains-already-searched]
   ```

4. Search for failure modes:
   ```bash
   tavily "[topic] when fails problems limitations" --answer
   ```

5. 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

```markdown
## 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

```bash
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

1. Can you explain the topic in expert terminology? → If no, Phase 1
2. Have you found opposing viewpoints? → If no, Phase 3
3. Can you state your confidence level with justification? → If no, Phase 4
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:**

1. Check for `context/output-config.md` in the project
2. If found, look for this skill's entry
3. 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
4. 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:

1. Am I searching to learn or to confirm?
2. What's the strongest argument against my current view?
3. Have I looked outside my familiar domains?
4. Am I using expert or outsider vocabulary?
5. Is my depth proportional to the stakes?
6. Have I stored what I've learned for future use?

---

## Source Framework

Derived from: `references/research-framework.md`

Overview

This skill diagnoses research quality and guides systematic query expansion to help you start, redirect, or finish research on any topic. It combines a structured phase workflow with tool-assisted web search to surface expert vocabulary, foundational sources, and counter-perspectives. Use it to avoid common research traps and to produce defensible synthesis with explicit confidence markers.

How this skill works

The skill inspects your current research state, identifies gaps (vocabulary, perspective, depth, synthesis), and recommends targeted search commands and next steps. It walks through five phases: scope analysis, vocabulary discovery, foundational search, counter-perspectives, and synthesis with completion criteria. Where appropriate, it suggests search settings to broaden or deepen results and signals when diminishing returns indicate it’s time to stop.

When to use it

  • When beginning research and unsure how to scope the topic
  • When searches return only surface-level or popular sources
  • When you suspect confirmation bias or a single-perspective view
  • When you need to map expert terminology to unlock deeper sources
  • When you’re unsure whether research is complete or actionable

Best practices

  • Start with a short scope analysis: define stakes, stakeholders, and ambiguous terms
  • Run vocabulary discovery before deep searches to find expert terms
  • Collect 2–3 authoritative sources per major perspective, then synthesize
  • Actively search for the strongest counterarguments and failure cases
  • Use explicit completion criteria and confidence markers to decide when to stop

Example use cases

  • Rapidly scoping a new technical topic and generating expert search terms
  • Recovering from stuck research by discovering counter-perspectives and alternatives
  • Preparing a briefing: gather foundational sources and a concise confidence-rated summary
  • Evaluating whether you have enough evidence for a high-stakes decision
  • Transitioning from broad reading to a focused literature map for a paper

FAQ

How do I know what search depth to use?

Calibrate depth to decision stakes: quick scans for low-stakes, working knowledge for most tasks, advanced/deep searches for high-stakes or irreversible decisions.

What if all sources repeat the same claims?

Treat that as a diminishing-returns signal: search earlier works, look for primary sources, and explicitly seek failure modes or excluded domains to break circularity.