Files
InfoRSI/任务书/17-flow-4-消融到收尾.md

26 KiB
Raw Permalink Blame History

任务书 17:flow 第 4 部分(消融到收尾、一轮接一轮、研究结束)与这一段的提示词

这是 flow 四部分里的最后一部分(docs/结构.md 第三部分"flow 分四部分写,各自验证")。做完以后,一份研究能从采纳往下走:

  1. 列消融格、研究者写解释、程序选格;
  2. 实验员实现消融格、核验员核对,不通过就重做;
  3. 正式运行选中的格、结算、定押的因子;
  4. 研究者写收尾,轮末解封;
  5. 开下一轮,一轮接一轮,直到运行次数用完。

余额用完后走到"导出"一步时停下,原因写"导出还没写"。

一份任务书里有三块,按顺序做:

  1. **第一块:改提示词。**解释、收尾、消融实现、消融核验这一段的提示词。用户 2026-10-04 定:和任务书 16 一样,先诊断再改,改完先提交,再做后面两块。
  2. **第二块:写代码。**写 src/flow 的 ⑬–⑱、轮末动作、下一轮和研究结束。
  3. **第三块:真实运行和评估。**从头真实跑 3 份完整研究,按研究质量评估。

本任务书已由用户和监督者在 2026-10-04 一起确定。下面说的"监督者",是在参考项目目录里和用户讨论设计的另一个会话。

开工前先读

  • CLAUDE.md:全部。尤其是"测试"一节:flow 的验收看研究质量;正式代码和检验代码完全分开。
  • docs/方法.md:
    • 第三部分:角色与材料;
    • 4.3 ⑫–⑱、4.4;
    • 第五部分:解释、收尾、消融实现、消融核验四种提交;
    • 6.6 消融结算、6.7 选格、6.8 押的因子、6.9 信息账、6.10 信念本;
    • 第七部分:预算、扣次、"什么时候开下一轮";
    • 第九部分:中断与恢复。
  • docs/结构.md:
    • 第三部分:步骤清单,以及"flow 分四部分写,各自验证";
    • 第四部分:账本记录;
    • 第八部分:flow、materials、submissions、rules、workspace、runner 各节。
  • docs/调研/提示词.md:提示词怎么写的调研结论。第一块必读。
  • 任务书/16-flow-3-实现到采纳.md:第 3 部分的写法,这次照着往下接。第一块的做法和它的第一块相同。
  • 任务书 16 的产出:/home/iomgaa/inforsi-eval/2026-10-04-task16/report.txt(执行报告),以及同目录下的诊断、调研、审阅文件。第一块可以直接复用那次的调研结论,不必重查同一批参考实现。
  • WORK_LOG.md:"关键决定"最后几条;"未完成"里"给 flow"的条目,第六部分列了哪几条归这次。
  • 参考项目(只读,不要改):/home/iomgaa/Projects/RivalBits/src/controller/ 下消融、解释、收尾、下一轮的部分。看它怎么做,不照搬结构。

一、第一块:改这一段的提示词

1.1 范围

可以改的:

  • prompts/tasks/explanation.md、wrapUp.md、ablationImplementation.md、ablationVerification.md;
  • prompts/roles/experimenter.md、prompts/roles/verifier.md 里只讲消融的那几句(任务书 16 刚改过,正向的部分不动);
  • src/vocab/submissions.ts 里解释、收尾、消融实现、消融核验这四种提交的字段说明(description)。只改措辞,不改字段的结构、类型、必填与否;vocab 上限 1150 行。

不改的:

  • prompts/roles/researcher.md:它同时管着提案,改了会影响第 2 轮的提案,而研究者那一段已经定好不再调;
  • 研究者其余任务提示词(提案、预测、挑刺、回应等);
  • 实验员、核验员提示词里正向的部分;
  • tasks/circle_packing/ 下的任务文件。

