
最近一段时间,我们越来越明显地感受到:AI 已经把写代码这件事变快了。
以前,一个研发需要花半天完成的接口、测试或者重构,现在借助 Codex、Claude Code 等工具,可能一两个小时就能形成初稿。
但代码生成速度提高以后,新的问题也开始出现:PR 数量变多了,Review 队列变长了;代码大部分看起来都正确,但评审者很难快速确认边界;测试和维护成本不断向后转移;最后,团队并没有因为写得更快,就一定交付得更快。
所以,AI Coding 的落地不能只等于给研发采购一个工具。真正需要做的是,重新设计从任务定义、代码生成、自动检查、人工评审到灰度上线的整条研发流水线。
结合小团队、多系统维护和高并发核心链路的实际场景,我建议用 30 天补齐下面五道质量闸门。
01任务定义闸门:先让 AI 证明自己理解了任务
AI 最容易在需求不清楚时,生成一份“看起来完整”的错误答案。
因此,不能只给 AI 一句话,例如“帮我优化一下这个接口”。每一个交给 AI 的任务,都应该先补齐一张标准任务卡。
01业务目标
为什么要做这次修改?它解决的是哪个业务问题?
02预期结果
上线后哪些指标、系统行为或用户体验会发生变化?
03影响范围
涉及哪些服务、模块、接口、数据表和外部依赖?
04禁止修改
哪些核心链路、文件、字段语义或兼容逻辑不能动?
05验收标准
满足哪些明确条件,才算任务真正完成?
06异常场景
超时、空数据、重复请求、依赖失败和回滚如何处理?
建议:任务卡未补齐时,AI 只允许做影响分析,不允许直接修改代码。
推荐的执行顺序是:先让 AI 输出影响分析,不立即修改代码;人确认范围后,再让 AI 生成实现计划;计划确认后才允许动手;完成后必须逐条对照验收标准。
02改动范围闸门:一个 PR 只解决一个主要问题
Coding Agent 很容易在完成需求的同时,顺手重构周边代码,把一个小需求扩大成不可控改动。
因此,需要给 AI 设置明确的改动边界。
这里不建议机械地用代码行数作为唯一标准。真正的判断标准是:一个熟悉模块的人,能否在 20—30 分钟内理解这次改动的主要逻辑和风险。
03自动验证闸门:机器能查的问题,不要再让人重复查
AI 写完代码以后,不应该直接进入人工 Review。
先把机器可以稳定发现的问题,全部放进 CI。人工评审应该把精力放在业务规则、系统边界和高风险决策上。

A. 基础工程检查|每个 PR 必须通过
01单元测试
go test ./...
02并发竞态检测
go test -race ./...
03Go 静态检查
go vet ./...
04代码规范与 Lint
golangci-lint run
B. 核心业务专项检查|按改动风险选择
01接口兼容性回归
核对接口字段语义、OpenRTB 协议和上下游兼容逻辑。
02超时与降级测试
模拟依赖超时、失败和限流,确认降级、熔断与告警可以生效。
03数据库变更检查
检查 DDL、索引、锁表风险、回滚 SQL 与历史数据兼容。
04利润与计费回归
对比修改前后的关键样本,确认计费口径、利润和结算结果一致。
05核心链路基准测试
比较吞吐量、P95/P99、CPU、内存与 goroutine 等关键指标。
06敏感信息与 Secret 扫描
检查密钥、Token、生产地址、设备标识和日志中的敏感字段。
合并原则:基础命令全部通过;命中高风险目录或业务规则时,对应专项检查必须完成。
04风险分级评审闸门:把高级研发留给高风险问题
AI 时代不能要求所有 PR 都由资深研发逐行评审,否则高级研发很快会变成人肉审核机器。
更合理的方式,是按照改动风险分级。
代码行数很少,不代表风险很低。一个日志字段修改可能几乎没有风险;一个竞价条件判断只改三行,却可能影响收入;一个限流器并发问题,也可能导致整个服务崩溃。
可以通过 CODEOWNERS 自动把不同目录的变更分配给对应负责人。
高风险目录责任表
通过 CODEOWNERS 自动把变更分配给对应负责人。
01竞价核心
目录:/internal/bid/
负责人:@adx-core-team
02利润计算
目录:/internal/profit/
负责人:@adx-core-team
03结算链路
目录:/internal/settlement/
负责人:@adx-core-team
04数据库迁移
目录:/migrations/
负责人:@backend-team · @data-team
05部署配置
目录:/deploy/
负责人:@ops-team
05上线验证闸门:通过 Review,不代表工作已经结束
AI 生成代码通过 Review 之后,还需要补齐上线后的验证。
对于 L2 以上的 AI 辅助改动,建议设置至少 24 小时观察期。
06给 AI 建立项目说明书,让经验不再重复丢失
上述五道闸门要真正持续运行,仓库里还需要一份 AI 可以读取的项目说明书。
建议在仓库根目录建立 AGENTS.md,并让 CLAUDE.md、Copilot 指令等规则尽量引用同一套事实源。
01项目结构
• cmd/:服务启动入口
• internal/bid/:核心竞价逻辑
• internal/profit/:利润计算
• internal/report/:数据上报
• migrations/:数据库变更
02必须执行
• 运行全部单元测试
• 运行 race 竞态检测
• 运行 golangci-lint
03禁止事项
• 未经明确要求,不修改竞价、计费和利润核心逻辑
• 不改变已有接口字段语义
• 不顺带重构需求范围之外的模块
• 不在代码中写入密钥和生产地址
04完成标准
• 所有测试通过
• 新增逻辑包含测试
• 说明影响范围和异常场景
• 提供灰度与回滚建议
同类 Review 问题连续出现两次,就应写回 AGENTS.md,避免团队重复纠错。
团队每次人工 Review 连续两次发现同类问题,就把它写回规则。
例如,AI 总是忽略超时处理、创建无边界 goroutine、Redis 异常时没有降级、修改协议字段时破坏兼容性,或者把设备敏感信息输出到日志。
这样,Review 意见才会从一次性的人工纠错,变成团队能够持续复用的工程能力。
07不要统计 AI 写了多少代码,要看这 8 个结果指标
AI Coding 最容易被统计的是代码行数、PR 数量、Token 消耗和使用人数。
但这些数据只能证明工具被使用了,不能证明研发交付真正变快。
0830 天实施计划:先跑通一个仓库,再逐步扩展

试点仓库的目标可以先定得简单一些:交付周期缩短 20%,Review 等待时间下降 30%,线上缺陷率和回滚率不能高于原有基线。
只有在一个仓库里证明“更快且不更差”,才值得逐步扩展到更多系统。
写在最后
AI Coding 的成熟标志,不是团队写出了更多代码。
真正重要的是,在不增加风险、不扩大返工、不拖垮 Review 的前提下,团队能不能更快地交付业务结果。
对于技术负责人来说,下一步不应该只是继续采购更强的模型,而是把 AI 生成能力接入一套能够定义任务、限制边界、自动验证、按风险评审和持续观察的工程系统。
当任务更清晰、改动更可控、机器先完成基础检查、高风险问题被正确分配、上线结果可以持续验证时,AI 才会从“代码生成器”,真正变成团队稳定的生产力。
最小可执行文件清单
AGENTS.md
CLAUDE.md
.github/pull_request_template.md
.github/CODEOWNERS
.github/workflows/quality-gate.yml
docs/ai-coding/risk-levels.md
docs/ai-coding/review-checklist.md
docs/ai-coding/release-observation.md