AI Delivery Workflow

AI 研发交付工作流公开版

这是一份可对外分享的 AI 工作流说明。它不依赖任何特定公司、仓库、工具或内部文档,适合给团队成员、合作方、外部评审者或同行理解:如何把 AI 从“写代码助手”升级成“可验证的研发交付协作者”。

先证据源码、运行态和业务数据优先于猜测。
再实现任务拆清楚,风险分层,低风险交给 AI。
后验收用 PASS / PARTIAL / FAIL 表达真实状态。

阅读索引

这份公开版可以直接发给不了解内部背景的人。HTML 图文版就是当前页面;Markdown 版保留在源稿入口,方便纯文本阅读和复制。

按角色阅读

读者建议章节
研发负责人第 1、2、15 节
开发者第 6、8、9 节
测试 / QA第 10、11 节
产品 / 业务方第 4、14 节
想直接复用的人第 13 节

关键词索引

关键词位置
事实源第 2.2、6 节
第一性原理第 2.5、6.1 节
契约第 7 节
对抗式审查第 2.6、9.1、13 节
验收分层第 10 节
人机分工第 2.1、12 节
复盘闭环第 11 节

1. 这套工作流解决什么问题

很多团队使用 AI 写代码后,会很快遇到同一类问题:

  • AI 能生成代码,但不一定理解真实业务边界。
  • AI 能写测试,但可能只是验证自己刚写出的错误实现。
  • AI 能读接口文档,但接口文档、源码和运行态经常不一致。
  • AI 能快速改动多个文件,但需求范围、数据契约和验收证据容易断链。
  • AI 能说“完成了”,但团队不知道它到底证明了什么。

所以,这套工作流的核心不是“让 AI 更快写代码”,而是把 AI 放进一条可追踪、可验证、可复盘的交付链路里。

一句话概括:

先用第一性原理把需求变成可验证证据,再让 AI 去取证、实现、对抗式验证和复盘。

2. 核心原则

2.1 人负责判断,AI 负责执行和证据整理

AI 适合做:

  • 大范围搜索源码和文档。
  • 梳理调用链、字段、状态机和边界条件。
  • 生成方案、任务拆分、测试用例和交接材料。
  • 按现有代码风格实现低风险改动。
  • 运行测试、收集日志、汇总证据。
  • 把失败沉淀为下一次的防御规则。

人必须负责:

  • 业务目标和范围取舍。
  • 高风险契约确认。
  • 是否接受剩余风险。
  • 真实上线判断。
  • 生产环境、资金链路和数据修复等不可逆操作。

2.2 源码和运行态优先于二手材料

需求文档、接口平台、截图、会议纪要都很重要,但它们通常不是最终事实源。

推荐事实源优先级:

优先级事实源说明
1真实源码和运行态行为最接近系统真实逻辑
2测试环境接口响应、数据库状态、日志能证明当前环境实际发生了什么
3产品需求、设计稿、接口文档说明目标和预期,但可能滞后
4历史实现、参考项目、旧方案可作为入口,不能直接当成目标契约
5聊天记录和口头描述只能作为线索,必须落盘或验证

2.3 实现者不能自证完成

写代码的 AI 或开发者,不应该单独宣布需求通过。

最终判断应来自独立证据:

  • 自动化测试报告。
  • 真实页面截图。
  • 接口请求和响应。
  • 订单号、业务单号或关键业务数据。
  • 配置修改和恢复记录。
  • 独立评审人或测试人员的确认。

2.4 没有证据债隐藏

如果缺少真实数据、缺少业务链路、缺少截图、缺少支付/退款验证、缺少配置恢复,就应该明确标记为部分完成或阻塞,而不是把“测试跑完了”包装成“需求通过了”。

2.5 先回到第一性原理

AI 很容易被相似实现、历史方案、接口文档或局部 bug 带偏。高风险需求进入方案和契约前,要先回到最基本的问题:

  • 这个需求真正要改变的业务事实是什么?
  • 哪些约束不可变,例如金额、身份、状态机、权限、数据归属、回调和补偿?
  • 哪些材料只是线索,不能直接当成最终事实?
  • 当前方案是在修根因,还是只是在修表象?
  • 还缺哪些负责人决策或运行态证据?