1.2 怎么做

  1. 读调研结论。docs/调研/提示词.md 全文,以及任务书 16 产出里的 implementation-research.txt、verification-research.txt、historical-diagnosis.txt。

  2. **针对这一段再调研。**派子 Agent 去查。参考项目的克隆在 /home/iomgaa/Projects/RivalBits/reference/。子 Agent 只读、不写 md,结论直接回复。值得查的方向:

    • 让模型对一组实验结果事前写出可检验的解释、事后对号:AI-Scientist 的实验分析与写作提示、co-scientist 的反思与评审步骤;
    • 一轮结束后怎么把结果交给下一轮,让下一轮既用上已有发现、又不被锁在小步调参上:openevolve、aideml、ShinkaEvolve 等进化或搜索系统怎么写"上一轮的总结"和"下一步";
    • 消融实现:只关一个部件、其余不动,怎么写才不多改也不漏改。任务书 16 查过的"照规格实现、不顺手改进"结论可以直接用。
  3. **拿真实记录诊断。**读参考项目运行里研究者、实验员、核验员在这一段实际交了什么:

    • 账本在 /home/iomgaa/rb-acceptance/{16-real-1,15-real-1,15-tight-2,14-real-1,12-real-2}/board.sqlite,只读,用 sqlite3 -readonly。任务书 16 已经复制过一份到 /home/iomgaa/inforsi-eval/2026-10-04-task16-diagnosis/,可以直接用那份;
    • 提交在 submissions 表:阶段编号里带 analysis 的是解释,带 update 的是收尾,带 ablate-implement、ablate-verify 的是消融实现和消融核验(14-real-1、12-real-2 是旧方法的 split,可作参考);
    • 参考项目每次运行当时用的提示词在 /home/iomgaa/rb-acceptance/<运行>/prompts-used/ 下,会话原文在同一目录的 sessions/ 下。新项目的提示词是以它为底稿改的。
    • 收尾要和下一轮的提案对着读:收尾里写的"下一步",下一轮有没有人照着提、提成了什么样。

    列出你看到的毛病,也列出做得好的地方,每条写清四样:现象、证据位置(库名、表、编号)、提示词里是哪一句引起的、怎么改。

    监督者已知的三条,核实后可以直接用:

    • 收尾和"冲分"冲突。wrapUp.md 要每人写"下一步想在哪个因子上继续",样本也是"沿某个因子继续调"。收尾原文会整段放进下一轮的提案材料,而提案提示词现在要求"交最可能拿最高分的那条,哪怕换掉整道工序"(提交 ff5c8dd)。方法.md 4.3 ⑱ 已改为"下一步想往哪走:沿某个因子继续,或换一条更可能拿最高分的路线"(用户 2026-10-04 定)。提示词照这个改,并用参考项目的"收尾 → 下一轮提案"核实这句话实际起了什么作用。
    • **第 1 轮之后已经贴近已知最好。**任务书 16 的三份第 1 轮采纳 2.6307–2.6343,已知最好是 2.635983。第 2 轮起研究者面对的是"离已知最好只差一点"。解释、收尾里现在没有一句帮他们想这种处境:还差的那一点可能在哪、哪些因子其实没出力、哪条结论只在某个设定下成立。写的时候不出现任何题目的具体数值或做法,用无关领域的例子说明这种处境。
    • 消融两份任务提示词和角色提示词重复。"不要自己跑正式实验""两个保留键怎么写""看不清照实写"等内容,任务书 16 改过的实验员、核验员角色提示词里已经有一份,措辞也变了。同一段内容只放一处:角色提示词里有的,任务提示词里删掉,只留本次任务特有的。
  4. **改。**照 docs/调研/提示词.md 第三、四部分的原则写。任务提示词里不写字段怎么填(那是字段说明的事)。

  5. **自查泄露。**照 docs/调研/提示词.md 第四部分最后一条:

    • 改完用填圆的关键词搜一遍你改过的全部文件,搜到就改掉,搜不到才算过。关键词至少包括任务书 16 用过的 18 个,再加"消融""收尾"样本里可能出现的题目数值(例如 2.6、26);
    • 例子只用和题目无关的领域,不出现任何填圆的做法、数值或参考项目跑出来的具体经历。
  6. **先提交,再写代码和跑。**提示词改完单独提交一次。之后的真实运行全部用这一版,看到运行结果以后不再改提示词。结果不管好坏都照实收下,交给用户。

二、第二块:代码

2.1 管哪些步骤

config 的 ROUND_STEPS 从 listCells 到 wrapUp,加上轮末动作、开下一轮,以及 STUDY_STEPS 里"一轮接一轮直到余额用完"和 export:

  • listCells、explanation、selectCells:列格、解释、选格;
  • ablationImplementation、ablationVerification:消融实现、核验,不通过就重做;
  • ablationRun:消融运行;
  • settle:结算、押的因子、消融中发现;
  • wrapUp:收尾,以及轮末解封;
  • 余额用完后走到 export,停下,原因写"导出还没写"。

