aps-agent/docs/adr/0010-aps-dev-shape-in-repo.md

2.8 KiB
Raw Permalink Blame History

ADR-0010:APS 开发期与本仓库同仓不同目录

  • 状态:已接受
  • 日期:2026-09-24
  • 决策人:技术负责人
  • 相关:任务表 B0;ADR-0008、ADR-0009;《架构设计》第 2 节

背景

《架构设计》第 2 节写的是「业务系统的代码不在这个仓库里」,ADR-0008/0009 也把 APS 当独立系统。但 APS 目前还在 main 分支里与平台混装,B0–B7 是把它拆出来的全过程。拆的过程中需要两个问题先有答案:

  1. 开发期 APS 放哪?立刻新建独立仓库,还是先在本仓库里隔离出一个目录?
  2. 这段过渡形态要不要写进 ADR,免得以后有人拿《架构设计》第 2 节说事?

选项

选项 做法 代价 不选的理由
A 开发期同仓库 aps/ 目录 APS 代码放本仓库 aps/,独立工具链、独立 CI、独立库;迁出条件写进 ADR 仓库体积与 clone 成本上升;边界靠规则而非物理隔离 选定
B 立刻新建独立仓库 B0 之前先建仓库、配权限、配 CI 边界最干净 APS 还有 39k 行在 main 里,没拆完就分仓会让搬迁与查证两头跑
C 继续混装 不动结构 零成本 与 D8、ADR-0008/0009 全部冲突

结论

选 A:开发期 APS 放本仓库 aps/ 目录,按独立系统对待。

项 结论
目录 aps/;工具链 Python,与平台(TS)不共享依赖
依赖规则 平台代码不得引用 aps/;APS 不得引用平台的 TS 代码。两侧唯一的界面是 Provider 契约(HTTP)
CI 独立 job;平台的 lint / typecheck / test 不因 APS 失败而阻塞,反之亦然
数据库 APS 库归 APS(ADR-0008),仍要求独立账号、独立 database
交付 仍按 ADR-0009:首版只交付纯平台包,APS 单独部署
与架构设计的关系 《架构设计》第 2 节描述的是最终形态;本文定的是开发期过渡形态
迁出条件 满足任一条即迁出独立仓库:① APS 需要独立发版节奏;② APS 由独立团队维护;③ 平台包发布流程需要隔离权限

影响

  • 对代码:新增 aps/ 目录;平台侧只在 providers/aps 里写适配器,不直接引用 aps/
  • 对任务:B0 的第一个产出物从「定仓库位置」改为「定 aps/ 目录结构与迁出条件」;B1–B7 在 aps/ 里做
  • 对文档:《架构设计》第 2 节补一句开发期说明;术语表「业务系统」条目无需改
  • 不这么做的后果:B0 卡在仓库创建上无法启动;或者继续混装,拆到一半两套工具链互相牵制

遗留

  • 迁出时机的判断人:技术负责人;触发时按本 ADR 的迁出条件走
  • aps/ 与 platform 的 CI 分流细节:A1.6 落地时一并写进工作流