Produce one dimension's sub_reports/{dimension_id}.md. It solidifies one dimension from plan.json and retains a concise evidence record within the sub-report; it is not responsible for planning dimensions, synthesizing all dimensions, or writing the final report.
Completing this skill must persist two results:sub_reports/{dimension_id}.md, update that dimension's status after plan.json. Explaining the research results only in conversation does not count as completion.
Its core responsibility is not to "run a search once," but to assemble the different sources needed for a dimension into a judgable evidence surface: first do breadth discovery, then specialized deep dives, and finally return to original sources for verification, deciding which materials to keep, which to discard, which conclusions need cross-confirmation, and which gaps must be explicitly preserved.
Behavioral boundaries
Do:
- Read one dimension's
key_questions、method、search_strategy、expected_output。 - According to
search_strategy, select appropriate search skills or retrieval entry points, search over multiple rounds, and cover the source types specified by the plan. - Judge source credibility and prioritize tracing back to original sources.
- Cross-validate key facts and record conflicts and information gaps.
- Judge whether it satisfies
search_strategy.sufficiency。 - Write a dimension sub-report with a concise evidence record, and update that dimension's
plan.jsoninstatus。
Do not:
- Do not modify the research objectives or report format.
- Do not rewrite the entire
plan.json, unless the current dimension lacks a necessary search strategy. - Do not write intermediate synthesis files or
report.md。 - Do not directly rewrite a single search result into a sub-report.
- Do not fabricate sources, and do not write unconfirmed facts as definite conclusions.
Input
{report_dir}/request.md{report_dir}/plan.json- Current dimension id
- The dependency dimension's
sub_reports/*.md, such asdepends_onis non-empty
Search model
Understand single-dimension research as a three-layer search model:
- Breadth discovery: First use general search to quickly map out this dimension's source landscape, identifying key entities, terms, institutions, time points, points of controversy, and candidate source types.
- Specialized deep dive: For the key source types already identified, call the corresponding specialized search skill to conduct deeper exploration with higher recall, higher precision, and more structure.
- Original verification: For key facts, key numbers, key time points, and high-risk judgments, prioritize returning to original sources for confirmation.
General search is not a low-spec fallback, but the default breadth discovery layer. Specialized search skills are not mandatory prerequisites, but deep-dive tools for key source types. Final credibility depends on the sources themselves, not on the search entry point itself.
Division of labor among search skills
sn-dimension-research is the orchestration layer and does not need to encompass all platform details itself; it should, based on source_types and the nature of the current dimension, select appropriate search skills or native browsing capabilities.
Prioritize routing as follows:
- Academic papers, reviews, encyclopedias, citation tracing: Use
sn-search-academic - Open-source code, technical Q&A, models/datasets, engineering communities: Use
sn-search-code - Chinese community discussions, Chinese video platforms, user experience feedback: Use
sn-search-social-cn - English community discussions, English video platforms, English public opinion feedback: Use
sn-search-social-en - public hot topics, encyclopedia trends, developer ecosystem, cross-platform community signals: Use
sn-search-social-media - China market, macro, industry, regulation, procurement, bidding, listed company disclosures: Use
sn-search-market-cn - annual reports, annual reports, periodic reports, listed company disclosure documents, bond issuer reports, overseas company annual accounts: Use
sn-search-year-report - official web pages, regulatory announcements, company disclosures, product documentation, news reports, institutional pages: Use general web search and page opening capabilities
If a dimension requires multiple sources at the same time, do not choose only one skill; combine them according to evidence needs.
If a certain type of source temporarilyhas no corresponding dedicated search skill, do not skip that source type because of this; continue using general search to complete breadth discovery and basic coverage. Only when that source type is very critical to the current dimension and general search cannot meet the need for deeper exploration should it be recorded as a coverage limitation.
Source priority
Multi-source search is not "the more sources, the better," but rather "the evidence hierarchy must be sufficient." The priority is usually:
- Primary sources: official documents, regulatory announcements, original papers, company disclosures, product documentation, original database records
- Highly credible secondary sources: authoritative institutional reports, top-tier media, industry organizations, research institutions, systematic reviews
- Supplementary sources: community discussions, Q&A, social platforms, videos, blogs
Community and social sources are mainly used to:
- Discover real usage feedback
- Expose points of controversy
- Supplement terminology, cases, and edge issues
- Generate leads for the next round of retrieval
Do not let community discussions replace primary sources.
General search here mainly serves to:
- Discover candidate sources
- Expose points of controversy and leads for the next round of search
- Help you decide which source types are worth entering into specialized deeper exploration
- Quickly supplement cross-source perspectives
Dedicated search skills here mainly serve to:
- Improve recall within a certain source type
- Provide more structured result fields
- Support finer filtering, sorting, and citation tracing
- Reduce missed detection in high-value sources
Execution process
- Read the task: from
plan.jsonfind the current dimension, confirmkey_questions、method、search_strategy、expected_output。 - Complete the search strategy: if missing
search_strategy, first supplement for the current dimensionsource_types、seed_queries、freshness_requirement、sufficiency, then execute. - Breadth discovery: first start from
seed_queries, use general search and necessary initial entry points to understand the source map of this dimension; record new entities, terminology, institutions, years, points of controversy, and candidate source types. - Choose the direction for deeper exploration: determine which source types are most likely to answer
key_questions, then decide whether to call dedicated search skills for deeper exploration. - Specialized deeper exploration: according to
source_types, conduct targeted searches on key source types; when necessary, combine multiple sources such as academic, official, news, community, and code. - Filter evidence: Keep material that can answer
key_questions; discard marketing fluff, secondhand accounts, sources of unknown origin, overly short content, or material unrelated to the dimension. - Original-source verification: For key facts, prioritize finding original sources; for high-risk facts, confirm with at least two independent sources. When conflicts cannot be resolved, record the conflict and possible causes.
- Judge sufficiency: Check item by item
search_strategy.sufficiency. If not satisfied, continue searching or clearly record the information gap. - Synthesize judgment: Organize the retained material into "findings, conflicts, limitations, questions still to be answered"; do not dump search results as-is into the sub-report.
- Write to disk: Write to
sub_reports/{dimension_id}.md, and update this dimension'sstatustodone。 - Confirm: Read the above two files and confirm that the sub-report is non-empty and contains evidence records,
plan.jsonand that this dimension has been marked indone。
Search routing suggestions
You can quickly choose an entry point by dimension type:
| Dimension type | Preferred sources | Recommended entry points |
|---|---|---|
| Academic / medical / methodology | First use general search to find paper leads, then go into papers, reviews, encyclopedias, and citation chains | sn-search-academic |
| Technical implementation / open-source ecosystem / model tools | First discover key projects and problem domains, then go into GitHub, Stack Overflow, HuggingFace, HN | sn-search-code |
| User feedback / community experience / Chinese-language public opinion | First discover platforms/topics, then go into Bilibili, Zhihu, Douyin | sn-search-social-cn |
| Overseas communities / English-language public opinion / video explanations | First discover keywords and communities, then go into Reddit, X, YouTube | sn-search-social-en |
| Hot trends / public community signals / developer ecosystem | First discover news hotspots, encyclopedia attention, public repositories, and Q&A discussions, then return to the original pages for verification | sn-search-social-media |
| China market / industry / macro / regulation / procurement and bidding | First clarify the industry, region, time period, and metric definitions, then go into official free data, announcements, and regulatory disclosures | sn-search-market-cn |
| Annual reports / periodic reports / company disclosures / bond issuer reports | First determine the entity type and disclosure market, then locate the official PDF or detail page | sn-search-year-report |
| Policy / regulation / company / product / news | First discover institutions, regulations, and event milestones, then go into official websites, announcements, company pages, and news sites | General web search |
If source_types contains a combination such as "official documents + community discussion," cover at least one highly credible original source and one supplementary source; do not stay on only one side.
If the specialized skill corresponding to a row does not currently exist, understand "recommended entry points" as "preferred search directions" and continue using general search to complete discovery and basic coverage.
Search sufficiency
Minimum requirements:
- Each
key_questionshas material support, or the information gap is clearly marked. - Perform at least two rounds of searching; the first round should focus on broad discovery, and subsequent rounds should expand keywords or source types based on the previous round's findings.
- Comparison, trend, policy, market, company, and product-type dimensions should cover at least two source types.
- The essential dimensions should cover at least two layers: 'broad discovery + primary-source verification'; if high-value specialized entry points exist, prioritize adding a third layer of specialized deep dives.
- When the latest information is involved, the latest available materials must be checked and the time range stated.
- Only when two consecutive rounds produce no new key facts can the information be considered to be approaching saturation.
If a certain type of source cannot undergo a specialized deep dive due to the lack of a dedicated search skill, research may still continue, but treat it as a significant limitation only in the following cases:
- That source type is a core evidence surface for the current dimension
- General search has clearly become unable to further improve discovery quality
- The lack of this type of deep dive would significantly affect the strength of the conclusions
Meeting the minimum requirements still does not mean the conclusions are certain; uncertainty must be written into the sub-report.
Streamlined evidence record
Compress the necessary traceability information into the sub-report:
搜索覆盖情况: explain what entry points were used for broad discovery, which search skills were used for specialized deep dives, and which source types were returned to for primary-source verification.搜索覆盖情况: write only the source types, rounds, key expansion terms, and stopping reasons; do not write the full query log.证据记录: use a table to list the retained materials, one row per key material; usually 5-12 rows is enough.充分性判断: explain the questions covered, questions not covered, cross-verification status, information gaps, and whether there are still key source types that should have been deep-dived but were not.
Evidence record table format:
| 材料/来源 | 来源类型 | 关键支撑 | 覆盖问题 | 可信度/限制 |
|---|---|---|---|---|
Sub-report format
Write to {report_dir}/sub_reports/{dimension_id}.md:
# {dimension_id}. {维度名称}
## 本维度要回答的问题
## 搜索覆盖情况
说明覆盖了哪些来源类型、执行了哪些轮次、停止理由是什么。
## 证据记录
用精简表格列出本维度保留的关键材料,不写完整搜索流水。
## 关键发现
只写本维度内有材料支撑的发现。
## 分析
解释发现之间的关系、因果、差异、趋势或约束。
## 对终稿的贡献
说明本维度能为 report 提供什么判断依据、表格、风险点或结构材料。
## 不确定性与空白
说明信息缺口、冲突事实、口径限制、时效风险。
## 需要后续维度承接的问题
Quality threshold
- Every key finding in the sub-report can be traced back to the evidence record of this report.
- Each
key_questionsis answered, partially answered, or marked as unanswerable in the sub-report. - Uncertainty and conflicts are not smoothed over.
status=donecan only be updated after the sub-report has been written and contains the evidence record.- Update
status=doneafter updating, you must readplan.jsonagain to confirm. - The sub-report does not include a final draft summary and does not go beyond the scope of this dimension.
Common failures
- Writing the sub-report after just one search.
- Treating general search as a mere fallback rather than doing broad discovery first.
- Entering a specialized entry point too early before broad discovery is complete.
- Obviously having a dedicated search skill but only doing a shallow search with a single general search entry point.
- Giving up on covering a certain type of source simply because a dedicated search skill is missing.
- Using only search result summaries without opening or verifying the original sources.
- Treating community discussion as the main evidence instead of returning to official or original sources.
- Only looking for materials that support a certain direction and ignoring counterexamples and conflicts.
- Packaging gaps as conclusions.
- Writing the full search log, causing the sub-report to become bloated.
- Writing the sub-report but not updating and confirming
plan.json。