代码按"第 r 轮"写,不写死轮数。第 2 部分(开轮到选批)原来只在第 1 轮真实跑过,第 2 轮起的留池候选、信念本、"从第 2 轮起说明新观测"、判重时和留池候选比较,这次第一次真正走到。出问题按 CLAUDE.md 修。

next-step.ts 里 roundsNext 的 step.id !== "listCells" 是任务书 16 留下的临时写法(WORK_LOG"给 flow"),这次去掉,按步骤清单正常处理"按配置跳过"。

2.2 怎么走(方法.md 4.3 ⑫–⑱)

什么时候有消融

  • 采纳了、而且被采纳的改法有 2 个以上因子,才走 ⑬–⑰。
  • 没采纳,或被采纳的只有 1 个因子:⑬–⑰ 都不做,直接到收尾(方法.md 4.3 ⑫)。这几步不写记录,从采纳决定和冻结协议就算得出"这一轮没有消融"。
  • 配置关掉消融时,步骤清单已经标了"按配置跳过",照现有的跳过写法记事件;解释照样写正文、不交三个数(方法.md 第十一部分)。验收用的配置开着消融,这种情况不专门造出来测。

列格(⑬)

  • 用 rules 的 listCells,被采纳改法的每个因子一格。不写记录:格从冻结协议现算,格编号用 materials 的 cellId。

解释(⑭)

  • 研究者阶段,每位研究者一个任务,没有对象;材料由 materials 现有的解释材料给。
  • 解释阶段关闭即冻结。ledger 已经会拒绝"有格启动以后才冻结解释",flow 照顺序走就不会碰到。

选格(⑮)

  • 输入照 rules 的 CellRuleInput 拼:基线、完整分数、方向、已知最好、ε、λ、因子、各条解释,加 ComboParams(余额、每批上限、knowledgeUse、decay)和种子。
  • 种子用 decisionSeed 的版本 2(选批已用版本 1,WORK_LOG"给 flow")。
  • 规则取步骤清单里 selectCells 那一步的,调 runCellRule。写一条决定,种类 cells。
  • 没选中的格不另写事件:没测的原因和"含它的最好组合"都在这条决定里,materials 的信念本也是从这里读的。

消融实现与核验(⑯)

  • 每个选中的格派一个实验员任务,对象是格;工作目录从被采纳的完整代码取出。不同格的实验员同时实现。
  • 交上来后:
    • 交了"这一格跑不起来"(cannotRun):known.code 传 null(WORK_LOG"给 flow"),这一格不核验、不运行、不扣次;
    • 否则用 workspace 存成一个版本,用 tasks 的 protectedChanges 查不许改的文件,拼成 submissions 的 AblationCode。
  • 实现阶段关闭后,每个交了代码的格派一个核验员任务。材料里的改动是"完整代码到这一格代码"。用 submissions 的 ablationOutcome 判通过没有。
  • 不通过的格,在核验阶段关闭后退回原实验员重做,从他上一次交的这一格代码接着改(materials 的消融实现材料已经这样写)。重做完再核验,只核验重做过的格。
  • 次数和正向修复用同一个上限 config.maxRepairs。用完仍不通过:用 materials 的 cellNotRunEvent(格, 原因) 写事件,不跑、不扣次,结算记"证据不足"。
  • 阶段编号按"第几次"排:r<轮>-ablationImplementation-1、r<轮>-ablationVerification-1、r<轮>-ablationImplementation-2、r<轮>-ablationVerification-2……第几次从账本里数,不另存。
  • 实验员报了"还要一起关的因子"(alsoOff)时,这一格实际关掉的是几个因子。几格实际关掉的因子完全相同时,用 rules 的 sharedSettings 判断沿用哪一格的结果,不重复跑(方法.md 6.6)。
  • 实验员、核验员的编号:materials 现有的是按候选编号起的,消融格按格编号起,需要的话在 materials 补,和正向的写法一致。

消融运行

  • 通过核验的格,用 flow 已有的 formalRun 跑,用途写 ablation,对象是格。
  • 一份研究里的消融运行一个接一个跑,同正向。
  • 完整代码和基线的分数直接取本批已有的运行结果,不重跑(方法.md 4.3 ⑯)。

结算(⑰)

  • 选中的格全部有结果、"跑不起来"或"不跑"事件后结算。
  • 输入照 rules 的 SettleInput 拼:每个因子一格,结局取"有效分数 / 证据不足 / 没测 / 跑不起来 / 一起关"之一;调 settleAblation,写一条结算记录。
  • 押的因子用 rules 的 chooseBet,写一条决定,种类 bet。结算和押的因子在同一个事务里写。
  • "消融中发现"已经在 settleAblation 的输出里,materials 的 baselineOf 会据此把那一格的代码当成下一轮的基线;flow 不另写采纳记录。确认这一点在真实运行里对得上:出现了就核对下一轮的基线;没出现就在报告里写"没出现",不专门造。

