记录 01七个版本推倒重来:错的不是工具,是做法
记录 01 / 2026-10-30
七个版本推倒重来:错的不是工具,是做法
一天做了七个版本,七个都被推倒重来。从 HTML 出 PDF 的工具一次都没出错——正因为它不出错,错误才积得这么快。
01 发生了什么
- 我把"流程"只理解成了出图的机制:切页、渲染、查溢出,几分钟转一圈。可是"这页放什么、为什么"没有任何一道关口在把守,而且每次都七页一起做完再拿去看。一个判断错,七页同时错;工具越快,错得越快。
- 按字面执行,不确认意图。对方说"出规则",我造了十二条规则,又为了守这些规则把更好的素材换掉;说"定稿",我就把文字逐字落成条目;没有合适素材的页也放上数字表、方框流程图——事先明明说过"没有就空着"。这些都是同一件事:从没问过"读的人在这页要带走什么"。
- 文字是每收到一条指摘就补一句堆出来的,页与页的衔接从未整体重写。对数字的谨慎原样漏进了版面,每页都挂着灰色的但书。再加上三方都在产出——本人、我、另一个 AI——没有人对最终版负责,版本越来越多而不是越来越好。
02 人的修正
- 固定顺序,每一步只给一样东西看:对方的骨架 → 连贯的文字 → 删减(只留最后一页会回收的)→ 一页或一张图定方向 → 再做其余。工具的检查只做下限:不溢出、字不过小、不在每页挂但书;不设"每页必须有图"这类上限。没有素材的页空着写"未定"。
- 动手前先确认:谁读、读几分钟、希望用一句话带走什么;"好"的参照不是形容词,是两三张实物;素材哪些可用、哪些禁用、哪些可以空着;以及谁拍板最终版。执行任何一句话之前,先把这些问题放在前面。
根据課題選考デッキ v3〜v7 の作業記録(非公開)process · design · communication
记录 02 / 2026-09-26 / J-Grad Admission RAG
不再让 AI 反复跑腿,把资料一次备齐只交一遍
「在职的人报这个专攻,要不要交英语成绩?」——回答这一个问题,页面要等 30 秒,然后显示「超时」。
01 发生了什么
- 最初的做法是把一个问题拆成几个小问题,每个小问题单独去问一次 AI,回复再用模板拼起来。像让一个人为一件事反复跑腿,每一趟都在累加等待。
- 分段计时后看清:理解问题那一步成功了,写回答那一步撞上了外部服务的时限。
- 把时限调长,只是让失败来得晚一点。
02 人的修正
- 改了顺序。理解一次问题之后,查资料、按学校范围过滤、核对规则这些能确定的事,全部由手边的程序做完,把找到的根据打成一个包交给 AI,让它只写一次。同样的问题再来,直接给上次的答案。
- 每个问题最多问 AI 两次。变快的不是 AI,是求助 AI 的次数。
根据Issue #171 ↗Issue #180 ↗ADR 0006 ↗RAG · latency · design
记录 03 / 2026-09-25 / J-Grad Admission RAG
检查加得越多,对的回答反而被拦下
「信息工学系英语满分 100 分,面试采用线上形式」——前半资料里有,后半没有。这个回答通过了我们全部的检查。
01 发生了什么
- 为了不让 AI 说资料里没有的话,我在验收条件里写了:"回答里任何无根据的说法,程序都必须能找出来"。
- 第一版查字面是否一致,第二版逐词核对意思。每发现一个反例就加一条规则,结果「最高可得 100 分」这种正确的改写也被拦下。
- 第三版开始解析句子的主语和宾语时,我意识到:我已经说不清这个检查在做什么了。自动测试一直是绿的。
02 人的修正
- 撤回了这个方向。"有没有资格""要交什么"这类判断,由程序按人审核过的规则回答,AI 只负责把结果写成文章,并且在界面上标明是"参考"。
- 此后的规矩:反例是找原因的线索,不直接变成新规则。还有一条:我自己解释不了的机制,测试全绿也不上线。
根据PR #176 ↗PR #178 ↗PR #179 ↗LLM · review · scope
记录 04 / 2026-10-24
禁令堆成的指令,换来了审计报告式的回复
"三次执行授权已用完,没有第四次的授权。未知用量整额占额仍保留。"——读完也看不出 AI 懂了什么。
01 发生了什么
- 原因是我自己写的指令:只有禁令和术语定义,没有一行写这件事是为了什么。
- AI 会镜像指令的文体。禁令越多,"〜不视为〜"式的自我辩护越多。
- 加上深挖需求的工具也没用。问题不在需求,在没写目的。
02 人的修正
- 指令开头改成三句话:为了什么、谁在用、做成什么算结束。禁令只留不可逆的操作。
- 第二天同一个 AI 的复述:"我理解你要的是:对照日本 AI 岗位要求和你已有的成果,找出技术缺口,写成简报,交付后就停。"
根据COLLABORATION.md(内部)agents · prompting
记录 05 / 2026-09-28 / J-Grad Admission RAG
"不知道"不能当成"不用"
一个没填"是否在职"的人,系统回答「不需要提交在职证明」。正确的回答是「请先确认是否在职」。
01 发生了什么
- 大多数程序把判断做成"是/否"两种,没填就算"否"。于是"在职者需提交"这条规则,对没填的人就被读成了"不用交"。
- 出愿现场最怕的就是这种错:被告知"不用交"的学生,不会再去确认。
- 接入东京大学资料时,发现了一处这样的错。
02 人的修正
- 判定一律三种结果:符合、不适用、信息不足。信息不足时,告诉用户缺的是什么。
- 这套三态判定只写一份,两所大学的条件判定都用它。不按学校各做一套,是为了同一个错不用修两遍。
根据PR #215 ↗ADR 0012 ↗rules · design · safety
记录 06 / 2026-10-01 / J-Grad Admission RAG
我成了传话员
把负责开发的 AI 的摘要贴给负责设计的 AI,再把回复贴回去。回过神来,我只是在来回搬运小修改,没有在看做出了什么。
01 发生了什么
- 每加一份材料,同样的内容要在界面、报告、来源说明三个地方各写一遍。写的地方越多,总有一处会过期。
- 我变成传话员,是因为一直在"一个问题一个回复"地细碎往返,没有在阶段节点上把成果合起来看。
- 加一份材料的工作,被抄写填满了,而不是被判断填满。
02 人的修正
- 改了两件事。问题一次列完,修改在阶段结束时作为一整套成果收下;界面、报告、配置都从一份人确认过的整理表自动生成。
- 没有前后工时对比,所以不说"快了几成"。能说的是:同一件事在五个地方写五遍的活没了,我看的只剩内容对不对。
根据PR #277 ↗PR #289 ↗ADR 0017 ↗agents · process
记录 07 / 2026-09-27 / J-Grad Admission RAG
接第二所学校时,第一所学校的知识从代码里冒了出来
什么都没输入,程序却"找出"了 25 个东京科学大学的学院名。知识不是来自 PDF,是来自代码。
01 发生了什么
- 按第一所学校的资料写的代码里,嵌着"第 7 页是共通事项""2027 年度的条款""这个学院叫这个名字"这类知识。只有一所学校时,没人会发现。
- 把东京大学的资料走同一套代码,东京科学大学的页码划分和学院名就直接混进来。
- 这不能证明自动抽名词、抽关系的方法行不通,这是写法的问题。但它提醒了一件事:第一所学校上跑对的东西,第二所学校上未必对。
02 人的修正
- 旧代码挂上"仅限第一所学校"的标签隔离起来,别的学校不能走它。新学校的知识只能从人审核过的片段和关系进入。
- 此后加学校时的检查清单多了一条:上一所学校的知识,有没有藏在代码的某处。
根据PR #208 ↗ADR 0011 ↗data · multi-school · testing
记录 08 / 2026-09-01 / J-Grad Admission RAG
招牌是"带页码",一半以上却说不出哪一页
第一次读入真实的募集要项,抽出来的事实有一半以上说不出"来自哪一页"。测试全部通过。
01 发生了什么
- AI 写的代码先把 PDF 的页码信息丢掉转成文本,之后再在正文里找"Page N"字样往回猜。
- 没有标题的段落没有这个字样,页码就丢了。测试用的是带标题的合成数据,所以这条路径一次都没走过。
- 发现的方式很朴素:在真实 PDF 生成的结果里,数"页码:空"有多少条。
02 人的修正
- 页码在读 PDF 的那一刻就贴到每个段落上,一路带到最后,不再从显示文本倒推。
- 此后每个阶段的第一个节点都是"用真实 PDF 端到端跑一遍"。合成数据上通过,只算开始。
根据Issue #3 ↗PR #10 ↗RAG · data · testing
记录 09 / 2026-09-14 / J-Grad Admission RAG
测试全部通过。只属于数学系的例外,被标成了"全校通用"
「数学系的英语成绩另有规定」这一句,被登记成了"全校通用"的规则。旁边那一句有测试,那句确实是全校通用。
01 发生了什么
- 给资料里每一句话标"适用于谁"的处理,把大章节的标题放在前面,系别名称放在后面看。
- 这类错发生在检索和回答之前。"适用于谁"一旦标错,后面的出处和引用看起来全对,却把别的系的规则套到了这个学生身上。
- 测试只保护了当时想修的那一句。
02 人的修正
- 能判成"全校通用"的,只限资料结构上真正处于共通位置的段落。不对特定句子或词语做特殊处理。
- 从同一份真实 PDF 里,把相邻的正例和反例一起加进测试。修一句的时候,顺手确认旁边那句。
根据PR #108 ↗RAG · testing · scope
记录 10 / 2026-10-24 / J-Grad Admission RAG
README 里的数字,找不到出处
公开页面上写的检索成绩,和仓库里保存的唯一一份结果文件的数字,对不上。
01 发生了什么
- 发现的是另一个 AI。它读公开仓库时,自己从保存文件重算了成绩,报告"对不上"。
- 全仓库搜下来,公开页面上的数字只存在于文字里,结果文件只保存过一次。
- 大概是某次在不入库的工作目录里试跑的数字,只留在了文字里。
02 人的修正
- 三处数字改成保存文件里的值,数字旁写明"何时、多少题、用哪份数据测的",旧文档留一行更正记录。
- 此后公开的数字必须绑到保存的记录。没有记录的数字,哪怕记得,也不写。
根据PR #300 ↗保存レポート ↗evaluation · honesty
记录 11 / 2026-09-26 / J-Grad Admission RAG
同样的索引,已经在 5 个地方
每次开始验收,都要等七分钟左右:它在重建资料索引。可索引早就该建好了。
01 发生了什么
- "读取索引"和"构建索引"写在同一个函数里,读不到存放位置就判定"不存在",然后重建。
- 之前报了一次权限错误,AI 的解决办法是新开一个工作目录。结果索引也整套重建了一遍。
- 盘点下来,内容完全相同的索引在 5 个目录各有一份。
02 人的修正
- 写下三条规矩:功能侧只读使用已有数据;重建、复制、下载每次单独批准;没有权限不等于数据不存在。
- "造之前先盘点已有的",成了我审查时固定会看的一项。
根据Issue #183 ↗PR #184 ↗data · ownership
记录 12 / 2026-10-24 / Japanese Speaking Coach
语法全对。但对这个人问这个问题,不对劲
对着一位日本同事,应用建议反问「来日本多久了?」。格式、语法、礼貌程度,检查全部通过。
01 发生了什么
- 同在一处却问「你那边怎么样?」;对方先说了「お疲れさまです」,回复却没接。每一句语法都对,礼貌等级也对。
- 自动检查满分。生成端的 AI 自带的"自己确认"步骤一次都没拦住。
- 发现的是单独准备的审查员 AI。它站在对方的立场读,连续两轮提了同一个问题。
02 人的修正
- 回复规则加了一条:反问和寒暄,站在对方立场上也要成立。然后重新跑了一轮确认。
- 审查员也是 AI,可能有同样的疏漏。最终判断放在日语母语者的确认上,这一步还没做。
根据status.md ↗D-005 ↗evaluation · LLM-as-judge
记录 13 / 2026-09-27 / J-Grad Admission RAG
没有结论的实验,就按没有结论来收尾
试用新 PDF 解析工具的对比实验,处理的页数超出预算两倍多。中途几次中断重跑,已经分不清哪个结果属于哪次运行。
01 发生了什么
- 实验设计里预先定了页数预算和合格标准。预算是为了防止"跑到出结果为止"。
- 中途出过"作为备选采用"的方案,差点成了结论。另一个配置卡住时,又想说"这个工具慢"。
- 两者证据都不够。卡住的原因在我们自己写的监控程序上。
02 人的修正
- 不为了让结果好看而重跑,按"不采用"收尾。所有运行记录保留,写明哪些没有验证。
- 超出预算的实验,数字再好也不成立。这一条当作实验开始前的约定。
根据Issue #177 ↗ADR 0009 ↗evaluation · decision