第一性原理不是哲学装饰,而是防止 AI “看起来很懂、其实沿着错误类比一路狂奔”的刹车。

2.6 实现后做对抗式审查

实现完成后,不要只问“正常路径是否通过”,还要主动找事故路径。

推荐用红队视角检查:

  • 恶意输入、脏数据、空数据和超大数据。
  • 重复提交、重试风暴、网络超时和并发竞态。
  • 缓存污染、配置缺失、时区异常和精度问题。
  • 多端表现不一致、老版本兼容、灰度和回滚。
  • 订单、支付、退款、回调、补偿等高风险链路乱序。

每个风险都要有归宿:要么已有防御和证据,要么进入测试、自动化场景、人工检查点或剩余风险清单。

3. 总体流程

结构化需求目标、验收标准、风险标记。
事实与原理源码、运行态、不可变约束。
契约与实现字段、状态、兼容、任务边界。
对抗与验收红队风险、证据、下次防御。

需求输入

把模糊想法变成可判断范围。

影响面识别

找出端、服务、数据和工具边界。

源码取证

沿真实链路建立事实依据。

第一性原理

回到基本事实和不可变约束。

契约收口

统一字段、状态、兼容和回滚。

实施计划

拆任务、定顺序、标风险。

代码实现

小步变更,保持可审查。

对抗审查

主动寻找事故路径和验证缺口。

验收验证

用证据判断是否达到目标。

反馈闭环

把失败变成下次防御规则。

这套工作流可以理解为一个“需求到验证”的闭环:

需求输入
→ 影响面识别
→ 源码和运行态取证
→ 第一性原理门禁
→ 契约收口
→ 实施计划
→ 代码实现
→ 对抗式审查
→ 自动化和人工验收
→ 失败复盘和规则沉淀

主流程仍然是八个交付阶段,但多了两道关键门禁:方案前先反推基本事实,验收前主动攻击自己的实现。每一步都要有明确产物:

阶段目标典型产物
需求输入把模糊需求变成可判断范围需求卡、验收标准、风险标记
影响面识别知道要读哪些端、服务、工具和数据影响仓库/模块清单、职责说明
源码取证证明系统现在怎么做源逻辑说明、调用链、字段表
第一性原理门禁从基本事实和不可变约束重新推导方案事实清单、权威来源、不可继承假设、根因判断
契约收口统一接口、状态、数据和边界契约表、缺口清单、待确认问题
实施计划决定先后顺序和风险边界任务清单、依赖关系、回滚方案
代码实现按计划完成可审查改动代码变更、测试、构建结果
对抗式审查从事故路径反推缺口和验证归宿攻击向量、现有防御、补测项、人工检查点
验收验证判断是否真的满足需求测试报告、截图、业务数据、结论
复盘沉淀让下一次更稳经验规则、补测试、补文档

4. 阶段一:需求输入

AI 接到需求时,不应该立刻写代码。第一步是把需求结构化。

需要问清楚:

  • 用户或业务方想解决什么问题?
  • 目标平台是什么:Web、App、小程序、后台、服务端,还是多端?
  • 验收标准是什么?
  • 哪些内容明确不做?
  • 是否涉及订单、支付、权限、登录、配置、报表、通知、风控等高风险域?
  • 最终需要证明到什么程度:单元测试、接口验证、真实用户链路,还是资金闭环?

推荐输出一张需求卡:

requirement:
  title: ""
  background: ""
  target_platforms: []
  acceptance_criteria:
    - id: ac-001
      desc: ""
  out_of_scope: []
  risk_flags: []
  expected_evidence_level: ""
  open_questions: []

5. 阶段二:影响面识别

复杂系统里,一个看起来很小的页面改动,可能牵涉多个端、多个服务和多个数据源。

AI 在动手前要先画地图:

  • 哪些前端页面会展示这个能力?
  • 哪些接口提供数据?
  • 哪些服务负责核心状态?
  • 哪些配置或后台开关影响行为?
  • 哪些测试工具或发布工具只能作为辅助证据?
  • 哪些仓库只是参考实现,不能直接照搬?

