过程记录
正式运行之前做过哪些试点和自检,中途改过什么、为什么改,按时间排(北京时间)。试点和自检的产出都不进评审,日志照样公开。
- 检查运行环境
清点各参赛 skill 自带的脚本,确认本机的 python3(3.14)和 node(26)能用,没装 matplotlib 之类的第三方库。沙箱里不能联网,装不了包,所以 skill 的脚本只能用标准库跑。正式运行里没有哪次因为缺库报错。
- 沙箱自检 1:围栏拦不拦得住
用便宜的 claude-haiku-5-5,在一个假的工作目录里让 agent 逐条试:读运行者的主目录、读别的参赛者的目录、读上一级目录、联网、在工作目录外写文件,全部被拦;python3、node 能跑,工作目录里能写。用 Read 工具读别的参赛者的文件也被拒。它开的子 agent 试同样的命令,结果一样。
证据:沙箱自检 1
- 试点 1:固定回复问得太宽,停掉
对照组和漫剧老李各试跑一次。当时的固定回复是「如果要我选,就选第 1 个……别的要我定的,按你推荐的来」。漫剧老李开场一次问了赛道、素材来源、画风等好几道选择题,这句回复会让它每道题都选第 1 个,而本意只是在故事方案里挑。1 分半钟后停掉两个试点,把回复收窄成「如果要我在几个题材或故事方案里选,就选第 n 个……其他要我定的,都按你推荐的来」。
- 试点 2:cd 之后写不了文件
用改好的回复重跑这两个。对照组顺利写完。漫剧老李先用 cd 进了 skill 的目录,之后写当前目录的文件被拒:允许写入的规则当时用的是相对路径,会跟着 cd 走。一条 for 循环命令也被拒:在无人值守模式下,沙箱的自动放行不管这类复合命令。它只好把三份稿子贴在回复里,下一轮才写成文件。两个试点的产出都不用,正式运行全部重跑。
- 正式运行第 1 批
11 个参赛组的第 1 次运行同时开始,固定回复让 agent 选第 1 个方案。最慢的一个 14:08 写完。
证据:本记录的运行列表
- 正式运行第 2 批;发现长输出文件读不到
11 个参赛组的第 2 次运行开始,选第 2 个方案,14:12 全部写完。同一时间发现:工具返回太长时,Claude Code 会把全文存进主目录下的一个文件,让 agent 再去读,而权限规则和沙箱都不让读主目录。这是规则的副作用,没有为它开口子,每个参赛者条件相同。整轮被拦下的调用列在评审体检页。
证据:本记录的评审体检
- 正式运行第 3 批
11 个参赛组的第 3 次运行开始,选第 3 个方案,14:41 全部写完。
- 认交付、匿名打包、抽故事卡
认出每次运行里哪个文件是人物小传、分集大纲、剧本,人工核对。33 份稿子各拆成三份匿名稿,随机三位编号,抹掉 skill 名、仓库名和作者名。然后每份抽一张故事卡。
- 盲比:人物大纲那一项格式报错,修好后重跑
剧本 60 场顺利比完。人物大纲第一场就报错:小传和大纲两张评分表都有「新意」,合起来的输出格式里出现两个同名维度,Claude Code 拒绝这个格式,一场都没判成。合并成一个「新意」后,14:46 重跑人物大纲 60 场,14:49 比完。剧本那 60 场的提示词不受影响,保留。
证据:judge.py
- 故事分组(Opus)
33 张故事卡分成 21 种故事类型。当时各行排进提示词的顺序没有固定,也没存下来,所以这次的提示词只能确定内容、确定不了顺序。后来 GPT 复核时改成按编号排序后用固定种子打乱,谁都能重建。
证据:本记录的故事卡页
- 写逐个点评
揭晓出处后,先让模型按判决记录给每个参赛者写摘要。对照组那段摘要把对手稿子里的台词算到了对照组头上,改成手写,引文逐条对过对照组自己的稿子。
证据:review.md
- 结果发布
产出、问答记录、故事卡、分组和全部判决推到 GitHub,网站随之更新。
- 公开原始日志
33 次正式运行、4 个试点和 5 次自检的原始日志用 clean_logs.py 清理后公开:去掉本机路径、用户名、额度用量和 Claude Code 的内部记录,其余原样保留。