收尾与轮末(⑱)

  • 研究者阶段,每位研究者一个任务,没有对象。
  • 收尾阶段关闭之后,写轮末动作(WORK_LOG"给 flow"两条):
    • 本轮选批选中的每个候选(跑过的、入选了却没跑成的)解封作者自评:写解封记录。解封只在收尾阶段关闭后写,提前写会泄露(materials 审阅时实测过)。
    • "入选了却没跑成的候选离开候选池"不用写记录:materials 的 Board.carried 只留从没进过任何一批的候选,已经算对。
    • 本轮全部解封写在同一个事务里。

下一轮和研究结束

  • 收尾做完后,余额至少还有 1 次就开下一轮;余额为 0,一轮接一轮这一步做完,走到 export,停下,原因写"导出还没写"(方法.md 第七部分"什么时候开下一轮")。余额用 rules 的 runBalance 从运行记录算。
  • 本轮正向批量 k = min(每批上限, 余额),选格最多"余额 − 1"格,这两条 rules 已经有,确认选批和选格用的余额是当时的余额。
  • 方法.md 第七部分说的情况——最后一次正向用掉了全部余额、又采纳了多因子改法——各格记"没测:剩余次数不够"。真实运行碰到就核对;没碰到不专门造。

2.3 每一步以哪条记录为准算做完

接着 docs/结构.md 第八部分 flow 一节的那张表往下加:

步骤 看到哪条记录算做完
listCells 不写记录:从采纳决定和冻结协议现算
explanation 这一轮解释阶段的关闭记录;这一轮没有消融时不开这个阶段
selectCells 本轮的选格决定(decision,种类 cells)
ablationImplementation、ablationVerification 每个选中的格都已结束这一段:交了"跑不起来",或最近一次核验通过,或重做次数用完、有"不跑"事件。中间每次实现、核验阶段各有开关记录
ablationRun 每个通过核验的格,最近一次消融运行有结果,而且不是"没启动"
settle 本轮的结算记录(settlement),以及同一事务里的押的因子决定(decision,种类 bet)
wrapUp 收尾阶段的关闭记录,以及本轮选中的每个候选都有解封记录
一轮接一轮 新一轮开始时余额为 0
export 现在不做:走到这里停下,原因"导出还没写"

2.4 规模

flow 现在 1302 行,预计加 500–800 行,上限照结构.md 第七部分的 2000–3500。materials 只补格的角色编号(如果需要),不超过 1950 行。

三、第三块:真实运行和评估

3.1 跑什么

  • 用第一块改好的提示词,配置照 eval/round-zero/research.json,只换研究编号。
  • 从头新跑 3 份完整研究,一直跑到余额用完、停在"导出还没写"。不接着跑任务书 16 的三份:提示词改了,恢复时提示词哈希核对会挡下。
  • 3 份研究同时跑(用户 2026-10-04 同意)。一份研究里的正式运行仍然一个接一个跑,所以同一时刻最多 3 个正式运行的容器,每个限 1 个核,机器有 16 个核。为了确认没有互相抢 CPU:
    • 每次正式运行列出 CPU 时间和墙钟时间之比(运行结果里本来就记着);
    • 记下运行期间机器的负载(沿用任务书 16 的 machine.jsonl 做法);
    • 比值明显低于 1 的运行照实列出,查是否和机器负载对得上。不为此重跑。
    • 任务书 16 的 eval/forward/acceptance.ts 要求"启动区间互不重叠",这次不适用;新的检验不加这一条。
  • 估计每份 8–12 小时。监督者那边会同时离线调 Jev 做另一项检验,只调接口、不占 Docker,不影响这边。
  • 3 份里挑 1 份,在第一个消融运行确认启动以后、出结果之前,杀一次控制进程再启动。检查:
    • 恢复时按容器名找到这次运行,接着等它,没有重跑;
    • 这次运行只扣了一次;
    • 结果照常写进去,结算和后面的步骤照常走完。
  • 中途出错先查原因:
    • 是程序的毛病,按 CLAUDE.md 修了,从出错处续跑;修了什么写进报告。修了 flow 以后,已经写进账本的记录照原样用,不重算;
    • 是服务一时调不通,接着跑(node eval/lib/cli.ts --resume --dir <研究目录>)。

