Research
Source-backed investigation that produces a cited Markdown artifact under docs/research/. Three
modes share one spine — frame the question, search with the mode's source strategy, adversarially
verify, synthesize a cited report — but differ in sources, frameworks, and output template.
When to use
- general — deep multi-source web research with inline citations (深度调研, 调研转文档)
- market — market sizing, competitor analysis, investor due diligence, industry intelligence (市场调研, 竞品分析)
- tech-selection — choosing/comparing a stack, library, framework, or repo for a concrete requirement (技术选型, 方案对比, 选哪个)
- Triggers on "deep research", "调研报告", "市场调研", "竞品分析", "技术选型", "选哪个", "方案对比"
Not for: short queries or single-source lookups; design visual references (use design-research); writing the PRD/spec itself (use spec). Does not build embeddings, vector stores, or persistent indexes.
Steps
1. Pick the mode and frame the question
Route by the dominant signal in the ask — don't guess:
| Signal in the ask |
Mode |
Source strategy |
| Tech / framework / library / SDK / repo / tool comparison |
tech-selection |
GitHub-first P0 |
| Market / competitor / investor / industry / pricing / TAM |
market |
SEC, reports, press |
| Everything else — concept, spec, state-of-the-art survey |
general |
Official docs, blog, paper, GitHub |
If the ask hits two or more modes (e.g. "research DeepSeek's harness" is both a tech-framework
question and a company deep-dive; "an AI company's stack + market" is both tech-selection and
market), ask the user to pick one — "技术选型(GitHub 源优先)/ 市场分析 / 通用深度?三选一" —
rather than silently choosing. A single dominant signal needs no question; state assumptions and
proceed.
Then restate the goal, scope, output language, and output path:
- general →
docs/research/YYYY-MM-DD-<slug>.md (slug: 2-4 words, lowercase ASCII; transliterate non-ASCII; no redundant prefixes). If the file exists, append -2 or -HHmmss; overwrite only with explicit permission.
- market →
docs/research/market.md
- tech-selection →
docs/research/competitor.md
If the topic is too broad to search usefully, ask one concise scoping question; otherwise state
assumptions and proceed. Consider delegating to a background agent to keep working while it reads.
Load the mode reference for the mode-specific source strategy, frameworks, and output template:
- general → references/general-mode.md
- market → references/market-mode.md
- tech-selection → references/tech-selection-mode.md
2. Search with the mode's source strategy
Every mode fans out across ≥3 source categories and ≥3 query angles, but the source priority differs:
- general — official docs, project blogs, papers, release notes, GitHub repos. ≥6 relevant sources for broad topics.
- market — investor/fund data, competitive intel, market reports, public datasets. Includes the 4 market sub-modes (investor diligence, competitive analysis, market sizing, technology/vendor research).
- tech-selection — GitHub-first (P0: repos/README/issues/PRs/releases), then official docs (P1), community signal (P2), SEO listicles background-only (P3). ≥5 credible candidates before narrowing.
3. Fetch sources — never trust snippets
Search current information; never rely on memory. Fetch the source page before summarizing — never
treat search snippets as final evidence. On empty or navigation-only pages, retry in order: add
wait, switch format, switch canonical URL, try sitemap/site search, fall back to raw GitHub/API
source. Mark access limits if all fail. If the fetch tool itself is unavailable (network policy,
auth wall) or a search tool's quota is exhausted, switch tools by quota dependency — see
references/web-tool-fallback.md. Prefer primary sources; discard
reposts, SEO listicles, off-topic, and low-signal duplicates. Collect both Chinese and English
sources where relevant. Source-code material (repo, SDK source, release notes whose canonical home
is a repo) → git clone --depth 1 into archive/ (gitignored provenance) and read locally, rather
than relying on remote fetch of individual files.
4. Adversarially verify claims
For each key claim, follow it back to the primary source that owns it. Record: title, URL,
published/updated date, access date, reliability class, claims supported. Surface conflicts, stale
data, missing dates, and access restrictions explicitly. Separate fact from inference; mark
uncertain claims as inference. Include contrarian evidence and downside cases; delete unsupported
claims or label them as inference.
Two checks are mandatory, not optional:
- Falsify negative claims on GitHub. If a conclusion asserts that something does not exist —
"X 未发布 / 不存在 / 无官方实现 / 尚未开源 / 未开源" — search the org/product on GitHub before publishing
it. "Didn't find it" ≠ "doesn't exist": record the search term, the org name tried, and the result
(found / not found). If the negative cannot be falsified from a primary source, label it
UNVERIFIED: with the search trail, and do not present a secondary source's "截至 X 月" snapshot
as the current truth.
- Re-check recency on secondary sources. When a secondary source is dated "截至 X 月" / "as of X"
and that point is more than one month old, check the official org's latest activity (GitHub
release/commit, official blog, official X) before restating its claim. A stale "as of" is a lead,
not a conclusion.
5. Synthesize the cited Markdown report
Default language: match the user's input language (Chinese input → Chinese report, English → English). The user can override with an explicit instruction. Proper nouns, code identifiers,
filenames, and license names stay in original form. Inline-cite at each claim ([text](url)), not
just a URL dump in the appendix. Use the conclusion-first 9-section spine shared by all modes —
§1 TL;DR → §2 核心认知 → §3-§7 主体 → §8 避坑清单 → §9 源附录与核查记录. Load
references/report-spine.md for the full structure, main-thread rule,
mermaid rules, and shared skeleton. Each mode ref fills the mode-specific 主体 (§3-§7). Trim to fit
but keep fixed sections (§1/§2/§8/§9) in order.
6. Deliver a short chat summary
Report: file path, the key conclusion/recommendation, top reasons, main tradeoff or risk, source
count by source class, and any access limitations. If live browsing was unavailable or forbidden,
do not present the result as researched — explain the limitation and offer an offline-only draft.
Output: docs/research/YYYY-MM-DD-<slug>.md (general) / docs/research/market.md (market) / docs/research/competitor.md (tech-selection) — cited research artifact, archived cumulatively.
Verify
- The
.md file exists and contains no unresolved placeholders (TBD, [标题], https://example.com, github.com/org/repo).
- Every key conclusion, recommendation, comparison point, and date-sensitive claim has an inline citation.
- Source appendix lists access dates and access limitations.
- The mode was chosen via the criteria table, not guessed; if the ask hit two or more modes, the user was asked to pick.
- Any negative claim ("未发布/不存在/尚未开源/无官方实现") carries a GitHub falsification record (search term, org, result) or an
UNVERIFIED: label — never a bare secondary-source assertion.
- For any tech/framework/org topic, GitHub source evidence is present regardless of mode.
- For all modes: §1 TL;DR is conclusion-first (not process/method); §2 核心认知 states one main thread in a findable sentence and includes ≥1 decision flowchart; §8 避坑清单 has numbered negative claims each carrying evidence or a falsification trail; §9 源附录与核查记录 has 9.2 负面断言核查记录 + 9.3 UNVERIFIED + 9.4 访问限制与缺口 subsections.
- For general: 9-section conclusion-first structure; ≥3 mermaid (≥1 decision flowchart in §2), each serving information.
- For tech-selection: GitHub repo evidence + official docs present; stars alone did not drive the recommendation.
- For market: all numbers sourced or labeled estimates; old data flagged; recommendation follows from evidence.
- Final reply states: file path, source count, access limitations.
References
- ${CLAUDE_PLUGIN_ROOT}/references/engineering-principles.md — discipline for every skill (surface assumptions, verify don't assume, push back).
- ${CLAUDE_PLUGIN_ROOT}/references/product-principles.md — product discipline (the real competitor is the current workaround). Linked by market + tech-selection modes.
- references/report-spine.md — shared conclusion-first 9-section spine (TL;DR → 核心认知 → 主体 → 避坑 → 源附录与核查记录), main-thread rule, mermaid rules, shared skeleton.
- references/general-mode.md — general mode: 9-section conclusion-first template, fan-out source strategy, mermaid/glossary patterns.
- references/market-mode.md — market mode: 4 sub-modes (investor/competitive/sizing/tech-vendor), 9-section conclusion-first template, market frameworks.
- references/tech-selection-mode.md — tech-selection mode: GitHub-first P0-P3 source priority, 9-section conclusion-first template, selection rubric.
- references/web-tool-fallback.md — when a fetch tool is blocked or quota-exhausted: tiered fallback by quota dependency (GitHub → indexed docs → scrape → discovery), orthogonal to page-level retries.
- references/pressure-scenarios.md — failure-mode pressure tests for this skill.
1---2name: research3description: Research4---56# Research78Source-backed investigation that produces a cited Markdown artifact under `docs/research/`. Three9modes share one spine — frame the question, search with the mode's source strategy, adversarially10verify, synthesize a cited report — but differ in sources, frameworks, and output template.1112## When to use1314- **general** — deep multi-source web research with inline citations (深度调研, 调研转文档)15- **market** — market sizing, competitor analysis, investor due diligence, industry intelligence (市场调研, 竞品分析)16- **tech-selection** — choosing/comparing a stack, library, framework, or repo for a concrete requirement (技术选型, 方案对比, 选哪个)17- Triggers on "deep research", "调研报告", "市场调研", "竞品分析", "技术选型", "选哪个", "方案对比"1819**Not for:** short queries or single-source lookups; design visual references (use `design-research`); writing the PRD/spec itself (use `spec`). Does not build embeddings, vector stores, or persistent indexes.2021## Steps2223### 1. Pick the mode and frame the question2425Route by the dominant signal in the ask — don't guess:2627| Signal in the ask | Mode | Source strategy |28| --- | --- | --- |29| Tech / framework / library / SDK / repo / tool comparison | tech-selection | GitHub-first P0 |30| Market / competitor / investor / industry / pricing / TAM | market | SEC, reports, press |31| Everything else — concept, spec, state-of-the-art survey | general | Official docs, blog, paper, GitHub |3233If the ask hits **two or more modes** (e.g. "research DeepSeek's harness" is both a tech-framework34question *and* a company deep-dive; "an AI company's stack + market" is both tech-selection and35market), **ask the user to pick one** — "技术选型(GitHub 源优先)/ 市场分析 / 通用深度?三选一" —36rather than silently choosing. A single dominant signal needs no question; state assumptions and37proceed.3839Then restate the goal, scope, output language, and output path:4041- **general** → `docs/research/YYYY-MM-DD-<slug>.md` (slug: 2-4 words, lowercase ASCII; transliterate non-ASCII; no redundant prefixes). If the file exists, append `-2` or `-HHmmss`; overwrite only with explicit permission.42- **market** → `docs/research/market.md`43- **tech-selection** → `docs/research/competitor.md`4445If the topic is too broad to search usefully, ask one concise scoping question; otherwise state46assumptions and proceed. Consider delegating to a background agent to keep working while it reads.4748Load the mode reference for the mode-specific source strategy, frameworks, and output template:49- general → [references/general-mode.md](references/general-mode.md)50- market → [references/market-mode.md](references/market-mode.md)51- tech-selection → [references/tech-selection-mode.md](references/tech-selection-mode.md)5253### 2. Search with the mode's source strategy5455Every mode fans out across ≥3 source categories and ≥3 query angles, but the source priority differs:5657- **general** — official docs, project blogs, papers, release notes, GitHub repos. ≥6 relevant sources for broad topics.58- **market** — investor/fund data, competitive intel, market reports, public datasets. Includes the 4 market sub-modes (investor diligence, competitive analysis, market sizing, technology/vendor research).59- **tech-selection** — GitHub-first (P0: repos/README/issues/PRs/releases), then official docs (P1), community signal (P2), SEO listicles background-only (P3). ≥5 credible candidates before narrowing.6061### 3. Fetch sources — never trust snippets6263Search current information; never rely on memory. Fetch the source page before summarizing — never64treat search snippets as final evidence. On empty or navigation-only pages, retry in order: add65wait, switch format, switch canonical URL, try sitemap/site search, fall back to raw GitHub/API66source. Mark access limits if all fail. If the fetch tool itself is unavailable (network policy,67auth wall) or a search tool's quota is exhausted, switch tools by quota dependency — see68[references/web-tool-fallback.md](references/web-tool-fallback.md). Prefer primary sources; discard69reposts, SEO listicles, off-topic, and low-signal duplicates. Collect both Chinese and English70sources where relevant. Source-code material (repo, SDK source, release notes whose canonical home71is a repo) → `git clone --depth 1` into `archive/` (gitignored provenance) and read locally, rather72than relying on remote fetch of individual files.7374### 4. Adversarially verify claims7576For each key claim, follow it back to the primary source that owns it. Record: title, URL,77published/updated date, access date, reliability class, claims supported. Surface conflicts, stale78data, missing dates, and access restrictions explicitly. Separate fact from inference; mark79uncertain claims as inference. Include contrarian evidence and downside cases; delete unsupported80claims or label them as inference.8182Two checks are mandatory, not optional:8384- **Falsify negative claims on GitHub.** If a conclusion asserts that something does *not* exist —85 "X 未发布 / 不存在 / 无官方实现 / 尚未开源 / 未开源" — search the org/product on GitHub before publishing86 it. "Didn't find it" ≠ "doesn't exist": record the search term, the org name tried, and the result87 (found / not found). If the negative cannot be falsified from a primary source, label it88 `UNVERIFIED:` with the search trail, and do not present a secondary source's "截至 X 月" snapshot89 as the current truth.90- **Re-check recency on secondary sources.** When a secondary source is dated "截至 X 月" / "as of X"91 and that point is more than one month old, check the official org's latest activity (GitHub92 release/commit, official blog, official X) before restating its claim. A stale "as of" is a lead,93 not a conclusion.9495### 5. Synthesize the cited Markdown report9697Default language: match the user's input language (Chinese input → Chinese report, English → English). The user can override with an explicit instruction. Proper nouns, code identifiers,98filenames, and license names stay in original form. Inline-cite at each claim (`[text](url)`), not99just a URL dump in the appendix. Use the **conclusion-first 9-section spine** shared by all modes —100§1 TL;DR → §2 核心认知 → §3-§7 主体 → §8 避坑清单 → §9 源附录与核查记录. Load101[references/report-spine.md](references/report-spine.md) for the full structure, main-thread rule,102mermaid rules, and shared skeleton. Each mode ref fills the mode-specific 主体 (§3-§7). Trim to fit103but keep fixed sections (§1/§2/§8/§9) in order.104105### 6. Deliver a short chat summary106107Report: file path, the key conclusion/recommendation, top reasons, main tradeoff or risk, source108count by source class, and any access limitations. If live browsing was unavailable or forbidden,109do not present the result as researched — explain the limitation and offer an offline-only draft.110111**Output:** `docs/research/YYYY-MM-DD-<slug>.md` (general) / `docs/research/market.md` (market) / `docs/research/competitor.md` (tech-selection) — cited research artifact, archived cumulatively.112113## Verify114115- The `.md` file exists and contains no unresolved placeholders (`TBD`, `[标题]`, `https://example.com`, `github.com/org/repo`).116- Every key conclusion, recommendation, comparison point, and date-sensitive claim has an inline citation.117- Source appendix lists access dates and access limitations.118- The mode was chosen via the criteria table, not guessed; if the ask hit two or more modes, the user was asked to pick.119- Any negative claim ("未发布/不存在/尚未开源/无官方实现") carries a GitHub falsification record (search term, org, result) or an `UNVERIFIED:` label — never a bare secondary-source assertion.120- For any tech/framework/org topic, GitHub source evidence is present regardless of mode.121- For all modes: §1 TL;DR is conclusion-first (not process/method); §2 核心认知 states one main thread in a findable sentence and includes ≥1 decision flowchart; §8 避坑清单 has numbered negative claims each carrying evidence or a falsification trail; §9 源附录与核查记录 has 9.2 负面断言核查记录 + 9.3 UNVERIFIED + 9.4 访问限制与缺口 subsections.122- For general: 9-section conclusion-first structure; ≥3 mermaid (≥1 decision flowchart in §2), each serving information.123- For tech-selection: GitHub repo evidence + official docs present; stars alone did not drive the recommendation.124- For market: all numbers sourced or labeled estimates; old data flagged; recommendation follows from evidence.125- Final reply states: file path, source count, access limitations.126127## References128129- [${CLAUDE_PLUGIN_ROOT}/references/engineering-principles.md](${CLAUDE_PLUGIN_ROOT}/references/engineering-principles.md) — discipline for every skill (surface assumptions, verify don't assume, push back).130- [${CLAUDE_PLUGIN_ROOT}/references/product-principles.md](${CLAUDE_PLUGIN_ROOT}/references/product-principles.md) — product discipline (the real competitor is the current workaround). Linked by market + tech-selection modes.131- [references/report-spine.md](references/report-spine.md) — shared conclusion-first 9-section spine (TL;DR → 核心认知 → 主体 → 避坑 → 源附录与核查记录), main-thread rule, mermaid rules, shared skeleton.132- [references/general-mode.md](references/general-mode.md) — general mode: 9-section conclusion-first template, fan-out source strategy, mermaid/glossary patterns.133- [references/market-mode.md](references/market-mode.md) — market mode: 4 sub-modes (investor/competitive/sizing/tech-vendor), 9-section conclusion-first template, market frameworks.134- [references/tech-selection-mode.md](references/tech-selection-mode.md) — tech-selection mode: GitHub-first P0-P3 source priority, 9-section conclusion-first template, selection rubric.135- [references/web-tool-fallback.md](references/web-tool-fallback.md) — when a fetch tool is blocked or quota-exhausted: tiered fallback by quota dependency (GitHub → indexed docs → scrape → discovery), orthogonal to page-level retries.136- [references/pressure-scenarios.md](references/pressure-scenarios.md) — failure-mode pressure tests for this skill.