ACDL研发流程附录A:术语和对象关系

ACDL研发流程系列第13篇,共15篇。

上一篇:ACDL研发流程12:不同工作从哪里开始、在哪里结束

下一篇:ACDL研发流程附录B:登记表、状态和常用命令

这份附录怎样使用

正文按一次研发工作的自然顺序介绍ACDL,本附录按概念查找。遇到一个缩写、编号或状态不知道属于哪里时,先在这里确认它回答什么问题,再到附录B查实际登记入口。

ACDL中的对象不是越多越好。每份文档或记录只回答一个主要问题:ISSUE保存问题去向,REQ保存为什么改变产品,设计保存系统应该怎样工作,Loop保存一轮实际工作,版本保存最终交付结果。能够在当前会话内完成的小事,不需要为了填满这张关系图制造全部对象。

ACDL和两类参与者

名称 全称或中文含义 在当前项目中的作用
ACDL Agent Collaborative Development Lifecycle;Agent协同研发体系 当前项目根据自身研发现场定制的完整研发体系,覆盖问题、需求、设计、实施、验证、反馈和版本
Director 对方向和结果负责的人 提出和筛选问题,参与设计,决定取舍与授权,确认Loop结论和正式版本
Agent 在明确目标与边界内工作的智能体 调查、设计、实施、测试、发布、记录证据或开展独立评审

Director不是一个传统管理岗位。一个人在不同时间可以同时承担产品、架构、开发、测试、发布和验收职责,但涉及取舍、授权和最终接受时,仍以Director身份作出决定。

Agent也不是单一代码生成器。它可以主导ACL中的实施,也可以在没有参与被评内容实施时主导ERL。Agent承担的工作越多,越需要从仓库文档和固定提交中取得上下文,不能只依赖当前聊天记录。

一项变化涉及的主要对象

1
2
3
4
5
6
7
8
9
10
真实问题、反馈,或者实际代码、测试与环境中发现的问题
→需要跨会话继续处理时登记ISSUE
→确认需要改变产品时登记REQ
→修改负责当前事实的系统、能力或横切设计,必要时建立ADR
→为长期重要规则分配稳定设计要求编号
→设计确认后确定目标版本
→按当前目的启动ACL、DFL或ERL
→各轮记录实际结果并分别结束
→Director选择实际纳入范围
→正式版本和Git标签

这不是每项工作的必经清单。已经明确的产品变化可以直接登记REQ;恢复Accepted设计的缺陷可以从ISSUE或ACL开始;DFL和ERL可以单独启动;一轮Loop结束后也可以不立即形成正式版本。

问题、需求和路线图

对象 编号或名称 回答的问题 不负责什么
ISSUE ISSUE-六位编号 发现了什么问题,现在处于什么状态,由什么继续处理 不提前决定一定要改变产品,也不复制完整实施证据
GitHub Issue GitHub中的#数字 怎样接收反馈、讨论和在看板中展示进展 不替代本地ISSUE身份和状态
REQ REQ-六位编号 为什么改变产品,希望得到什么结果,何时实际交付 不规定接口、数据表和代码方案
路线图 RM-三位编号 多个候选REQ之间怎样排序,有什么依赖和开始条件 不重复定义需求,也不提前承诺版本范围

ISSUE和REQ最容易混淆。判断方法是:如果仍在调查发生了什么,或者只是让实现重新符合已经确认的设计,使用ISSUE;如果已经确认要改变用户行为、业务规则、权限、安全、数据边界或正式支持范围,使用REQ。

REQ-000001PRD-001也不是同一种编号。REQ追踪一次产品变化,稳定设计要求追踪系统需要长期保持的一条规则。一项REQ可以产生多条稳定设计要求,一条旧要求也可能被后续REQ修改。

当前设计、ADR和稳定设计要求