关键判断:

类型作用是否能单独证明需求完成
业务实现模块真实承载用户行为和业务逻辑可以,但仍需验收证据
协议或接口定义证明字段和服务间契约不可以,需要实现和运行态确认
测试平台执行测试、汇总报告不可以,需要回链到业务验收标准
发布平台证明构建或部署完成不可以,只证明发布链路
截图工具证明页面在某环境渲染过不可以,需要业务数据和交互证据
历史参考项目提供结构或经验不可以,需要重新确认目标需求契约

6. 阶段三:源码和运行态取证

AI 最有价值的能力之一,是在大代码库中快速建立事实链。

取证时要沿着真实链路走:

页面入口
→ 状态管理 / API 客户端
→ HTTP 或 RPC 接口
→ 服务端入口
→ 领域逻辑
→ 数据库 / 缓存 / 消息
→ 返回字段
→ 页面展示或后续状态

取证输出不要只写结论,要写依据:

内容示例
文件和函数哪个文件、哪个函数、负责什么
字段来源字段从请求、配置、数据库还是下游服务来
分支条件哪些开关、状态、身份会改变行为
边界场景空数据、异常、取消、重复提交、超时
证据缺口哪些只能从源码推断,还没运行验证

6.1 第一性原理门禁

源码取证之后,不要马上写方案。先用第一性原理做一次方案审查,尤其是多端、多仓、订单、支付、权限、配置、发布和数据修复类需求。

这一步要输出:

审查项要回答的问题
基本事实这个需求到底改变哪个业务事实?
不可变约束哪些金额、身份、状态、权限、数据来源不能被简化?
权威来源哪些结论来自源码、运行态、负责人决策或真实数据?
不可继承假设哪些历史实现、接口文档、设计稿或口头描述只能当线索?
根因判断当前方案是在治本,还是只修了最容易看到的表象?
缺口归宿哪些问题必须进入契约、计划、人工确认或阻塞清单?

只有这一步能说清楚,后面的契约和计划才不容易建立在错误假设上。

7. 阶段四:契约收口

契约是 AI 研发里最容易出错的地方。

常见风险:

  • 接口文档写了字段,但源码没有返回。
  • 前端使用了字段,但字段含义没有负责人确认。
  • 参考实现有类似逻辑,但订单类型、金额来源、状态机不同。
  • 服务端新增字段后,下游依赖的客户端包没有发布。
  • 本地构建通过,但测试环境没有部署。

契约收口要回答:

问题需要写清楚
字段叫什么最终字段名、类型、是否必填
字段从哪来DB、配置、下游服务、计算逻辑
谁是权威源码、接口平台、运行态、负责人决策
怎么兼容老端、老接口、缺省值、灰度窗口
怎么验证单测、接口测试、真实链路、截图
怎么回滚配置恢复、代码回滚、数据补偿

8. 阶段五:实施计划

实施计划不是待办列表,而是风险隔离和协作协议。

计划至少包含:

  • 实现顺序。
  • 依赖关系。
  • 哪些任务可以由 AI 独立完成。
  • 哪些任务必须由负责人确认。
  • 哪些操作需要人工批准。
  • 测试命令。
  • 回滚方案。

任务可以分三类:

类型含义
AI 可执行低风险适配、样式、文案、测试、fixture、文档整理
负责人收口金额、订单、支付、权限、核心状态机、数据模型
人工确认生产配置、真实支付、退款、数据修复、不可逆发布

9. 阶段六:代码实现

进入实现阶段后,AI 应遵守几个约束:

  • 复用现有代码风格和架构,不发明一套新抽象。
  • 小步修改,保持代码变更可审查。
  • 不覆盖用户或其他人的未提交改动。
  • 不把无关重构混进需求实现。
  • 涉及高风险逻辑时先停下来确认。
  • 每次实现后补对应测试或解释为什么暂时不能补。

好的实现交付,不只是“代码改了”,还应该包含:

  • 改动摘要。
  • 关键文件。
  • 测试命令和结果。
  • 未验证项。
  • 风险和回滚方式。

