docs: 核对任务书 10;新增任务书 11-收尾

方法.md 4.3 ⑯:消融重做从上一次交的这一格代码接着改(用户选"接着改")。任务书 11:指标名加候选前缀(参考项目真实账本撞名 5 次,监督者核实)、消融重做、判重说明补关键设定。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 06:21:45 -04:00
parent 09c44031a0
commit f623fb78a8
3 changed files with 96 additions and 2 deletions
+2 -1
View File
@@ -50,6 +50,7 @@
- materials 与 submissions 一起设计、分两份任务书(09 materials 先、10 submissions 后):materials 对每个任务产出"给模型看的材料 + 对号清单 + 能读的代码版本",整份存进"模型调用开始"记录,submissions 只拿清单对号;谁能看什么每种任务一个函数,不写通用判定;提示词以参考项目为底稿只做必要改动;materials 预期 1200–1800 行,submissions 500–800 行。用户原话:"我建议submissions和materials一起做你觉得可以吗?"、"可以"、"都同意"。
- 中断的模型调用,恢复时补写"出错、原因'进程中断'、墙钟时间测不到"(`callEnded` 的墙钟时间用 `Measured`)。用户原话:"墙钟时间改用 Measured,恢复时写出错加测不到(原因'进程中断')"。
- materials(任务书 09)开工前用户定的四件事(2026-10-03,用户选了推荐项):vocab 上限改 1150,只放对号清单 `Checklist`,任务材料其余类型放 materials;冻结协议、位置表、判重合并输出、决定种类和编号规则由 materials 定义并导出,flow 照着写,ledger 不改;实验员、核验员不给信念本,方法.md 4.3 ① 改为"研究者任务";合并而成的候选按原提案挑刺。
- 消融格核验不通过重做时,实验员从上一次交的这一格代码接着改,和正向修复一样(方法.md 4.3 ⑯)。用户选"接着改"。export 先不做,先收尾已完成模块,flow 由用户和监督者一点点过。用户原话:"export先不做,我们就先把已经完成了但是又有些问题的模块收尾一下,然后我会和你说如何开flow"。
- 核验不通过、修复次数用完时:正向候选不跑(不扣次数,记事件写明原因);消融格和正向一样可以退回实验员重做,次数用同一个修复上限,用完仍不通过这一格不跑、不扣次数、记"证据不足"(方法.md 4.3 ⑨ ⑯、6.6)。用户原话:"同意"。
- 冻结协议只放方法.md 4.3 ⑥ 列的几项(2026-10-03)。用户原话:"冻结协议只放方法.md 4.3 ⑥ 列的几项,FrozenProtocol 去掉 replies 和 replyBody;第二次预测要的"挑刺与答复"从这个候选已公开的回应或统一提交里读;submissions 交回的冻结协议主体也不带答复。"
- 解释的 `cells` 只按完整流程全开实现,一律要求交(用户选"只按全开实现");做步骤开关时再补"关掉消融时不交"。
@@ -87,4 +88,4 @@
## 下一步
任务书 10(submissions)已完成,等监督者核对;之后是指标加候选前缀那件事,再做 flow。
任务书 10 已核对通过(09c4403)。用户定:export 先不做,先把已完成模块收尾,再一起过 flow。任务书 11(收尾:指标名加候选前缀、消融重做接着改、判重说明补关键设定,`任务书/11-收尾.md`)已写好,等用户另开新 Agent 执行。
+1 -1
View File
@@ -309,7 +309,7 @@
- 交"这一格跑不起来:原因"。这一格不启动,也不扣次数;
- 报告还需要一起关掉哪个因子,这一格就同时关掉它们,并写明。
- 核验员只查一件事:是不是只关了指定的因子。
- 核验不通过时,和正向一样退回实验员重做,次数用同一个修复上限;用完了仍不通过,这一格不跑、不扣次数,记"证据不足:原因"。(用户 2026-10-03 定)
- 核验不通过时,和正向一样退回实验员重做,从上一次交的这一格代码接着改,次数用同一个修复上限;用完了仍不通过,这一格不跑、不扣次数,记"证据不足:原因"。(用户 2026-10-03 定)
- 运行的规矩和正向运行相同。
- 完整代码和基线的分数,直接取本批已有的运行结果,不重跑。
+93
View File
@@ -0,0 +1,93 @@
# 任务书 11:已完成模块的收尾
把已完成的几个模块里剩下的问题改掉,然后再开始写 flow。一共三件:
1. 假设专用指标的名字加候选前缀;
2. 消融重做时,实验员从上一次交的代码接着改;
3. 判重问题的说明里补上"关键设定"。
本任务书已由用户和监督者在 2026-10-03 一起确定。下面说的"监督者",是在参考项目目录里和用户讨论设计的另一个会话。
## 开工前先读
- `CLAUDE.md`:全部,尤其是"罕见情况怎么办"、"不设默认值"、"测试"。
- `docs/方法.md`:
- 第五部分"指标":登记、引用、测不到时怎么办;
- 4.3 ⑥:冻结协议包括什么;
- 4.3 ⑨ ⑯:修复、消融重做。
- `docs/结构.md` 第八部分:vocab、materials、submissions、tasks、jev 各节。
- `WORK_LOG.md`:"未完成"里"同一轮两位研究者可能给假设专用指标起同一个编号"那条,以及"给 flow:消融格核验不通过……"那条。
## 一、假设专用指标的名字加候选前缀
**问题**:同一轮里,研究者之间互相看不到提案,会给假设专用指标起同一个名字、定义却不同。两份都会收下,下一轮有人引用这个名字时,程序取第一条定义,悄悄用错。
参考项目的真实账本里出过 5 次,都是同一轮、不同研究者:
- 11-real-1 第 1 轮 min-radius;
- 15-real-1 第 1 轮 lp-polish-gain;
- 15-tight-2 第 2 轮 final-radius-spread 和 last-improve-elapsed;
- 16-real-1 第 2 轮 restart-gain。
监督者核对过 16-real-1 那两条:一条算"重启段内最好 Σr 减进入重启段时的 Σr",另一条算"最终 Σr 减池阶段最好 Σr",是两样东西。
**改法**(用户 2026-10-03 选"冻结时加候选前缀"):
- 研究者在提案、回应、统一里登记新指标时,只写短名。短名恢复"不能含 `.`"这一条,写进 vocab 的字段定义和字段说明。
- 冻结时,冻结协议里新登记的指标改用全名"候选编号.短名",例如 `r2-c1.restart-gain`。候选编号判重合并之后才有,所以只能在冻结时加。
- 冻结之后一律用全名:
- materials 的已登记指标清单、能引用的清单(对号清单的 `reusableMetrics`);
- 研究者引用别人的指标时,`metrics.reused` 写的全名;
- 实验员材料里"要实现的指标定义";候选代码在结果文件里也用全名当键写取值;
- jev 查代码改动时对照的指标。
- 已占用的名字(对号清单的 `takenMetricIds`)只剩最终指标、常规辅助指标、两个保留键。全名都带 `.`,短名不带,两者不可能撞,所以已登记的那些不用再放进来。
- 加前缀只写在一处:在 materials 里,和 `FrozenProtocol` 放在一起写一个函数,输入 submissions 交回的冻结协议主体、候选编号、轮次、基线、合并了哪些原提案,交回 `FrozenProtocol`。flow 写冻结协议时调用它。
- tasks 读结果文件是按指标的 `id` 取值的,传进来的就是全名,按理不用改。改完后用一个带全名指标的测试确认一下。
同一个候选里,新登记的短名和引用的全名不会撞:一个带 `.`,一个不带。
## 二、消融重做从上一次交的代码接着改
用户 2026-10-03 定:消融格没通过核验、退回重做时,实验员从上一次交的这一格代码接着改,和正向修复一样。
举例:格 p2 第一次交上来,核验员说 p3 也被误关了。实验员拿上一次交的那份代码,只把 p3 恢复回来。
- materials 现在写的是"你的工作目录是完整代码的副本",改成"上一次交的这一格代码的副本"。能读的代码版本里加上这一份,完整代码照旧列出,作为对照。
- 重做时消融核验看的改动全文,仍然是"这一格的代码相对完整代码"。这是 flow 传进来的,materials 不用管。
- 删掉 WORK_LOG"给 flow"那条里"实验员从哪份代码出发,方法没写"那半句,改写成:flow 重做时,把上一次这一格的提交取出来当工作目录。
- 方法.md 4.3 ⑯ 由监督者补写,你不用改。
## 三、判重问题的说明补上关键设定
任务书 10 已经把关键设定加进了判重的材料,但问题说明里还写着"每个因子有 `name` 和 `method`"(`src/jev/questions.ts` 第 33 行附近)。补上 `keySettings`,用一句话说明它是什么,其余措辞不动。
问题的指纹会因此变,这是预期中的:Jev 还没有校准过(WORK_LOG"Jev 校准"),没有旧数据需要对得上。
## 四、测试
- **前缀**:
- 同一轮两个候选各登记一个同短名、不同定义的指标,冻结后是两个不同的全名;下一轮的能引用清单里两个都有,各自对应自己的定义;
- 短名带 `.` 时退回;
- 引用写短名而不是全名时退回,退回原因里列出能引用的全名;
- tasks 用全名读结果文件,读得到值。
- **消融重做**:重做材料里写的工作目录是上一次的这一格代码,能读的版本里有它,也有完整代码。
- **判重说明**:jev 的不花钱测试里,问题文字里出现 `keySettings`。
- 改了 jev 的问题文字,跑一次 `npm run test:jev -- jev-latest`,确认判重那一问照常拿回概率。
不另派子 Agent 审阅:这三件都是按已经定好的写法改,范围小。
## 五、规模与文档
- materials 目前 1850 行,正好在上限上。尽量不超;超了就在报告里说明多在哪几处,监督者再和用户商量。
- 完成后更新:
- `docs/结构.md` 第八部分:vocab、materials、jev 各节改了的地方;materials 一节补上加前缀的函数;
- `WORK_LOG.md`:在"已完成"补一条;删掉"未完成"里指标重名那条;按第二部分改写"给 flow"那条。
- 不新建 md 文件。
## 六、验收与报告
做完后本地提交,然后在回复里交一份报告,监督者会对着实际文件逐项核对:
1. 提交号,修改的文件列表,每个文件的行数,materials、submissions、vocab 的总行数。
2. `npm run check`、`npm test` 的完整输出,`npm run test:jev -- jev-latest` 里判重那一问的结果。
3. 一份冻结协议加前缀前后的样子:两个候选登记同一个短名的例子。
4. 你和这份任务书、结构.md、方法.md 不一致的地方,以及为什么。
5. **规则不清楚的地方**:哪里让你犹豫、哪里你是靠猜的。没有就写"没有"。没有真实证据的可能情况,在这里提一句就够,不写进 WORK_LOG。