A Claude Code skill for multi-source technical research. Gathers intelligence from three sources and synthesizes findings into a unified report — using lightweight subagents for simple queries or coordinated agent teammates for heavy competitive research.
| Source | Tool | What It Provides |
|---|---|---|
| Grok | Browser automation → grok.com | X (Twitter) developer discussions, sentiment, expert discovery |
| DeepWiki | DeepWiki MCP → ask_question |
AI-powered GitHub repository analysis, architecture, API docs |
| WebSearch | Built-in web search | Official docs, benchmarks, blog posts, recent announcements |
npx skills add psylch/tech-research-skill -g -y/plugin marketplace add psylch/tech-research-skill
/plugin install tech-research@psylch-tech-research-skillRestart Claude Code after installation.
- Claude Code or any agent that supports skills.sh
- Browser automation for Grok (optional — Grok source is skipped if unavailable):
- Claude-in-Chrome (zero setup, recommended), or
- Playwright MCP (auto-setup via
grok_setup.sh)
- DeepWiki MCP for GitHub repository analysis (optional)
Grok requires browser automation with a logged-in session. The skill supports multiple backends, detected in priority order:
| Priority | Backend | MCP Server | Setup |
|---|---|---|---|
| 1 | Claude-in-Chrome | claude-in-chrome |
Zero setup — uses your Chrome login state |
| 2 | Playwright-Grok | playwright-grok |
One-time: run grok_setup.sh setup to create from existing Playwright config |
| 3 | Playwright (default) | playwright |
Works but no login persistence |
Important: Do NOT modify your default
playwrightMCP to add--user-data-dir. This forces ALL browser operations through a single profile, breaking parallel agent usage. The skill uses a separateplaywright-grokinstance instead.
If you have Playwright MCP configured, run:
bash ~/.agents/skills/tech-research/scripts/grok_setup.sh setupThis clones your playwright config as playwright-grok with a dedicated profile directory. Then restart Claude Code and log into Grok once in the new browser window.
Login state is cached at ~/.claude/tech-research/.grok-status.json:
logged_in— Long-lived, no expiry. Valid until a subagent detects an actual logout.logged_out— Auto-expires after 2 hours, then retries optimistically.- No file — Optimistic, assumes logged in.
# Check current status
bash ~/.agents/skills/tech-research/scripts/grok_setup.sh check
# Clear cached status (after re-logging in)
bash ~/.agents/skills/tech-research/scripts/grok_setup.sh resetIn Claude Code, use any of these trigger phrases:
/tech-research
调研一下 Zustand vs Jotai
research this technology: Bun
compare libraries: Vite vs Turbopack
evaluate framework: SolidJS
- Analyze — breaks the research question into sub-queries for each source
- Pre-flight — detects best available browser backend and login status for Grok
- Select mode — chooses Light or Heavy mode based on research complexity
- Dispatch — launches research agents in the appropriate mode
- Synthesize — merges findings into a structured report with TL;DR, comparison matrix, and actionable recommendation
| Signal | Mode |
|---|---|
| Single topic, multiple data sources | Light — up to 3 parallel Task Subagents, each handling one data source |
| Multiple topics/competitors needing cross-comparison | Heavy — Agent Teammates that can communicate, share discoveries, and avoid duplication |
| Research may require dynamic re-scoping | Heavy |
| Agent count ≥ 4 | Heavy |
Not every research task uses all 3 sources. The skill selects sources based on the question type:
| Research Type | Grok | DeepWiki | WebSearch |
|---|---|---|---|
| "Should we use library X?" | Yes | Yes | Yes |
| "What are devs saying about X?" | Yes | No | Maybe |
| "How does repo X work internally?" | No | Yes | Maybe |
| "Compare X vs Y performance" | Maybe | Yes (both) | Yes |
- Grok queries must include X/Twitter keywords (e.g., "developers on X say...") to avoid falling back to broad web search, which would duplicate WebSearch
- Each Grok query opens a fresh page — no multi-turn conversations in the same session
- DeepWiki uses
ask_questiononly —read_wiki_structureandread_wiki_contentsreturn massive dumps that easily exceed context limits - Grok post URLs are verified — the subagent navigates to 2-3 cited URLs to check if they actually exist
- Optimistic login — assumes Grok is logged in unless a previous attempt recorded
logged_out; avoids prompting the user unnecessarily - Self-recovery — the skill includes a diagnostic decision tree for handling script failures, stale status files, and browser issues
| Symptom | Fix |
|---|---|
| Grok always skipped despite being logged in | Run grok_setup.sh reset to clear stale status |
grok_setup.sh check returns unexpected results |
Verify ~/.claude.json has correct MCP server names |
| Status file corrupted | Delete ~/.claude/tech-research/.grok-status.json |
| Script fails entirely | The skill falls back to ToolSearch-based MCP detection automatically |
tech-research-skill/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── skills/
│ └── tech-research/
│ ├── SKILL.md # Main skill definition
│ ├── references/
│ │ ├── subagent_templates.md # Prompt templates for each subagent
│ │ └── query_strategies.md # Grok query crafting strategies
│ └── scripts/
│ └── grok_setup.sh # Backend detection, setup, and login status management
├── README.md
├── README.zh.md
└── LICENSE
MIT