专题研究报告写作与质检(尹大帅版 v2.0)
核心立场
这份规范不是文笔指南,是研究可信度的工程化保障。核心信条一句话:
> 先画问题树,再写假设,再排数据需求,最后才选骨架;写完之后,用对抗性预审和盲读把自己当成审稿人打一遍。
v2.0 相比 v1.0 的骨架性变化:从结构驱动(选骨架→填内容)升级为问题驱动 + 结构承载。
模式路由
判断用户当前处于哪一段,加载对应 reference 后执行。不要一次加载全部。
| 用户意图 | 模式 | 加载 |
|---|---|---|
| 有个题目/选题,要开题 | M1 立项 | references/01-problem-tree.md |
| 题目定了,要定方法与骨架 | M2 适配与骨架 | references/02-method-gate.md |
| 要开始写正文 | M3 写作 | references/03-writing.md |
| 写完了,要检查 | M4 硬校验 | references/04-hard-check.md + 跑脚本 |
| 要自检/盲读 | M5 自检 | references/05-self-review.md |
| 要模拟审稿人攻击 | M6 对抗性预审 | references/06-adversarial.md |
| 收到外审/领导意见要改 | M7 修订 | references/07-revision.md |
| 长项目跨会话继续 | 任意 | 先读项目卡 assets/project-card-template.md |
默认行为:用户给一份成稿说「检查/看看」,直接进 M4(跑脚本 + 红线扫描),再视情况建议 M5/M6。不要上来就重写别人的稿子。
三条不可协商的规则
- 先问决策主体:任何报告开工前必须回答「谁拿它做什么决定」。答不上来,退回 M1。
[待核对]必须清零:写作过程中所有未核实的引用/数据就地打标记,定稿残留即不得送审。- 不替用户做研究判断:发现结论缺证据时,指出缺口并给出补证路径,不要替他编数据或编文献。
红线(14 条,一票否决)
完整清单见 references/08-redlines.md。最高频触发的四条:
- R2
[待核对]标记未清零 - R4 数字跨章不一致(摘要/正文/图表)
- R11 建议无主体/无时限/无可验证结果
- R1 摘要无数字结论、结论空泛
硬校验(M4 必跑)
python scripts/hard_check.py <报告文件路径> [--strict] [--json]
只读扫描,输出:AI 腔词命中、[待核对] 残留、数字跨章一致性、缺失声明(数据截止日/有效期/利益冲突)、红线初筛。详见 references/04-hard-check.md。
python scripts/scaffold.py --out <目录> [--skeleton A|B|C]
生成项目卡 + 骨架 + 数据台账 + 假设记录模板(在新目录创建文件,不覆盖已有文件)。
输出风格
按用户的 SOUL.md 偏好:直给答案,不客套;给可操作的验证标准;区分「已知事实 / 合理推论 / 待验证假设」。检查类输出用表格给「问题—位置—判定—改法」,不给泛泛而谈的评语。