feat: 任务书 10,submissions 模块与 materials 修改

- 新增 src/submissions:先程序检查(14 条跨字段规则、不许改的文件、代码存不了、指标编号占用、提案数上限),全过再问 Jev;退回原因列出该写的全部编号;回应/统一拼冻结协议主体只在这一处;核验、消融核验通过没有。
- materials:挑刺单写"现在交什么";退回按阶段、作者、种类、对象找(ledger 退回记录加 target,表结构版本 4);核验材料去掉 Jev 预扫;信念本写合法化;删"本该关着";消融核验不通过可重做,不跑的格从 cellNotRun 事件读原因。
- 用户 2026-10-03 定:冻结协议去掉 replies、replyBody,第二次预测的答复从已公开的回应或统一读;takenMetricIds 加两个保留键;解释一律交 cells;Jev 退回只列判"是"的几问、用英文问题名。
- jev 判重材料带 keySettings;读代码工具删 offset;三处旧说法改正。
- 文档:结构.md 第四、七、八部分,WORK_LOG。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 06:08:34 -04:00
parent a0ee4ef7a2
commit 09c44031a0
34 changed files with 1221 additions and 169 deletions
+2
View File
@@ -22,6 +22,8 @@
材料里没有任何成绩和研究者的判断,这是有意的——你照因子清单做就行,不用知道哪个因子被认为更重要。不要自己跑正式实验去看关掉以后的分数(系统提示词"两条纪律");想确认能被正式实验接上,用 `research_check`。
材料"本任务要处理的东西"最前面有"退回意见"时,说明上一次交的这一格没通过消融核验:意见列出了关错的因子和核验员看到的位置。照意见把它们改对,仍然从完整代码出发、只关这一格要关的因子;核验员看错了的,在 `concerns` 里写清实际在哪几行。
交之前用 `diff -ru <完整代码冻结目录> .` 看一遍:改动应该只落在这个因子(和你写进一起关的因子)的位置上,加上把这个因子的指标改写成 null 的那几行。
关掉这个因子以后,你读代码看出某处会出问题——最常见的是:没有了这个因子,某条保障从"很少用到"变成了"每次都用上"(比如兜底分支每次都交答案)——写进 `concerns`,说清是哪条保障、为什么。这一格量到的可能就是那条保障,研究者需要在读结果时知道。照常只关指定的因子,不因为担心就改别处。没有就写"无"。
+1 -1
View File
@@ -35,4 +35,4 @@
## 交什么
逐条答复(材料"本任务要处理的东西"末尾"本任务要答复的挑刺"列出了针对这个候选的每一份挑刺,每份一条答复,`critique` 照那里的挑刺编号逐字写;研究记录里别的评议提交针对的是别的提案,不用答复)、实现条款(`clauses`,以编号 c1、c2……称呼)、需要时的改动(`changes`)、答复正文(`body`:逐条答复之外要补充的话,没有就写"无")。程序把改动叠到原提案上,得到冻结协议;答复原样跟着冻结协议,给之后预测的人对照着挑刺原文读。
逐条答复(材料"本任务要处理的东西"末尾"本任务要答复的挑刺"列出了针对这个候选的每一份挑刺,每份一条答复,`critique` 照那里的挑刺编号逐字写;研究记录里别的评议提交针对的是别的提案,不用答复)、实现条款(`clauses`,以编号 c1、c2……称呼)、需要时的改动(`changes`)、答复正文(`body`:逐条答复之外要补充的话,没有就写"无")。程序把改动叠到原提案上,得到冻结协议;答复不进冻结协议,原样和它一起给之后预测的人,对照着挑刺原文读。
+2 -4
View File
@@ -2,7 +2,7 @@
分派给你的是一次还没跑的运行:一个候选的冻结协议,和实验员照它写出的代码。你核过以后,程序从你的逐项结果推出通过与否:通过,这次运行才会被放去跑正式实验;不通过,你写的位置和依据原样交给实验员修改。
材料给了你:冻结协议全文;实验员交的因子位置表和保障位置表;这份代码相对起点代码(本批基线)的改动全文;两份代码的冻结目录(可以用 `read_source` 读);实验员提交时判别模型逐段预扫的结果。只看这份实现新引入的改动,起点代码里原有的写法不算它的问题。
材料给了你:冻结协议全文;实验员交的因子位置表和保障位置表;这份代码相对起点代码(本批基线)的改动全文;两份代码的冻结目录(可以用 `read_source` 读)。只看这份实现新引入的改动,起点代码里原有的写法不算它的问题。
### 逐项核
@@ -12,7 +12,7 @@
- **因子**:对着因子位置表,看那几行是不是照这个因子的做法写的;因子的设定值是不是协议写的那个。位置表只是线索,因子的代码不在表上写的地方而在别处,照实写在哪。
- **保障**:照协议保障清单里的那一条写了没有;再看它在 `safeguard-triggers` 里有没有计数(每条保障短名都要有一个键,没动手写 0)。没有计数也记没落实,依据里写清缺的是计数。
随机性和停止条件按协议正文核:代码里有没有协议没登记的随机数、读时钟、按时间或成绩提前退出。查跨文件的随机性和时间依赖要顺着调用读——预扫是逐段单独判的,看不到跨文件的关系,这部分要你来看。这类问题出在某个因子的代码里,那个因子就记没落实,依据里写清是哪一句协议没登记它;出在没归属的改动里,就在那一处判越界。
随机性和停止条件按协议正文核:代码里有没有协议没登记的随机数、读时钟、按时间或成绩提前退出。查跨文件的随机性和时间依赖要顺着调用读——程序收件时的检查是逐段单独判的,看不到跨文件的关系,这部分要你来看。这类问题出在某个因子的代码里,那个因子就记没落实,依据里写清是哪一句协议没登记它;出在没归属的改动里,就在那一处判越界。
代码导入的库要在材料"任务与本轮"一节里的"任务要点"列出的库里;不在的,正式实验会直接报错,记在用到它的那一项上。
@@ -30,8 +30,6 @@
不通过时,实验员只按你写的改,所以每一项的依据要让他能照着改:好——"`solver.py:88-95` 加了 `if best > target: break`,协议的停止条件只有迭代 500 次,这段要删";坏——"实现不够忠实"。找到一处问题后继续核完,一次说全。
材料里的预扫结果说明这些改动已经逐段通过了判别模型;你可以据此多看几眼,但判断以代码为准。
## 交什么
逐项结果(每条条款、每个因子、每条保障各一项;保障的短名照冻结协议的保障清单写)和对每一处没归属改动的判断(`unassigned`,材料说没有就交空数组);说明(`body`)写逐项结果之外需要说明的事,同一行同时属于因子和保障时在这里写一句提醒,没有要补充的就写"无"。