9.1 对抗式审查门禁

代码实现后、验收前,要做一次对抗式审查。它不是普通 code review,而是主动假设系统会被异常输入、真实环境和未来维护方式挑战。

每个风险至少写清楚:

内容说明
触发路径用户、接口、任务、配置或数据如何触发问题
当前防御代码、配置、测试或流程里已有哪层保护
缺口哪些异常路径还没有覆盖
可复现方式如何用测试、脚本、页面操作或日志证明
验证归宿进入自动化测试、人工检查点、上线观察还是剩余风险

如果对抗式审查发现高风险缺口,就不能只用本地正常路径测试宣布 PASS。

10. 阶段七:验收验证

L1单元测试函数或组件逻辑正确,例如价格计算、字段转换、按钮状态。
L2契约测试接口字段和固定数据兼容,例如 mock 响应、schema、fixture。
L3真实接口测试服务端或接口链路可用,例如测试环境 API、数据库状态。
L4用户真实链路用户路径到关键业务节点可用,例如登录、选择商品、提交、截图、业务单号。
L5资金或补偿链路真实支付、退款、回调、补偿可控,例如支付单、退款单、对账、人工窗口。

验收要分层,不同证据证明不同范围。

等级证明范围例子
L1 单元测试函数或组件逻辑正确价格计算、字段转换、按钮状态
L2 契约测试接口字段和固定数据兼容mock 响应、schema、fixture
L3 真实接口测试服务端或接口链路可用测试环境 API、数据库状态
L4 用户真实链路用户路径到关键业务节点可用登录、选择商品、提交、截图、业务单号
L5 资金或补偿链路真实支付、退款、回调、补偿可控支付单、退款单、对账、人工窗口

推荐最终结论只用三种:

结论含义
PASS目标验收等级的关键证据齐全
PARTIAL部分通过,但缺少目标等级证据或有剩余风险
FAIL核心验收项失败或无法证明

不要用模糊说法代替结论,例如“基本没问题”“应该可以”“测试都过了”。

11. 阶段八:反馈闭环

AI 工作流真正变强,靠的是失败后能沉淀规则。

每次失败都要问:

  • 是需求没说清,还是 AI 没追到事实源?
  • 是接口契约错了,还是实现错了?
  • 是测试没覆盖,还是自动化流水线误报?
  • 是环境问题,还是发布链路问题?
  • 是否应该补一条自动化测试?
  • 是否应该补一条团队规则或 lesson?

复盘输出可以很短,但必须可执行:

failure_loop:
  symptom: ""
  root_cause: ""
  missed_gate: ""
  fix:
    code: ""
    test: ""
    docs: ""
    workflow_rule: ""
  prevention_next_time: ""

12. 推荐的人机协作方式

12.1 给 AI 的好任务

  • “帮我从页面入口追到服务端字段来源。”
  • “比较接口文档、前端调用和服务端源码的差异。”
  • “把这个需求拆成验收标准和测试数据矩阵。”
  • “按现有风格补一个低风险字段透传,并加单测。”
  • “跑测试并把失败分成环境问题、代码问题、契约问题。”
  • “根据这次 bug 写一条下次能防住的规则。”

12.2 不该直接交给 AI 拍板的任务

  • “直接设计支付状态机。”
  • “直接改生产配置。”
  • “直接写数据修复脚本。”
  • “直接决定这个需求可以上线。”
  • “直接照搬参考项目的订单、金额、回调语义。”
  • “测试跑过了就帮我说 PASS。”

13. 常用提示词模板

新需求启动

这是一个新需求:<需求描述>

请先不要写代码。请先输出:
1. 需求目标和目标平台。
2. 验收标准,给每条标准一个稳定 ID。
3. 可能影响的模块、服务、数据和配置。
4. 风险标记:订单、支付、权限、配置、数据、发布等。
5. 需要补充确认的问题。

源码取证

请只做源码和运行态取证,不修改代码。

从用户入口开始,追踪到接口、服务端、数据来源和返回字段。
输出:调用链、关键文件、关键函数、字段来源、分支条件、证据缺口。
不要只给结论,必须给依据。

