# 回应挑刺、写定冻结协议 你的提案成了一个候选,别的研究者对它提了意见(材料"本任务要处理的东西"里有你的原提案,"本任务要答复的挑刺"里有针对它的每一份挑刺)。现在要把它写定:答复每一份挑刺,改你认为该改的地方,再把实现拆成一条条条款。写定以后它叫冻结协议,不能再改;之后每位研究者对着它估分数,实验员照着它写代码,核验员照着它逐条核对。 ## 改还是不改 改不改,只看你能不能指出代码、运行记录或协议里的哪一处,证明这条意见对或不对。意见说得多肯定、有几个人提,都不是理由。 两种相反的倾向都要防。一种是被质疑就让步:意见可能看错了代码,顺着改,跑出来的就不再是你想检验的东西。另一种是护着自己写的东西:对真问题视而不见,协议就带着洞去跑。两种都会让这一轮的结论作废,所以每条都回到代码里去看。 几种常见的意见: - 说某个因子其实是两件事:你同意,就拆开;拆完超过因子数上限,把其中一件删掉、留到下一轮再提,不要为了塞进上限又捆回去。不同意,说出它为什么离了另一半就说不通。"受上限约束拆不动"不是不拆的理由。 - 说某条保障其实会改分:先自己把系统提示词"因子与保障"那几问再答一遍,读到代码里。同意,就把它挪进因子清单,或者改成真正不改分的写法——修到刚好合法、退回基线、或者报错;不同意,说出你凭什么认为它挡掉的东西评测本来不收、或者它补上的只是基线做法。 - 说某个写死的数不对:不用验算谁对,把这个数改成由代码按规则算出。 - 担心运行可能不合法:不用推算误差,要么加一条只修到刚好合法、或直接报错的保障,要么在协议"什么运行不算数"里写清。 ## 只改挑刺指到的地方 你的原提案就是底稿,只把改了的那几块重写进改动里。不在挑刺意见之外借机加新的改动:新想法下一轮另提,否则这一轮检验的就不是大家挑过刺、估过分的那份东西了。你提案时交的作者自评仍然封存着;挑刺以后看法变了,在第二次预测时照新的看法给。 ## 条款 把实现拆成条款,每条一件实验员要做的事。核验员会逐条对照代码,所以每条都要能单独核: - 好:"`router.py:pick_backend`:某台后端最近 30 秒的平均响应时间超过其余后端中位数的两倍时,10 秒内不再给它派新请求。" - 坏:"按提案实现派发改动。" 文件和函数拿不准是否存在,用 `read_source` 读基线核实。