aps-agent/docs/product/implementation-spec.md

621 lines
27 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 功能落地规格
> 本文把 [features.md](./features.md) 的每个功能点拆成可开发、可验收的落地规格。
> 状态仍以 `features.md` 为准;本文只定义“怎么落地”和“怎么验收”。
---
## 0. 使用方式
每个功能落地前必须先补齐以下信息:
| 项 | 说明 |
| --- | --- |
| 用户目标 | 计划员、主管、主数据维护员或集成管理员要完成什么工作 |
| 最小切片 | 第一个可上线版本必须包含什么;超出部分单列后续 |
| 权力等级 | P0 只读、P1 草稿/沙盒、P2 主干写入、P3 外部副作用 |
| 数据对象 | 读写哪些世界状态、知识资产、前端项目数据或外部系统对象 |
| API / 动作 | 页面点击和对话口令必须走同一动作路径 |
| UI 入口 | 从哪个面板进入、有哪些状态、空态、错误态 |
| 验收标准 | 可用业务语言复现的通过条件 |
| 测试要求 | 至少一条黄金测试、构建检查或 E2E 路径 |
| 文档同步 | 改 `features.md` / `journeys.md` / `harness.md` / `algorithm/*` / `CHANGELOG.md` |
通用完成定义:
1. 任何主干写入必须能在审计链看到 who/when/action/power/target/result。
2. 任何 P2/P3 动作必须先出确认卡,不能在页面里绕过 `/api/actions/confirm`。
3. 页面点击、命令面板和对话口令不能各走一套业务逻辑。
4. 报告、KPI、风险提示里的数字只能来自冻结快照或世界状态字段。
5. 已落地功能必须能被 `pytest tests/golden -q`、`npm run build` 或明确 E2E 路径验证。
---
## 1. 功能编号总表
| 编号 | 功能点 | 当前状态 | 目标里程碑 |
| --- | --- | --- | --- |
| MD-01 | 工厂/车间/产线/工位/设备资源树 | 已落地首切片 | M4 |
| MD-02 | 物料 / BOM / 工艺路线 | 已落地首切片 | M4 |
| MD-03 | 班次 / 日历 / 维保 | 已落地首切片 | M4 |
| MD-04 | Excel/CSV 导入管线 | 未做 | M4 |
| OR-01 | 销售订单 / 明细管理 | 已落地首切片 | M4 |
| OR-02 | 优先级与权重配置 | 半落地 | M4 |
| OR-03 | 订单池 / 审核 / 变更 | 未做 | M4 |
| OR-04 | 紧急插单专用流 | 半落地 | M4 |
| SC-01 | RULE 规则引擎 | 已落地 | M1 |
| SC-02 | 策略模板 | 已落地 | M1 |
| SC-03 | CP / GA / HYBRID 真求解 | 半落地 | M5 |
| SC-04 | 约束注册表 + 配置中心 | 未做 | M4 |
| SC-05 | 多方案沙盒对比 | 已落地 | M2 |
| SC-06 | 主控参数 / 敏感性分析 | 未做 | M5 |
| EX-01 | 草稿版本 + 发布 | 已落地 | M1 |
| EX-02 | 甘特 / 负荷 / 交期看板 | 已落地 | M1 |
| EX-03 | 冲突解决工作流 | 未做 | M4 |
| EX-04 | 工单拖拽调程 | 未做 | M4 |
| EX-05 | MES 下发 / 报工 | 未做 | M4 |
| AG-01 | 意图两级管线 | 已落地 | M1 |
| AG-02 | 门禁 P0-P2 | 已落地 | M1/M2 |
| AG-03 | 审计哈希链 | 已落地 | M2 |
| AG-04 | 知识检索 / RAG | 半落地 | M3/M5 |
| AG-05 | 报告生成 | 已落地 | M3 |
| AG-06 | 偏好缺省策略 | 已落地 | M3 |
| AG-07 | 主动引导 / 多模态 | 未做 | M4/M6 |
| AG-08 | 项目 / 会话服务端化 | 未做 | M4 |
| AG-09 | 检查点与时间线 | 已落地 | M2 |
| MD-05 | ERP/MES 双向集成 | 未做 | M4/M5 |
| MD-06 | 换型矩阵主数据 | 未做 | M5 |
| MD-07 | 二级约束资源(工装/人员) | 未做 | M5 |
| OR-05 | 预测/长周期订单 | 未做 | M5 |
| OR-06 | 订单钉扎溯源(pegging) | 未做 | M5 |
| OR-07 | 订单分解 MRP(采购/委外建议) | 已落地首切片 | M4 |
| PL-01 | 时间分桶计划 | 未做 | M5 |
| PL-02 | 有限/无限产能粗评估 | 未做 | M5 |
| PL-03 | 可行性分析 | 半落地 | M5 |
| PL-04 | 库存投影 | 未做 | M5 |
| PL-05 | 产能平衡/削峰 | 半落地 | M5 |
| PL-06 | 产供方向决策 | 未做 | M6 |
| SC-07 | 顺序相关换型优化 | 未做 | M5 |
| SC-08 | 批次/战役合并 | 未做 | M5 |
| SC-09 | 物料齐套约束 | 半落地 | M1/M4 |
| SC-10 | 工装/模具约束 | 未做 | M5 |
| SC-11 | 人员技能/班组约束 | 未做 | M5 |
| EX-06 | 资源利用率分析视图 | 半落地 | M1/M5 |
| EX-07 | 方案对比表 | 半落地 | M4 |
| EX-08 | KPI 仪表盘 | 半落地 | M4 |
| EX-09 | 报工回流与进度追踪 | 未做 | M4 |
| IND-01 | SMT 电子特化排产 | 未做 | M6 |
| IND-02 | 行业规则包(SOP→约束) | 半落地 | M5 |
> 上表 MD-05 起为对标西门子 Opcenter APS 新登记的功能点(见 [aps-benchmark-siemens.md](./aps-benchmark-siemens.md));落地规格卡随各自里程碑开工时补齐。
---
## 2. 主数据功能
### MD-01 工厂/车间/产线/工位/设备资源树
用户目标:主数据维护员能维护可排产资源,计划员能在甘特和负荷里看到同一套资源骨架。
当前落地(M4 首切片):侧栏「主数据」→ 资源页签。树形展示工厂/车间/产线/工位/设备(`GET /api/master`,P0);产线可编辑名称/日产能/效率并停启用(`master.line.upsert`,P2 经 `POST /api/master/stage` 出确认卡)。停用产线由引擎 `find_product_lines` ACTIVE 过滤排除出新排产;黄金测试 `test_master_data.py::test_inactive_line_excluded_from_scheduling`。工位/设备编辑为后续切片。
最小切片:
| 项 | 规格 |
| --- | --- |
| 数据对象 | `factories`、`workshops`、`lines`、`workstations`、`equipment` |
| UI | 主数据管理页,左侧树形层级,右侧表单;支持新增、编辑、停用、查看引用 |
| API / 动作 | 规划 `master.resource.upsert`、`master.resource.disable`;主干写入按 P2 |
| 规则 | 被排产版本引用的资源不允许物理删除,只能停用;停用后不参与新排产 |
| 验收 | 停用一条产线后,新试排不会再把工单排到该产线;旧版本仍能查看历史名称 |
| 测试 | 种子资源加载测试;停用资源后 `RuleEngine` 不选该资源的黄金测试 |
后续切片:资源能力日历、设备 OEE、替代资源推荐。
### MD-02 物料 / BOM / 工艺路线
用户目标:维护产品结构和工艺步骤,让齐套检查、拆工单和工序顺序可解释。
当前落地(M4 增强切片):物料与BOM页签。物料可编辑库存/在途/安全库存/采购前置期(`master.material.upsert`,P2),变更直接联动下一次试排的齐套检查(`test_master_data.py::test_material_stock_zero_increases_shortage`)。选中成品后可编辑 **BOM 明细用量/关键料**(`master.bom.upsert`,P2,联动采购建议 `test_mrp.py::test_bom_quantity_edit_changes_purchase_quantity`)与 **工艺步骤准备/单件时间、外协标记**(`master.routing.upsert`,P2,外协标记联动委外建议)。BOM/路线版本发布、增删行为后续切片。
最小切片:
| 项 | 规格 |
| --- | --- |
| 数据对象 | `materials`、`boms`、`bomItems`、`routings`、`routingSteps`、`workstationOperations` |
| UI | 产品页含“物料/BOM/工艺路线”页签;步骤表支持拖动排序但保存前显示 diff |
| API / 动作 | 规划 `master.material.upsert`、`master.bom.release`、`master.routing.release`;发布类动作为 P2 |
| 规则 | BOM/工艺路线必须版本化;只有 ACTIVE + default 版本参与排产 |
| 验收 | 修改 BOM 用量并发布后,下一次试排的缺料数量随之变化 |
| 测试 | BOM 缺料数可复算;工艺步骤顺序不颠倒 |
后续切片:替代物料、外协工序、工艺版本生效日期。
### MD-03 班次 / 日历 / 维保
用户目标:维护可生产时间和不可用窗口,让占槽结果落在真实工作时间。
当前落地(M4 首切片):日历与维保页签。班次/产线工作日只读概览;维保窗口可新增/取消(`master.maintenance.upsert`,P2)。新增窗口在下一版排产产生 `EQUIPMENT` 冲突,取消后冲突消失(引擎已忽略 CANCELLED 维保;`test_master_data.py::test_maintenance_window_roundtrip_equipment_conflict`)。周模板批量复制为后续切片。
最小切片:
| 项 | 规格 |
| --- | --- |
| 数据对象 | `shifts`、`shiftCalendar`、`maintenance` |
| UI | 日历视图按产线展示班次、休息、加班、维保;支持批量复制周模板 |
| API / 动作 | 规划 `calendar.upsert`、`maintenance.upsert`;影响新排产为 P2 |
| 规则 | 修改已发布版本覆盖区间时必须提示影响范围;维保与工单冲突可被扫描 |
| 验收 | 添加某设备维保窗口后,新版本出现 `EQUIPMENT` 冲突或自动避开 |
| 测试 | 工单开始日有班次;维保重叠冲突归属本版本 |
后续切片:人员班组约束、节假日模板、加班审批流。
### MD-04 Excel/CSV 导入管线
用户目标:业务方能把订单、物料、BOM、工艺、班次从表格导入,先校验再入库。
最小切片:
| 项 | 规格 |
| --- | --- |
| 输入 | `.xlsx` / `.csv`,支持订单、物料、BOM、工艺路线四类模板 |
| UI | 导入向导:上传、字段映射、校验结果、预览 diff、确认入库 |
| API / 动作 | 规划 `import.preview` P1、`import.commit` P2 |
| 校验 | 必填、枚举、外键、重复编码、数量非负、日期格式 |
| 验收 | 错误行不能入库;修正后确认入库可触发一次试排 |
| 测试 | 模板样例导入;错误样例返回行号和字段名 |
后续切片:ERP/MES/WMS 增量同步、导入任务历史、回滚导入批次。
---
## 3. 订单功能
### OR-01 销售订单 / 明细管理
用户目标:计划员能维护待排订单,并明确哪些订单参与本次排产。
当前落地(M4 首切片):
| 项 | 规格 |
| --- | --- |
| 数据对象 | `salesOrders`、首个 `items` 明细 |
| UI | 左侧轨道「订单」面板;订单列表 + 编辑区;支持新建、编辑、取消、完成 |
| API / 动作 | `GET /api/orders` P0;`POST /api/orders/stage` 暂存确认卡;`order.upsert/cancel/complete` P2 |
| 安全 | 页面不直接写主干;批准后统一走 `/api/actions/confirm`,写前自动 Checkpoint,写入审计链 |
| 规则 | `CANCELLED` / `COMPLETED` 不参与后续新排产;历史版本不被回写 |
| 验收 | 取消订单后再试排,版本 `orderCount` 减少且无对应 PO/WO |
| 测试 | `tests/golden/test_order_management.py`;前端 `npm run build` |
后续切片:
| 项 | 规格 |
| --- | --- |
| 多明细 | 支持同一销售订单多产品明细、行级取消/完成 |
| 批量操作 | 批量改交期、客户等级、优先级,提交前显示 diff |
| 附件与合同 | 客户合同交期、附件、备注模板 |
| 验收 | 批量变更批准后只影响新版本;旧版本可追溯原订单快照 |
仍未做:客户信用/合同交期、订单附件、批量变更。
### OR-07 订单分解 MRP(采购/委外建议)
用户目标:上传/确认订单后,系统按 BOM 与工艺路线自动分解出自制、采购、委外三类需求,对标西门子订单驱动分解。
当前落地(M4 首切片):
| 项 | 规格 |
| --- | --- |
| 数据对象 | 读 `salesOrders/bomItems/routingSteps/materials`;写 `purchaseOrders` / `outsourceOrders` 两张 **DRAFT 建议表** |
| 分解规则 | 自制=成品本体(由排产引擎生成 PO/WO);采购=BOM 净需求(毛需求−库存−在途>0),建议下单日=交期−采购前置期−1 天缓冲;委外=`isExternal` 工艺步骤逐步生成 |
| API / 动作 | `GET /api/mrp` P0;`POST /api/mrp/decompose` → `order.decompose` P1(经 `harness.guard`,写 ALGO_RUN 审计) |
| 双入口 | 订单面板「分解建议/分解此单」按钮;对话「分解订单 SOxxx」「生成采购建议」「MRP」 |
| 幂等 | 同一订单重复分解替换其旧 DRAFT 建议,不堆积 |
| 验收 | 库存调零后分解出采购建议且下单日按前置期倒排;外协步骤出委外建议、取消标记后重分解消失 |
| 测试 | `tests/golden/test_mrp.py`(R1~R5) |
后续切片:建议单确认下达(P2 转正式采购/委外单)、跨订单库存分配、多层 BOM 级联展开、引擎跳过外协工序的占槽语义、对接 ERP 采购模块(P3)。
### OR-02 优先级与权重配置
用户目标:主管能定义不同客户等级、交期、插单等因素的排序权重。
最小切片:
| 项 | 规格 |
| --- | --- |
| 数据对象 | `scheduleParams.weights`、客户等级权重配置 |
| UI | 设置 → 排产参数,支持权重滑杆和恢复默认 |
| API / 动作 | 规划 `params.update` P2 |
| 规则 | 权重变更只影响新版本,不回写历史版本 |
| 验收 | 提高 VIP 权重后,VIP 订单在同策略下更早开工 |
| 测试 | 权重改变排序键的单测;参数变更审计 |
后续切片:按项目/客户保存参数模板、A/B 对照推荐。
### OR-03 订单池 / 审核 / 变更
用户目标:订单进入排产前先过业务审核,变更要可追溯。
最小切片:
| 项 | 规格 |
| --- | --- |
| 状态 | DRAFT、SUBMITTED、APPROVED、REJECTED、CHANGED、CANCELLED |
| UI | 订单池看板:待审核、已批准、变更中;支持批量批准 |
| API / 动作 | 规划 `order.submit` P1、`order.approve` P2、`order.reject` P2 |
| 规则 | 仅 APPROVED 订单参与正式排产;草稿试排可选择包含 DRAFT |
| 验收 | 未批准订单默认不进入 `schedule.run`;审批记录进入审计链 |
| 测试 | 状态机测试;未批准订单过滤测试 |
后续切片:审批角色、变更影响评估、订单锁定。
### OR-04 紧急插单专用流
用户目标:计划员输入插单后,系统先评估影响,再决定局部修复还是全量重排。
最小切片:
| 项 | 规格 |
| --- | --- |
| 输入 | 新订单或已存在订单标记 `isRush=true` |
| UI | 插单向导:录入订单、影响快评、方案对比、确认采用 |
| API / 动作 | 规划 `rush.evaluate` P1、`rush.apply` P2 |
| 规则 | 快评必须给出受影响订单数、延迟变化、冲突变化;采用前自动建档 |
| 验收 | 插单采用后生成新 DRAFT 版本,基准版本仍可回滚 |
| 测试 | 插单不污染基准;影响评估数字来自沙盒快照 |
后续切片:LNS 局部修复、插单审批、对外承诺函。
---
## 4. 排产引擎功能
### SC-01 RULE 规则引擎
用户目标:在无优化器和无 LLM 的情况下,也能稳定产出可解释排程。
当前落地:
| 项 | 规格 |
| --- | --- |
| 输入 | `world` + `EngineParams` |
| 输出 | DRAFT `scheduleVersion`、PO、WO、conflicts、KPI |
| 验收 | 7 个种子订单生成 7 个 PO、30 个 WO;工位无重叠,工艺顺序不颠倒 |
| 测试 | `tests/golden/test_rule_engine.py` |
后续只允许做兼容增强:新增冲突类型、资源选择规则或统计口径时同步 `docs/algorithm/scheduling-v1.md`。
### SC-02 策略模板
用户目标:用业务语言切换排产偏好,例如交期优先、产能均衡、先进先出。
当前落地:
| 策略 | 当前实现 | 验收 |
| --- | --- | --- |
| DELIVERY_FIRST | 交期升序 + 优先级 | 最早交期订单最早开工 |
| FIFO | 下单日期升序 | 先下单先排 |
| CAPACITY_BALANCE | 优先级排序 + 选占用少的线 | 负荷更均衡 |
| COST_FIRST | 当前与均衡同排序,未实现成本目标 | 不能对外写成成本最优 |
| COMPREHENSIVE | 优先级 + 交期 | 默认综合 |
后续切片:策略配置页、成本目标函数、换线矩阵权重。
### SC-03 CP / GA / HYBRID 真求解
用户目标:在复杂约束下获得更优解,并能说明求解质量。
最小切片:
| 项 | 规格 |
| --- | --- |
| 引擎 | OR-Tools CP-SAT 首先落地;GA/HYBRID 后置 |
| API | 复用 `EngineParams.engineType`,输出仍为 `ScheduleResult` |
| UI | 排产参数中选择引擎;回复里展示求解时间、可行性、gap |
| 规则 | 超时必须返回当前最好可行解或明确失败;不得静默退回 RULE 且不留痕 |
| 验收 | 同一输入 CP 版本的冲突数或延迟优于或等于 RULE 基线 |
| 测试 | 小实例最优性测试;超时降级测试;`engineType` 留痕测试 |
后续切片:HYBRID 初解 + CP 局部改良、GA 参数模板。
### SC-04 约束注册表 + 配置中心
用户目标:主管能配置哪些约束是硬约束、软约束、权重多少。
最小切片:
| 项 | 规格 |
| --- | --- |
| 数据对象 | `ConstraintDef`、`ConstraintProfile`、版本快照中的约束配置 |
| UI | 设置 → 约束配置,按产能、物料、设备、人员、换线分组 |
| API / 动作 | 规划 `constraint.profile.save` P2 |
| 规则 | 硬约束违反则版本不可发布;软约束违反进入冲突/评分 |
| 验收 | 关闭物料齐套软约束后,缺料不阻断排产但报告风险 |
| 测试 | 约束开关影响冲突输出;发布前硬约束门禁 |
后续切片:约束模板市场、按客户/产品族套用约束。
### SC-05 多方案沙盒对比
用户目标:先看几种排法的 KPI 和风险,再选择一个方案落地。
当前落地:
| 项 | 规格 |
| --- | --- |
| 动作 | `scenario.compare` P1 |
| 隔离 | 深拷贝沙盒,主干世界逐字节不变 |
| 输出 | `scenario-cards`,含 KPI、相对基准差异、风险摘要 |
| 采用 | `scenario.apply` 重跑选中策略并写 DRAFT |
| 测试 | `test_scenario_compare_does_not_mutate_world` |
后续切片:自定义策略集合、方案命名、方案归档、帕累托前沿。
### SC-06 主控参数 / 敏感性分析
用户目标:调整关键参数时能看到 KPI 对参数变化的敏感程度。
最小切片:
| 项 | 规格 |
| --- | --- |
| 参数 | 展望期、冻结窗口、交期缓冲、目标权重、超时秒数 |
| UI | 参数面板 + “敏感性分析”按钮,输出 Tornado 表 |
| API / 动作 | 规划 `scenario.sensitivity` P1 |
| 规则 | 敏感性分析只跑沙盒,不写主干 |
| 验收 | 调整交期缓冲后,输出延迟/冲突/KPI 变化表 |
| 测试 | 沙盒不污染主干;变化表数字可复算 |
后续切片:蒙特卡洛鲁棒性、参数推荐。
---
## 5. 结果与执行功能
### EX-01 草稿版本 + 发布
用户目标:试排结果先作为草稿,确认后才成为执行基准。
当前落地:
| 项 | 规格 |
| --- | --- |
| 状态 | DRAFT、PUBLISHED、ARCHIVED |
| 动作 | `schedule.run` P1;`schedule.publish` P2 |
| 安全 | 发布前自动 Checkpoint;批准/驳回写审计 |
| 验收 | 发布后版本状态为 PUBLISHED,PO 状态推进为 CONFIRMED |
| 测试 | 门禁与审计链黄金测试 |
后续切片:版本归档、版本比较、发布回执。
### EX-02 甘特 / 负荷 / 交期看板
用户目标:用不同视角确认排产结果。
当前落地:
| 视图 | 数据源 | 验收 |
| --- | --- | --- |
| 甘特 | `/api/world/gantt` | 展示最新版本 WO,支持过滤、聚焦、高亮 |
| 负荷 | `/api/world/load` | 产线 x 日期负荷率 |
| 交期 | `/api/world/due` | 每个订单承诺完成和风险等级 |
后续切片:时间缩放真实影响甘特粒度、导出图片、视图配置保存。
### EX-03 冲突解决工作流
用户目标:对容量、缺料、设备等冲突生成可执行建议,并一键应用安全修复。
最小切片:
| 项 | 规格 |
| --- | --- |
| 冲突类型 | NO_LINE、NO_WORKSTATION、MATERIAL_SHORTAGE、DELAY、CAPACITY、EQUIPMENT |
| UI | 冲突中心:按严重度、资源、版本筛选;每条有建议和影响预览 |
| API / 动作 | 规划 `conflict.suggest` P0、`conflict.applyFix` P2 |
| 规则 | 应用修复前必须沙盒预览 diff;P2 批准后生成新版本 |
| 验收 | 对容量冲突选择“分流产线”后,新版本该冲突减少或解释失败原因 |
| 测试 | 修复前后冲突数可比;失败不改主干 |
后续切片:自动修复策略库、批量冲突处理。
### EX-04 工单拖拽调程
用户目标:计划员在甘特上手动调整工单,并立即看到约束校验结果。
最小切片:
| 项 | 规格 |
| --- | --- |
| UI | 甘特工单可拖动开始时间/工位/产线,拖动中显示合法/非法 |
| API / 动作 | 规划 `schedule.adjust.preview` P1、`schedule.adjust.commit` P2 |
| 规则 | 预览只写沙盒;提交生成新 DRAFT 版本,不直接改历史版本 |
| 验收 | 拖到设备维保窗口时提示非法;拖到空闲工位后可提交新版本 |
| 测试 | 预览不污染主干;提交后工艺顺序仍合法 |
后续切片:多选拖拽、冻结窗口、撤销/重做。
### EX-05 MES 下发 / 报工
用户目标:发布后的版本能安全下发到外部执行系统,并接收进度回传。
最小切片:
| 项 | 规格 |
| --- | --- |
| 外部对象 | MES 工单、报工进度、完工数量 |
| UI | 发布后显示“下发 MES”;报工进度回写到工单详情 |
| API / 动作 | 规划 `mes.dispatch` P3、`mes.syncProgress` P3 |
| 规则 | 外部副作用必须 P3;需要连接配置、幂等键和失败重试 |
| 验收 | 下发成功后记录外部单号;重复下发不会创建重复外部工单 |
| 测试 | Mock MES 幂等测试;失败重试与审计测试 |
后续切片:WMS 齐套、ERP 订单同步、现场异常回流。
---
## 6. 对话与治理功能
### AG-01 意图两级管线
用户目标:计划员能用自然语言驱动排产,同时系统可解释自己理解了什么。
当前落地:
| 项 | 规格 |
| --- | --- |
| 一级 | 正则快路,离线可用 |
| 二级 | LLM JSON,失败降级 unknown |
| 输出 | `IntentResult`,前端可展开查看 |
| 验收 | 关键口令能稳定解析;LLM 不可用时核心口令仍可用 |
后续切片:同义词词库管理、槽位澄清、多轮补参。
### AG-02 门禁 P0-P2
用户目标:危险操作必须让人确认,且确认路径唯一。
当前落地:
| 项 | 规格 |
| --- | --- |
| 矩阵 | `_POWER_MAP` + `docs/architecture/harness.md` |
| P2 通道 | `stage_confirmation` → `/api/actions/confirm` |
| UI | 聊天确认卡 + 设置/门禁待审批 |
| 验收 | P2 不能走 `guard()` 直通;确认令牌一次性 |
后续切片:P3 外部副作用审批、多角色权限、审批委托。
### AG-03 审计哈希链
用户目标:关键动作可追溯,历史事件被篡改能被检出。
当前落地:
| 项 | 规格 |
| --- | --- |
| 数据 | `auditEvents`,prevHash + hash |
| UI | 设置 → 审计链 |
| 验收 | 正常链校验通过;改历史事件字段后断链 |
| 已知修复 | 2026-07-16 已补 `at` + `ts` 双字段,避免治理页时间列空白 |
后续切片:WORM 存储、审计导出、外部锚定。
### AG-04 知识检索 / RAG
用户目标:问制度、SOP、策略原理时,回答必须带出处。
当前落地:
| 项 | 规格 |
| --- | --- |
| 检索 | bigram + 标签/标题加权 |
| 资产 | SOP、algorithm、case、process、report |
| 验收 | 命中带 assetId/title/version;未命中不编造 |
M5 切片:
| 项 | 规格 |
| --- | --- |
| 向量 | chunk、embedding、召回、重排 |
| UI | 知识资产管理页,支持上传、审批、版本对比 |
| API / 动作 | 规划 `knowledge.asset.upsert` P2、`knowledge.search` P0 |
| 测试 | 同问题召回稳定;未审批资产不参与对外回答 |
### AG-05 报告生成
用户目标:从排产版本生成可复现日报和版本对比报告。
当前落地:
| 项 | 规格 |
| --- | --- |
| 类型 | daily、version-diff |
| 规则 | 数字来自冻结快照;模板化生成;入知识库 |
| UI | 聊天报告块预览/下载 |
| 验收 | 报告数字与快照字段一致 |
后续切片:报告模板管理、对外承诺函 P2、Word/PDF 导出。
### AG-06 偏好缺省策略
用户目标:用户不点名策略时,系统用历史使用偏好选择默认策略,并说明原因。
当前落地:
| 项 | 规格 |
| --- | --- |
| 信号 | 试排 1 分,采用 2 分 |
| 输出 | 默认策略 + 得分说明 |
| 验收 | 采用权重大于试排;无样本回退 COMPREHENSIVE |
后续切片:按用户/项目隔离偏好、偏好重置、偏好解释面板。
### AG-07 主动引导 / 多模态
用户目标:系统能在发现风险或空状态时主动建议下一步。
最小切片:
| 项 | 规格 |
| --- | --- |
| 主动引导 | 首次无版本提示“试排一版”;有冲突提示“查看冲突/对比方案” |
| 多模态 | M6 以后考虑截图/表格问答,不进入 M4 必做 |
| UI | 视图空态、聊天建议、命令面板推荐 |
| 验收 | 无版本、冲突高、知识未命中三种状态都有下一步建议 |
| 测试 | 空态文案快照;建议点击走同一动作路径 |
### AG-08 项目 / 会话服务端化
用户目标:项目、会话、文件资产不只存在浏览器本地,能跨设备和多人协作。
最小切片:
| 项 | 规格 |
| --- | --- |
| 数据对象 | Project、Session、Message、ProjectFile |
| UI | 现有项目面板保持交互,数据源从 localStorage 切换到 Gateway API |
| API / 动作 | 规划 `project.create` P1、`session.create` P1、`message.append` P1 |
| 规则 | 项目与后端世界状态要明确绑定;删除项目不默认删除世界,需单独 P2 确认 |
| 验收 | 刷新浏览器和换设备后仍能看到项目、会话和历史消息 |
| 测试 | 本地存储迁移测试;项目删除不误删世界 |
后续切片:团队权限、多租户、会话树成对快照。
### AG-09 检查点与时间线
用户目标:计划员能在关键操作前后保存状态,并在出错时回到可信版本。
当前落地:
| 项 | 规格 |
| --- | --- |
| 数据 | `server/data/checkpoints.json`,包含快照元信息和完整 `world` |
| 动作 | `checkpoint.create` P1;`checkpoint.rollback` P2 |
| UI | 时间线导轨展示检查点与版本;点击检查点合成回滚口令 |
| 安全 | 回滚执行前自动再建档,保证回滚本身可撤销 |
| 验收 | 建档后破坏世界,再回滚能逐字段恢复;超过容量淘汰最旧 |
| 测试 | `test_checkpoint_roundtrip`、`test_checkpoint_capacity_eviction` |
后续切片:服务端会话树持久化后,把对话上下文与世界快照做真正成对恢复。
---
## 7. 推荐落地顺序
| 顺序 | 功能 | 原因 |
| --- | --- | --- |
| 1 | AG-03 审计字段契约修复 | 已完成;继续扩展 WORM/导出 |
| 2 | OR-01 销售订单管理 | 首切片已完成;继续订单审核/批量/附件 |
| 3 | MD-01/02 主数据维护 | 支撑真实客户数据替换种子 |
| 4 | SC-04 约束配置中心 | 把“内嵌规则”产品化 |
| 5 | EX-03 冲突解决工作流 | 从“能看冲突”走向“能处理冲突” |
| 6 | EX-04 拖拽调程 | 提升计划员手工干预能力 |
| 7 | MD-04 导入管线 | 降低真实试点接入成本 |
| 8 | AG-08 项目/会话服务端化 | 支撑多人和长期使用 |
| 9 | OR-04 插单专用流 | 高频业务场景,但依赖订单/冲突/版本能力 |
| 10 | SC-03 真求解器 | 算法价值高,依赖约束模型稳定 |
维护要求:任一功能从“未做/半落地”推进为“已落地”时,必须同轮更新 [features.md](./features.md)、必要的业务旅程、门禁矩阵和 [../CHANGELOG.md](../CHANGELOG.md)。