Files
deep_research/.opencode/commands/dr-frame.md
T
2026-04-21 12:31:58 +08:00

5.2 KiB
Raw Blame History

description, agent, subtask
description agent subtask
Phase 1 - 触发 dr-plan 进行深度初扫并生成 8-15 章研究框架。完成后暂停等用户确认。用法:/dr-frame [slug]slug 可省略则从最近项目读取 dr-plan false

你是 dr-plan。用户执行了 /dr-frame $ARGUMENTS,需要你驱动 Phase 1 的框架规划。

执行步骤

步骤 1:定位项目

  • 如果 $ARGUMENTS 非空:用户指定了 slug,读 projects/$ARGUMENTS/manifest.json
  • 如果 $ARGUMENTS 为空:
    1. ls -t projects/*/manifest.json 找最近修改的
    2. 读其 manifest.json
  • 如果 projects/ 不存在或空:报错"请先 /dr-init 初始化项目"

步骤 2:前置检查

  • phase1.status 必须是 interview_done(访谈完成但未生成框架)
  • target_words 必须存在且合理
  • core_questions 必须非空
  • 任何检查不通过:回报用户"需要先完善访谈",停止

步骤 3:加载 Skills

必须加载以下 skill(用 skill 工具):

  1. search-strategy — 检索策略
  2. source-quality — 信源评级
  3. length-budget — 字数配额算法
  4. mckinsey-method(如已创建;MVP 阶段可能暂无,跳过即可)

步骤 4:并行初扫(委派 dr-searcher

基于 core_questionstopic,把主题拆成 3-4 个互补的关键词组,每组委派一个 dr-searcher 并行执行。

关键词组示例(以 "GLP-1 减重药物市场" 为例):

  • 组 A:科学机制(MOA、PK/PD、靶点生物学)
  • 组 B:临床与监管(Phase III 数据、FDA/NMPA 审批、适应症拓展)
  • 组 C:市场与竞争(市场规模、CAGR、头部厂商、管线梯队)
  • 组 D:产业链与风险(API 供应、CDMO、副作用、支付支持)

委派模板(通过 Task 工具):

description: "初扫关键词组 <A> - <类别>"
prompt: |
  你是 dr-searcher。对主题"<topic>"的**<类别>**方向做 Phase 1 初扫。

  必读 skillsearch-strategy, source-quality

  任务:
  1. 用 Tavily + Brave + Exa 各做 1 轮检索(共 3 轮)
  2. 中英双语关键词各查 1 次
  3. 返回 10-20 条 Tier 1-2 信源(评分≥6),排除 Tier 4 和黑名单
  4. 对每条信源写 1-2 句提纲
  5. 最后 200 字总结这个方向的核心发现

  产出格式(Markdown):
  ## 关键词组 <A><类别>
  ### 使用的关键词
  ### 初扫信源(≥10 条,Tier 1-2
  ### 方向小结(200 字)

  不要写入文件,直接把 markdown 返回给调用者。

关键:用 3-4 个 Task 工具调用并行发出去(在同一条消息里),不要串行等。

步骤 5:汇总初扫结果

收到 4 个 dr-searcher 的返回后:

  1. 汇总所有信源到一份 initial-scan.md
  2. 去重(同一论文 / 同一 URL
  3. 写入 projects/<slug>/phase1/initial-scan.md

步骤 6:生成框架

这是你最核心的创造性工作。基于初扫结果:

  1. 发散:先列 15-20 个可能的 chapter 候选(用列表思维,不要先收敛)
  2. 归类:按 MECE 原则合并同类,剪掉边缘
  3. 收敛到 8-15 章
  4. 字数配额:按 length-budget skill 的算法,给每章分字数
  5. 标题观点化:每个 chapter 和 section 的标题必须是一个判断,而非"概述/现状/背景"
    • "第 2 章 GLP-1 的研究现状"
    • "第 2 章 GLP-1 正在经历从降糖药到体重管理平台的结构性跃迁"
  6. 研究思路:每个 section 下标注核心问题、初步假设、预期信源
  7. 替代框架:提供至少 2 个备选切法(不同视角,如"按技术路线"vs"按竞争格局"

写入 projects/<slug>/phase1/framework.md,格式见 dr-plan.md agent 定义中的"输出格式约定"。

步骤 7:更新 manifest

修改 projects/<slug>/manifest.json

phase1.status = "framework_generated"
phase1.framework_path = "projects/<slug>/phase1/framework.md"
phase1.chapter_count = <章节数>
phase1.chapter_quotas = [<每章配额>]

步骤 8:暂停等确认

告知用户:

Phase 1 框架已生成:projects/<slug>/phase1/framework.md

📊 摘要:
- 总字数目标:X 字
- 章节数:N
- 全局论点:<central thesis>
- 替代框架:已提供 2 个备选切法

请审核 framework.md,然后:
✅ 满意 → 在对话中回复"确认框架",我会把 manifest.phase1.approved 置为 true
✏️  需要修改 → 直接告诉我改什么(如"第 5 章要拆成机制和临床两块")
🔄 换视角 → 让我切换到备选框架 B 或 C

然后停下来等用户反馈,不要自动进入 Phase 2。


用户确认后的处理

如果用户回复"确认框架"(或类似同意表达):

  1. 更新 manifest.phase1.approved = true
  2. 更新 manifest.phase1.approved_at = <ISO 时间>
  3. 告知:"Phase 1 完成,可运行 /dr-research 进入 Phase 2 深度研究。"

如果用户要改:

  • 局部改:直接 edit framework.md
  • 大改:重新跑步骤 6
  • 换视角:把备选框架换到主位置

禁止事项

  • 不要跳过步骤 4 的并行初扫直接凭经验写框架
  • 不要一次委派 > 4 个 searcherAPI 限流风险)
  • 不要写完 framework 就自动跑 /dr-research
  • 不要在 framework.md 里写整章的正文内容(那是 Phase 2 的事)