长程路线图:平台主线 / 前端界面 / APS 独立化
三条长程线,六个里程碑,五个决策门。任务表里已有的编号直接引用,不另起一套。
1 三条线的终点
| 线 |
终点 |
判据 |
| L1 平台主线(服务端 + Core) |
一个引擎中立的平台服务:能对话、能调业务系统、写操作可控可查 |
A5 只读跑通 + A6 写操作幂等 + A4 安全验收 |
| L2 前端与桌面 |
与现有 APS 项目一致的界面与桌面壳;工作区能承载 Provider 视图 |
A10.2 只读视图 + A10.5 桌面壳 + A10.8 干净机器验收 |
| L3 APS 独立化 |
APS 作为独立系统运行:自己的网关、库、治理、界面、回归基线 |
B-G 独立化验收(不依赖平台任何模块) |
三条线的交界只有两处:Provider 契约(L1 ↔ L3)与 provider-view 视图契约(L2 ↔ L3)。其余互不阻塞。
2 里程碑
| # |
里程碑 |
交付 |
依赖 |
估时 |
| M1 |
平台可对话(假引擎) |
A3.1 引擎接口、A3.2 FakeRuntime、A2.7 评测跑通 |
无(A1/A2 已完成) |
3–4 人日 |
| M2 |
真引擎接入 |
A3.3 子进程 Pi、A3.4 工具桥、A3.10 进程管理、A3.11 扩展桥、A3.5 身份过滤、A3.7 落库、A3.8 上下文、A3.9 可替换验证 |
M1;决策 G1(模型与端点) |
12–16 人日 |
| M3 |
控制面成型 |
A4.1–A4.6 + A4-G:身份、策略、凭据、确认卡、审计 |
M2 |
12–15 人日 |
| M4 |
首个真实系统只读 |
A5.1–A5.6:APS Provider、字段映射、账号绑定、健康探测、真实数据验收 |
M3;L3 到 B5 |
6–8 人日 |
| M5 |
写操作与可插拔 |
A6 写操作幂等、A7 Provider 安装与可视化、A8 第二系统与跨系统流程 |
M4 |
18–24 人日 |
| M6 |
多 Sub-agent 与发布 |
A9 Goal/Plan/Task 与受限 Sub-agent、A10 工作区/桌面端/门禁 |
M5 |
14–18 人日 |
3 L2 前端:分两批迁移
第一批(插在 M1 之后,建议新增工作包 A3.12):
| 搬什么 |
从哪来 |
为什么先搬 |
| 三栏壳对齐(导航轨、面板、分栏、命令面板、菜单栏) |
apps/web/src/App.tsx、shell/* |
骨架决定后续所有视图的落点 |
| 对话渲染:Markdown + UI 块协议(确认卡、证据链、diff、报告) |
chat/*、viewport 的块组件 |
确认卡是 M3 的界面载体,先有渲染位 |
| 三个核心视图:甘特、负荷、交期 |
viewport/GanttView、LoadView、DueView |
数据来自 Provider 视图契约,能验证契约够不够用 |
| 设计令牌与暗色模式 |
styles.css |
后续所有组件复用 |
第二批(M6,归 A10.1–A10.3):
- 剩余视图按归属分:平台通用视图(对比、运行记录、文件预览)留在平台;APS 专用视图(柔性甘特、能力池、计划分桶、世界差异、虚拟线回放)随 B6 进 APS 界面。
- 桌面壳与本地守护、离线升级:A10.5、A10.6。
4 L3 APS:B 线的四个阶段
| 阶段 |
内容 |
与其他线的关系 |
| B0 边界与契约冻结 |
aps/ 目录与工具链(B0.1)、边界清单与契约草案(B0.2)、迁出条件复核 |
独立,可立即开始 |
| B1–B3 拆出来 |
网关分流、数据库拆分(平台 7 / APS 6)、解除 18 个文件对 agent_core 的反向引用 |
独立 |
| B4–B5 补齐能力 |
APS 自带治理(动作分级确认 + 审计)、契约化接口层 |
B5 是 M4 的前置 |
| B6–B7 界面与回归 |
APS 界面外壳(页面清单来自 aps-frontend 与 apps/web 的 APS 视图)、208 个测试跑通 |
B6 与 L2 第二批交界 |
5 决策门
| # |
决策 |
卡住什么 |
建议 |
| G1 |
模型与端点(Pi 接哪个模型、密钥怎么放) |
A3.3 之后的真引擎验证 |
开发期用内网 OpenAI 兼容网关,密钥只进环境变量 |
| G2 |
开发期数据库落地(SQLite 先行还是直接 PostgreSQL) |
A3.7 会话落库 |
SQLite 先行,存储层按 ADR-0007 写成方言无关 |
| G3 |
剩余视图归属(平台通用 vs APS 专用) |
L2 第二批与 B6 |
第一批做完再定,用真实数据判断 |
| G4 |
APS 迁出仓库的时机 |
不影响功能,影响权限与发版 |
按 ADR-0010 三个触发条件,出现即迁 |
| G5 |
A5 联调方式(旧网关临时适配还是等 B5) |
M4 |
优先等 B5;若 B5 落后,允许临时适配但要在 B7 前退场 |
6 并行与串行
- 可并行:L2 第一批(前端)与 L1 的 M2(引擎)在代码上不重叠;L3 的 B0–B3 与 L1、L2 都不重叠。
- 必须串行:M3 的确认卡要在 M2 的事件流之后;M4 要等 B5;B2(拆库)与 A3.7(会话落库)不要同时动表结构,按 ADR-0008 的表清单为准。
- 契约单点:
contracts/ 与 docs/spec/ 同一时间只由一条线改,改完跑 pnpm verify。
7 风险
| 风险 |
影响 |
对策 |
| 模型额度或端点不可用 |
M2 卡住 |
引擎接口与 FakeRuntime 先行(M1 已完成大半),真引擎可后置 |
| 界面迁移按 main 原样抄 |
契约不匹配要返工 |
第一批只搬壳与三个视图,用真数据验证 provider-view 契约 |
| APS 搬迁把旧包袱一起带来 |
B4/B6 变大 |
按 docs/spec/platform-vs-business.md 判据逐项过滤;客户硬编码在 B0 定处置 |
| 并行线同时改契约 |
冲突与返工 |
契约单点负责人;改契约必须四处同步(schema/TS/文档/样例) |
8 近期动作(按顺序)
- A3.1 引擎接口与 RuntimeEvent、A3.2 FakeRuntime 与一致性测试(不依赖任何决策)
- A2.7 评测集跑通,产出六项指标基线
- 等 G1、G2 决策,进 M2 真引擎接入
- 并行启动 L3 的 B0.1/B0.2
- M1 完成后插 A3.12 前端第一批