3.2 评估:研究质量

不设硬线,结果照实交给用户。前五样看第 4 部分自己的研究质量,后两样看整份研究。

第 1 样:解释的质量。

  • 每一条解释,派一个全新上下文的子 Agent,在看不到消融结果的情况下读:解释正文和三个数、被采纳改法的因子清单、本批运行结果、实验员的提醒。回答:
    • 它说出了具体的机制吗?写了什么情况下不成立吗?
    • 三个数和正文说的一致吗(正文说某因子撑大半,关它那一格的范围是否靠近基线)?
    • 范围宽窄是否合理:宽到什么结果都包得住,还是窄到没有依据?
    • 同一轮几位研究者的解释有没有真正不同?
    • "我没有具体机制判断"用得是否诚实?
  • 然后对上结算:每条解释在每格是确认还是否定;有没有"现有测法分不开"。

第 2 样:选格。

  • 每次选格,列出:因子、各格事前合并范围、各组合的信息价值、成本、净值,选了哪几格、没选的原因。
  • 回答:选中的格是不是大家分歧最大、或最可能改变下一步方向的格;有没有因为大家意见一致而一格都不测的情况(方法.md 第十二部分第 7 条),出现了几次。

第 3 样:消融实现照要求没有、核验员判得对不对。

  • 每个跑过的格,派一个全新上下文的子 Agent。给它:冻结协议、完整代码、这一格的代码、位置表、alsoOff 和 concerns。回答:
    • 是不是只关了指定的因子:有没有多关、少关;
    • 保障是否原样保留,关掉的因子的指标是否写 null;
    • 答案路径标签是否和关掉以后的分支对应。
  • 同一个子 Agent 再看核验员每次的逐项结论:该判不通过却通过的、不该判不通过却判了的;有重做的,看重做是否只改了被指出的地方。

**第 4 样:消融结果说明了什么。**每格一行:

  • 关掉的因子(及一起关的);
  • 实测分数、撑几成;
  • 这一格的答案出自 main、某个因子还是某条保障,保障动手了几次。答案出自保障的,这一格量到的可能是保障而不是关掉因子的效果,标出来;
  • 合并范围和实测落在哪一段。

另列:配合关系标签、押的因子、有没有"关掉反而更好"或"消融中发现"。

第 5 样:收尾和接力。

  • 每条收尾,派一个全新上下文的子 Agent 读:收尾原文、本轮的信念本和结算。回答:
    • 有没有把"改法有效"说成"机制被证实";
    • 有没有用生成某个解释的那次运行去支持这个解释;
    • 结论有没有写清覆盖哪些设定;
    • "下一步"是沿某个因子小步调整,还是换一条可能拿更高分的路线,理由是什么。
  • 再对着下一轮的提案看:下一轮的提案用上了上一轮的哪些发现;是在已有因子上小步调参,还是提出了新的完整路线;离已知最好只差一点时,研究者怎么判断还能做什么。

**第 6 样:整份研究的走向。**每份研究列:

  • 每一轮:正向候选、采纳了什么、采纳分数、离已知最好还差多少、有没有消融、测了几格;
  • 分数随轮次的曲线,和参考项目 15-real-1、15-tight-2、16-real-1 的逐轮采纳分数并排(参考项目当时的提示词带填圆做法,这一项它们占了便宜)。
  • 每个跑过的正向候选一行,接着任务书 16 第 3.2 节第 3 样的表:路线代号、合并的一成、一半、九成、作者自评(这次已解封,直接读解封记录)、实测、落点。这份数据监督者之后要用来检验 Jev。

**第 7 样:程序账目。**每份研究列:

  • 确认启动的正式运行数(基线、正向、消融分开)和余额减少的次数,两者应相等;最后余额为 0;
  • 每格核验了几次、重做了几次、最后跑没跑;"跑不起来"和"不跑"的格有没有扣次数、有没有写事件;
  • 解释阶段关闭早于本轮任何一格的确认启动;每轮最多一条结算;
  • 每轮的解封记录写在收尾阶段关闭之后,覆盖本轮选中的全部候选;
  • 第 2 轮起的基线等于上一轮采纳的(或消融中发现的)代码;
  • 轻量检查每次调用用了几次、有没有超过上限;
  • CPU 时间与墙钟时间之比(3.1);
  • 杀进程那一次的三条检查。

3.3 怎么算通过