对象 文件或编号形式 保存什么
系统设计 SYS-三位编号-标题.md 产品定位、总体范围、核心进程、存储和外部边界
能力设计 CAP-三位编号-标题.md 一项能力的用户行为、对象、状态、流程、失败,以及对应数据、接口、事务、恢复、代码和测试入口
横切设计 CRS-三位编号-标题.md 多个能力共同遵守的安全、数据、接口、审计、观测、部署和恢复规则
ADR ADR-四位编号-决定名称.md 重要决定的背景、备选方案、选择理由和代价
索引与追踪 IDX-三位编号-标题.md 设计地图、旧编号迁移和要求验证关系,不定义新的设计规则
稳定设计要求 PRD-*DOM-*ARCH-*SEC-* 需要长期保持、追踪和验证的单条规则

设计类别按事实职责划分,不要求每个REQ新建一组文档。先找到真正负责当前事实的设计,再检查相关共同规则是否需要同步。旧PLAT / DOMAIN / MODULE只用于历史追溯。

ADR解释为什么选择某个重要方案,最终决定仍要进入受影响的系统、能力或横切设计。推翻Accepted ADR时建立新的ADR,并让旧记录进入Superseded

稳定设计要求的前缀表达规则性质,不等同于所在文档目录:

前缀 表达的规则
PRD- 平台级产品范围、用户承诺、核心规则和结果指标
DOM- 领域行为、用户流程、对象状态和验收结果
ARCH- 跨进程、数据、接口、部署、迁移和恢复约束
SEC- 身份、凭据、隔离、网络、审计和数据安全约束

目标版本、Loop和三种Loop

目标版本为准备组织的交付分配版本号,并在版本总览中建立记录。它在设计确认、REQ准备排期时形成,但此时还没有承诺最终纳入全部候选内容。正式版本要等验收完成并创建真实Git标签后才存在。

Loop是一轮有明确准备、执行、证据和结论的工作单元,不是Agent在一个Prompt中反复思考的内部循环。

Loop 全称 主导者 主要结果
ACL Agentic Coding Loop Agent 把Accepted设计变成代码、测试和可以评审的实施结果
DFL Developer Feedback Loop Director 在真实角色、界面、数据和环境中完成任务并记录反馈
ERL Engineering Review Loop 独立Agent 对固定提交、差异范围或Git标签开展独立工程评审;局部发现先留在本轮记录,需要继续处理时再进入ISSUE、REQ或ACL

三种Loop彼此独立,不是开发、测试、验收三个串行阶段。ACL可以单独结束,DFL可以检查运行已久的功能,ERL也可以单独评审一个关键模块。是否成为某个正式版本的证据,由版本验收时的实际选择决定。

启动方案、独立计划和实施记录

对象 回答的问题 通常放在哪里
启动方案 这一轮准备为什么做、从哪里开始、做什么、不做什么、怎样验证和结束 对应Loop主记录的开头
独立计划 哪些工作需要在执行前单独批准高风险、恢复或评审边界 确实需要单独确认时建立,不按Loop类型机械创建
实施或评审记录 实际做了什么,发生了哪些失败、差异、验证和剩余问题 对应ACL、DFL或ERL目录
当前摘要 当前做到哪里、什么已完成、什么阻塞、下一步是什么 正在执行的Loop记录

计划写将要发生的事,记录写已经发生的事。执行过程改变时,在记录中追加变化原因,不把原方案悄悄改成最后结果。

环境、目标版本和正式版本的区别

对象 回答的问题
环境记录 某个环境现在运行什么提交、制品和配置,怎样恢复
目标版本 目前准备组织哪一次候选交付
正式版本 哪些变化已经验收,哪个Git标签固定了结果

环境中已经部署不表示Loop结束,也不表示正式版本形成。正式版本形成后,也不表示它已经部署到所有环境。一个环境可以运行候选供DFL使用,也可以暂时停留在旧正式版本。

状态属于对象还是文档

同一份REQ正文同时有需求状态和Markdown文档状态,它们表达不同事实。需求状态说明这项产品变化走到了哪里,文档状态说明这份文件是否已经可以采用。Loop整体状态与它的计划、记录文档状态同样不能互相替代。

例如:

  • REQ可以处于候选,正文仍处于Draft
  • REQ进入已排期时,相关设计应当已经Accepted
  • ACL整体处于Review时,其记录也在等待Director确认;
  • 一份Accepted设计可以被多轮ACL长期使用;
  • 正式版本和发布说明只有在Git标签真实存在后才进入Completed

附录B集中列出这些登记表、状态和命令。