练习册扩展|需求分流与自动交付
本扩展配合以下内容使用:
它不替代主练习册,而是为“业务反馈进入团队 Skill 仓库、Agent 修改代码并经过 MR / CI / 发布”的场景补充一组工程化模板。
建议把本扩展用于真实影子运行、受控试点或第二团队复用。使用真实需求时,不要把客户信息、凭证、完整内部代码、生产日志或未授权文档复制到公开作品集。
扩展任务总览
| 模板 | 使用时机 | 主要决定 |
|---|---|---|
| 需求契约卡 | 接收需求后 | 信息是否足以进入分流 |
| 复杂度与车道分流卡 | 分析需求时 | 快车道 / 探索车道 / 暂停 |
| 探索车道决策记录 | 出现新对象、权限或迁移时 | 选择哪种方案,为什么 |
| 自动交付任务状态表 | 系统设计和运行时 | 每个状态如何进入、退出和恢复 |
| 人—AI—系统责任矩阵 | 工作流设计时 | 谁提供事实、判断、执行和负责 |
| MR 与质量检查 | 产生代码变更前后 | 是否允许进入测试和发布 |
| 失败事件卡 | Review、测试或发布失败时 | 根因、修复和回归样本 |
| 运行指标表 | 每周或每个版本复盘 | 是否产生净价值,瓶颈在哪里 |
| 第二维护者复用测试 | 资产化前 | 能力是否脱离原作者 |
| 版本发布与退役记录 | 发布、升级或停止时 | 谁维护、何时回滚或退役 |
需求契约卡
**使用时机:**一条需求第一次进入多维表或任务系统时。
基础信息
| 字段 | 填写 |
|---|---|
| Request ID | |
| 提交人 | |
| 业务 Owner | |
| 提交日期 | |
| 期望时间 | |
| 关联文档、截图或案例 | |
| 目标仓库或系统 |
业务任务
| 字段 | 填写 |
|---|---|
| 用户或角色 | |
| 触发事件 | |
| 当前要完成的任务 | |
| 当前行为 | |
| 可观察问题 | |
| 业务影响 | |
| 目标行为 | |
| 明确非目标 |
输入、输出与验收
| 项目 | 填写 |
|---|---|
| 必需输入 | |
| 可选输入 | |
| 输入样例 | |
| 期望输出 | |
| 输出样例 | |
| 正常验收 | |
| 边界验收 | |
| 不可接受行为 | |
| 回滚或停止条件 |
权限与风险
| 检查 | 是 / 否 / 未知 | 说明 |
|---|---|---|
| 读取敏感或个人数据 | ||
| 修改共享数据 | ||
| 删除或覆盖内容 | ||
| 对外发送消息 | ||
| 改变角色权限 | ||
| 需要历史迁移 | ||
| 产生不可逆动作 | ||
| 需要新的审批责任 |
**完成判断:**另一名 Reviewer 能够在不询问“你到底想做什么”的情况下,解释目标行为、非目标、至少一个验收样例和主要风险。信息不足时,输出具体问题,不用一个总分代替缺口。
复杂度与车道分流卡
**使用时机:**需求契约形成后、生成正式代码前。
分流检查
| 判断项 | 否:偏向快车道 | 是:偏向探索车道 | 当前证据 |
|---|---|---|---|
| 是否引入新的业务对象 | 使用现有对象 | 需要定义新对象 | |
| 是否改变对象关系 | 沿用已有关系 | 新增依赖、一对多或多对多 | |
| 是否改变生命周期 | 局部状态不变 | 新增发布、安装、升级、退役 | |
| 是否跨多个模块或仓库 | 单模块局部改动 | 多仓库、多服务或多团队 | |
| 是否改变数据结构 | 无迁移、可兼容 | Schema 变化或历史迁移 | |
| 是否改变权限 | 沿用现有权限 | 新角色、新写入或跨租户权限 | |
| 是否改变用户主流程 | 局部字段或页面 | 多角色路径和责任变化 | |
| 是否有多个合理方案 | 已有模式可复用 | 方案尚未取舍 | |
| 验收是否确定 | 可以自动断言 | 依赖产品或业务判断 | |
| 回滚是否简单 | 局部可逆 | 共享状态或不可逆影响 |
分流决定
| 字段 | 填写 |
|---|---|
| 车道 | 快车道 / 探索车道 / 暂停 / 拒绝 |
| 决定理由 | |
| 决定人及责任身份 | |
| 必须补齐的条件 | |
| 下一状态 | |
| 复审日期 |
快车道最低条件
- [ ] 业务对象和术语已存在;
- [ ] 目标行为和非目标明确;
- [ ] 影响范围可以列出;
- [ ] 至少有正常、边界和失败验收;
- [ ] 权限不扩大或已经批准;
- [ ] 有自动化测试方法;
- [ ] 可以回滚;
- [ ] 有明确 Reviewer。
**完成判断:**分流理由来自对象、关系、权限、迁移、验收和回滚,不来自“感觉需求简单”或“模型应该可以”。
探索车道决策记录
**使用时机:**需求涉及新业务对象、Package、发布单元、权限、迁移或多种架构方案时。
决策主题
| 字段 | 填写 |
|---|---|
| Decision ID | |
| 关联 Request ID | |
| 要决定的问题 | |
| 为什么现在必须决定 | |
| 若不决定会阻塞什么 | |
| 参与角色 | 业务 / 产品 / 技术 / 数据 / 安全 / 运维 |
业务对象草案
| 对象 | 定义 | 关键属性 | 关系 | 生命周期 | Owner |
|---|---|---|---|---|---|
方案比较
| 方案 | 核心做法 | 优点 | 缺点 | 数据影响 | 权限影响 | 迁移与回滚 | 适用条件 |
|---|---|---|---|---|---|---|---|
| A | |||||||
| B | |||||||
| C |
决定
| 字段 | 填写 |
|---|---|
| 选择方案 | |
| 选择理由 | |
| 被拒绝方案及原因 | |
| 不变量 | 任何实现都不能破坏的规则 |
| 待验证假设 | |
| 子任务拆分 | |
| 测试计划 | |
| 决定人和日期 |
Skill Package 示例追问
- Package 是目录、发布单元、依赖包还是安装单元?
- Skill 与 Package 是一对一、一对多还是多对多?
- 谁拥有版本?依赖和兼容怎样声明?
- 发布、安装、更新、回滚、卸载分别以什么为单位?
- 删除 Package 时 Skill 如何处理?
- 现有 Skill 怎样迁移?
- 哪些角色能创建、发布、安装或删除?
- 搜索、详情、API 和统计如何变化?
- 哪些行为必须保持向后兼容?
**完成判断:**最终代码任务能够引用一个被确认的对象模型和 Decision Record,而不是要求 Agent 自己选择产品语义。
自动交付任务状态表
**使用时机:**设计任务编排、恢复和状态展示时。
| 状态 | 进入条件 | AI / Skill 动作 | 人工动作 | 允许的下一状态 | 超时或异常 | 必留记录 |
|---|---|---|---|---|---|---|
submitted | 需求写入入口 | 读取并建立任务 | 无 | analyzing | 无法读取则 blocked | 原始输入、提交人 |
analyzing | 任务可读 | 提取目标、缺口、影响 | 必要时审阅 | needs_information / ready_for_implementation / blocked | 分析失败有限重试 | 分析版本、证据 |
needs_information | 关键信息不足 | 生成具体问题 | 提交人补充 | analyzing / cancelled | 超时提醒或暂停 | 问题、回答、时间 |
ready_for_implementation | 满足分流条件 | 准备计划 | Reviewer 确认范围 | coding / blocked | 新风险出现则停止 | 分流决定、验收 |
coding | 分支和权限准备完成 | 修改代码、补测试 | 必要时作架构决定 | waiting_for_review | 工具失败转 blocked | commit、工具调用 |
waiting_for_review | MR 已创建 | AI 辅助检查 | Reviewer 审核 | changes_requested / testing / rejected | 超时提醒 | MR、意见、责任人 |
changes_requested | 审核不通过 | 根据意见修复 | 判断是否需要回到探索车道 | waiting_for_review / blocked | 超过轮次阈值复审 | 每轮差异和原因 |
testing | Review 通过 | 分析失败、尝试低风险修复 | 处理业务或环境异常 | staging / changes_requested / blocked | 测试环境不可用 | CI、测试版本 |
staging | 自动化检查通过 | 汇总观察项 | 业务和发布 Owner 验收 | deployed / changes_requested / cancelled | 观察失败回退 | 环境版本、验收 |
deployed | 生产状态已确认 | 生成发布记录 | 发布 Owner 关闭任务 | 结束 / 事件处理 | 线上问题进入事件卡 | 版本、凭据、监控 |
unknown | 外部动作结果不确定 | 查询状态,不创建新意图 | 人工协调 | 原状态 / blocked | 禁止盲目重试 | 请求 ID、查询结果 |
状态不变量
- [ ] 没有业务事实时,不从
analyzing进入coding; - [ ] 没有通过 Review 时,不进入测试和发布;
- [ ]
changes_requested保留原任务和 MR; - [ ]
unknown状态禁止创建新的部署或写入意图; - [ ] 任何高风险自动动作都有幂等键、审计和恢复方式;
- [ ] 取消、拒绝和暂停是有效终点,不伪装成系统失败。
人—AI—系统责任矩阵
**使用时机:**工作流评审和上线前责任检查。
| 环节 | 业务提交人 | 业务 Owner | AI / Skill | 技术 Reviewer | 确定性系统 | 发布 / 风险 Owner |
|---|---|---|---|---|---|---|
| 提供事实 | R | A | 识别缺口 | C | 保存输入 | I |
| 分流 | C | C | 建议 | A/R | 保存决定 | C |
| 方案设计 | C | A | 生成选项 | A/R | 保存记录 | C |
| 编码 | I | I | R | A | 分支和权限 | I |
| Review | I | C | 辅助 | A/R | MR 与检查 | C |
| 测试 | C | C | 辅助归因 | A | CI / 环境 | C |
| 发布 | I | A | 生成摘要 | C | 部署和回滚 | A/R |
| 事故处理 | I | C | 辅助诊断 | R | 监控和恢复 | A |
说明:
R:执行;A:最终负责;C:参与咨询;I:知情。
**完成判断:**每个副作用和阶段决定都有一个最终责任人;“项目组”“Agent”或“大家确认”不能作为 A。
MR 与质量检查
**使用时机:**从代码生成进入 Review、测试和发布时。
需求检查
- [ ] MR 引用 Request ID 和需求契约;
- [ ] 目标行为和非目标没有改变;
- [ ] 新对象或关系已经拥有 Decision Record;
- [ ] 影响模块与迁移范围已经列出;
- [ ] 验收示例可以定位到测试或人工检查。
代码检查
- [ ] 遵守仓库架构和代码规范;
- [ ] 接口、Schema 和兼容变化明确;
- [ ] 权限范围没有隐式扩大;
- [ ] 副作用有幂等、错误语义和回滚;
- [ ] 没有写入凭证、敏感数据或无关日志;
- [ ] AI 生成部分经过人工 Review。
测试检查
- [ ] 单元测试;
- [ ] 集成或契约测试;
- [ ] 正常样例;
- [ ] 边界样例;
- [ ] 失败与权限样例;
- [ ] 历史回归;
- [ ] 迁移和回滚测试;
- [ ] 测试版本与待发布版本一致。
发布检查
| 检查项 | 阈值或条件 | 当前结果 | 决定 | 负责人 |
|---|---|---|---|---|
| 需求契约 | 无未决阻塞项 | |||
| Review | 必需 Reviewer 通过 | |||
| 核心测试 | 100% 通过 | |||
| 高风险测试 | 100% 通过 | |||
| 新增严重失败 | 0 | |||
| 测试环境验收 | 业务行为符合预期 | |||
| 回滚准备 | 已验证 | |||
| 监控与观察 | Owner 和窗口明确 |
**完成判断:**AI Review、人工 Review、确定性测试和业务验收分别留下证据;不能用一个“综合通过”掩盖哪一层没有发生。
失败事件卡
**使用时机:**需求被拒绝、MR 多次返工、测试失败、部署未知、上线回滚或权限事件发生时。
| 字段 | 填写 |
|---|---|
| Event ID | |
| 关联 Request / MR / 版本 | |
| 发生时间 | |
| 发现方式 | |
| 失败类型 | REQ-MISSING / REQ-MODEL / IMPACT-MISS / CODE-DEFECT / CONTRACT-BREAK / TEST-FAIL / REVIEW-REJECT / DEPLOY-UNKNOWN / PRODUCTION-ROLLBACK |
| 严重度 | Critical / Major / Minor |
| 直接现象 | |
| 业务影响 | |
| 技术影响 | |
| 是否产生副作用 | |
| 遏制措施 | |
| 恢复结果 |
根因分析
| 层级 | 问题 |
|---|---|
| 需求 | 哪个事实、对象或验收没有说明? |
| 流程 | 哪项检查或责任没有落实? |
| 系统 | 哪个状态、工具或权限允许了错误? |
| 评估 | 为什么现有样本和测试没有发现? |
| 组织 | 为什么问题依赖某个人才能处理? |
行动项
| 行动 | 类型 | Owner | 截止 | 可验证终点 | 回归样本 |
|---|---|---|---|---|---|
| 代码 / 流程 / 文档 / 权限 / 测试 / 培训 |
**完成判断:**事件卡不以“模型不稳定”或“人员疏忽”结束。至少有一个系统性修复和一个回归样本;Owner 与验证终点明确。
运行指标表
**使用时机:**每周、每月或一个版本周期复盘。
需求与分流
| 指标 | 定义 | 本期 | 上期 | 分组 | 解释 |
|---|---|---|---|---|---|
| 首轮信息完整率 | 无需追问即可分流的需求 / 全部需求 | 需求类型 | |||
| 信息补充率 | 进入 needs_information 的比例 | 提交人 / 类型 | |||
| 快车道占比 | 进入自动实施的比例 | 类型 | |||
| 探索车道占比 | 需要建模和 Decision Record 的比例 | 类型 | |||
| 暂停或拒绝率 | 因价值、权限、风险停止的比例 | 原因 |
交付质量
| 指标 | 定义 | 本期 | 上期 | 分组 | 解释 |
|---|---|---|---|---|---|
| 首次 MR 通过率 | 首个 MR 无实质修改通过 | 类型 / Skill | |||
| 平均修复轮数 | 审核通过前的返工次数 | 类型 | |||
| 自动化测试通过率 | 首次进入测试即通过 | 模块 | |||
| 高风险失败数 | 权限、数据、重复副作用等 | 严重度 | |||
| 上线回滚率 | 部署后回滚 / 部署数 | 类型 |
周期与负担
| 指标 | 定义 | 本期 | 上期 | 分组 | 解释 |
|---|---|---|---|---|---|
| 提交到首次 MR | 需求提交至可审核 MR | 类型 | |||
| 提交到上线 | 端到端交付时间 | 类型 | |||
| 提交人补充时间 | 补充事实和验收的时间 | 提交人 | |||
| 维护者人工介入 | 判断、修改、陪跑和异常处理 | 环节 | |||
| CI / 环境等待 | 非人工等待时间 | 环节 | |||
| 单需求运行成本 | 模型、执行器和环境成本 | 类型 |
采用与复用
| 指标 | 定义 | 本期 | 上期 | 解释 |
|---|---|---|---|---|
| 完整流程提交人 | 至少完成一条上线或有效终止 | |||
| 重复提交人 | 多次独立完成流程 | |||
| 第二维护者成功率 | 非原作者处理成功的需求比例 | |||
| 原作者介入时间 | 第二维护者 / 团队复用时的支持 | |||
| 复用后新增依赖 | 资产包未说明的依赖数量 |
分组要求
至少按以下类型分组,不报告一个混合平均数:
- 局部字段和配置;
- Bug 修复;
- 已有模式内的新 Skill;
- 新业务对象或产品概念;
- 权限和数据迁移;
- 多仓库或多团队改造。
**完成判断:**指标可以解释瓶颈在哪一层,并能支持继续、缩小、调整分流或暂停的决定。不要把“代码生成时间下降”直接写成总体 ROI。
第二维护者复用测试
**使用时机:**准备把个人维护流程转成组织资产时。
测试设计
| 字段 | 填写 |
|---|---|
| 测试人 | 不能是原作者 |
| 测试需求 | 至少一条快车道、一条边界、一条应进入探索车道 |
| 可使用资产 | 文档、模板、测试环境、Skill 和工具 |
| 禁止帮助 | 原作者不得提前口头解释未写入资产的规则 |
| 支持渠道 | 记录问题后统一响应 |
| 完成标准 | 正确分流、产生可审核产物、解释失败和状态 |
运行记录
| 需求 | 分流是否正确 | 是否独立完成 | 原作者介入 | 未说明依赖 | 错误与恢复 | 结论 |
|---|---|---|---|---|---|---|
复用判断
- [ ] 第二维护者能解释快车道边界;
- [ ] 能识别新业务对象并停止自动编码;
- [ ] 能从 Review 或测试失败的 checkpoint 恢复;
- [ ] 能找到版本、Owner 和升级说明;
- [ ] 能运行核心回归;
- [ ] 能处理或升级
unknown状态; - [ ] 原作者介入被记录,而不是隐藏;
- [ ] 场景未准备好时能正确阻塞,而不是强行跑通。
**完成判断:**最终跑通不等于复用通过。若原作者全程指导,结论应是“专家服务帮助完成”,不是“组织资产已经复制”。
版本发布与退役记录
**使用时机:**Skill、分流规则、状态机、工具或发布流程发生版本变化时。
版本记录
| 字段 | 填写 |
|---|---|
| 资产或 Skill | |
| 版本 | |
| Owner | |
| 变更内容 | |
| 变更原因 | |
| 影响范围 | |
| 兼容性 | |
| 数据或权限变化 | |
| 必跑回归集 | |
| 发布检查结果 | |
| 回滚版本 | |
| 观察窗口 |
退役判断
| 问题 | 是 / 否 | 证据 |
|---|---|---|
| 任务是否仍然高频存在 | ||
| 是否有真实用户重复使用 | ||
| 是否有 Owner 持续维护 | ||
| 数据和权限是否仍可获得 | ||
| 净人工负担是否可接受 | ||
| 是否被更简单的规则或产品替代 | ||
| 是否存在长期未修复的高风险 | ||
| 第二团队是否仍依赖该资产 |
退役动作
- [ ] 停止新任务进入;
- [ ] 通知使用者与 Owner;
- [ ] 撤销工具、凭证和环境权限;
- [ ] 处理未完成和
unknown任务; - [ ] 归档必要日志和 Decision Record;
- [ ] 删除不应长期保留的数据;
- [ ] 保留失败、评估和退役原因;
- [ ] 更新替代流程或人工 SOP。
**完成判断:**组织知道该资产在什么版本、由谁负责、为何继续或停止,以及停止后怎样处理权限、数据和未完成状态。
建议的最小实践任务
选择三条脱敏真实需求:
- 一条已有对象上的局部字段或配置修改;
- 一条需要补充信息的边界需求;
- 一条引入新业务对象、关系或权限的复杂需求。
完成:
- 填写需求契约;
- 完成复杂度分流;
- 为复杂需求形成决策记录;
- 记录自动交付任务状态;
- 执行 MR 与质量检查;
- 至少保留一张失败事件卡;
- 形成第一期运行指标;
- 由第二名维护者执行复用测试。
最终作品不以“全部上线”为优秀标准。正确暂停复杂需求、识别缺失对象、阻止错误权限扩张,并把失败变成回归样本,同样是有效的 AI Native Builder 证据。