11 KiB
name, description, triggers, allowed-tools, version
| name | description | triggers | allowed-tools | version | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| research | Multi-LLM parallel research with query decomposition and synthesis |
|
Read, Bash, WebSearch, WebFetch, Task | 0.1.0 |
Research Skill
Discovery-driven, exhaustive research using parallel LLM agents for comprehensive, current information gathering.
Core Principles
CRITICAL: These principles define how research works.
1. Discovery-Driven, Not List-Driven
- Find the BEST sources, not just known sources
- Don't limit to predefined source lists
- The internet is huge - explore it
- Value is in finding what user doesn't already know
2. Context-Aware
- Load user's domain context from preferences
- Research is RELEVANT to their specific situation
- But context doesn't limit WHERE you search
3. Exhaustive
- No time limits - can take 30 minutes to 3 hours
- Don't stop at first page of results
- Keep going until topic is exhausted
- Follow promising links deeper
4. Multimedia
- Not just text articles
- Videos (YouTube), TikTok, podcasts
- Real user experiences from forums
5. Highly Cited
- Every claim must have a citation
- Multiple sources for important claims
- Note when sources conflict
6. Clarifying Questions First
Before diving into research, ask deep, thought-provoking questions to understand:
- What's the actual goal? (not just the surface request)
- What constraints exist? (budget, time, preferences)
- What would success look like?
- What have they already tried or considered?
- Are there hidden requirements?
Example: "Research Japan ski trip" should prompt:
- "What skill level are you and Carrie? Blue runs, black diamonds?"
- "Is après-ski culture important, or pure skiing focus?"
- "Do you need English-friendly areas, or comfortable with Japanese-only?"
- "Any specific dates that are fixed vs flexible?"
- "Besides skiing, anything else you want to do (onsen, food tours)?"
Domain Context Loading
Research automatically loads relevant context from preferences based on detected domain.
How It Works
- Detect domain from query (travel, shopping, work, etc.)
- Load
research_domains.[domain]from preferences - Load referenced context keys
- Fetch any dynamic data (point balances, etc.)
- Apply domain-specific research patterns
Available Domains
- travel - Loads loyalty programs, credit cards, ski passes, fetches point balances
- work_education - Loads PSD context, CoSN membership, K-12 patterns
- shopping - Price comparison, quality patterns
- ai_coding - Tech stack, GitHub/HN patterns
- consulting - Strategic recommendations patterns
Dynamic Data Fetching
For travel research, use browser-control to fetch current:
- Marriott points balance
- Alaska miles balance
- Chase points balance
- Active transfer bonus promotions
When to Activate
Use this skill when user needs:
- Current information (credit card perks, travel deals, policies)
- Multi-perspective analysis (comparing options)
- Deep investigation of complex topics
- Fact-checking or verification
- Market research or trend analysis
Travel Research Requirements
CRITICAL: Travel research MUST include user-generated content:
Required Sections for Travel
- User Reviews - TripAdvisor, FlyerTalk, Reddit feedback
- "What I Wish I Knew" - Common mistakes and gotchas
- Real Experiences - Actual trip reports from similar travelers
- Restaurant/Hotel Reviews - With prices and quality feedback
- Transportation Tips - Real user experiences with logistics
Sources to Search
- TripAdvisor reviews and forums
- FlyerTalk (for points/miles properties)
- Reddit (r/JapanTravel, r/skiing, r/churning, etc.)
- Ski forums and trip reports
- Points/miles blogs with personal reviews
Browser Access for Deep Research
Use the browser-control skill to scrape full threads and reviews that require:
- JavaScript rendering (Reddit, modern forums)
- Authentication (FlyerTalk, logged-in content)
- Dynamic content loading
Prerequisites:
- Brave must be running:
cd skills/browser-control && ./scripts/launch-chrome.sh - User must be logged into relevant sites in the Brave Geoffrey profile
Available Scripts (in skills/browser-control/scripts/):
# Navigate and get page content
bun navigate.js "https://www.reddit.com/r/JapanTravel/comments/..."
# Extract specific content
bun extract.js "https://flyertalk.com/forum/thread" ".post-content" --all
# Search travel sites directly
bun search.js reddit "Hakuba ski resort tips"
bun search.js flyertalk "Marriott Bonvoy Japan redemption"
# Capture current page without navigating
bun capture.js /tmp/screenshot.png
When to Use Browser Control:
- Reddit threads (full comments, not just preview)
- FlyerTalk forum posts (complete thread content)
- Hotel/airline pages requiring login (availability, points pricing)
- Sites that block web scraping but allow browsers
Research Tool Decision Tree
Start with WebSearch/WebFetch for:
- General facts and information
- Blog posts and news articles
- Static content that's publicly accessible
- Quick lookups
Escalate to browser-control when:
- WebFetch returns truncated/incomplete content (JS-rendered sites)
- Need authenticated access (user's Marriott/Alaska account)
- Need real-time prices or availability
- Forum threads show only previews
- Site blocks scraping but allows browsers
Example Flow:
- User asks: "What do people say about Westin Rusutsu?"
- Start with
WebSearchfor blog reviews - Find promising Reddit/FlyerTalk threads
- Use
browser-controlto get full thread content - Synthesize findings with citations
Citation Requirements
CRITICAL: All research output MUST include citations.
Inline Citations
Every factual claim must link to its source:
- "The Westin Rusutsu costs 70,000 points peak (Point Hacks)"
- "Shinkansen to Nagano takes 1.5 hours (Corritrip)"
Source Section
Every research report must end with a complete "Sources" section listing all URLs used.
Why This Matters
- User needs to verify information
- Information changes frequently (credit card perks, prices)
- Establishes credibility
- Allows deeper exploration
No Citation = Don't Include
If you can't cite a source for a claim, either:
- Find a source
- Mark it as "unverified"
- Don't include it
Architecture
Query Decomposition
Break complex questions into 3-7 sub-queries covering different angles:
- Factual/definitional
- Comparative
- Current state
- Expert opinions
- User experiences
- Edge cases
Parallel Agent Execution
Launch multiple researcher agents simultaneously:
- Perplexity - Best for current web information, citations
- Gemini - Good for multi-perspective synthesis
- OpenAI - Strong structured analysis
- Claude - Deep reasoning, nuanced analysis
Result Synthesis
- Collect all findings
- Identify consensus vs conflicts
- Score confidence per finding
- Cite sources
- Provide actionable recommendations
Available Agents
Agents are in ./agents/ directory:
| Agent | Best For | API Required |
|---|---|---|
perplexity-researcher.md |
Current web info, citations | PERPLEXITY_API_KEY |
gemini-researcher.md |
Multi-angle comparison | GEMINI_API_KEY |
openai-researcher.md |
Structured analysis | OPENAI_API_KEY |
claude-researcher.md |
Deep reasoning | Native (Claude Code) |
Usage
Basic Research
User: "Research the best ways to maximize Alaska Airlines miles for Japan flights"
Geoffrey:
1. Decomposes into sub-queries:
- Current Alaska redemption rates to Japan
- Partner airline options (JAL, etc.)
- Sweet spots and award availability patterns
- Credit card earning strategies
- Recent devaluations or changes
2. Launches 4 agents in parallel
3. Synthesizes findings with confidence scores
Workflow Command
Use /conduct-research [topic] to trigger full parallel research workflow.
Output Format
## Research: [Topic]
### Context Applied
- Domain: [travel/shopping/work/etc]
- User context loaded: [what was loaded from preferences]
- Dynamic data fetched: [current point balances, etc]
### Executive Summary
[2-3 paragraph overview of key findings and main recommendation]
### Detailed Findings
#### Sub-topic 1
Information with citations throughout. For example, "The Westin Rusutsu
costs 70,000 points peak" ([Point Hacks](url)) and "offers ski-in/ski-out
access" ([Marriott](url)).
#### Sub-topic 2
More information with inline citations...
### Multimedia Resources
- [Video: Title](url) - brief description
- [Podcast: Episode](url) - brief description
- [TikTok: @user](url) - brief description
### What I Discovered You Might Not Know
- Surprising finding 1 that user likely didn't know
- Surprising finding 2
- New source or perspective discovered
### Recommendations
1. Actionable recommendation specific to user's context
2. Another action based on their situation
### Confidence Assessment
- High confidence: [topics with multiple agreeing sources]
- Needs verification: [topics with limited sources]
- Conflicting information: [where sources disagree]
### All Sources
Complete list of every URL referenced:
- [Source Name 1](full-url)
- [Source Name 2](full-url)
- [Source Name 3](full-url)
Note: Every factual claim needs an inline citation. The "All Sources" section at the end provides a consolidated reference list.
Saving Research Reports
ALWAYS save research reports to Google Docs after completing research.
Default Behavior
- Create Google Doc in Geoffrey/Research folder
- Use appropriate account (hrg for personal, psd for work)
- Apply markdown formatting (headers, bold, links)
- Return link to user
How to Save
cd skills/google-workspace
bun docs/create_doc.js <account> --title "<Research Topic>" --folder Research --content "<markdown>"
Account Selection
- hrg - Personal travel, consulting
- psd - Work-related research
- kh - Personal projects
Future: Obsidian Integration
Will also save to local Obsidian vault (when skill is built).
API Configuration
Keys stored in: ~/Library/Mobile Documents/com~apple~CloudDocs/Geoffrey/secrets/.env
PERPLEXITY_API_KEY=pplx-...
GEMINI_API_KEY=...
OPENAI_API_KEY=sk-...
# Note: Claude runs natively in Claude Code, no API key needed
Performance
- Time: 30 minutes to 3 hours for exhaustive research (not 15-45 seconds)
- Depth: Exhaustive - multiple search pages, follow links, multimedia
- Sources: Discover new sources, not just known lists
- Accuracy: Cross-referenced with confidence scoring, all claims cited
Limitations
- API rate limits may throttle parallel requests
- Costs accrue per API call
- Not all agents may have access to same sources
- Real-time data (stock prices, availability) needs direct API access
Future Enhancements
- Caching frequent research topics
- Learning which agents are best for which domains
- Automatic source credibility scoring
- Research history and versioning