Three-stage:Understand requirements → Iterative exploration → Integrate report。
Control multiple AI services for parallel research via Playwright MCP. See the reference files for interaction details of each service.
Prerequisites
- Playwright MCP Must run in persistent browser mode (
--user-data-dir), so that the login state of each AI service is preserved - The user needs tolog in in advance in the Playwright browserto the AI services to be used (Gemini, ChatGPT, Claude, Grok) — not all logins are required; use whichever ones are logged in
- The selectors in this skill are based on theChinese UI environment; under an English UI, button names and placeholders will differ, and you need to use
browser_snapshotfor real-time detection
Available AI services and modes
| Service | Mode | Time | Features |
|---|---|---|---|
| Gemini Pro | Fast | 10-60s | Fast Q&A, fact-checking (with search capability) |
| Gemini Deep Research | Deep | 5-10min | Multi-source synthesis, broad coverage |
| ChatGPT Thinking | Fast | 10-120s | Deep reasoning, structured analysis |
| ChatGPT Deep Research | Deep | 5-30min | Multi-source synthesis, broad coverage |
| Claude Opus Extended | Fast | 10-120s | Deep reasoning, solution design |
| Grok Fast/Expert | Fast | 10-60s | X/Twitter content search, time-sensitive discussions and trends |
| Grok DeepSearch | Deep | Several minutes | Deep search, social media opinion aggregation |
These are a toolbox, not a pipeline. Select and combine them flexibly according to research needs.
Interaction references:
- references/gemini.md — Gemini operations, selectors, extraction
- references/chatgpt.md — ChatGPT operations (the most fragile service, beware of defenses)
- references/claude-web.md — Claude operations, selectors, extraction
- references/grok.md — Grok operations (the unique entry point for X/Twitter content search)
- references/extraction.md — General extraction techniques (chunking, citation links, saving)
- references/prompt-guide.md — Research prompt construction suggestions
Part 1: Understand requirements
Goal: figure out what the user wants, then start.
First determine: is the user's requirement clear?
After receiving the user query, first determine whether you can understand the researchobject, scope, and purpose:
- Clear → directly confirm your understanding with the user (adjust the scope if needed), then start
- Roughly clear but with vague details → first do WebSearch 2-3 times to supplement your understanding, then confirm with the user
- Not clear → first use WebSearch to build domain knowledge, then clarify with the user with specific questions
Clarification is not a formality — if the user's intent is obvious, just getting to work is more useful than asking a bunch of questions.
Construct queries
Prepare one query for each selected AI mode. Giving different AIs different angles is more effective than giving them the same prompt. See prompt-guide.md。
Create research directory
Create the research directory in a suitable location (e.g. research-主题/), and create todo.md to record status.
Part 2: Iterative exploration
Goal: multi-track concurrent search, gradually going deeper until information is sufficient.
Depth is determined by progress
Do not preset the research depth; let the research process speak for itself:
- Start: first use fast modes to spread out (Gemini Pro, ChatGPT Thinking, Claude Opus, Grok Expert), quickly establishing baseline understanding
- Discover complexity: if the fast mode results show that the topic is indeed multi-dimensional, contradictory, and needs more sources → add Deep Research / DeepSearch
- Converge: if the fast modes have already given consistent, sufficient answers → no need to start DR, integrate directly
Do not use a cannon to shoot a mosquito for simple questions. Do not skim the surface for complex questions. Let the information itself tell you how deep to dig.
Dispatch
See the respective reference files for the specific operation steps of each AI service. General process:
- Open a new Tab → navigate to the service → check login
- Select mode → enter query
- Record in todo.md (Tab number + query content)
- After sending one, immediately switch to the next; do not wait for results
Login handling: these services use the user's account. If you find that a service is not logged in,immediately pause and inform the user, and let the user choose:
- Go log in to that service in the Playwright browser, then continue
- Skip that service and continue with other logged-in services
Do not skip automatically—the user may want to log in.
Polling and extraction
Extract as soon as one is ready; do not wait for all streams to complete.
- Fast mode: start checking after ~30s
- DR/DeepSearch mode: start checking after ~90s
- Use screenshot to determine whether it is complete (more reliable than snapshot)—see reference for each service's completion indicators
See extraction.mdfor extraction techniques. Save each result as an independent md (01-gemini-pro.md、02-chatgpt-thinking.md...)。
Targeted deepening
Each time a result is extracted, immediately evaluate:
- What sub-questions were discovered?
- Which dimensions have insufficient data or contradictions?
- Are there any unexpected findings worth investigating?
If yes → add queries. Choose the most suitable tool:
- Fast mode — targeted verification of specific sub-questions (seconds)
- WebSearch/WebFetch — cross-validate facts (faster than opening a new AI Tab)
- DR/DeepSearch — only used when the discovered sub-questions truly need broad coverage
- Grok — especially suitable for viewing discussions and opinions on a topic on X/Twitter
Tab management
- Keep it to ≤8 active Tabs; more will make the browser unstable
- Tabs that have been extracted can be kept (follow-up questions may be needed), but do not pile them up indefinitely
- When the browser disconnects:
browser_close→pkill -f "mcp-chrome"→sleep 2→ re-navigate
When to stop
- The core question has a cross-validated answer
- New searches no longer produce substantive new information
- The scope requested by the user has been fully covered
Part 3: Integration Report
Goal: Reorganize content by thematic dimension, cross-validate, and output an in-depth report.
Principles
- Organize by theme, not listed by source (do not do "Gemini says... ChatGPT says...")
- Label sources(
[Gemini DR]、[Grok]、[ChatGPT Thinking], etc.), so readers know the credibility - Consensus(multiple sources agree) andDivergence(each side holds its own view) must both be labeled
- Preserve cited URLs — Original web source links are high-value information and must be carried through to the final report
- Do not forcefully adjudicate divergences — Preserve and label them, let the user judge
- Information weight: DR is usually more comprehensive, fast mode is more focused, WebSearch is the most immediate, Grok's X/Twitter links are exclusive information
Citation System
The report has two layers of citation, and both must be done well:
1. Web source citations(report → original web page)
Annotate original web sources next to key facts, data, and viewpoints in the body text. Format is flexible—footnotes, inline links, citation blocks at the end of paragraphs are all fine; choose the most readable method based on the report style. Core principle:When a reader sees a key assertion, they can directly find the original web page to verify it。
The citation links for each AI are already in the original result file's ## 参考链接 section. During integration, select the most relevant links from there and embed them in the report body. No need to carry all of them over—only keep those supporting key arguments.
2. AI source labels(report → which AI said it)
Use inline tags [Gemini DR]、[Grok]、[ChatGPT Thinking] , etc. to label which AI mode the information comes from. This helps readers judge credibility (DR multi-source cross-validation vs. fast mode single-pass reasoning). Those with multiple sources in agreement can be labeled [多路共识]。
3. Original result index(report → original file)
At the end of the report, attach ## 原始结果索引, listing all original result files and the corresponding query content:
## 原始结果索引
| 文件 | 服务 | 模式 | 查询摘要 |
|------|------|------|----------|
| 01-gemini-pro.md | Gemini | Pro | ... |
| 02-chatgpt-dr.md | ChatGPT | Deep Research | ... |
This lets readers trace back to the complete original results (including all reference links).
Process
- Write the first draft — Based on existing results, write what can be written first, embedding citation links at the same time
- Mark gaps — Which data is insufficient? Which has only a single source?
- Major gap → go back to Part 2 to supplement
- Update progressively — Update the report as new information comes in
- Final review — Check citation completeness (do key assertions have source support?) → deliver to the user
Save the report as 00-final-report.md。
todo.md persistence
Research may span sessions. todo.md is the recovery point.
# 研究:[主题]
## 状态:[进行中/已完成]
## 搜索流
| # | 服务 | 模式 | Tab | 查询摘要 | 状态 |
|---|------|------|-----|----------|------|
| 01 | Gemini | Pro | 2 | ... | 已提取 |
| 02 | ChatGPT | DR | 3 | ... | 等待中 |
| 03 | Grok | 专家 | 4 | ... | 进行中 |
## 发现的子问题
- [ ] ...
## 整合进度
- [ ] 初稿
- [ ] 缺口填补
- [ ] 最终审校
Cross-session recovery: read todo.md → browser_tabs list to check existing Tabs → compare and recover.
Error handling
| Situation | Recommendation |
|---|---|
| Not logged in | Pause and inform the user——let the user choose whether to log in or skip that service |
| Browser disconnected | browser_close → pkill -f "mcp-chrome" → sleep 2 → navigate again |
| Cloudflare block | Retry navigate 1-2 times; usually it passes on the second attempt |
| Single Tab timeout (>40min) | Mark as timed out, continue with other streams |
| Extraction returns empty | See extraction.md fallback strategy |
| snapshot returns empty | Wait 2-3 seconds and retry; ChatGPT/Grok sometimes enters a transient empty state |
| DR not started | ChatGPT DR may first reply with a clarifying question; after detecting it, reply to make it start directly |
| DR/DeepSearch quota exhausted | Skip, switch to fast mode or supplement with WebSearch |
Partial failure does not affect output: if ≥2 streams succeed, still produce the report (noting the source scope).