能不能从假设一路跟到论文草稿,取决于你把多少信息从会话里搬进了可复查的文件。Denario 这类流水线通常按「材料 → 文献 → 想法/假设 → 方法/分析 → 结果 → 论文草稿」切开,每一步都是把上一步的上下文重新打包一次。打包就有压缩,压缩就会丢出处。所以真正该问的不是它支不支持写草稿,而是哪几个交接点必须由你手动把原始信息贴回去。可以先跑一次最小任务,把它生成的中间文件按目录和文件名列出来,再对照下面五个动作逐项检查。
判断:Denario 能把假设到草稿的链路跑通,但它承接的是结构化中间产物,不是你的记忆。适用场景是把研究问题、文献笔记、实验条件都落成带编号和引用键的文件;操作上每次交接前先检查输出里是否还有出处和条件字段;验证方式是用假设分支逐段对照草稿,再把草稿的每条主张退回材料层核对;风险边界是局部整理被当成全自动成稿,引用和实验条件在压缩环节悄悄丢失。
把研究问题拆成可追踪的假设分支
让后续每一步都有可对照的起点,靠的不是把问题写得更长,而是把它拆成带编号的假设。建议在启动流程前手写一份假设文件,每条至少包含假设编号、变量、预期方向、关联文献四项。关联文献写引用键,不要写作者姓名或标题缩写,因为只有引用键能在后面和 bib 条目、笔记文件对上。
H1:
id: H1
statement: 提高 X 会降低 Y
variables:
independent: X
dependent: Y
control: [温度, 批次]
expected_direction: Y 随 X 上升而下降
literature_keys: [smith2021x, dole2022y]
falsify_if: X 上升后 Y 无变化或上升这份文件是整条链路的锚。工具如果只拿到一句自然语言问题,后面的方法、结果、草稿可能各自改口径;把 H1 这样的编号和字段喂进去,你才能在每一步输出里检查有没有对应上。
| 阶段 | 典型输入 | 典型输出 | 最容易丢的东西 | 你的动作 |
| 假设拆解 | 研究问题、文献笔记 | H1/H2 假设文件 | 变量范围、预期方向 | 手动补全,给每个假设挂引用键 |
| 文献环节 | 引用键、笔记 | 综述段落、文献列表 | 来源出处 | 检查输出里是否还带引用键 |
| 方法与分析 | 假设、数据说明 | 分析计划、参数 | 实验条件、排除标准 | 把条件写成上下文清单再喂 |
| 结果整理 | 运行结果 | 结果描述、图表 | 图表与原始文件的对应 | 给每个图表编号并记路径 |
| 论文草稿 | 以上全部 | 段落草稿 | 引用与结论的支撑 | 逐段对照假设,退回材料层核验 |
检查文献笔记进入写作环节时是否保留出处
引用最容易断的地方,是从「笔记汇总」到「成段写作」这一段。工具需要把多条笔记改写成通顺段落,改写过程里作者、年份、页码经常被省掉,只留下观点。建议笔记写成结构化字段,把引用键、原文片段、页码或段落位置固定下来。
- key: smith2021x
quote: 在 25 摄氏度条件下,处理组的响应低于对照组
location: p.7 第 2 段
note: 支持 H1 的预期方向
use_in: [H1, 方法部分]草稿生成后,做一次引用键回查:先列出草稿里实际出现的引用键,再和笔记文件里的 key 做差集。下面的命令只是骨架,字段格式要按你自己的笔记调整。
grep -o '\[[a-z]*[0-9][0-9][0-9][0-9][a-z]*\]' draft.md | sort -u > used_keys.txt
grep -h 'key:' notes/*.yml | sed 's/.*key: //' | sort -u > all_keys.txt
comm -23 all_keys.txt used_keys.txt # 笔记里有、草稿里没出现的键差集里出现的键,要么是草稿该引没引,要么是笔记根本没被用上。两种情况都值得在动笔前处理掉,等成稿再补会牵动整段论证。
在长流程中标注需要人工回填的上下文
长流程里最容易被概括掉的是实验条件,因为模型倾向于把可以省略的细节省略。可行的做法是维护一份上下文清单,把必须由人回填的字段单独列出,并在每一步提示里要求它原样保留。
NEED_MANUAL_FILL:
- 实验条件: 温度、湿度、仪器型号、试剂批次
- 样本量: 各组 n,剔除后 n
- 统计方法: 检验类型、是否双侧、显著性水平、多重比较处理
- 排除标准: 剔除原因与数量
- 数据版本: 文件名、生成时间、处理脚本提示词里可以加一条硬约束,让缺失项显式暴露而不是被猜出来:
请基于 H1 和上面的分析计划写方法段落。
要求:
1. 保留 H1 编号;
2. 样本量、统计方法、排除标准只使用我给出的数值,不得推断;
3. 缺失项写成 [MISSING: 字段名],不要编造;
4. 末尾附 CONTEXT_USED,列出你实际用到的字段。跑完后核对 CONTEXT_USED 和你给的清单是否一致。不一致就说明该字段在传递中被丢了,需要回到上一步重新喂入。
用中间产物判断草稿是否偏离原始假设
成稿前先做一次对照,把草稿按段落切分,逐段标上它对应哪条假设。落不到任何假设上的段落单独挑出来看,这类段落往往是论证漂移的入口。对照表可以很简单:段落编号、对应假设编号、支撑材料、状态。状态分三种——已支持(能指到材料)、待补(有主张没材料)、新增(假设里原本没有)。
# draft_sections.jsonl 每行 {id, text, claims}
# hypotheses.jsonl 每行 {id, statement, falsify_if}
# 按 claims 里出现的 H 编号归段落,没有编号的标为 unassigned不写脚本也可以,人工切段照样可行,关键是别跳过 unassigned 那一类。标记为「新增」的结论要么补上支撑材料并回写假设,要么删掉,不要留在草稿里当作既有结论。
把草稿退回材料层做一次引用核验
最后一步不是润色,是把每条主张往回走一遍。建议按顺序核:
- 逐条核对引用:草稿里每个引用键,在 bib 条目和笔记里都能找到,且笔记里的原文片段与页码或段落位置对得上。
- 逐条核对数据:涉及数值的主张回到原始结果文件,确认数值、单位、组别没有在转述中变形。
- 逐条核对图表来源:每个图表编号能对应到生成脚本和数据文件,避免图文不同源。
- 无法回到来源的主张,先降级措辞或删除,不要保留强断言。
for k in $(cat used_keys.txt); do
grep -q "$k" refs.bib || echo "bib 缺失: $k"
grep -q "key: $k" notes/*.yml || echo "笔记缺失: $k"
done这套检查跑完,只能说明草稿的主张回到了你提供的材料,并不说明结论本身成立。Denario 承接的是流程和整理,判断和取舍仍然要由你签字。