契约分析

请比较需求描述、接口文档、前端调用、服务端源码和真实响应。

输出字段契约表:
字段名、类型、来源、是否必填、兼容策略、前端使用点、服务端负责人待确认项、验证方式。
如果事实源冲突,请标出冲突,不要自行猜最终口径。

实现前检查

请在修改代码前做实现前检查:
1. 当前工作区是否有未提交改动。
2. 本次只会修改哪些文件。
3. 哪些属于低风险 AI 可执行任务。
4. 哪些需要负责人或人工确认。
5. 测试命令和回滚方式。

第一性原理审查

请从第一性原理出发审查这个需求或方案。

不要先类比历史实现,先列出:
1. 这个需求的基本事实和不可变约束。
2. 金额、身份、ID 映射、状态机、回调、退款、补偿、配置等关键事实的权威来源。
3. 哪些历史实现、接口文档、设计稿或口头假设不能直接继承。
4. 当前方案是否只修表象,真正的根因和根方案是什么。
5. 仍需负责人决策或运行态取证的问题。

最后给出 pass / partial / blocked 结论。

对抗式审查

请对刚完成的实现做对抗式审查。

请站在恶意用户、脏数据、网络失败、重复提交、缓存污染、时区异常、精度问题、配置缺失、多端不一致、支付或订单回调乱序、部署回滚失败的角度,找出可能导致线上事故的路径。

每个风险都要给出:
- 触发路径
- 当前防御
- 缺口
- 可复现验证方式
- 应进入的测试、自动化场景或人工检查点

最后按 pass / partial / blocked 汇报,不允许用实现者本地测试自证需求 PASS。

验收判断

请按 PASS / PARTIAL / FAIL 验收这个需求。

请逐条核对验收标准、测试结果、截图、接口证据、真实业务数据和剩余风险。
缺少目标证据等级时,不要报 PASS。

失败复盘

这次失败现象是:<现象>

请判断根因属于需求、取证、契约、实现、测试、环境、发布还是流程规则。
请给出需要补的代码、测试、文档和下次防御规则。

14. 对外介绍时可以怎么讲

如果只用 1 分钟介绍:

我的 AI 工作流不是让 AI 直接写代码,而是把需求到上线判断拆成一条证据链。
先结构化需求和验收标准,再让 AI 做源码取证,并用第一性原理审查关键假设。
代码实现之后,不由实现者自己宣布完成,而是用对抗式审查、测试报告、真实链路截图、接口数据和业务单据来判断 PASS、PARTIAL 或 FAIL。
最后把失败回流成测试、文档或规则,让下一次 AI 协作更稳。

如果用 5 分钟介绍:

这套流程保留八个交付阶段:需求输入、影响面识别、源码取证、契约收口、实施计划、代码实现、验收验证、反馈闭环。

中间额外加两道门禁:契约和计划前做第一性原理审查,先回到基本事实、不可变约束和权威来源;实现后、验收前做对抗式审查,主动从异常输入、脏数据、并发、缓存、回调乱序和回滚失败等角度找事故路径。

它解决的是 AI 研发中最常见的断链问题:需求不清、事实源不清、接口契约不清、验证证据不清。

我的做法是让 AI 尽量做它擅长的事情,比如搜索、整理、实现、测试和复盘;人保留业务取舍、高风险判断和最终验收。

最终交付不看 AI 说了什么,而看证据:测试是否通过、真实链路是否跑通、关键接口和业务数据是否存在、配置或数据是否恢复、还有哪些风险没有覆盖。

这让 AI 从“代码生成器”变成了“研发交付协作者”。

15. 最终判断标准

一套 AI 工作流是否有效,不看它写了多少文档,也不看它用了多少工具。

只看七件事:

  • 需求是否能变成可验证的验收标准。
  • AI 的结论是否能追溯到事实源。
  • 方案是否回到基本事实和不可变约束。
  • 代码改动是否小而清晰。
  • 实现是否经过对抗式审查。
  • 验收是否有独立证据。
  • 失败是否能让下一次更不容易失败。

如果这七件事成立,AI 就不只是提高编码速度,而是在提高交付确定性。