v0.5: deep quality refactor (P0+P1+P2)

- Split dr-chief-editor (Phase 3 read-only) vs new dr-editor-in-chief (Opus, Phase 4 lead)
- New dr-translator (en->zh) and new humanizer-cn / output-hygiene / en-zh-translation skills
- Switch to English working language (Phase 2-3), final Chinese translation (Phase 4)
- /dr-init: add report title proposals + word budget mode
- /dr-frame: bilingual framework
- /dr-finalize: new chain editor->translator->polisher->reporter
- report-template.py: widows/orphans/keepWithNext, 3-color hierarchy, confidentiality banner
- dr-reporter: mandatory citations backfill + output hygiene check
- dr-pm: batch-level context compression via manifest.batches_summary
- mckinsey-method: SCQA only for Executive Summary + chapter intros (no explicit labels)
- length-budget: 4 word-budget modes + en/zh 1:1.4 ratio
This commit is contained in:
kai
2026-04-21 13:02:54 +08:00
parent 4a38f6bed1
commit a092af4398
20 changed files with 3376 additions and 1246 deletions
+61 -95
View File
@@ -1,113 +1,79 @@
---
description: Phase 4 - 成稿。合并所有章节,调度 dr-polisher 润色dr-reporter 生成 PDF+DOCX。用法:/dr-finalize [slug]
agent: dr-chief-editor
description: Phase 4 - 成稿。由 dr-editor-in-chiefOpus)入口,链路:合并英文 final_en → dr-translator 译中 → dr-polisher 润色去 AI 味 → dr-reporter PDF+DOCX。用法:/dr-finalize [slug]
agent: dr-editor-in-chief
---
你是 dr-chief-editor。用户执行了 `/dr-finalize $ARGUMENTS`需要完成 Phase 4 成稿。
你是 dr-editor-in-chief。用户执行了 `/dr-finalize $ARGUMENTS`进入 Phase 4 成稿链路
## Step 1: 定位项目检查
## Step 1: 定位项目与健康检查
- `$ARGUMENTS` 非空:用该 slug
- 为空:取最近项目
- 如果 `$ARGUMENTS` 非空:用该 slug
- 为空:取最近项目
验证:
读取 `projects/<slug>/manifest.json`验证:
- `phase2.status == "completed"`
- `phase3.approved == true`(如 phase3 从未跑过,询问用户是否跳过审校直接出稿)
- `phase3.approved == true`(如 phase3 从未跑过,询问用户是否跳过审校直接出稿)
- `phase3/critique.md` 存在且 Must-Fix 问题已清零
## Step 2: 组装 final.md
如果条件不满足,告知用户并停止。
读取所有章节草稿,按以下结构合并到 `projects/<slug>/phase4/final.md`
## Step 2: 按 dr-editor-in-chief 自身工作流执行
```markdown
# <报告主标题>
完整按照 `.opencode/agents/dr-editor-in-chief.md` 中定义的 11 步工作流执行:
**<副标题>**
1. 健康检查
2. 加载 skillsmckinsey-method, output-hygiene, length-budget, humanizer-cn
3. 合并英文 final_en.md(包括 Executive Summary / Abstract / Glossary 原创撰写)
4. Executive Summary 写作(800-1000 英文词,融合式 SCQA
5. Abstract 写作(500-600 英文词,叙事式)
6. Glossary 写作(双语对照)
7. 合并章节(禁止改写,仅清理元数据泄漏)
8. 委派 dr-translator → 生成 final_zh.md + glossary.json
9. 委派 dr-polisher → 润色 final_zh.md(去 AI 味 + 卫生检查)
10. 委派 dr-reporter → 生成 final.pdf + final.docx(强制回填 citations
11. 收官汇报
## Step 3: 更新 manifest
Phase 4 完成后更新:
```json
{
"phase4": {
"status": "completed",
"started_at": "...",
"completed_at": "...",
"word_count_en": X,
"word_count_zh": X,
"citations_count": X,
"files": {
"final_en_md": "projects/<slug>/phase4/final_en.md",
"final_zh_md": "projects/<slug>/phase4/final_zh.md",
"final_pdf": "projects/<slug>/phase4/final.pdf",
"final_docx": "projects/<slug>/phase4/final.docx",
"citations_md": "projects/<slug>/phase4/citations.md",
"glossary_json": "projects/<slug>/phase4/glossary.json"
}
}
}
```
## Step 4: 汇报
向用户展示最终产出清单。
---
## 免责声明
## 关键提示
<来自 manifest.json 的 disclaimer>
- **不要给每章强加 SCQA**(这是 v0.4 的错误,v0.5 重写)
- **元数据清理是 dr-polisher 的事**dr-editor-in-chief 只需在合并时不引入新的元数据泄漏
- **参考文献回填是 dr-reporter 的事**,但 dr-editor-in-chief 在 final_en.md 里留占位符 `[To be filled by dr-reporter]`,提示后续步骤
---
## 失败处理
## 执行摘要
如果任一 subagent 返回失败:
- dr-translator 失败 → 检查 final_en.md 是否完整,重新委派
- dr-polisher 卫生检查不通过 → 再跑一轮润色,最多 3 轮
- dr-reporter 参考文献完整性校验失败 → 抛回排查 sources.jsonl 与 final.md 的引用一致性
<在此处写一段 500-800 字的执行摘要,提炼全报告的核心发现和建议>
---
## 术语表
<提取正文中所有括号内的缩写定义,按字母序排列>
---
## 目录
<自动生成,列出所有一级和二级标题>
---
<各章节正文,按顺序拼接>
---
## 参考文献
<占位符,dr-reporter 会从 sources.jsonl 生成>
---
## 版本信息
- 生成时间:<datetime>
- 报告版本:<来自 manifest.version>
- 研究系统:Deep Research v0.4
```
执行摘要和术语表需要你根据章节内容自行撰写(不超过 1000 字总计)。
## Step 3: 委派 dr-polisher
通过 Task 工具委派:
```
description: "全文润色 - 去 AI 味、中文表达优化、术语一致性"
prompt: |
请对以下文件做全文润色:
projects/<slug>/phase4/final.md
```
等待返回,确认 final.md 已更新。
## Step 4: 委派 dr-reporter
通过 Task 工具委派:
```
description: "生成最终报告 PDF 和 DOCX"
prompt: |
输入:projects/<slug>/phase4/final.md
manifestprojects/<slug>/manifest.json
输出目录:projects/<slug>/phase4/
```
等待返回。
## Step 5: 更新 manifest 并汇报
更新 `manifest.phase4.status = "completed"`
向用户汇报:
```
报告生成完成!
PDFprojects/<slug>/phase4/final.pdf
DOCXprojects/<slug>/phase4/final.docx
参考文献:projects/<slug>/phase4/citations.md
统计:
总字数:X 字
页数(估算):约 X 页
信源:X 条
生成时间:<datetime>
```
每次重试都更新 manifest.phase4 的 retry_count 字段。