Files
deep_research/.opencode/skills/length-budget/SKILL.md
T
2026-04-21 12:31:58 +08:00

6.7 KiB
Raw Blame History

name, description
name description
length-budget 报告字数预算分配与执行校验。规定综述/研究/投资/管理各类型的最低字数、章节配额算法、字数自检逻辑、不足时的补写策略。dr-plan 用于 Phase 1 分配配额,dr-pm 和 dr-analyst 用于 Phase 2 执行校验。

字数预算系统(硬性 KPI

一、报告类型与字数下限

报告类型 最小字数 建议章节数 典型单章字数
综述类(领域全景、技术综述) 10,000 8-10 章 1,000-1,250
研究类(深度专题、竞品研究) 30,000 10-12 章 2,500-3,000
投资报告(赛道/公司分析) 20,000 10-12 章 1,700-2,000
管理/工艺类(运营分析、SOP 15,000-25,000 9-11 章 1,700-2,200

总字数 = 正文字数,不含:摘要、目录、参考文献、附录。


二、章节配额分配算法(dr-plan 用)

Step 1:确定总字数目标

  • 综述类 → 12,000 字(下限 10,000,留 20% 缓冲)
  • 研究类 → 35,000 字(下限 30,000
  • 投资类 → 22,000 字
  • 管理类 → 18,000 字(按选定)

Step 2:按章节重要性分层

P0 章(2-3 章):核心论点章,字数配额 = 总字数 × 15-18% 每章
P1 章(3-5 章):主干证据章,字数配额 = 总字数 × 8-12% 每章
P2 章(2-3 章):辅助分析章,字数配额 = 总字数 × 5-8% 每章
引言+结论:每章 总字数 × 6-10%

Step 3:验证总和

  • 所有章节配额之和应等于总字数目标(±5%)
  • 任意两章字数差距 不超过 ±30%(避免头重脚轻)
  • 结论章必须 ≥ 总字数 10%

Step 4Section 分配

每章内:

  • 每 section 最少 800 字(不够则合并 section
  • 章内 section 数量控制在 2-5 个
  • 每个 section 下可分 sub-section300-500 字)

示例(研究类 35,000 字 / 11 章)

定位 字数配额 占比
第 1 章 引言与边界 intro 2,100 6%
第 2 章 核心观点(P0 P0 5,250 15%
第 3 章 机制剖析(P0 P0 5,250 15%
第 4 章 临床证据(P1 P1 3,850 11%
第 5 章 竞争格局(P1 P1 3,500 10%
第 6 章 产业链(P1 P1 3,150 9%
第 7 章 政策监管(P1 P1 2,800 8%
第 8 章 风险(P2 P2 2,100 6%
第 9 章 国际对比(P2 P2 1,750 5%
第 10 章 趋势判断 P1 2,450 7%
第 11 章 结论与建议 conclusion 2,800 8%
合计 35,000 100%

验证:

  • 总和 = 35,000
  • 最大(5,250/ 最小(1,750= 3 倍 → 超过 ±30% 了,需调整
  • 调整:第 9 章升到 2,450(7%),从 P0 各降 400 → 验证通过

三、Phase 2 执行校验(dr-analyst/dr-pm 用)

dr-analyst 交稿前自检

章节完成后,执行:
1. wc -w projects/<slug>/phase2/drafts/chXX.md
   (中文字数用 Pythonsum(1 for c in text if '\u4e00' <= c <= '\u9fff')
2. 对照 framework.md 的 "字数配额"
   - 实际 / 配额 < 0.7 → 不合格,继续挖掘
   - 0.7 ≤ 实际 / 配额 < 0.85 → 警告,最好补足
   - 0.85 ≤ 实际 / 配额 ≤ 1.3 → 合格
   - 实际 / 配额 > 1.3 → 超纲,考虑拆分或精简

dr-pm 汇总校验

Phase 2 结束时:

1. 统计全文字数:Σ(chXX.md 字数)
2. 对照 manifest.json 的 target_words
   - 如果 < 下限(10000/30000/20000/15000)→ ❌ 强制返工
   - 在下限 ±5% → ⚠️ 需用户确认是否放行
   - 超出下限 ≥ 10% → ✅ 合格
3. 写入 manifest.json 的 phase2.word_stats

不足时的补写策略(重要)

不要让 analyst 为凑字数注水! 字数不足的应对顺序:

  1. 检查证据覆盖:该章观点是否有 ≥2 独立 Tier 1-2 信源?若无 → 检索补证据
  2. 展开数据细节:把表格里的数字展开成文字分析(趋势、拐点、对比)
  3. 增加案例:用 1-2 个具体公司/产品案例佐证抽象观点
  4. 补反方证据:把反方证据段落写详细(500-800 字)
  5. 延伸推论:对核心判断做 "若成立则..." 和 "若不成立则..." 分支讨论
  6. 国际对比:若原文只讲中国,加一段国际对比
  7. 实在不行:和 dr-pm 商量是否拆/并章节

四、字数计算工具(中英混排)

def count_chinese_words(text: str) -> int:
    """中英混排字数统计。中文字符 1 字,英文单词 1 字。"""
    import re
    chinese_count = sum(1 for c in text if '\u4e00' <= c <= '\u9fff')
    # 去掉所有中文字符后,按空格切英文
    text_no_cn = re.sub(r'[\u4e00-\u9fff]', ' ', text)
    english_words = len(re.findall(r'[A-Za-z]+(?:[-\'][A-Za-z]+)*', text_no_cn))
    return chinese_count + english_words

使用:

python3 -c "
import sys, re
with open(sys.argv[1]) as f:
    text = f.read()
cn = sum(1 for c in text if '\u4e00' <= c <= '\u9fff')
en = len(re.findall(r'[A-Za-z]+(?:[-\'][A-Za-z]+)*', re.sub(r'[\u4e00-\u9fff]', ' ', text)))
print(f'中文字数: {cn}, 英文词数: {en}, 总计: {cn+en}')
" projects/<slug>/phase2/drafts/ch01.md

不计入字数的部分

  • 代码块 ...
  • Markdown 表格线框(|---|
  • 引用块 >
  • 标题的 # 符号
  • 链接的 URL[文字](url) 只计文字部分)

五、manifest.json 字段规范

{
  "slug": "glp1-obesity-2026",
  "topic": "GLP-1 减重药物竞争格局与投资机会",
  "type": "研究类",
  "target_words": 35000,
  "min_words": 30000,
  "chapters_planned": 11,
  "phase1": {
    "approved": true,
    "approved_at": "2026-04-20T10:00:00Z",
    "framework_path": "projects/glp1-obesity-2026/phase1/framework.md",
    "chapter_quotas": [
      {"index": 1, "title": "...", "quota": 2100, "priority": "intro"},
      {"index": 2, "title": "...", "quota": 5250, "priority": "P0"},
      ...
    ]
  },
  "phase2": {
    "started_at": "...",
    "progress": "7/11",
    "chapters": [
      {
        "index": 1,
        "draft_path": "projects/.../drafts/ch01.md",
        "actual_words": 2180,
        "quota": 2100,
        "status": "completed",
        "sources_count": 12,
        "tbd_claims": 0
      }
    ],
    "word_stats": {
      "total": 34820,
      "target": 35000,
      "gap_pct": -0.5,
      "verdict": "合格"
    }
  }
}

六、硬规则总结

  1. 综述 ≥10,000 字;研究 ≥30,000 字;投资 ≥20,000 字;管理 ≥15,000 字
  2. 章节字数差距 ≤ ±30%
  3. 每 section ≥800 字
  4. 结论章 ≥ 全文 10%
  5. Phase 2 每章完成自检字数
  6. 不足下限强制返工
  7. 禁止为凑字数注水(空洞形容词、套话、重复表述)
  8. 禁止"打折"交稿