Files
opencode-skills/deep-research/SKILL.md
2026-02-11 22:02:47 +08:00

347 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: deep-research
description: 当用户要求"调研"、"深度调研"、"帮我研究"、"调研下这个",或提到需要搜索、整理、汇总指定主题的技术内容时,应使用此技能。
metadata:
version: "1.0.0"
---
# 深度调研技能Deep Research Skill
## 技能概述
此技能用于对技术主题进行深度调研,输出专业的调研报告文档。
| 能力 | 说明 |
|-----|------|
| 内容提取 | 从 URL、文档中提取核心信息 |
| 深度调研 | 联网搜索补充背景、对比、最新进展 |
| 报告生成 | **默认生成 Markdown 和 Word 两个版本** |
| 图解生成 | 为核心概念生成技术信息图 |
| Word 格式化 | 自动处理目录、标题加粗、表格实线等样式 |
## 触发规则
当用户消息包含以下关键词时使用此技能:
- 调研、深度调研、调研报告
- 帮我研究、帮我分析
- 调研下这个、看看这个
## 输出规范
每次调研任务必须同时提供:
1. **Markdown 版本**:用于 Obsidian 知识库沉淀和双链关联
2. **Word 版本**:用于正式汇报和外部分享,需经过脚本格式化处理
## 目录结构
每个调研主题创建独立文件夹,保持整洁:
```
{output_dir}/
├── Ralph-Loop/ # 主题文件夹(英文短横线命名)
│ ├── images/ # 该主题的信息图
│ │ ├── architecture.png
│ │ └── comparison.png
│ ├── Ralph-Loop调研报告.md # Markdown 报告
│ └── Ralph-Loop调研报告.docx # Word 报告
├── MCP-Protocol/
│ ├── images/
│ ├── MCP-Protocol调研报告.md
│ └── MCP-Protocol调研报告.docx
└── ...
```
命名规范:
- 文件夹名:英文,单词间用短横线连接,如 `Ralph-Loop``MCP-Protocol`
- 报告文件:`{主题名}调研报告.md``{主题名}调研报告.docx`
- 图片目录:每个主题文件夹下单独的 `images/` 目录
## 调研流程
### 第一步:创建主题目录
根据调研主题创建独立文件夹:
```bash
mkdir -p "{output_dir}/{主题名}/images"
```
### 第二步:内容获取
1. 如果用户提供 URL使用 webfetch 获取内容
2. 提炼核心概念、技术原理、关键信息
3. 识别需要深入调研的点
### 第三步:深度调研
使用 Task 工具进行联网搜索,补充:
- 技术背景和发展历程
- 竞品对比和差异化
- 社区讨论和实际案例
- GitHub 仓库和开源实现
- 最新进展和趋势
### 第四步:图解生成
使用预设风格脚本生成统一手绘风格的信息图。
#### 生图触发规则
| 内容类型 | 是否生图 | 图解类型 | 说明 |
|---------|---------|---------|------|
| 核心架构/原理 | 必须 | arch | 系统结构、技术栈、模块组成 |
| 流程/步骤 | 必须 | flow | 工作流、执行顺序、操作步骤 |
| A vs B 对比 | 必须 | compare | 两种方案/技术的对比 |
| 3个以上要素 | 建议 | concept | 核心概念、多个方面组成 |
| 纯文字表格 | 不需要 | - | 用 Markdown 表格即可 |
| 代码示例 | 不需要 | - | 用代码块即可 |
#### 预设风格模板
所有配图统一使用手绘体可视化风格,保持系列一致性:
| 类型 | 命令参数 | 配色 | 布局 |
|------|---------|------|------|
| 架构图 | `-t arch` | 科技蓝 #4A90D9 | 分层/模块化 |
| 流程图 | `-t flow` | 蓝+绿+橙 | 从上到下 |
| 对比图 | `-t compare` | 蓝 vs 橙 | 左右分栏 |
| 概念图 | `-t concept` | 蓝紫渐变 | 中心发散 |
#### 生成命令
使用 `research_image.py` 脚本生成:
```bash
# 架构图
python .opencode/skills/image-service/scripts/research_image.py \
-t arch \
-n "Ralph Loop 核心架构" \
-c "展示 Prompt、Agent、Stop Hook、Files 四个模块的循环关系" \
-o "{output_dir}/{主题名}/images/architecture.png"
# 流程图
python .opencode/skills/image-service/scripts/research_image.py \
-t flow \
-n "Stop Hook 工作流程" \
-c "Agent尝试退出、Hook触发、检查条件、允许或阻止退出的完整流程" \
-o "{output_dir}/{主题名}/images/flow.png"
# 对比图
python .opencode/skills/image-service/scripts/research_image.py \
-t compare \
-n "ReAct vs Ralph Loop" \
-c "左侧ReAct依赖自我评估停止右侧Ralph使用外部Hook控制" \
-o "{output_dir}/{主题名}/images/comparison.png"
# 概念图
python .opencode/skills/image-service/scripts/research_image.py \
-t concept \
-n "状态持久化要素" \
-c "中心是Agent周围是progress.txt、prd.json、Git历史、代码文件" \
-o "{output_dir}/{主题名}/images/concept.png"
```
#### 图片命名规范
| 图解类型 | 文件名 |
|---------|--------|
| 架构图 | `architecture.png``{具体名称}_arch.png` |
| 流程图 | `flow.png``{具体名称}_flow.png` |
| 对比图 | `comparison.png``{A}_vs_{B}.png` |
| 概念图 | `concept.png``{具体名称}_concept.png` |
### 第五步:报告撰写
按标准模板撰写 Markdown 报告,存放到主题文件夹:
```
{output_dir}/{主题名}/{主题名}调研报告.md
```
报告中引用图片使用相对路径:
```markdown
![架构图](images/architecture.png)
```
### 第六步Word 导出
```bash
# 进入主题目录
cd "{output_dir}/{主题名}"
# 生成 Word--resource-path=. 确保图片正确引用)
# 注意:不要使用 --toc 参数,因为 Markdown 中已有手写目录
pandoc "{主题名}调研报告.md" -o "{主题名}调研报告.docx" --resource-path=.
# 格式化 Word
python ../../../.opencode/skills/deep-research/scripts/format_docx.py "{主题名}调研报告.docx"
```
## 写作原则
调研报告的核心价值:深入研究、降低团队吸收成本、提供专家级建议。
1. 理解透彻:不能一知半解或大段拷贝,必须消化吸收后用自己的话表达
2. 体现思考:有判断、有建议,而非仅仅陈述现状
3. 细节佐证:有过程和细节支撑结论,不空谈
4. 逻辑清晰:有分段、有结构、有编号
5. 配图说明:核心概念必须配信息图
6. 去除 AI 味:
- 不使用「」、" " 等特殊符号
- 不用过多强调符号和 emoji
- 行文自然流畅,像人写的专业文档
- 避免"首先、其次、总之"等套话
## 报告模板
```markdown
---
date: YYYY-MM-DD
type: 调研报告
领域: {技术领域}
tags: [调研, {主题关键词}]
---
# XX调研报告
> 调研日期YYYY年M月D日
---
## 目录
- 一、简介
- 二、启示
- 三、核心介绍
- 3.1 XXX
- 3.2 XXX
- 四、附录
- 4.1 详细文档
- 4.2 参考资料
---
## 一、简介
(快速说明调研内容,简短重点)
是什么,主要用来做什么,属于什么类别。有哪些能力,有什么特点。和竞品相比,有哪些区别,主打什么。
1. 要点一
2. 要点二
3. 要点三
---
## 二、启示
(调研内容带来的启示、值得学习借鉴之处、与现有产品如何结合、是否值得推荐)
1. 启示一
2. 启示二
3. 启示三
---
## 三、核心介绍
(正文部分,详细说明调研内容的原理/搭建/操作/使用过程,含信息图及流程说明)
### 3.1 XXX
![图解说明](images/xxx.png)
上图展示了...(图解说明,让读者看图就能理解)
详细内容...
### 3.2 XXX
详细内容...
---
## 四、附录
### 4.1 详细文档
(更详细的配置/操作过程)
### 4.2 参考资料
**官方文档**
- 文档名称: https://xxx
**开源实现**
- 项目名称: https://github.com/xxx
**社区讨论**
- 讨论来源: https://xxx
```
## 脚本说明
### format_docx.py
Word 文档格式化脚本,功能包括:
1. 标题居中,黑色字体(去除 pandoc 默认蓝色)
2. "Table of Contents" 替换为中文"目录"
3. 目录页单独一页
4. 一级标题(简介、启示等)前自动分页
5. 表格保持完整不跨页断开
6. 代码块保持完整不断开
7. 日期行居中
用法:
```bash
python .opencode/skills/deep-research/scripts/format_docx.py "输入.docx" ["输出.docx"]
```
## 完整调研示例
用户输入:
> 调研下 Ralph Loop
执行流程:
```bash
# 1. 创建主题目录
mkdir -p "{output_dir}/Ralph-Loop/images"
# 2. 获取内容(如有 URL
webfetch https://example.com/article
# 3. 深度调研(使用 Task 工具联网搜索)
# 4. 生成信息图
python .opencode/skills/image-service/scripts/text_to_image.py "技术架构图..." --output "{output_dir}/Ralph-Loop/images/architecture.png"
# 5. 撰写报告
# 写入 {output_dir}/Ralph-Loop/Ralph-Loop调研报告.md
# 6. 导出 Word不使用 --tocMarkdown 已有手写目录)
cd "{output_dir}/Ralph-Loop"
pandoc "Ralph-Loop调研报告.md" -o "Ralph-Loop调研报告.docx" --resource-path=.
python ../../../.opencode/skills/deep-research/scripts/format_docx.py "Ralph-Loop调研报告.docx"
```
输出文件:
```
{output_dir}/Ralph-Loop/
├── images/
│ ├── architecture.png
│ └── comparison.png
├── Ralph-Loop调研报告.md
└── Ralph-Loop调研报告.docx
```
## 依赖
- pandocMarkdown 转 Word
- python-docxWord 格式化
- image-service 技能:生成信息图