谁发现的
用户半夜收到提醒,反馈回来才知道。不是我的检查发现的。
公开版 · 业务细节已泛化,部分例子已改写
一个后台开发三个月用 AI 写真实需求的复盘 · 厉辉 yousa
开始前
AI 写完、测试跑通,就算完成了
让 AI 自己 review 自己,就够了
常听到的两种说法。答案留到最后。
我是怎么用的
每格一天,颜色越深,当天会话越多
互动 · 一次资源池扩容推算(已改写)
「你怎么知道是上次扩容的呢?」— 我当时的追问
AI 原话大意。一个前提是猜的,后面整串推算都是猜的。做法:让它给每个数字标出处,标不出的当假设。
只讲这一个问题
能 → 交给 AI 循环,
跑到检查通过。
不能 → 人拍板,
或者变成能检查的。
人定义「对」,AI 跑到「对」。
循环长什么样 · 示意
方块是一次改动,红标是缺陷。闸门拦下的落到这里
| 闸门(数字均为示意) | 跑了几轮 | 漏到已合入 |
|---|---|---|
| 测试 + 审查 | — | — |
| 只有测试 | — | — |
| 只有审查 | — | — |
| 没有闸门 | — | — |
地图 · 这三个月 · 示意
能检查的
9 月初 · AI 报告「某个条件下列表会空白,影响面很大」,准备修。这段逻辑我自己验过是好的。
「这是一个非常具体的 bug 吗?可以在单测里复现出来吗?」
「bug 的原因到底是什么,能不能用两三句话跟我讲清楚?」
后来写进流程规则(9 月底):
每个修复先写能复现问题的测试,再改代码
这两句新人第一天就能问。
问出来的,就是你的价值。
但检查本身靠得住吗
8 月底 · 端到端验证 · 这个接口通了吗?
HTTP 200
retCode = 0
列表:[]
日志:请求打到对端
日志:对端返回 401
日志:服务静默降级成空列表
假绿10 月初 · 审查 AI 被理由说服
需求只写了时间范围,AI 自己加了条数上限。审查 AI 看了设计文档里的理由,反而建议给上限加告警。
后来加的「反向追溯」:
也会漏 · 定时提醒半夜推送
这个定时任务是 AI 写、我合进去的。注释看着很笃定,AI CR 也没发现。
过了零点,当天的「已完成」标记过期,已完成的人也被提醒
用户半夜收到提醒,反馈回来才知道。不是我的检查发现的。
这个任务当时没有灰度,一上线就是全量;当时运行时长没有监控。
串行读改批量。
所以
| 合入前 | 有 AI CR,但它不一定能发现问题;再加只读 AI 审查 + 提交前范围检查。合入是我点的。 |
| 上线前 | 测试验收 + 灰度 + 留回滚窗口。 |
| 上线后 | 运行时长监控 当时缺,提醒就漏在这 |
三个月里能从会话查到 7 件事:6 件拦在合入或上线前,1 件漏到线上。
每漏一次,补一道检查 · 9 月底 → 10 月初
「这个模块不是我负责的。我这次的修改应该只局限于我要修改的范围。」
9 月底,AI 顺手改了别的模块的一个时间戳比较。十天后做成「改动范围审计」skill。
auditing-change-scope/SKILL.md 摘录
这样的 skill,三个月写了七个
互动 · 一个通知类需求(已改写)
需求原文
新增通知文案:必填,长度有上限
一次批量操作时,依次提到本次涉及的人 + 文案
AI 梳理需求时列出的 4 项(点选你认为是推断的)
AI 没偷偷做进去,而是列成待定项让我拍板:「同一批次一条」,提到人数不设上限。不列出来,它就会按某个默认值做进去。
需求也能变成检查
| # | 行为 | 出处 |
|---|---|---|
| B6 | 文字超长时报错 | 原文写了长度上限;我确认 D5 |
| B22 | 一条通知提到的人数不设上限 | 我确认 D3 |
| Q12 | 防刷、去重、重试、告警、兜底 | 加法:原文没要求,默认不做 |
双盲:两个互相看不见的 AI,只读需求原文,各自列出「没定死、读法不同做出来就不同」的地方。
合并规则:两份选得一样也照列,一致只说明两个模型想到一块去了。
有一次:两个 AI 都选「关闭时不清理数据」。
「关闭时,确实需要清理数据,否则会有问题。」
我定的 D4 · 两个 AI 一致,人推翻了
变不成检查的
意图 · 10 月底
客户端问:入口接口没返回这一项,还要不要调详情?AI 从代码看不出来:详情只在用户点了按钮或弹窗后才调。代码里读不出来的意图,要人补进文档。
回退 · 9 月初 · 同一个问题,答案取决于能不能回退
「尽量少改、不要删,我们只需要新增。加一个 v2 切到新的逻辑上,这样更可控一点。」
「不用考虑太多兼容性,多考虑长期的可维护性。」
D4 我能推翻,是因为我知道不清理数据会出问题。新人不知道的时候,你的活就是把这一项问出来。
回到开场
AI 写完、测试跑通,就算完成了
0 人举手
回包 200 也可能是假绿
不看它说的,看日志和实测。
让 AI 自己 review 自己,就够了
0 人举手
审查 AI 会被理由说服,两个 AI 一致也会错
我也用 AI 审查,但结论要对上需求原文、已有代码或真实运行。合入是我点的。
带走
「定义对」AI 拿不走。新人的价值就是问清楚、写下来。
最后
这一步的「对」,
机器能不能自己检查?
需求原文 — 让它把推断列出来,问清楚再做
已有代码 — 不是你的模块,这次不改
真实运行 — 不看回包,看日志和实测
AI 让「写出来」几乎免费,贵的是「什么算对」。
附录 · 讲后翻看 · 这页是立正的提炼,不是本场原创
一、先把 AI 放到一边
这项工作交付的到底是什么?以数据分析为例:
SQLDashboard模型
产品是更好的决策
所以先看决策变没变。分析快了十倍,组织还是不知道下一步做什么,那只是更快地生产了中间品。
认清产品,才分得清哪些做法来自事情本身,哪些只是在补偿当年的限制。
二、每套 best practice 背后,都藏着一张当时的价格表
约束一消失,围绕它的做法就要重新证明自己。
和本次的连接:AI 让「写出来」几乎免费,贵的是「什么算对」。
出处:立正《到底什么才算 AI Native 人才?》2026-08-13;一次性软件案例来自鸭哥(Yan Wang)。
附录 · 讲后翻看 · 观点来自立正和鸭哥,右栏才是本场的东西
从过程确定性到结果确定性
double-check → cross-check
先删除,再自动化
减法要人来做
More agents ≠ more intelligence
一个判断,一条主线,一个 owner
管理 AI 是一次晋升
专家最难的是 unlearn
出处:立正《到底什么才算 AI Native 人才?》《如何识别与消灭 fake work》《More agents 不等于 more intelligence》,2026-08;结果确定性、管理 AI 两条的原文作者是鸭哥。「四条」是转述时的归纳。