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

145 lines
5.2 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.
---
description: Phase 1 - 触发 dr-plan 进行深度初扫并生成 8-15 章研究框架。完成后暂停等用户确认。用法:/dr-frame [slug]slug 可省略则从最近项目读取
agent: dr-plan
subtask: 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_questions``topic`,把主题拆成 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 的事)