过程记录

正式运行之前做过哪些试点和自检,中途改过什么、为什么改,按时间排(北京时间)。试点和自检的产出都不进评审,日志照样公开。

  1. 检查运行环境

    清点各参赛 skill 自带的脚本,确认本机的 python3(3.14)和 node(26)能用,没装 matplotlib 之类的第三方库。沙箱里不能联网,装不了包,所以 skill 的脚本只能用标准库跑。正式运行里没有哪次因为缺库报错。

  2. 沙箱自检 1:围栏拦不拦得住

    用便宜的 claude-haiku-5-5,在一个假的工作目录里让 agent 逐条试:读运行者的主目录、读别的参赛者的目录、读上一级目录、联网、在工作目录外写文件,全部被拦;python3、node 能跑,工作目录里能写。用 Read 工具读别的参赛者的文件也被拒。它开的子 agent 试同样的命令,结果一样。

    证据:沙箱自检 1

  3. 试点 1:固定回复问得太宽,停掉

    对照组和漫剧老李各试跑一次。当时的固定回复是「如果要我选,就选第 1 个……别的要我定的,按你推荐的来」。漫剧老李开场一次问了赛道、素材来源、画风等好几道选择题,这句回复会让它每道题都选第 1 个,而本意只是在故事方案里挑。1 分半钟后停掉两个试点,把回复收窄成「如果要我在几个题材或故事方案里选,就选第 n 个……其他要我定的,都按你推荐的来」。

    证据:试点 1 · 对照组(不装 skill) · 试点 1 · manju-laoli-skill

  4. 试点 2:cd 之后写不了文件

    用改好的回复重跑这两个。对照组顺利写完。漫剧老李先用 cd 进了 skill 的目录,之后写当前目录的文件被拒:允许写入的规则当时用的是相对路径,会跟着 cd 走。一条 for 循环命令也被拒:在无人值守模式下,沙箱的自动放行不管这类复合命令。它只好把三份稿子贴在回复里,下一轮才写成文件。两个试点的产出都不用,正式运行全部重跑。

    证据:试点 2 · 对照组(不装 skill) · 试点 2 · manju-laoli-skill

  5. 沙箱自检 2–5:修权限

    自检 2 复现了问题:cd 之后写入被拒,for 循环被拒。自检 3 把写入规则改成绝对路径,cd 之后也能写了。自检 4 确认 for 循环仍被拒,而沙箱照样拦着往 skill 目录里写。自检 5 改成直接放行 Bash、同时关掉「沙箱外运行」(allowUnsandboxedCommands = false):for 循环能跑了,读主目录、联网、在工作目录外写文件依然被拦。这一次 agent 拒绝了「关掉沙箱再跑」和「读别的参赛者目录」两步,没去试。

    证据:沙箱自检 2 · 沙箱自检 3 · 沙箱自检 4 · 沙箱自检 5 · run.py

  6. 正式运行第 1 批

    11 个参赛组的第 1 次运行同时开始,固定回复让 agent 选第 1 个方案。最慢的一个 14:08 写完。

    证据:本记录的运行列表

  7. 正式运行第 2 批;发现长输出文件读不到

    11 个参赛组的第 2 次运行开始,选第 2 个方案,14:12 全部写完。同一时间发现:工具返回太长时,Claude Code 会把全文存进主目录下的一个文件,让 agent 再去读,而权限规则和沙箱都不让读主目录。这是规则的副作用,没有为它开口子,每个参赛者条件相同。整轮被拦下的调用列在评审体检页。

    证据:本记录的评审体检

  8. 正式运行第 3 批

    11 个参赛组的第 3 次运行开始,选第 3 个方案,14:41 全部写完。

  9. 认交付、匿名打包、抽故事卡

    认出每次运行里哪个文件是人物小传、分集大纲、剧本,人工核对。33 份稿子各拆成三份匿名稿,随机三位编号,抹掉 skill 名、仓库名和作者名。然后每份抽一张故事卡。

    证据:deliverables.toml · judge.py

  10. 盲比:人物大纲那一项格式报错,修好后重跑

    剧本 60 场顺利比完。人物大纲第一场就报错:小传和大纲两张评分表都有「新意」,合起来的输出格式里出现两个同名维度,Claude Code 拒绝这个格式,一场都没判成。合并成一个「新意」后,14:46 重跑人物大纲 60 场,14:49 比完。剧本那 60 场的提示词不受影响,保留。

    证据:judge.py

  11. 故事分组(Opus)

    33 张故事卡分成 21 种故事类型。当时各行排进提示词的顺序没有固定,也没存下来,所以这次的提示词只能确定内容、确定不了顺序。后来 GPT 复核时改成按编号排序后用固定种子打乱,谁都能重建。

    证据:本记录的故事卡页

  12. 写逐个点评

    揭晓出处后,先让模型按判决记录给每个参赛者写摘要。对照组那段摘要把对手稿子里的台词算到了对照组头上,改成手写,引文逐条对过对照组自己的稿子。

    证据:review.md

  13. 结果发布

    产出、问答记录、故事卡、分组和全部判决推到 GitHub,网站随之更新。

  14. GPT 复核

    换 GPT(gpt-6-astra,经 Codex CLI)把 33 张卡重新分组、120 场盲比重判一遍,提示词和输出格式和 Opus 一字不差;Codex 没有单独的系统提示参数,系统提示放在提示词最前面。为了不读进运行者本机的个人指令,Codex 用一个只链接了登录凭据的干净配置目录。复核不改主结果,两位评审结论不同的对子标「有争议」。

    证据:本记录的评审体检 · judge.py

  15. 公开原始日志

    33 次正式运行、4 个试点和 5 次自检的原始日志用 clean_logs.py 清理后公开:去掉本机路径、用户名、额度用量和 Claude Code 的内部记录,其余原样保留。

    证据:clean_logs.py