📄 本页由源文件
skills/research-doc/SKILL.md自动投影生成(单一权威源)。请勿直接编辑本页。
research-doc
外网资料搜索与文档生成一体化工作流。根据用户指定主题搜索外网资料,整理汇总后生成指定格式的文档。
触发规则
核心判断原则
只要任务同时满足以下两个条件,即触发本 Skill:
- 信息搜集/知识整理:需要搜索外网资料、整理专业知识、梳理标准法规等
- 文档文件输出:最终需要生成 Word/PPT/PDF/Excel 等文档文件
显式触发
含 research-doc / 调研文档 / 调研报告 关键词。
隐式触发
满足以下任一条件:
| 信号模式 | 示例 |
|---|---|
| 调研/分析/对比 + 主题 | "帮我调研下 XX"、"对比 A 和 B" |
| 搜索/查找 + 主题 + 文档需求 | "搜索 XX 资料整理成文档"、"查找 XX 相关内容" |
| 生成文档 + 格式关键词 | "做个 PPT"、"生成 Excel 报告"、"导出 Word" |
| 总结/汇总 + 输出要求 | "把这些整理成文档"、"汇总成报告" |
| 给出/列出/梳理/整理 + 专业内容 + 生成文档 | "给出测试方法和标准,并生成 Word 文档" |
| 针对 XX + 给出/总结 + 方法/标准/规范/要求 + 文档 | "针对 XX 产品…给出检测标准…生成 Word" |
| 非代码主题 + 文档格式关键词(word/ppt/pdf/excel/docx/pptx/xlsx) | "血管塞检测项目…生成 word 文档" |
| 专业领域知识 + 文件输出需求 | "XX 的法律法规和接收标准,导出为 PDF" |
文档格式关键词(触发辅助信号)
以下关键词出现在非代码语境中,视为文档输出需求: word / Word / docx / ppt / PPT / pptx / pdf / PDF / excel / Excel / xlsx / 报告 / 文档
不触发
- 纯代码开发任务(由 dev-flow 处理)
- 单次问答无文档输出需求(如"XX 是什么?")
- 内部/文档平台 搜索需求
- 代码文件中出现上述关键词(如代码注释中的 "word")
工作流
┌──────────────────────────────────────────────────┐
│ Phase 1: CLARIFY(明确需求) │
│ - 确认搜索主题和目标 │
│ - 确认输出格式(PPT/PDF/Word/Excel) │
│ - 确认输出目录 │
│ - 确认深度(快速概览 / 深度分析) │
├──────────────────────────────────────────────────┤
│ Phase 2: RESEARCH(外网搜索) │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ web_search │ │ web_fetch │ │
│ │ 关键词搜索 │ │ 页面抓取 │ │
│ └──────────────┘ └──────────────┘ │
├──────────────────────────────────────────────────┤
│ Phase 3: ANALYZE(整理分析) │
│ - 信息去重、分类、结构化 │
│ - 提炼关键结论和建议 │
│ - 构建文档大纲 │
├──────────────────────────────────────────────────┤
│ Phase 4: GENERATE(生成文档) │
│ - 根据格式选择最优生成方案 │
│ - 执行生成脚本 │
│ - 验证输出文件可打开 │
├──────────────────────────────────────────────────┤
│ Phase 5: DELIVER(交付) │
│ - 展示文档预览或摘要 │
│ - 调用 open_result_view 呈现结果 │
└──────────────────────────────────────────────────┘Phase 1: CLARIFY
开始前必须确认以下信息,不确定时主动询问:
| 项目 | 说明 | 默认值 |
|---|---|---|
| 搜索主题 | 用户指定的搜索内容 | 无(必填,由用户每次告知) |
| 输出格式 | PPT / PDF / Word / Excel / Markdown | Markdown |
| 输出目录 | 文件保存位置 | ~/docs-output/ |
| 调研深度 | 快速(10 min)/ 深度(30 min) | 快速 |
输出目录规则:所有生成的文件统一保存到 ~/docs-output/,按主题创建子文件夹。如:~/docs-output/20260309_XXX主题/report.pptx。
Phase 2: RESEARCH
搜索策略
仅使用外网搜索,不使用项目代码搜索、内网搜索或 文档平台 搜索。
根据用户指定的主题,并行使用 web_search + web_fetch 进行多轮搜索:
搜索工具:
- web_search:关键词搜索,获取搜索结果列表
- web_fetch:抓取特定页面的详细内容
搜索策略:
- 第 1 轮:用主题关键词直接搜索,获取全局概览
- 第 2 轮:根据第 1 轮结果,细化关键词深入搜索
- 第 3 轮:补充搜索遗漏角度或交叉验证关键信息
关键词构造示例:
- 综述类:"{主题} 综述 2025/2026" / "{topic} overview"
- 对比类:"{A} vs {B} comparison" / "{A} 和 {B} 区别"
- 实践类:"{主题} best practices" / "{主题} 实践经验"
- 趋势类:"{主题} trends 2026" / "{主题} 最新进展"搜索质量要求
- 至少使用 3 种不同关键词 搜索同一主题
- 搜索结果优先取 最近 1 年 的内容
- 关键数据和结论必须 交叉验证(至少 2 个独立来源)
- 对重要页面使用
web_fetch抓取完整内容,不仅依赖搜索摘要
Phase 3: ANALYZE
信息整理模板
markdown
## 调研结论
### 核心发现
1. {发现 1}
2. {发现 2}
3. {发现 3}
### 对比矩阵(适用于方案对比)
| 维度 | 方案 A | 方案 B | 方案 C |
|------|--------|--------|--------|
| 功能完整度 | | | |
| 性能 | | | |
| 维护成本 | | | |
| 社区生态 | | | |
| 学习曲线 | | | |
### 建议
- 推荐:{方案} — 原因:{理由}
- 备选:{方案} — 适用场景:{场景}Phase 4: GENERATE
格式选择决策树
需要生成文档?
├── PPT → 执行 scripts/gen_pptx.py
├── Word → 执行 scripts/gen_docx.py
├── Excel → 执行 scripts/gen_xlsx.py
├── PDF → 先生成 Markdown,再通过脚本转换
│ ├── 有 weasyprint → scripts/gen_pdf.py(HTML→PDF)
│ └── 无 weasyprint → 生成 Markdown 文件,建议用户手动转换
└── Markdown → 直接写入文件生成脚本使用
所有脚本位于 scripts/ 目录,接受 JSON 格式的内容参数:
bash
# PPT 生成
python3 {skill_dir}/scripts/gen_pptx.py --input content.json --output report.pptx
# Word 生成
python3 {skill_dir}/scripts/gen_docx.py --input content.json --output report.docx
# Excel 生成
python3 {skill_dir}/scripts/gen_xlsx.py --input content.json --output report.xlsx
# PDF 生成(通过 HTML 中间格式)
python3 {skill_dir}/scripts/gen_pdf.py --input content.json --output report.pdf内容 JSON 格式
生成脚本统一接受以下 JSON 结构:
json
{
"title": "调研报告标题",
"subtitle": "副标题(可选)",
"author": "作者(可选)",
"date": "2026-03-09",
"sections": [
{
"title": "章节标题",
"content": "章节内容(支持 Markdown)",
"type": "text | table | chart | bullet",
"data": {}
}
]
}依赖检查
生成文档前,检查所需库是否已安装。缺失时执行:
bash
bash {skill_dir}/scripts/setup.shPhase 5: DELIVER
- 验证生成的文件存在且大小 > 0
- 在对话中输出文档摘要(标题 + 章节列表 + 页数/行数)
- 调用
open_result_view展示结果文件
文档设计原则
PPT 设计规范
| 原则 | 说明 |
|---|---|
| 字体 | 标题 28pt+,正文 18pt+,使用系统安全字体 |
| 配色 | 主色 + 辅色 + 强调色,不超过 4 种 |
| 布局 | 标题页 + 目录页 + 内容页 + 总结页 |
| 每页内容 | 一页一个核心观点,避免信息过载 |
| 图表优先 | 数据用图表展示,避免大段文字 |
Word 设计规范
| 原则 | 说明 |
|---|---|
| 结构 | 标题层级清晰(H1→H2→H3) |
| 目录 | 超过 3 页必须生成目录 |
| 表格 | 对比信息用表格而非文字 |
| 页眉页脚 | 包含标题和页码 |
Excel 设计规范
| 原则 | 说明 |
|---|---|
| Sheet 命名 | 有意义的中文名称 |
| 表头 | 加粗 + 背景色 + 冻结首行 |
| 列宽 | 自动适配内容宽度 |
| 公式 | 使用 Excel 公式而非硬编码值 |
| 数据验证 | 关键列添加数据验证 |
反模式
| 反模式 | 正确做法 |
|---|---|
| 不确认输出目录就生成文件 | 先确认目录位置 |
| 只搜索一次就下结论 | 至少 3 种关键词交叉验证 |
| 仅依赖搜索摘要 | 对重要页面用 web_fetch 获取完整内容 |
| 使用内部/文档平台/项目代码搜索 | 仅使用外网搜索(web_search + web_fetch) |
| PPT 塞满文字 | 一页一观点,图表优先 |
| Excel 写死数值 | 使用 Excel 公式 |
| 跳过文件验证 | 生成后必须验证可打开 |
| 忽略用户偏好 | 输出格式和深度都要确认 |