终审台挂着别人的质检报告:修完代码 bug 还在,真正的 bug 在我这

AI 工作日志 作者头像野生码农 阅读 6 min
返回板块 GEO 源码全文 ✓
终审台挂着别人的质检报告:修完代码 bug 还在,真正的 bug 在我这

终审台挂着别人的质检报告:修完代码 bug 还在,真正的 bug 在我这

8 月 29 日上午,我打开 IPMS 终审台验收团队#15 的稿子,质检报告栏里躺着的却是另一篇文章的判卷——《91 分的文章,CSDN 不认:我把 AI 写作技能又磨了一刀》的。标题 Top5 也是空的。

IPMS 是我自己的内容生产管理系统,FastAPI 后端加 Vue 前端,终审台是稿子发布前我签字的地方。签字页给我看别人家的质检报告,这字没法签。

根因:一行 glob,扫了公共目录

军师(AI 总架构师)两分钟定位到 review.py 的 _find_qc_report:

QC_REPORT_PATTERNS = ("质监报告*.md", "质监*.md", "zhijian*.md", "品控*.md", "*qc_report*.md")

它扫两个目录:篇目专属的 fabu 目录,和母稿所在目录。问题在所有母稿都住同一个 notes/AI工作/blog/ 公共目录,glob 按文件名排序取第一个命中——任何自己没有报告的篇目,都会错拿别人的报告。blog/ 里恰好躺着《91 分》那篇的 质监报告_2026-08-26-直出与产线文风AB.md。

修法一句话:公共目录里,报告文件名必须含本篇目母稿的主干(去日期前缀的 slug),匹配不上就返回 null——宁可缺报,不许错报。

第二个 bug:Top5 不是没产,是没人登记

Top5 空了更好玩。产线 run 目录里 yinliu_meta.md 明明产出了完整的 5 条标题备选(推荐稿 90 分),但落库钩子 hook_chugao.py 只登记了母稿,没登记 meta。title_top5 这件 asset 按老设计要等"组包"阶段才登记,终审台在"母稿成"阶段自然什么都看不到。

修法:钩子落库时从母稿 front matter 里解析 run id(run: yinliu_lite_kaohe_20260828_235455),找到 run 目录的 meta,复用组包同一套解析口径提前登记,和组包正式登记幂等不冲突。改完对团队#15 实跑补登,数据库先备份再动(ip.db.bak-top5-20260829-081548)。

测试 56 加到 63,全绿。

反转:我说"没修好",错的是我

验收完我汇报"修好了"。本人回:张冠李戴还在。

第一反应是修复逻辑有漏。再查,代码和测试都没问题——是后端服务没重启。uvicorn 没带 --reload,进程(PID 12244)还跑着改前的旧代码。改代码不等于生效,这么基本的道理,在"测试全绿"的踏实感里被我们俩一起漏掉了。

重启,直连真实库验证:团队#15 质检报告正确返回"无报告"(这篇确实没有自己的判卷文件,缺报如实显示),Top5 五条正常。这才算修完。

分工账

这次修复的人机分工值得记一笔:本人报 bug 时带了一句话,"改 bug 让代理去干,分析问题,军师你自己来"。执行落地:军师定位根因+定修复口径+写验收标准,两个 coder 子代理先后接单(报告归属校验、Top5 落库链路),军师复核代码、跑测试、直连真实库验证,最后收口。军师没写一行业务代码,但每个修复口径都是它定的。

三条能带走的

  1. 共享目录扫描必须带归属校验。按文件名模式匹配公共目录,匹配条件里没有"这篇目是谁"的,迟早张冠李戴。宁可缺报,不许错报。
  2. 测试全绿 ≠ 线上生效。改的是代码,跑的是进程。修复闭环的最后一步是重启服务+真实环境验证,不是 pytest 全绿。
  3. "内容已产出"和"系统看得见"之间隔着一条登记链路。排障先分清是没生产、没登记、还是没展示——三个环节的修法完全不同,这次 Top5 就是典型的"产了没登记"。

素材点

  • "签字页给我看别人家的质检报告,这字没法签"——终审台错配开场钩子;
  • glob 扫公共目录张冠李戴:一行代码引发的血案,程序员读者秒懂;
  • "修完代码 bug 还在,真正的 bug 在我这":测试全绿但服务没重启的反转,自嘲型传播点;
  • Top5"产了没登记":内容生产系统的经典断链,排查三段论(没生产/没登记/没展示)可直接做成清单图;
  • "改 bug 让代理去干,分析问题军师自己来":本人人机分工原话,数字员工团队协作的实证口径。
野生码农头像

关于作者 · 野生码农

把 AI 真放进生产环境的独立开发者。自研本地知识库、数字员工团队、软考备考系统、量化交易四套系统,全程公开复盘。

看他的平台账号 →
相关

继续阅读