article-writer-cn
Version:
AI 驱动的智能写作系统 - 专注公众号/自媒体文章创作
595 lines (429 loc) • 14.1 kB
Markdown
---
description: 基于brief进行信息调研
argument-hint: [brief文件路径或项目编号或文档URL]
---
# 信息调研
## 功能说明
基于 brief 中的需求,进行系统化的信息搜索和调研,为后续写作提供可靠的数据支持。
**✨ 新增功能**: 支持自动检测文档网站 URL,自动调用爬虫系统建立知识库!
## 输入方式
### 方式1: 指定文档网站 URL (推荐)
```
/research @https://cn.vuejs.org/guide/introduction
```
AI 会自动检测并爬取整个文档网站,建立知识库。
### 方式2: 指定brief文件路径
```
/research _briefs/001-claude-code-评测-brief.md
```
### 方式3: 指定项目编号
```
/research 001
```
AI会自动在 `_briefs/` 目录下查找对应编号的brief文件。
### 方式4: 无参数(自动推断)
```
/research
```
AI会查找最新的brief文件或当前工作目录的brief。
## 处理流程
### 1️⃣ 检测调研类型并自动选择模式 ⭐ 优先执行
**AI 自动执行以下检测逻辑:**
#### 步骤1: 解析用户输入
从用户的命令中提取参数:
- `/research @https://cn.vuejs.org/guide/` → URL 参数
- `/research _briefs/001.md` → Brief 文件路径
- `/research 001` → 项目编号
- `/research` → 自动推断
#### 步骤2: URL 自动检测
**如果用户提供了 URL** (以 `http://` 或 `https://` 开头):
1. **检查 URL 特征**
- 包含 `docs.` → 文档网站
- 包含 `/docs/` → 文档网站
- 包含 `/guide/` → 文档网站
- 包含 `/api/` → API 文档
- 包含 `/documentation/` → 文档网站
- 文件扩展名为 `.pdf` → PDF 文档
2. **自动选择模式**
- 如果是文档网站 → **自动进入模式A (文档爬取)**
- 如果是 PDF → **自动进入模式B (PDF 提取)**
- 其他 URL → **进入模式C (常规搜索)**
3. **无 URL 时**
- 如果有 brief 参数 → **进入模式D (Brief 调研)**
- 无任何参数 → **进入模式D (Brief 调研,自动查找最新 brief)**
#### 模式A: 文档深度爬取 (完全自动化) 🚀
**触发条件:**
用户提供的 URL 包含文档特征 (`docs.`、`/docs/`、`/guide/`、`/api/`、`/documentation/`)
**AI 自动执行步骤:**
**步骤1: 提取基础 URL**
```
输入: https://cn.vuejs.org/guide/introduction
提取: https://cn.vuejs.org/guide/
```
**步骤2: 生成项目名称**
```
从域名推断: cn.vuejs.org → vue3-docs
规则: 提取主域名 + "docs" 后缀
```
**步骤3: 提示用户并调用爬虫**
```
🚀 检测到文档网站,启动自动爬取系统...
📚 正在爬取: Vue 3 官方文档
📍 URL: https://cn.vuejs.org/guide/
⚙️ 配置: 最大 200 页,并发 5 个
预计时间: 10-15 分钟
```
**步骤4: 使用 Bash 工具执行**
```bash
bash .content/scripts/bash/research-docs.sh \
--name "vue3-docs" \
--url "https://cn.vuejs.org/guide/" \
--max-pages 200
```
**重要**:
- ✅ **无需用户确认**,检测到文档 URL 后自动执行
- ✅ **显示实时进度** (AI 会看到爬虫脚本的输出)
- ✅ **自动保存到知识库** (`_knowledge_base/raw/` 和 `indexed/`)
**步骤5: 爬取完成后输出结果**
```
✅ 文档爬取完成!
📊 爬取成果:
- 总页数: 186 页
- 分类: 入门指南/API参考/示例代码等 5 个
- 存储位置: _knowledge_base/raw/vue3-docs/
- 知识库索引: _knowledge_base/indexed/vue3-docs-index.md
💡 后续写作时,AI 会自动搜索这个知识库
```
**步骤6: 继续后续流程**
爬取完成后,AI 应该:
- 读取生成的知识库索引文件 (`vue3-docs-index.md`)
- 提取关键信息并整理为调研报告
- 进入"6️⃣ 输出总结并等待用户选择"步骤
**优势:**
- ✅ 获取完整的官方文档内容
- ✅ 自动分类整理 (入门/API/示例等)
- ✅ 建立全文搜索索引
- ✅ 永久缓存,可重复使用
- ✅ 提取所有代码示例
#### 模式B: PDF 文档提取 (完全自动化)
**触发条件:**
用户提供的 URL 以 `.pdf` 结尾,或提供了本地 PDF 文件路径
**AI 自动执行步骤:**
**步骤1: 检测 PDF 来源**
- 如果是 URL: 先下载 PDF 到临时目录
- 如果是本地路径: 直接使用
**步骤2: 调用 PDF 提取器**
```bash
bash .content/scripts/bash/research-docs.sh \
--name "product-manual" \
--pdf "~/Downloads/manual.pdf"
```
**支持:**
- ✅ 文本提取
- ✅ 代码块识别
- ✅ 转换为 Markdown 格式
- ✅ 保存到知识库
#### 模式C: 常规搜索调研
**触发条件:**
- URL 不包含文档特征
- 需要搜索多个来源
- 需要最新信息 (近期讨论/新闻)
**操作:**
使用传统的 WebSearch + WebFetch 方式 (见下文"4️⃣ 执行常规搜索调研")
#### 模式D: Brief 调研 (传统流程)
**触发条件:**
- 用户提供了 brief 文件路径或项目编号
- 用户未提供任何参数 (自动查找最新 brief)
**操作:**
进入下一步"2️⃣ 读取Brief"
### 2️⃣ 读取Brief (仅模式D)
**操作:**
- 读取brief文件内容
- 提取关键调研需求:
- 主题关键词
- 对比对象
- 数据要求(是否需要真实测试/调研)
- 内容定位(评测/教程/观点等)
**示例输出:**
```
📋 Brief 概览:
- 项目: 001-claude-code-评测
- 主题: Claude Code vs Cursor 对比评测
- 调研需求: ✓ 需要信息调研
- 测试需求: ✓ 需要真实测试
🔍 调研方向:
1. Claude Code 官方文档和更新日志
2. Cursor 功能对比资料
3. 用户评价和社区讨论
4. 技术评测文章
```
### 3️⃣ 确认调研范围 (仅模式D)
**AI操作:**
根据brief内容,列出建议的调研方向,并询问用户:
- 是否需要补充其他调研方向?
- 调研深度要求?(快速概览/深度调研)
- 是否需要实时数据?(最新版本/近期讨论)
**示例对话:**
```
💡 建议调研方向:
1. Claude Code 官方文档(功能、定价、限制)
2. Cursor 官方对比资料
3. Reddit/Twitter/即刻 用户真实评价
4. 技术博客中的评测文章(最近3个月)
❓ 请确认:
- 是否需要补充其他方向?
- 调研深度: [快速概览 / 深度调研] ?
- 时效性要求: [不限 / 近1个月 / 近3个月] ?
```
### 4️⃣ 执行常规搜索调研 (模式C 和 模式D)
**适用场景:**
- 模式C: 用户提供了非文档网站的 URL
- 模式D: 基于 brief 进行传统调研
**使用工具:**
- **WebSearch**: 搜索最新信息和讨论
- **WebFetch**: 获取具体页面内容(官方文档、技术博客等)
- **Read**: 读取用户提供的本地参考资料
**搜索策略:**
#### A. 官方信息
```
优先级: P0 (必须获取)
来源:
- 官方文档
- 官方博客/更新日志
- GitHub README/Release Notes
示例搜索:
- "Claude Code official documentation"
- "Claude Code changelog 2025"
- "Claude Code vs Cursor comparison"
```
#### B. 用户评价
```
优先级: P1 (建议获取)
来源:
- Reddit (r/programming, r/MachineLearning)
- Hacker News
- Twitter/X
- 即刻/知乎
示例搜索:
- "Claude Code review reddit 2025"
- "Claude Code vs Cursor user experience"
```
#### C. 技术评测
```
优先级: P1 (建议获取)
来源:
- 技术博客
- Medium文章
- YouTube评测视频(提取文字描述)
示例搜索:
- "Claude Code hands-on review"
- "Claude Code benchmark test"
```
### 5️⃣ 整理调研结果 (所有模式)
**操作:**
将搜索到的信息整理为结构化文档,保存到 `_knowledge_base/`
**不同模式的处理:**
#### 模式A/B (文档爬取/PDF提取)
- 知识库已自动生成: `_knowledge_base/indexed/{name}-index.md`
- AI 应读取索引文件,提取关键信息
- 整理为简洁的调研摘要
#### 模式C/D (常规搜索)
- 基于 WebSearch/WebFetch 的结果
- 按照下方格式整理为调研报告
**文件命名:**
```
_knowledge_base/
├── 001-调研报告-[日期].md
└── 001-参考资料-[日期].md
```
**调研报告格式:**
```markdown
# 调研报告 - [项目名]
**项目编号**: 001
**调研时间**: 2025-01-15
**调研者**: AI + [用户名]
## 1. 核心信息
### 1.1 Claude Code
**官方定义**:
[引用官方描述]
**核心功能**:
- 功能1: [描述]
- 功能2: [描述]
**定价**:
[价格信息]
**限制**:
[使用限制]
**来源**: [URL]
### 1.2 Cursor
**官方定义**:
[引用官方描述]
**核心功能**:
- 功能1: [描述]
- 功能2: [描述]
**定价**:
[价格信息]
**来源**: [URL]
## 2. 对比维度
### 2.1 功能对比
| 功能 | Claude Code | Cursor |
|------|------------|--------|
| [功能1] | [描述] | [描述] |
| [功能2] | [描述] | [描述] |
### 2.2 性能对比
[如有测试数据]
### 2.3 用户体验对比
[根据用户评价总结]
## 3. 用户评价摘要
### 正面评价
- **Claude Code**:
- "..." - 来源: [Reddit用户/Twitter]
- "..." - 来源: [技术博客]
- **Cursor**:
- "..." - 来源: [...]
### 负面评价/限制
- **Claude Code**:
- "..." - 来源: [...]
- **Cursor**:
- "..." - 来源: [...]
## 4. 关键数据
### 4.1 测试数据
[如有性能测试、基准测试数据]
### 4.2 统计数据
- GitHub Stars: Claude Code [数字] vs Cursor [数字]
- 用户数量: [如有]
- 更新频率: [对比]
## 5. 待验证问题
### 需要真实测试验证:
- [ ] [问题1]
- [ ] [问题2]
### 需要补充调研:
- [ ] [问题1]
- [ ] [问题2]
## 6. 参考资料清单
### 官方资料
1. [标题] - [URL]
2. [标题] - [URL]
### 用户评价
1. [标题] - [URL] - [来源]
2. [标题] - [URL] - [来源]
### 技术评测
1. [标题] - [URL] - [作者]
2. [标题] - [URL] - [作者]
## 附录: 原始摘录
### 摘录1: [来源]
```
[原始文本摘录]
```
### 摘录2: [来源]
```
[原始文本摘录]
```
```
## 6️⃣ 输出总结并等待用户选择 (所有模式)
**AI向用户展示:**
#### 如果是模式A/B (文档爬取)
```
✅ 文档爬取完成!
📊 爬取成果:
- 总页数: 186 页
- 分类: 入门指南/API参考/示例代码等 5 个
- 知识库索引: _knowledge_base/indexed/vue3-docs-index.md
🎯 关键信息:
[从索引文件中提取的核心内容概要,3-5 条]
```
#### 如果是模式C/D (常规搜索)
```
✅ 调研完成!
📊 调研成果:
- 调研报告: _knowledge_base/001-调研报告-2025-01-15.md
- 参考资料: 共18条(官方7条/用户评价6条/技术评测5条)
🎯 关键发现:
1. [核心发现1]
2. [核心发现2]
3. [核心发现3]
⚠️ 待验证问题:
- [问题1] - 建议通过真实测试验证
- [问题2] - 需要补充调研
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 下一步操作
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
a) /topic - 讨论选题方向
适合: 调研数据充足,可以开始讨论选题
说明: 我会基于调研结果提供 3-4 个差异化的方向供您选择
b) 继续补充调研
适合: 发现关键数据不足或有待验证问题
说明: 告诉我需要补充什么,我将继续搜索
c) 查看完整调研报告
适合: 想详细了解所有调研内容后再决定
说明: 我会展示完整的调研报告内容
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⭐ 推荐: 如果关键发现已覆盖 brief 的核心需求,建议选择 a) 进入选题讨论
⚠️ 请输入 a/b/c 或直接输入命令,我将继续后续流程
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
**⚠️ 强制等待机制**:
AI **必须停在这里,等待用户输入选择**,不要自动进入下一步
## 质量标准
### 信息可靠性
- ✅ 优先使用官方来源
- ✅ 用户评价需标注来源和时间
- ✅ 技术评测需检查作者权威性
- ❌ 避免使用未验证的二手信息
### 完整性检查
- [ ] Brief中的必须调研项(P0)是否全部覆盖?
- [ ] 是否有足够的对比数据?
- [ ] 是否有真实用户评价?
- [ ] 来源是否多样化(避免单一来源偏见)?
### 时效性检查
- [ ] 信息是否为最新版本?
- [ ] 用户评价是否在有效期内(如近3个月)?
- [ ] 是否标注了信息获取时间?
## 注意事项
### 1. 搜索策略
- **广度优先**: 先快速浏览多个来源,再深入重点内容
- **来源多样化**: 不要只依赖单一平台或单一观点
- **时效性**: 技术产品更新快,优先使用最新信息
### 2. 信息筛选
- **官方>技术博客>用户评价>营销内容**
- 识别并过滤营销性质的"软文"
- 注意用户评价的代表性(避免极端案例)
### 3. 数据引用
- **必须标注来源URL**
- 原文引用使用引号或代码块
- 如有数据冲突,记录多个来源并标注
### 4. 知识管理
- 调研报告使用项目编号命名,便于后续查找
- 保存原始摘录,方便核查
- 待验证问题清单,为后续测试提供方向
## 常见问题
### Q1: 如果找不到对比数据怎么办?
**A**:
1. 调整搜索关键词(尝试英文/中文)
2. 扩大搜索范围(GitHub Issues/Discord讨论)
3. 在调研报告中明确标注"未找到公开数据"
4. 建议在后续步骤中通过真实测试获取
### Q2: 用户评价相互矛盾怎么办?
**A**:
1. 记录不同观点及其来源
2. 分析矛盾原因(使用场景不同?版本不同?)
3. 在调研报告中呈现多样化观点
4. 建议通过真实测试验证
### Q3: 调研时间应该控制在多久?
**A**:
- **快速概览**: 30-60分钟(P0信息)
- **标准调研**: 2-3小时(P0+P1信息)
- **深度调研**: 半天(P0+P1+P2信息 + 深度分析)
根据brief的复杂度和用户需求调整。
### Q4: 是否需要翻译外文资料?
**A**:
- 核心内容建议翻译并保存
- 次要内容可只记录URL和关键摘要
- 专业术语保留原文,避免翻译歧义
## 输出示例
见上文 "4️⃣ 整理调研结果" 中的 **调研报告格式**。
## 脚本支持
可选的bash脚本 `.specify.content/scripts/bash/research.sh` 可以提供:
- 自动查找最新brief
- 检查网络连接
- 预检查调研目录结构
如果脚本存在,AI会在开始调研前执行并读取其输出。