程序部分必须过:

  • npm run check、npm test 全过;
  • 3 份研究都跑到余额为 0、停在"导出还没写",每个阶段开关成对;
  • 扣掉的次数等于确认启动的运行数;
  • 杀进程那一次的三条检查都成立。

研究质量不设硬线,照实交给用户。

质量不好时,先查是不是 flow 或 materials 写错了:抽一次运行,看研究者、实验员、核验员"模型调用开始"里存的材料,是否符合方法.md 第三部分和 4.3 ⑭–⑱。材料错了就修,修完重跑。材料对,就照实报告,不再改提示词(第一块第 6 条)。

四、正式代码和检验代码分开

照任务书 12 第四部分的 7 条。这次新加的检验代码放新目录 eval/full/,共用的工具放 eval/lib/,能复用 eval/forward/ 的就复用。运行目录、审阅结果都放 /home/iomgaa/inforsi-eval/<日期-名字>/,不提交。

五、文档

完成后更新:

  • docs/结构.md 第八部分 flow 一节:
    • "做完以哪条记录为准"的表,加上第 2.3 节的几行;
    • "谁做、对哪个对象"的表,加上解释、消融实现、消融核验、收尾;
    • 消融阶段编号怎么排;轮末解封;研究结束;
    • 三份研究同时跑、一份研究内一个接一个跑;
    • 新加的 eval: 命令;
    • 本节开头"现在走得到的只有第 1 轮"等过时的话改掉。
  • docs/结构.md 第八部分 materials 一节:补上新导出的东西(如有)。
  • WORK_LOG.md:
    • "已完成"补一条;
    • 删掉这次做到的"给 flow"条目;
    • "关键决定"不用你写,监督者核对时补。

不新建 md 文件。

六、"给 flow"的条目里归这次的

WORK_LOG.md"未完成"里的:

  • 选格用随机规则时,种子用版本 2。
  • 步骤清单没有单列"轮末动作"(解封作者自评、入选未跑的候选出池),flow 要做这些。
  • 解封只在本轮收尾阶段关闭后写。
  • 消融格核验不通过、修复次数用完时写 cellNotRunEvent(格, 原因) 事件,结算记 insufficient;重做时把上一次这一格的提交取出来当工作目录。
  • 消融实现交了 cannotRun 时 known.code 传 null,否则传存版本的结果。
  • next-step.ts 里 roundsNext 的 step.id !== "listCells" 临时写法去掉。

七、审阅

这次写到了消融的扣次、选格和结算、轮末解封、研究结束,都是账本里"驱动实际动作的决定"(方法.md 第九部分)。写完后另派一个全新上下文的子 Agent 审阅一轮,只看:

  • 消融的实现、核验、重做循环,"跑不起来"和"不跑";
  • 消融运行的登记、扣次和恢复;
  • 选格、结算、押的因子的输入是不是照 rules 的类型拼对了;
  • 解封的时机;
  • 开下一轮和研究结束的条件。

审阅只防 CLAUDE.md"罕见情况怎么办"里的三类情况,提了别的照列不改。

八、验收与报告

做完后本地提交,然后在回复里交一份报告。报告写正文,不把日志全文附进去,日志放在证据目录、报告里给路径。监督者会对着实际文件、账本和评估输出逐项核对:

  1. 提交号:提示词那次单独列;新增和修改的文件,分 prompts/、src/、tests/、eval/ 列;src/flow 和 materials 的总行数。
  2. 提示词:
    • 诊断出的毛病和做得好的地方,按第 1.2 节第 3 条的四样写;监督者已知的三条,核实结果分别写;
    • 每份提示词改了什么、依据哪条毛病或哪条原则;
    • 泄露自查用的关键词和搜索结果;
    • 再调研派了哪些子 Agent、查到了什么。
  3. npm run check、npm test 的结果,完整输出放证据目录。
  4. 程序部分:3 份研究的研究目录、轮数、停下原因;杀进程那一次的三条检查。
  5. 研究质量:第 3.2 节七样的表和结论。
  6. 每份研究每一轮一行:正向候选、采纳与分数、消融测了哪几格、每格撑几成、押的因子。
  7. 你和这份任务书、结构.md、方法.md 不一致的地方,以及为什么。
  8. 规则不清楚的地方:哪里让你犹豫、哪里你是靠猜的。没有就写"没有"。没有真实证据的可能情况,在这里提一句就够,不写进 WORK_LOG。
  9. 正式代码和检验代码分开的自查,逐条写"做到了"或"没做到、为什么"。