jwynia/research
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.
npx skills add https://github.com/jwynia/agent-skills --skill research
Tool-assisted research with Tavily integration. Transforms basic questions into comprehensive search strategies using AI-optimized web search.
This skill includes a bundled Tavily CLI script at scripts/tavily-cli.ts.
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.
# 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 | 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 |
| Decision Stakes | Tavily Settings |
|-----------------|-----------------|
| Low, reversible | --depth basic --results 3 |
| Moderate | --depth basic --results 5 --answer |
| High, irreversible | --depth advanced --results 10 --answer |
Goal: Structure topic before searching. Prevents unfocused searches and scope mismatch.
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 |
# 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]
Goal: Discover expert terminology to unlock deeper search results.
| 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 |
tavily "[topic] terminology" --answer --results 5
tavily "[expert-term]" --answer
## 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 |
Goal: Build foundational understanding with authoritative sources.
| 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 | 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] |
# Definition/overview
tavily "[expert-term] comprehensive overview" --answer --depth advanced
# Key perspectives
tavily "[expert-term] major approaches" --answer --results 7
tavily "[perspective-name] [expert-term]" --answer --results 5
Goal: Explicitly find opposing viewpoints to avoid confirmation bias.
Single-perspective research:
| 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] |
tavily "[topic] strongest argument against" --answer --depth advanced
tavily "[topic]" --exclude [domains-already-searched]
tavily "[topic] when fails problems limitations" --answer
Goal: Synthesize findings with explicit confidence markers.
Stop when:
| 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..." |
## 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]
tavily "search query" [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 |
| 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 |
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 |
| 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 |
Before doing any other work:
context/output-config.md in the projectexplorations/research/ or a sensible location for this project| 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 |
Pattern: {topic}-research-{date}.md
Example: competency-frameworks-research-2025-01-15.md
| 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 |
During research, ask:
Derived from: references/research-framework.md
Take jwynia/research from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.