UNPKG

article-writer-cn

Version:

AI 驱动的智能写作系统 - 专注公众号/自媒体文章创作

595 lines (429 loc) 14.1 kB
--- 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会在开始调研前执行并读取其输出。