# 制造业算法开发与模型管理平台 V2.0 验收用例


> 版本：V2.0-R5；增量功能验收台账覆盖 660 条 V2.0 新增功能。V2.0 交付还必须回归 511 条 V1.0 继承能力并执行 19 号文档的跨版本用例。测试通过必须绑定真实对象、真实执行记录和可查询审计证据。


## 1. 核心场景


| 编号 | 场景 | 验收重点 |
|---|---|---|

| AC2-01 | 工作台聚合与权限过滤 | 待办、消息、异常、资产和来源跳转不越权、不复制源模块操作 |

| AC2-02 | 数据加工标注与版本生成 | 加工、标注、质检、复核和冻结门禁独立成立 |

| AC2-03 | 算法工作区到训练交接 | 文件创建、代码编辑、保存修订、运行、测试、终端、环境、流程、组件、参数和数据绑定可复现 |

| AC2-04 | 流程编排执行与失败诊断 | DAG、节点状态、日志、中间结果和失败节点可定位 |

| AC2-05 | 技术评测与业务确认 | 技术结论、业务确认、反馈和发布准入不混淆 |

| AC2-06 | 反馈回流与模型迭代 | 反馈采纳形成新输入和新版本，历史不覆盖 |

| AC2-07 | 多实例灰度蓝绿与回滚 | 部署、健康、实例、流量和业务服务状态独立，回滚可审计 |

| AC2-08 | 模型广场使用闭环 | 检索、收藏、调用、用量、反馈和回流链路完整 |

| AC2-09 | 权限、会话与系统日志 | 模块权限、职责、会话失效、异常和审计导出有效 |



## 2. 八组专项可执行验收

> 以下用例是进入研发联调前的最低验收基线；真实编号可替换，但对象、状态、反向场景和证据不得省略。

| 用例 | 场景 | 测试数据/前置 | 操作步骤 | 预期状态与结果 | 反向场景 | 必备证据 |
|---|---|---|---|---|---|---|
| AC2-S01 | 标注任务分配与样本锁 | 任务AN-001含100个待分配样本；标注员A/B有效。 | 数据工程师分配50个样本给A；A领取S-001；B并发领取同一样本。 | 任务进入进行中；S-001仅A领取成功并生成锁版本与到期时间；B收到锁冲突且无状态写入。 | 无效账号、已通过样本、过期任务不得分配；锁超时释放后须新锁版本才能提交。 | 任务/样本状态时间线、分配清单、锁记录、冲突回执和审计。 |
| AC2-S02 | 标注提交、复核与退回重标 | S-002由A持有有效锁；复核人C与A为不同普通账号。 | A提交标签v1；C复核退回并填写原因；A重标提交v2；C复核通过。 | 样本按标注中→待复核→已退回→重标中→待复核→已通过流转；v1、v2均保留。 | A不得复核本人结果；锁过期、标签体系版本变化或缺退回原因时拒绝。 | 标签版本、前后状态、锁版本、退回原因、标注人与复核人及审计。 |
| AC2-S03 | 标注验收与数据版本生成 | 任务AN-001全部必需样本终态；抽检20%，通过率98%，阈值95%。 | 验收人签署通过并生成数据版本DV-NEW-001。 | 任务待验收→已通过→已关闭；版本仅含通过或明确剔除后的合格样本，记录样本清单、质量结论和来源。 | 存在待复核/退回样本、抽检不足或质检阻断时不得通过和生成正式版本。 | 任务汇总、抽检明细、验收签署、版本样本清单、质量报告和血缘。 |
| AC2-S04 | 流程节点与端口校验 | 流程WF-001含图像输出端口out:image/v2和表格输入端口in:table/v1。 | 尝试连接不兼容端口，再连接兼容端口，并新增形成环路的连线。 | 不兼容和环路连线均拒绝并定位节点/端口；兼容连线保存为新修订，画布其他内容保留。 | 悬空必需端口、重复连线、自环和修订冲突不得保存。 | 修改前后DAG摘要、端口契约、校验明细、修订号和审计。 |
| AC2-S05 | 节点缓存命中与失效 | 节点N-01已有缓存，输入/组件/参数/环境摘要与本次相同。 | 运行一次确认命中；修改参数后再次运行；将原缓存标记污染后重跑。 | 首次记录缓存命中且引用原产物；参数变化和污染均不命中并新建节点尝试与产物。 | 产物缺失、缓存过期或任一摘要不一致不得返回缓存成功。 | 缓存键、各摘要、命中判定、节点尝试、产物摘要和失效原因。 |
| AC2-S06 | 失败节点最小范围重试 | DAG为N1→N2→N3，N1成功、N2失败、N3跳过，旧N2已确认结束。 | 对N2发起重试，复用有效N1产物并继续执行N3。 | N2、N3创建新尝试；N1原尝试保持不变；流程根据新结果进入成功或失败。 | 旧尝试仍运行、参数变化、上游产物失效时禁止原运行内重试，要求停止或新建流程运行。 | DAG快照、新旧尝试关联、复用产物、日志、状态时间线和迟到回调处理。 |
| AC2-S07 | 技术评测执行与技术结论 | 冻结模型MV-002、独立测试集DV-T-01、规则RULE-3均有效。 | 执行全部子任务，其中性能指标低于阈值但任务正常完成，生成技术报告。 | 评测执行为成功，技术结论为不通过；报告保存原始指标、规则判定和有效期。 | 子任务缺失、数据泄漏、规则变化或执行失败时不得生成技术通过。 | 独立性结果、子任务时间线、原始指标、规则快照、报告和技术结论。 |
| AC2-S08 | 业务样例确认与职责隔离 | 技术报告TR-001有效；业务样例10条；确认人U-BIZ有确认职责。 | U-BIZ逐样例确认并签署通过；评测工程师尝试代签；普通账号尝试修改技术结论。 | 业务确认独立进入通过，技术结论不变；越权代签和修改均被拒绝。 | 样例不足、问题未处理、确认人无职责或技术报告失效时不得通过。 | 样例结果、确认规则、签署人、技术报告摘要、权限拒绝和审计。 |
| AC2-S09 | 评测与业务证据失效传播 | 技术和业务均通过，发布准入已满足。 | 变更模型摘要或技术规则，再查看确认和发布准入。 | 历史结论保留；技术报告、业务确认或准入按影响范围转已失效，要求重新评测/确认。 | 不得改写历史通过为失败，也不得继续沿用旧准入提交新发布。 | 变更前后摘要、失效事件、受影响对象、重新执行入口和审计。 |
| AC2-S10 | 多实例部署部分成功 | 目标3实例；I1/I2健康，I3创建失败。 | 执行部署并查看发布、实例、健康和服务状态。 | 发布执行为部分成功；I1/I2运行健康，I3创建失败；未达到策略门禁时服务不开放或仅稳定版本承流。 | 不得将2/3成功汇总为发布成功；未知或不健康实例不得加入路由。 | 逐实例时间线、健康检查、发布汇总、路由成员和失败原因。 |
| AC2-S11 | 灰度扩大、暂停与结束 | 稳定版90%、候选版10%；观察窗口10分钟；指标阈值已配置。 | 指标达标后扩大至30%；随后延迟越界触发暂停；恢复后完成全量。 | 每次比例变化生成批次和路由版本；越界后候选比例不再扩大；恢复须重新确认健康和指标。 | 监控未知、健康不通过、无权限或实际权重未生效时不得扩大或结束灰度。 | 灰度批次、指标窗口、配置/实际权重、暂停原因、决策人与路由审计。 |
| AC2-S12 | 蓝绿原子切换与失败中止 | 蓝环境为活动版本V1；绿环境V2全部实例健康；路由版本R10。 | 预览并确认蓝→绿切换；模拟网关版本冲突再次切换。 | 成功时入口一次性切到绿并生成R11；冲突时保持R10和蓝环境，不出现混合未知路由。 | 绿环境不健康、资源不足、快照变化或路由版本冲突时禁止切换。 | 蓝绿实例清单、健康结果、切换前后路由、网关回执和失败中止证据。 |
| AC2-S13 | 一键回滚及失败补偿 | 当前V2异常，目标稳定版V1可用，回滚快照含实例、路由和权重。 | 执行回滚；再模拟实例恢复成功但网关写入失败。 | 完整成功时状态为已回滚并验证健康；部分失败时为回滚失败/未知，保持最后确认稳定路由并标记孤儿实例。 | 目标版本不可用、快照不完整或执行人职责冲突时不得启动。 | 回滚执行编号、目标快照、实例变化、路由实值、健康验证、补偿和审计。 |
| AC2-S14 | 反馈与调用来源绑定 | 反馈FB-001关联调用REQ-001和模型V2；样本仍在保留期且有回流授权。 | 创建回流批次并尝试替换调用编号或提取超范围字段。 | 批次固定原调用、模型和获准字段范围；替换与越界提取被拒绝。 | 无调用来源、模型版本不一致、授权缺失或过期样本不得进入回流。 | 反馈、调用、模型、授权依据、提取范围和拒绝审计。 |
| AC2-S15 | 不可逆脱敏 | 样本含姓名、手机号、设备地址；脱敏规则MASK-2有效。 | 执行脱敏并以失败规则处理另一条样本。 | 成功样本仅保存脱敏副本、规则版本和前后摘要；失败样本进入脱敏失败且不进入去重。 | 页面、日志、导出和审计不得回显原始敏感值或可逆映射。 | 规则快照、字段清单、前后摘要、失败明细和脱敏副本权限。 |
| AC2-S16 | 业务主键与内容指纹去重 | 候选S-A与历史样本主键相同且指纹相同；S-B主键相同但指纹不同。 | 执行去重并对S-B进行人工冲突裁决。 | S-A标记重复并引用命中对象；S-B进入冲突，裁决后才可拒绝或作为新样本继续。 | 冲突不得自动覆盖历史样本，也不得仅按文件名判断重复。 | 主键、指纹、命中对象、冲突差异、裁决人与处置结果。 |
| AC2-S17 | 回流数据版本与模型来源链 | 回流批次10条：8条可入版、1条重复、1条质检阻断。 | 生成并冻结新数据版本，创建迭代计划、训练、评测、业务确认和新模型版本。 | 版本仅含8条可入版样本；来源链可从新模型追溯到训练、数据版本、回流批次、反馈和调用。 | 重复、拒绝、脱敏失败或质检阻断样本不得入版；生成失败不得留下正式半版本。 | 入版清单、排除清单、版本摘要、迭代计划及端到端对象引用。 |
| AC2-S18 | 对象级权限与字段脱敏 | 标注员仅分配任务A；运营人员可看实例；业务用户仅可看本人反馈。 | 分别访问越权样本、中间产物、实例凭证、他人反馈和未脱敏调用内容。 | 服务端逐对象拒绝越权；允许页面只返回最小字段；凭证、内部地址和敏感样本脱敏。 | 隐藏按钮不能代替接口鉴权；无权响应不得泄露对象摘要或数量。 | 角色、对象范围、字段策略、拒绝响应、会话主体和审计。 |
| AC2-S19 | 代码工作台编辑、保存、运行与测试 | 工作区WS-001可用；算法工程师A有维护权限；环境ENV-09就绪；样本S-001可访问。 | 打开代码文件并修改内容；确认未保存提示；保存生成新修订；运行当前Python文件；运行测试；刷新页面后重新打开。 | 文件内容和新修订持久化；运行生成独立尝试并显示环境、样本、退出码和日志；测试生成12/12通过报告；刷新后记录可找回。 | 绝对路径、上级目录、无权文件、非Python文件、空文件、未就绪环境和非白名单终端命令均被拒绝且不伪造成功。 | 文件前后摘要、代码修订、环境快照、运行尝试、测试报告、终端拒绝、页面状态和审计。 |
| AC2-S20 | 算法资产与模型管理职责边界 | 算法版本AV-001及交接包HOF-001已冻结；训练任务TRN-001产物完整；另有外部权重EXT-001。 | 从算法开发进入训练；从训练结果登记平台训练模型版本；再导入外部权重；检查模型库入口和来源追溯。 | 训练直接引用AV-001/HOF-001；模型资产下生成平台训练和外部权重两类模型版本；来源链完整；模型库无算法包上传、冻结或训练发起入口。 | 未冻结交接包不得训练；不完整产物不得登记；外部权重缺来源证明、校验和或运行材料不得保存；模型版本登记不自动评测或发布。 | 算法版本、交接包、训练任务、产物摘要、模型资产、模型版本来源类型、外部证明、入口清单和审计。 |


## 3. 逐功能验收台账


> 每条用例均给出固定对象编号、操作者、状态/修订前值、步骤、字段断言、状态后值、反向场景和证据。研发可替换编号值，不得删除断言维度。


| 追踪键 | 验收键 | 页面/载体 | 权限与接口 | 测试数据与前值 | 核验步骤 | 字段级断言 | 状态与结果断言 | 反向场景 | 证据 |

|---|---|---|---|---|---|---|---|---|---|

| FR-WB-001 | <a id="at-fr-wb-001"></a>AT-FR-WB-001 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_001`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“待办事项汇总概览展示”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“工作台只汇总与跳转；资源申请采用系统自动审批，不产生人工资源审批待办。模型发布审批保持原流程。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-002 | <a id="at-fr-wb-002"></a>AT-FR-WB-002 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_002`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“待办事项汇总详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-003 | <a id="at-fr-wb-003"></a>AT-FR-WB-003 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_003`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“待办事项汇总关联对象查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-004 | <a id="at-fr-wb-004"></a>AT-FR-WB-004 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_004`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-005 | <a id="at-fr-wb-005"></a>AT-FR-WB-005 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_005`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“待办分类与状态概览展示”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验待办事项状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-006 | <a id="at-fr-wb-006"></a>AT-FR-WB-006 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_006`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“待办分类与状态详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-007 | <a id="at-fr-wb-007"></a>AT-FR-WB-007 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_007`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“待办分类与状态关联对象查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-008 | <a id="at-fr-wb-008"></a>AT-FR-WB-008 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_008`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-009 | <a id="at-fr-wb-009"></a>AT-FR-WB-009 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_009`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-010 | <a id="at-fr-wb-010"></a>AT-FR-WB-010 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_010`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-011 | <a id="at-fr-wb-011"></a>AT-FR-WB-011 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_011`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-012 | <a id="at-fr-wb-012"></a>AT-FR-WB-012 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_012`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-013 | <a id="at-fr-wb-013"></a>AT-FR-WB-013 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_013`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看进行中工作概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验进行中工作状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-014 | <a id="at-fr-wb-014"></a>AT-FR-WB-014 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_014`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看进行中工作详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-015 | <a id="at-fr-wb-015"></a>AT-FR-WB-015 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_015`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看进行中工作关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-016 | <a id="at-fr-wb-016"></a>AT-FR-WB-016 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_016`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-017 | <a id="at-fr-wb-017"></a>AT-FR-WB-017 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_017`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法工作流概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法工作流状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-018 | <a id="at-fr-wb-018"></a>AT-FR-WB-018 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_018`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法工作流详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-019 | <a id="at-fr-wb-019"></a>AT-FR-WB-019 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_019`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法工作流关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-020 | <a id="at-fr-wb-020"></a>AT-FR-WB-020 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_020`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-021 | <a id="at-fr-wb-021"></a>AT-FR-WB-021 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_021`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选个人算法资产”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验个人资产；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-022 | <a id="at-fr-wb-022"></a>AT-FR-WB-022 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_022`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询个人算法资产”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-023 | <a id="at-fr-wb-023"></a>AT-FR-WB-023 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_023`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置个人算法资产筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-024 | <a id="at-fr-wb-024"></a>AT-FR-WB-024 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_024`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新个人算法资产列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-025 | <a id="at-fr-wb-025"></a>AT-FR-WB-025 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_025`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看个人算法资产列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-026 | <a id="at-fr-wb-026"></a>AT-FR-WB-026 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_026`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“个人资产概览详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-027 | <a id="at-fr-wb-027"></a>AT-FR-WB-027 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_027`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看个人算法资产概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验个人资产状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-028 | <a id="at-fr-wb-028"></a>AT-FR-WB-028 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_028`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“资产快捷入口详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-029 | <a id="at-fr-wb-029"></a>AT-FR-WB-029 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_029`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看个人算法资产关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-030 | <a id="at-fr-wb-030"></a>AT-FR-WB-030 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_030`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-031 | <a id="at-fr-wb-031"></a>AT-FR-WB-031 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_031`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务消息概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验业务消息状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-032 | <a id="at-fr-wb-032"></a>AT-FR-WB-032 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_032`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务消息详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-033 | <a id="at-fr-wb-033"></a>AT-FR-WB-033 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_033`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务消息关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-034 | <a id="at-fr-wb-034"></a>AT-FR-WB-034 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_034`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-035 | <a id="at-fr-wb-035"></a>AT-FR-WB-035 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_035`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看异常提醒概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验异常提醒状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-036 | <a id="at-fr-wb-036"></a>AT-FR-WB-036 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_036`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看异常提醒详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-037 | <a id="at-fr-wb-037"></a>AT-FR-WB-037 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_037`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看异常提醒关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-038 | <a id="at-fr-wb-038"></a>AT-FR-WB-038 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.navigate.fr_wb_038`；`GET /api/v2/work-items/{work_item_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | work_item_id=WB-T001；actor=U-WORKBENCH-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源聚合事项读取权限和目标页面模块权限；work_item_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含work_item_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、work_item_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-WB-039 | <a id="at-fr-wb-039"></a>AT-FR-WB-039 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_039`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选最近访问记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验最近访问记录；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-040 | <a id="at-fr-wb-040"></a>AT-FR-WB-040 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_040`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询最近访问记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-041 | <a id="at-fr-wb-041"></a>AT-FR-WB-041 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_041`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置最近访问记录筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-042 | <a id="at-fr-wb-042"></a>AT-FR-WB-042 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_042`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新最近访问记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-043 | <a id="at-fr-wb-043"></a>AT-FR-WB-043 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_043`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看最近访问记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-WB-044 | <a id="at-fr-wb-044"></a>AT-FR-WB-044 | 工作台首页 / 主页面：工作台首页｜区域：工作台首页｜载体：页面区块 | `v2.workbench.read.fr_wb_044`；`GET /api/v2/work-items/{work_item_id}`；200；只读响应，不改变revision/state_version | work_item_id=WB-T001；actor=U-WORKBENCH-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有聚合事项读取权限和对象数据范围；目标work_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看最近访问记录详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | work_item_id、查询请求号、事项类型、来源对象、来源状态、紧急程度、截止时间、更新时间、目标路由、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-017 | <a id="at-fr-dat-017"></a>AT-FR-DAT-017 | 数据集管理 / 主页面：数据集管理｜区域：数据血缘Tab｜载体：Tab | `v2.dataset-lineage.read.fr_dat_017`；`GET /api/v2/datasets/{dataset_id}`；200；只读响应，不改变revision/state_version | dataset_id=DS-T001；actor=U-DATASET-LINEAGE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据集与血缘关系读取权限和对象数据范围；目标dataset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据血缘图”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回数据集编号、版本、来源节点、目标节点、关系类型、采集时间、影响范围；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“血缘关系只读；无权限节点脱敏显示或隐藏。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | dataset_id、查询请求号、数据集编号、版本、来源节点、目标节点、关系类型、采集时间、影响范围、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-018 | <a id="at-fr-dat-018"></a>AT-FR-DAT-018 | 数据集管理 / 主页面：数据集管理｜区域：数据血缘Tab｜载体：Tab | `v2.dataset-lineage.read.fr_dat_018`；`GET /api/v2/datasets/{dataset_id}`；200；只读响应，不改变revision/state_version | dataset_id=DS-T001；actor=U-DATASET-LINEAGE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据集与血缘关系读取权限和对象数据范围；目标dataset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看引用详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回数据集编号、版本、来源节点、目标节点、关系类型、采集时间、影响范围；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“关联对象已失效时保留历史标识，不允许从血缘图修改对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | dataset_id、查询请求号、数据集编号、版本、来源节点、目标节点、关系类型、采集时间、影响范围、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-019 | <a id="at-fr-dat-019"></a>AT-FR-DAT-019 | 数据集管理 / 主页面：数据集管理｜区域：数据血缘Tab｜载体：Tab | `v2.dataset-lineage.navigate.fr_dat_019`；`GET /api/v2/datasets/{dataset_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | dataset_id=DS-T001；actor=U-DATASET-LINEAGE-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源数据集与血缘关系读取权限和目标页面模块权限；dataset_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含dataset_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、dataset_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-DAT-056 | <a id="at-fr-dat-056"></a>AT-FR-DAT-056 | 数据集版本 / 主页面：数据集版本｜区域：版本对比与变更说明配置表单｜载体：配置表单 | `v2.dataset-version.update.fr_dat_056`；`PATCH /api/v2/dataset-versions/{dataset_version_id}`；200；保存新修订或草稿差异 | dataset_version_id=DV-T001；actor=U-DATASET-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-056-01；前置：数据工程师具有数据集版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在表单中填写对比版本、样本量、字段结构、标签分布、来源差异、变更原因。”执行“维护数据版本变更说明”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“数据集版本遵循“草稿→校验通过→待冻结→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-057 | <a id="at-fr-dat-057"></a>AT-FR-DAT-057 | 数据集版本 / 主页面：数据集版本｜区域：版本对比与变更说明配置表单｜载体：配置表单 | `v2.dataset-version.link.fr_dat_057`；`PUT /api/v2/dataset-versions/{dataset_version_id}/relations/{relation_type}`；200；写关联记录和审计，不启动关联对象 | dataset_version_id=DV-T001；target_id=TARGET-001；relation_type=related；actor=U-DATASET-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-057-01；前置：用户具有数据集版本关联权限和两端对象读取范围；源对象与目标对象版本有效，关系类型允许且未存在同一有效关系。 | 1)读取两端对象版本和可关联状态；2)执行“关联数据集版本来源和适用范围”；3)核对关系编号、两端固定版本和审计；4)重复关系、越权目标和过期revision复测 | 关系记录含dataset_version_id、target_id、relation_type、source_revision、target_revision、effective_state和request_id | 仅关系记录新增/修订；目标对象状态和执行状态不变；重复请求不产生第二条有效关系 | 对象越权、版本失效、关系重复、形成非法环或并发修订冲突时拒绝；不产生半条关系。；越权返回AUTHZ_403；并发修订返回STATE_409 | 关系编号、dataset_version_id、目标对象、固定版本、关系状态、目标对象状态未变化证据和审计。 |
| FR-DAT-058 | <a id="at-fr-dat-058"></a>AT-FR-DAT-058 | 数据集版本 / 主页面：数据集版本｜区域：主工作区｜载体：页面 | `v2.dataset-version.validate.fr_dat_058`；`POST /api/v2/dataset-versions/{dataset_version_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | dataset_version_id=DV-T001；actor=U-DATASET-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-058-01；前置：数据集版本及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验对比版本、样本量、字段结构、标签分布、来源差异、变更原因的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验数据集版本表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；数据集版本仅按“草稿→校验通过→待冻结→已冻结→已停用”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-059 | <a id="at-fr-dat-059"></a>AT-FR-DAT-059 | 数据集版本 / 主页面：数据集版本｜区域：主工作区｜载体：页面 | `v2.dataset-version.update.fr_dat_059`；`PATCH /api/v2/dataset-versions/{dataset_version_id}`；200；保存新修订或草稿差异 | dataset_version_id=DV-T001；actor=U-DATASET-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-059-01；前置：数据工程师具有数据集版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回不可变数据版本ID、版本号和变更说明；已被下游引用的版本不得覆盖。”执行“保存数据集版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新数据集版本列表或打开版本详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“数据集版本遵循“草稿→校验通过→待冻结→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-060 | <a id="at-fr-dat-060"></a>AT-FR-DAT-060 | 数据集版本 / 主页面：数据集版本｜区域：主工作区｜载体：页面 | `v2.dataset-version.update.fr_dat_060`；`PATCH /api/v2/dataset-versions/{dataset_version_id}`；200；保存新修订或草稿差异 | dataset_version_id=DV-T001；actor=U-DATASET-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-060-01；前置：数据工程师具有数据集版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开数据集版本编辑页面并加载当前配置；保存后刷新详情。”执行“编辑数据集版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“数据集版本遵循“草稿→校验通过→待冻结→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-061 | <a id="at-fr-dat-061"></a>AT-FR-DAT-061 | 数据集版本 / 主页面：数据集版本｜区域：主工作区｜载体：页面 | `v2.dataset-version.create.fr_dat_061`；`POST /api/v2/dataset-versions`；201；创建对象与首条审计 | dataset_version_id=未生成；业务唯一键=UK-FR-DAT-061-01；actor=U-DATASET-VERSION-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-061-01；前置：数据工程师具有数据集版本创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前数据集版本配置并生成新的草稿或版本，保留来源关系。”执行“复制数据集版本”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→校验通过→待冻结→已冻结→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-062 | <a id="at-fr-dat-062"></a>AT-FR-DAT-062 | 数据集版本 / 主页面：数据集版本｜区域：主工作区｜载体：页面 | `v2.dataset-version.read.fr_dat_062`；`GET /api/v2/dataset-versions/{dataset_version_id}`；200；只读响应，不改变revision/state_version | dataset_version_id=DV-T001；actor=U-DATASET-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据集版本读取权限和对象数据范围；目标dataset_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据集版本变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | dataset_version_id、查询请求号、版本编号、来源版本、样本清单摘要、结构摘要、质量结论、适用范围、冻结时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-151 | <a id="at-fr-dat-151"></a>AT-FR-DAT-151 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.update.fr_dat_151`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-151-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“填写服务器地址、端口、安全策略、证书和节点路径，保存 OPC UA 连接配置。”执行“配置 OPC UA 数据源连接”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-152 | <a id="at-fr-dat-152"></a>AT-FR-DAT-152 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.update.fr_dat_152`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-152-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“填写主机地址、端口、站号、功能码和寄存器范围，保存 Modbus 连接配置。”执行“配置 Modbus 数据源连接”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-034 | <a id="at-fr-dat-034"></a>AT-FR-DAT-034 | 数据接入 / 主页面：数据接入｜区域：同步任务配置操作弹窗｜载体：操作弹窗 | `v2.data-ingestion.create.fr_dat_034`；`POST /api/v2/ingestion-tasks`；201；创建对象与首条审计 | ingestion_task_id=未生成；业务唯一键=UK-FR-DAT-034-01；actor=U-DATA-INGESTION-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-034-01；前置：数据工程师具有数据源与同步任务创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写同步方式、数据范围、增量字段、执行周期、失败重试次数、目标数据集。”执行“新增数据同步任务”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“创建后进入“草稿→待调度→运行中→成功/部分成功/失败/已停止”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-035 | <a id="at-fr-dat-035"></a>AT-FR-DAT-035 | 数据接入 / 主页面：数据接入｜区域：同步任务配置配置表单｜载体：配置表单 | `v2.data-ingestion.select.fr_dat_035`；`GET /api/v2/ingestion-tasks/options`；200；返回有权限且状态可选的候选项，不保存表单 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据源与同步任务表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择数据同步任务关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-DAT-036 | <a id="at-fr-dat-036"></a>AT-FR-DAT-036 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.validate.fr_dat_036`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-036-01；前置：数据源与同步任务及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验同步方式、数据范围、增量字段、执行周期、失败重试次数、目标数据集的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验数据同步任务表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；数据源与同步任务仅按“草稿→待调度→运行中→成功/部分成功/失败/已停止”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-037 | <a id="at-fr-dat-037"></a>AT-FR-DAT-037 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.update.fr_dat_037`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-037-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回数据同步任务编号、任务状态和下一步入口。”执行“保存数据同步任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后进入同步任务详情或刷新列表；失败保留用户输入和失败原因，支持重试。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-038 | <a id="at-fr-dat-038"></a>AT-FR-DAT-038 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.update.fr_dat_038`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-038-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开数据同步任务编辑页面并加载当前配置；保存后刷新详情。”执行“编辑数据同步任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-039 | <a id="at-fr-dat-039"></a>AT-FR-DAT-039 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.create.fr_dat_039`；`POST /api/v2/ingestion-tasks`；201；创建对象与首条审计 | ingestion_task_id=未生成；业务唯一键=UK-FR-DAT-039-01；actor=U-DATA-INGESTION-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-039-01；前置：数据工程师具有数据源与同步任务创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前数据同步任务配置并生成新的草稿或版本，保留来源关系。”执行“复制数据同步任务”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→待调度→运行中→成功/部分成功/失败/已停止”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-040 | <a id="at-fr-dat-040"></a>AT-FR-DAT-040 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.read.fr_dat_040`；`GET /api/v2/ingestion-tasks/{ingestion_task_id}`；200；只读响应，不改变revision/state_version | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据源与同步任务读取权限和对象数据范围；目标ingestion_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据同步任务变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | ingestion_task_id、查询请求号、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-158 | <a id="at-fr-dat-158"></a>AT-FR-DAT-158 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.update.fr_dat_158`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-158-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择实时订阅或定时拉取方式，设置频率、时间窗和增量字段，保存采集计划。”执行“配置数据订阅或定时拉取”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-159 | <a id="at-fr-dat-159"></a>AT-FR-DAT-159 | 数据接入 / 主页面：数据接入｜区域：主工作区｜载体：页面 | `v2.data-ingestion.update.fr_dat_159`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-159-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置重连次数、间隔、解析失败处理方式和告警接收人，记录每次重试结果。”执行“配置断线重连与解析失败重试”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-225 | <a id="at-fr-dat-225"></a>AT-FR-DAT-225 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.update.fr_dat_225`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-225-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择 API 服务、模型版本、回流字段和目标数据集，设置自动或人工确认回流。”执行“配置推理结果回流”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-226 | <a id="at-fr-dat-226"></a>AT-FR-DAT-226 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.update.fr_dat_226`；`PATCH /api/v2/ingestion-tasks/{ingestion_task_id}`；200；保存新修订或草稿差异 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-226-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“维护推理输入、预测结果、真实结果、业务标签、时间和来源字段的映射关系。”执行“配置回流字段映射”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-227 | <a id="at-fr-dat-227"></a>AT-FR-DAT-227 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.read.fr_dat_227`；`GET /api/v2/ingestion-tasks/{ingestion_task_id}`；200；只读响应，不改变revision/state_version | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“筛选待回流样本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-DAT-228 | <a id="at-fr-dat-228"></a>AT-FR-DAT-228 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.transition.fr_dat_228`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/actions/{action}`；200/202；迁移状态并写审计 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-228-01；前置：数据工程师具有“确认样本回流”动作权限；数据源与同步任务处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“批量或单条确认样本，校验字段完整性和权限后写入回流队列。”执行“确认样本回流”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“只允许“草稿→待调度→运行中→成功/部分成功/失败/已停止”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-DAT-229 | <a id="at-fr-dat-229"></a>AT-FR-DAT-229 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.operate.fr_dat_229`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-229-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“将已确认回流样本写入目标数据集的待处理区，记录来源服务、模型版本、请求编号和样本标识。”执行“将回流样本加入数据集”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“去重后入待处理区，禁止追加到冻结版本；预测值不得未经确认作为真实标签。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-230 | <a id="at-fr-dat-230"></a>AT-FR-DAT-230 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.execute.fr_dat_230`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/tasks`；202；创建执行任务和输入快照 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-230-01；前置：反馈已关联有效调用与模型版本；样本使用授权、脱敏策略、去重口径和人工确认规则有效。 | 1)读取前值和可执行动作；2)按“对已完成标注或真实标签确认、质检通过的回流样本生成新数据版本，记录来源及变更说明。”执行“生成样本迭代版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“执行统一版本冻结门槛，不覆盖原版本，不自动替换训练基线或测试集。”；状态遵循“反馈、回流批次、回流样本、标注任务、数据版本和迭代任务独立迁移；关闭反馈必须已有处理结论和验证证据。”；重复请求不新增对象或副作用 | 无授权、脱敏失败、重复冲突、人工拒绝、标签缺失或质检阻断时样本不得入版；部分成功保留逐样本结果，可补偿失败项。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 反馈及调用编号、脱敏前后摘要、去重明细、人工确认、标注质检结果、新数据版本、迭代与模型来源链。 |
| FR-DAT-231 | <a id="at-fr-dat-231"></a>AT-FR-DAT-231 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.retry.fr_dat_231`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | ingestion_task_id=ING-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-DATA-INGESTION-01；幂等键=IDEM-FR-DAT-231-01；前置：数据源与同步任务的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-DAT-232 | <a id="at-fr-dat-232"></a>AT-FR-DAT-232 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.execute.fr_dat_232`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/tasks`；202；创建执行任务和输入快照 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-232-01；前置：回流批次已完成授权、脱敏、去重和人工确认；目标样本缺少真实标签；标签体系、模板、标注人员和截止时间有效。 | 1)读取前值和可执行动作；2)按“将缺少真实标签的样本生成标注任务，指定模板、人员和截止时间。”执行“发起回流样本标注”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“合格回流样本由待确认进入待标注；标注任务由草稿进入待分配或进行中；反馈和回流批次原状态分别保留。”；重复请求不新增对象或副作用 | 样本已标注、被其他有效任务占用、人员失效或部分分配失败时保留逐样本结果；失败样本不进入任务，重复请求返回原任务。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 回流样本清单、人工确认、去重结果、标注任务编号、人员分配、截止时间、失败明细和审计。 |
| FR-DAT-233 | <a id="at-fr-dat-233"></a>AT-FR-DAT-233 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.operate.fr_dat_233`；`POST /api/v2/ingestion-tasks/{ingestion_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-233-01；前置：数据工程师具有数据源与同步任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择通过质检的冻结数据版本，携带来源记录跳转模型训练创建实验。”执行“发起回流数据重训练”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“算法包、训练参数和资源申请在模型训练完成；数据管理不维护第二套训练任务，未确认标签不得作为监督训练目标。”；状态遵循“数据源与同步任务遵循“草稿→待调度→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-234 | <a id="at-fr-dat-234"></a>AT-FR-DAT-234 | 数据接入 / 主页面：数据接入｜区域：样本回流处理｜载体：页面区块或操作 | `v2.data-ingestion.read.fr_dat_234`；`GET /api/v2/ingestion-tasks/{ingestion_task_id}`；200；只读响应，不改变revision/state_version | ingestion_task_id=ING-T001；actor=U-DATA-INGESTION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看样本回流闭环记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回数据源编号、协议、授权引用、采集范围、游标、调度、重连策略、解析结果；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-DAT-074 | <a id="at-fr-dat-074"></a>AT-FR-DAT-074 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_074`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-074-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“执行前选择或确认输入对象、版本、运行环境和资源条件，并展示输入对象、版本、运行环境和资源条件；不满足条件时禁止提交。”执行“配置数据清洗任务执行参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“未满足输入完整性、权限、版本兼容性或资源条件时禁止提交，并定位具体问题。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-075 | <a id="at-fr-dat-075"></a>AT-FR-DAT-075 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.execute.fr_dat_075`；`POST /api/v2/processing-tasks/{processing_task_id}/tasks`；202；创建执行任务和输入快照 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-075-01；前置：数据加工任务的输入、配置、引用版本和执行门禁已通过；数据工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“按清洗规则执行数据清洗和异常处理；提交后生成清洗任务编号并进入排队状态，完成后生成加工结果和数据版本关联。”执行“提交数据清洗任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“防止重复提交；提交成功后锁定本次执行配置，允许从任务详情查看进度。 数据或标注结果不得覆盖冻结版本；经复核质检后交接统一数据版本生成。”；状态遵循“数据加工任务生命周期为“草稿→排队→运行中→成功/部分成功/失败/已停止”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-076 | <a id="at-fr-dat-076"></a>AT-FR-DAT-076 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_076`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据清洗执行进度”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“状态由后台任务回写；刷新或重新进入页面后仍可恢复当前任务状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-077 | <a id="at-fr-dat-077"></a>AT-FR-DAT-077 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_077`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据清洗任务日志”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志按任务权限展示，敏感信息脱敏。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-078 | <a id="at-fr-dat-078"></a>AT-FR-DAT-078 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_078`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据清洗任务结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“成功时提供查看、下载或进入下一模块入口；敏感信息按权限脱敏。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-079 | <a id="at-fr-dat-079"></a>AT-FR-DAT-079 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.export.fr_dat_079`；`POST /api/v2/processing-tasks/{processing_task_id}/artifacts/{artifact_id}/download-token`；200；返回限时令牌，不改变来源对象 | processing_task_id=DPT-T001；artifact_id=ART-001；artifact_state=success；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；前置：用户同时具有数据加工任务读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | processing_task_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-DAT-080 | <a id="at-fr-dat-080"></a>AT-FR-DAT-080 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_080`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据清洗任务失败原因”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“失败信息与原执行记录绑定并保持只读。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-081 | <a id="at-fr-dat-081"></a>AT-FR-DAT-081 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.retry.fr_dat_081`；`POST /api/v2/processing-tasks/{processing_task_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | processing_task_id=DPT-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-DATA-PROCESSING-01；幂等键=IDEM-FR-DAT-081-01；前置：数据加工任务的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“重试生成新的执行记录并关联原记录，不覆盖原始失败日志。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-DAT-160 | <a id="at-fr-dat-160"></a>AT-FR-DAT-160 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_160`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-160-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择去重字段、匹配方式和保留策略，保存数据去重规则。”执行“配置数据去重规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-161 | <a id="at-fr-dat-161"></a>AT-FR-DAT-161 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_161`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-161-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择缺失字段和检测阈值，配置常量、均值、中位数或前后值补全方式。”执行“配置缺失值检测与补全”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-162 | <a id="at-fr-dat-162"></a>AT-FR-DAT-162 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_162`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-162-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择时序或数值字段，配置异常点识别、平滑窗口和噪声处理方式。”执行“配置降噪处理规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-082 | <a id="at-fr-dat-082"></a>AT-FR-DAT-082 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_082`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据加工流程概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验数据加工流程状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-083 | <a id="at-fr-dat-083"></a>AT-FR-DAT-083 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_083`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据加工流程详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-084 | <a id="at-fr-dat-084"></a>AT-FR-DAT-084 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_084`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据加工流程关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-085 | <a id="at-fr-dat-085"></a>AT-FR-DAT-085 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.execute.fr_dat_085`；`POST /api/v2/processing-tasks/{processing_task_id}/tasks`；202；创建执行任务和输入快照 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-085-01；前置：数据加工任务的输入、配置、引用版本和执行门禁已通过；数据工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“通过“运行数据转换”功能，执行前校验输入数据版本、字段映射和加工参数；保存配置后生成加工任务并展示运行状态，失败时提供错误原因和重试入口。”执行“运行数据转换”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“数据加工任务生命周期为“草稿→排队→运行中→成功/部分成功/失败/已停止”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-086 | <a id="at-fr-dat-086"></a>AT-FR-DAT-086 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.stop.fr_dat_086`；`POST /api/v2/processing-tasks/{processing_task_id}/tasks/{task_id}/stop`；202；记录停止请求，不创建替代任务 | processing_task_id=DPT-T001；task_id=TASK-RUNNING-001；state=running；attempt_no=1；state_version=5；actor=U-DATA-PROCESSING-01；前置：数据加工任务的任务处于排队、准备或运行中；操作者具有停止权限；任务编号、attempt和state_version一致。 | 1)记录任务心跳、attempt和运行状态；2)发起停止并核对执行端回执；3)重复停止并等待最终裁决；4)模拟自然完成竞态、执行端失联和旧state_version | 停止请求含task_id、attempt_no、state_version、reason和request_id；响应含stop_request_id、accepted_at、executor_ack和final_state | 状态按“任务进入停止中→已停止/原自然终态/未知；“停止数据转换”不创建新任务，不把停止写成失败。”；不创建新任务；保留日志和允许保留的中间产物；重复停止返回当前结果 | 停止与自然完成竞态按执行证据裁决；执行端失联时保持停止中或未知，禁止伪造已停止并禁止盲目重试。；旧状态版本返回STATE_409；未知不得显示已停止 | 停止请求、执行端回执、任务时间线、心跳、最终状态、保留日志/产物和竞态审计。 |
| FR-DAT-163 | <a id="at-fr-dat-163"></a>AT-FR-DAT-163 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_163`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-163-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置日期、编码、大小写、空白字符和数据类型的统一转换规则。”执行“配置格式标准化规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-164 | <a id="at-fr-dat-164"></a>AT-FR-DAT-164 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_164`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-164-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择源单位和目标单位，设置换算系数、偏移量和适用字段。”执行“配置单位转换规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-166 | <a id="at-fr-dat-166"></a>AT-FR-DAT-166 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_166`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-166-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择多个数据源的关联键、时间容差和关联方式，生成融合数据集。”执行“配置多系统数据关联规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-087 | <a id="at-fr-dat-087"></a>AT-FR-DAT-087 | 数据加工 / 主页面：数据加工｜区域：字段用途与输入映射配置表单｜载体：配置表单 | `v2.data-processing.update.fr_dat_087`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-087-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在表单中填写目标字段、标签字段、输入字段、主键、时间字段、分组字段、忽略字段。”执行“配置字段用途与映射”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-088 | <a id="at-fr-dat-088"></a>AT-FR-DAT-088 | 数据加工 / 主页面：数据加工｜区域：字段用途与输入映射配置表单｜载体：配置表单 | `v2.data-processing.select.fr_dat_088`；`GET /api/v2/processing-tasks/options`；200；返回有权限且状态可选的候选项，不保存表单 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择字段映射配置关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-DAT-089 | <a id="at-fr-dat-089"></a>AT-FR-DAT-089 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.validate.fr_dat_089`；`POST /api/v2/processing-tasks/{processing_task_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-089-01；前置：数据加工任务及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验目标字段、标签字段、输入字段、主键、时间字段、分组字段、忽略字段的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验字段映射配置表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；数据加工任务仅按“草稿→排队→运行中→成功/部分成功/失败/已停止”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-090 | <a id="at-fr-dat-090"></a>AT-FR-DAT-090 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_090`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-090-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回字段映射配置编号和配置状态。”执行“保存字段映射配置”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新字段映射配置或加工流程详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-091 | <a id="at-fr-dat-091"></a>AT-FR-DAT-091 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_091`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-091-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开字段映射配置编辑页面并加载当前配置；保存后刷新详情。”执行“编辑字段映射配置”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-092 | <a id="at-fr-dat-092"></a>AT-FR-DAT-092 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.create.fr_dat_092`；`POST /api/v2/processing-tasks`；201；创建对象与首条审计 | processing_task_id=未生成；业务唯一键=UK-FR-DAT-092-01；actor=U-DATA-PROCESSING-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-092-01；前置：数据工程师具有数据加工任务创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前字段映射配置配置并生成新的草稿或版本，保留来源关系。”执行“复制字段映射配置”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→排队→运行中→成功/部分成功/失败/已停止”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-093 | <a id="at-fr-dat-093"></a>AT-FR-DAT-093 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_093`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看字段映射配置变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“配置历史只读，已被版本引用的映射修改时生成新配置版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-165 | <a id="at-fr-dat-165"></a>AT-FR-DAT-165 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.update.fr_dat_165`；`PATCH /api/v2/processing-tasks/{processing_task_id}`；200；保存新修订或草稿差异 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-165-01；前置：数据工程师具有数据加工任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置来源字段与目标字段对应关系、类型转换及未匹配字段处理方式。”执行“配置字段映射关系”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“目标字段必须符合模板；禁止重复映射关键字段，类型不兼容时阻断。”；状态遵循“数据加工任务遵循“草稿→排队→运行中→成功/部分成功/失败/已停止”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-094 | <a id="at-fr-dat-094"></a>AT-FR-DAT-094 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_094`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看加工结果版本概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法版本或开发工作区状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-095 | <a id="at-fr-dat-095"></a>AT-FR-DAT-095 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_095`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看加工结果版本详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-096 | <a id="at-fr-dat-096"></a>AT-FR-DAT-096 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_096`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看加工结果版本关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-097 | <a id="at-fr-dat-097"></a>AT-FR-DAT-097 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.navigate.fr_dat_097`；`GET /api/v2/processing-tasks/{processing_task_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源数据加工任务读取权限和目标页面模块权限；processing_task_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含processing_task_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、processing_task_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-DAT-167 | <a id="at-fr-dat-167"></a>AT-FR-DAT-167 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.execute.fr_dat_167`；`POST /api/v2/processing-tasks/{processing_task_id}/tasks`；202；创建执行任务和输入快照 | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-167-01；前置：数据加工任务的输入、配置、引用版本和执行门禁已通过；数据工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择数据源、规则集、目标数据集和执行范围，校验后提交融合清洗任务。”执行“提交融合清洗任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。 数据或标注结果不得覆盖冻结版本；经复核质检后交接统一数据版本生成。”；状态遵循“数据加工任务生命周期为“草稿→排队→运行中→成功/部分成功/失败/已停止”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-168 | <a id="at-fr-dat-168"></a>AT-FR-DAT-168 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.read.fr_dat_168`；`GET /api/v2/processing-tasks/{processing_task_id}`；200；只读响应，不改变revision/state_version | processing_task_id=DPT-T001；actor=U-DATA-PROCESSING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据加工任务读取权限和对象数据范围；目标processing_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看清洗结果与异常记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | processing_task_id、查询请求号、输入版本、规则版本、字段映射、执行参数、输出版本、异常记录、产物摘要、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-169 | <a id="at-fr-dat-169"></a>AT-FR-DAT-169 | 数据加工 / 主页面：数据加工｜区域：主工作区｜载体：页面 | `v2.data-processing.retry.fr_dat_169`；`POST /api/v2/processing-tasks/{processing_task_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | processing_task_id=DPT-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-DATA-PROCESSING-01；幂等键=IDEM-FR-DAT-169-01；前置：数据加工任务的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-DAT-098 | <a id="at-fr-dat-098"></a>AT-FR-DAT-098 | 数据标注 / 主页面：数据标注｜区域：标注任务与规范操作弹窗｜载体：操作弹窗 | `v2.annotation.create.fr_dat_098`；`POST /api/v2/annotation-tasks`；201；创建对象与首条审计 | annotation_task_id=未生成；业务唯一键=UK-FR-DAT-098-01；actor=U-ANNOTATION-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-098-01；前置：数据工程师具有标注任务与样本创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写数据版本、标注类型、标签体系、样本范围、验收规则、截止时间、任务负责人。”执行“新增标注任务”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“创建后进入“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-099 | <a id="at-fr-dat-099"></a>AT-FR-DAT-099 | 数据标注 / 主页面：数据标注｜区域：标注任务与规范配置表单｜载体：配置表单 | `v2.annotation.select.fr_dat_099`；`GET /api/v2/annotation-tasks/options`；200；返回有权限且状态可选的候选项，不保存表单 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注任务与样本表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择标注任务关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-DAT-100 | <a id="at-fr-dat-100"></a>AT-FR-DAT-100 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.validate.fr_dat_100`；`POST /api/v2/annotation-tasks/{annotation_task_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-100-01；前置：标注任务与样本及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验数据版本、标注类型、标签体系、样本范围、验收规则、截止时间、任务负责人的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验标注任务表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；标注任务与样本仅按“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-101 | <a id="at-fr-dat-101"></a>AT-FR-DAT-101 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_101`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-101-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回标注任务编号、任务状态和下一步入口；标注结果通过数据服务关联到数据集版本。”执行“保存标注任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后进入标注任务详情或刷新列表；失败保留用户输入和失败原因，支持重试。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-102 | <a id="at-fr-dat-102"></a>AT-FR-DAT-102 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_102`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-102-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开标注任务编辑页面并加载当前配置；保存后刷新详情。”执行“编辑标注任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-103 | <a id="at-fr-dat-103"></a>AT-FR-DAT-103 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.create.fr_dat_103`；`POST /api/v2/annotation-tasks`；201；创建对象与首条审计 | annotation_task_id=未生成；业务唯一键=UK-FR-DAT-103-01；actor=U-ANNOTATION-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-103-01；前置：数据工程师具有标注任务与样本创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前标注任务配置并生成新的草稿或版本，保留来源关系。”执行“复制标注任务”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-104 | <a id="at-fr-dat-104"></a>AT-FR-DAT-104 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_104`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注任务变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-196 | <a id="at-fr-dat-196"></a>AT-FR-DAT-196 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_196`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-196-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置矩形框、多边形、分类标签、缺陷等级和必填属性，保存图像标注模板。”执行“配置图像缺陷标注模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-197 | <a id="at-fr-dat-197"></a>AT-FR-DAT-197 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_197`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-197-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置时间区间、事件类型、通道字段、标签和起止点校验，保存时序标注模板。”执行“配置时序数据标注模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-198 | <a id="at-fr-dat-198"></a>AT-FR-DAT-198 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_198`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-198-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置实体、关系、意图、属性标签和文本片段规则，保存文本标注模板。”执行“配置文本知识标注模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-199 | <a id="at-fr-dat-199"></a>AT-FR-DAT-199 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_199`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-199-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“新增、编辑、停用标签及层级关系，维护标签编码、名称、颜色和适用数据类型。”执行“管理标签体系”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-200 | <a id="at-fr-dat-200"></a>AT-FR-DAT-200 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_200`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-200-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“维护必填字段、互斥标签、取值范围、格式校验和示例说明。”执行“配置标注规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-201 | <a id="at-fr-dat-201"></a>AT-FR-DAT-201 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.operate.fr_dat_201`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-201-01；前置：标注项目、标签体系和样本批次已固定；操作者具有当前动作权限；任务及样本处于状态矩阵允许的状态。 | 1)读取前值和可执行动作；2)按“选择数据集版本、数据类型、标注模板、任务范围和截止时间，生成标注任务。”执行“按模板创建标注任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“任务与样本分别迁移；样本按待分配→待领取→标注中→待复核→已通过/已退回→重标中→待复核流转，全部必需样本通过且质检达标后任务才能验收通过。”；重复请求不新增对象或副作用 | 样本锁冲突、人员失效、标签体系变化、部分提交失败或质检不达标时保留逐样本结果；失败项可补偿，成功项不得重复写入。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 任务与样本状态时间线、人员分工、标签结果、锁记录、复核记录、抽检结果和验收结论。 |
| FR-DAT-105 | <a id="at-fr-dat-105"></a>AT-FR-DAT-105 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_105`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注任务概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验标注任务状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-106 | <a id="at-fr-dat-106"></a>AT-FR-DAT-106 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_106`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注任务详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-107 | <a id="at-fr-dat-107"></a>AT-FR-DAT-107 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_107`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注任务关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-108 | <a id="at-fr-dat-108"></a>AT-FR-DAT-108 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_108`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-108-01；前置：标注任务处于待分配或进行中；样本清单、标签体系和模板固定；分配人与目标标注账号均有效且具有对象范围。 | 1)读取前值和可执行动作；2)按“通过“分配标注任务”功能，仅对可分配的标注任务执行分配、进度查看和退回样本处理；每次操作记录任务状态、处理人和时间。”执行“分配标注任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“首次有效分配使任务待分配→进行中；样本待分配→待领取；重分配保留原分配记录并生成新记录。”；重复请求不新增对象或副作用 | 人员失效、样本冲突或部分写入失败时返回逐样本结果；成功分配不回滚，失败项可补偿且不得重复分配。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 任务状态版本、样本分配清单、人员有效性、逐项回执、冲突明细和审计。 |
| FR-DAT-109 | <a id="at-fr-dat-109"></a>AT-FR-DAT-109 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_109`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-109-01；前置：样本处于待复核或待质检；操作者承担复核职责且普通账号不是原标注人；结果版本和锁有效。 | 1)读取前值和可执行动作；2)按“通过“退回标注任务”功能，仅对可分配的标注任务执行分配、进度查看和退回样本处理；每次操作记录任务状态、处理人和时间。”执行“退回标注任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“样本待复核→已通过/已退回；退回样本后续进入重标中；任务进度由样本终态重新汇总。”；重复请求不新增对象或副作用 | 职责冲突、结果版本变化、证据不足或部分写入失败时返回逐样本结果，未成功项保持原状态。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 样本结果版本、复核结论、退回原因、职责校验、逐项回执和审计。 |
| FR-DAT-110 | <a id="at-fr-dat-110"></a>AT-FR-DAT-110 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_110`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注进度”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“操作前校验权限和状态，操作结果写入操作记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-205 | <a id="at-fr-dat-205"></a>AT-FR-DAT-205 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_205`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-205-01；前置：标注任务处于待分配或进行中；样本清单与标签体系固定；目标人员有效且具备样本范围。 | 1)读取前值和可执行动作；2)按“按人员、角色、工作量和截止时间拆分样本并分配给多个标注人。”执行“分配多人标注任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“首次有效分配使任务进入进行中；样本待分配→待领取；重分配新建记录并保留原分配。”；重复请求不新增对象或副作用 | 人员失效、样本冲突或部分失败时成功项保留、失败项可补偿，不重复分配成功样本。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 任务与样本状态版本、分配清单、人员有效性、逐项回执和审计。 |
| FR-DAT-209 | <a id="at-fr-dat-209"></a>AT-FR-DAT-209 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_209`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注进度统计”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-111 | <a id="at-fr-dat-111"></a>AT-FR-DAT-111 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_111`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“筛选标注作业记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验数据集或数据版本；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-112 | <a id="at-fr-dat-112"></a>AT-FR-DAT-112 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_112`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查询标注作业记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-113 | <a id="at-fr-dat-113"></a>AT-FR-DAT-113 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_113`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“重置标注作业记录筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-114 | <a id="at-fr-dat-114"></a>AT-FR-DAT-114 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_114`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“刷新标注作业记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-115 | <a id="at-fr-dat-115"></a>AT-FR-DAT-115 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_115`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注作业记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-116 | <a id="at-fr-dat-116"></a>AT-FR-DAT-116 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_116`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注作业记录详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口按数据管理模块权限校验；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-202 | <a id="at-fr-dat-202"></a>AT-FR-DAT-202 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_202`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-202-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“按样本编号保存标签、坐标、时间范围或文本片段等已配置标注结果，记录操作者与结果修订号。”执行“保存标注结果”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验标注模板及并发修订号；冲突时不覆盖他人结果。保存为标注草稿，复核质检后才进入统一数据版本生成。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-203 | <a id="at-fr-dat-203"></a>AT-FR-DAT-203 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_203`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注结果版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-206 | <a id="at-fr-dat-206"></a>AT-FR-DAT-206 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.operate.fr_dat_206`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-206-01；前置：样本处于可领取或标注中；操作者在任务分配范围内；锁版本和服务端时间可用。 | 1)读取前值和可执行动作；2)按“标注开始时锁定样本，提交、退回或超时后释放样本，避免多人覆盖。”执行“锁定或释放标注样本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“样本待领取→标注中，释放或过期后回到待领取；标注结果状态不由锁动作直接修改。”；重复请求不新增对象或副作用 | 并发领取、过期锁、非锁持有人释放或账号失效时拒绝，返回当前锁持有人和到期时间的受控信息。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 样本状态、锁版本、服务端时间、领取/释放回执、并发拒绝和审计。 |
| FR-DAT-207 | <a id="at-fr-dat-207"></a>AT-FR-DAT-207 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.operate.fr_dat_207`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-207-01；前置：样本处于标注中；操作者持有有效锁或协同编辑租约；标签体系与当前结果版本一致。 | 1)读取前值和可执行动作；2)按“允许有权限的标注人共同编辑同一任务，记录每次修改内容和操作人。”执行“协同编辑标注结果”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“暂存保持标注中；正式提交另行迁移至待复核；每次保存新增结果修订。”；重复请求不新增对象或副作用 | 锁过期、标签体系变化、版本冲突或附件失败时保留本地输入并返回字段级错误。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 样本与锁版本、结果修订、字段差异、标签校验、冲突回执和审计。 |
| FR-DAT-208 | <a id="at-fr-dat-208"></a>AT-FR-DAT-208 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.execute.fr_dat_208`；`POST /api/v2/annotation-tasks/{annotation_task_id}/tasks`；202；创建执行任务和输入快照 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-208-01；前置：标注任务与样本及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“检测同一样本的标签、坐标或文本范围冲突，支持选择结果、合并或退回重标。”执行“处理标注冲突”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“校验记录独立保存；标注任务与样本仅按“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-117 | <a id="at-fr-dat-117"></a>AT-FR-DAT-117 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_117`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-117-01；前置：样本处于待复核或待质检；操作者承担复核职责且普通账号不是原标注人；结果版本和锁有效。 | 1)读取前值和可执行动作；2)按“通过“通过标注复核”功能，显示标注验收版本当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“通过标注复核”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；标注验收版本的关键状态变化必须写入操作审计。”；状态遵循“样本待复核→已通过/已退回；退回样本后续进入重标中；任务进度由样本终态重新汇总。”；重复请求不新增对象或副作用 | 职责冲突、结果版本变化、证据不足或部分写入失败时返回逐样本结果，未成功项保持原状态。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 样本结果版本、复核结论、退回原因、职责校验、逐项回执和审计。 |
| FR-DAT-118 | <a id="at-fr-dat-118"></a>AT-FR-DAT-118 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_118`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-118-01；前置：样本处于待复核或待质检；操作者承担复核职责且普通账号不是原标注人；结果版本和锁有效。 | 1)读取前值和可执行动作；2)按“通过“退回标注修正”功能，显示标注验收版本当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“退回标注修正”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；标注验收版本的关键状态变化必须写入操作审计。”；状态遵循“样本待复核→已通过/已退回；退回样本后续进入重标中；任务进度由样本终态重新汇总。”；重复请求不新增对象或副作用 | 职责冲突、结果版本变化、证据不足或部分写入失败时返回逐样本结果，未成功项保持原状态。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 样本结果版本、复核结论、退回原因、职责校验、逐项回执和审计。 |
| FR-DAT-119 | <a id="at-fr-dat-119"></a>AT-FR-DAT-119 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.execute.fr_dat_119`；`POST /api/v2/annotation-tasks/{annotation_task_id}/tasks`；202；创建执行任务和输入快照 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-119-01；前置：标注任务已验收通过；样本终态、质检结论、标签体系和来源批次完整；无待复核或锁定样本。 | 1)读取前值和可执行动作；2)按“选择复核通过的标注结果，进入统一数据质检与版本生成流程。”执行“生成标注数据版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；标注验收版本的关键状态变化必须写入操作审计。 数据或标注结果不得覆盖冻结版本；经复核质检后交接统一数据版本生成。”；状态遵循“版本待生成→生成中→待冻结/生成失败；任务与样本历史状态不被覆盖。”；重复请求不新增对象或副作用 | 样本清单变化、质检失效或生成中断时版本不得转正式；清理临时内容并保留编号和失败证据。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 验收签署、样本清单、质量报告、临时/正式版本、血缘、失败补偿和审计。 |
| FR-DAT-120 | <a id="at-fr-dat-120"></a>AT-FR-DAT-120 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_120`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看复核验收与版本生成处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-121 | <a id="at-fr-dat-121"></a>AT-FR-DAT-121 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_121`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看复核验收与版本生成操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-204 | <a id="at-fr-dat-204"></a>AT-FR-DAT-204 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.read.fr_dat_204`；`GET /api/v2/annotation-tasks/{annotation_task_id}`；200；只读响应，不改变revision/state_version | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有标注项目、任务及样本范围的读取权限；任务、批次和标签体系存在。 | 1)记录对象版本和状态；2)执行“查看标注数据版本关联”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只读查看不保存、不生成版本；关联缺失显示状态和原因，不自动补建对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 无权样本不得返回摘要；锁已过期、样本被重分配或进度汇总延迟时显示明确状态和数据时间。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 任务编号、样本状态分布、锁信息、复核与验收记录、查询时间和权限判定。 |
| FR-DAT-210 | <a id="at-fr-dat-210"></a>AT-FR-DAT-210 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.update.fr_dat_210`；`PATCH /api/v2/annotation-tasks/{annotation_task_id}`；200；保存新修订或草稿差异 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-210-01；前置：数据工程师具有标注任务与样本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置按任务或人员的抽检比例、抽检方式和触发条件。”执行“配置标注抽检比例”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“标注任务与样本遵循“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-211 | <a id="at-fr-dat-211"></a>AT-FR-DAT-211 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.execute.fr_dat_211`；`POST /api/v2/annotation-tasks/{annotation_task_id}/tasks`；202；创建执行任务和输入快照 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-211-01；前置：标注任务与样本及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“对多人标注结果按标签、边界、时间区间或文本范围计算一致性并标记差异。”执行“执行标注一致性检查”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“校验记录独立保存；标注任务与样本仅按“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-212 | <a id="at-fr-dat-212"></a>AT-FR-DAT-212 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.operate.fr_dat_212`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-212-01；前置：标注任务与样本及其引用版本已固定，数据工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“录入完整性、准确性、一致性评分和问题类型，形成标注质量结果。”执行“记录质检评分”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“校验记录独立保存；标注任务与样本仅按“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-213 | <a id="at-fr-dat-213"></a>AT-FR-DAT-213 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_213`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-213-01；前置：样本处于待复核或待质检；操作者承担复核职责且普通账号不是原标注人；结果版本和锁有效。 | 1)读取前值和可执行动作；2)按“将问题样本退回指定标注人，填写问题原因和截止时间，跟踪修正后复核结果。”执行“退回问题标注并跟踪修正”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“样本待复核→已通过/已退回；退回样本后续进入重标中；任务进度由样本终态重新汇总。”；重复请求不新增对象或副作用 | 职责冲突、结果版本变化、证据不足或部分写入失败时返回逐样本结果，未成功项保持原状态。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 样本结果版本、复核结论、退回原因、职责校验、逐项回执和审计。 |
| FR-DAT-214 | <a id="at-fr-dat-214"></a>AT-FR-DAT-214 | 数据标注 / 主页面：数据标注｜区域：主工作区｜载体：页面 | `v2.annotation.transition.fr_dat_214`；`POST /api/v2/annotation-tasks/{annotation_task_id}/actions/{action}`；200/202；迁移状态并写审计 | annotation_task_id=AN-T001；actor=U-ANNOTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-214-01；前置：数据工程师具有“关闭标注质检任务”动作权限；标注任务与样本处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“确认抽检通过率和问题闭环完成后关闭质检任务，生成质检记录。”执行“关闭标注质检任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。 数据或标注结果不得覆盖冻结版本；经复核质检后交接统一数据版本生成。”；状态遵循“只允许“任务草稿→待分配→进行中→待验收→已通过/已退回→已关闭”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、任务编号、样本编号、标签体系版本、锁版本、标注结果版本、复核结论、验收结论、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-DAT-188 | <a id="at-fr-dat-188"></a>AT-FR-DAT-188 | 数据质检 / 主页面：数据质检｜区域：周期质量巡检｜载体：页面区块 | `v2.data-quality.update.fr_dat_188`；`PATCH /api/v2/quality-tasks/{quality_task_id}`；200；保存新修订或草稿差异 | quality_task_id=DQ-T001；actor=U-DATA-QUALITY-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-188-01；前置：数据工程师具有数据质量任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择数据集、质量规则、巡检频率、执行时间和通知对象，保存巡检计划。”执行“配置数据质量巡检计划”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据质量任务遵循“草稿→待执行→运行中→通过/不通过/执行失败→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-189 | <a id="at-fr-dat-189"></a>AT-FR-DAT-189 | 数据质检 / 主页面：数据质检｜区域：周期质量巡检｜载体：页面区块 | `v2.data-quality.execute.fr_dat_189`；`POST /api/v2/quality-tasks/{quality_task_id}/tasks`；202；创建执行任务和输入快照 | quality_task_id=DQ-T001；actor=U-DATA-QUALITY-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-189-01；前置：数据质量任务的输入、配置、引用版本和执行门禁已通过；数据工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择数据集版本和规则集执行完整性、唯一性、准确性、及时性巡检。”执行“提交数据质量巡检”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据质量任务生命周期为“草稿→待执行→运行中→通过/不通过/执行失败→已关闭”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-190 | <a id="at-fr-dat-190"></a>AT-FR-DAT-190 | 数据质检 / 主页面：数据质检｜区域：周期质量巡检｜载体：页面区块 | `v2.data-quality.read.fr_dat_190`；`GET /api/v2/quality-tasks/{quality_task_id}`；200；只读响应，不改变revision/state_version | quality_task_id=DQ-T001；actor=U-DATA-QUALITY-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据质量任务读取权限和对象数据范围；目标quality_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看质量巡检报告”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | quality_task_id、查询请求号、规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-191 | <a id="at-fr-dat-191"></a>AT-FR-DAT-191 | 数据质检 / 主页面：数据质检｜区域：周期质量巡检｜载体：页面区块 | `v2.data-quality.operate.fr_dat_191`；`POST /api/v2/quality-tasks/{quality_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | quality_task_id=DQ-T001；actor=U-DATA-QUALITY-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-191-01；前置：数据工程师具有数据质量任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“查看问题字段、样本编号、原始值、期望值、来源和处理建议。”执行“定位质量问题样本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据质量任务遵循“草稿→待执行→运行中→通过/不通过/执行失败→已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、规则版本、检查范围、指标结果、问题样本、质量结论、整改责任人、复检记录、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-170 | <a id="at-fr-dat-170"></a>AT-FR-DAT-170 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_170`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选元数据目录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-171 | <a id="at-fr-dat-171"></a>AT-FR-DAT-171 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_171`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看元数据目录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-172 | <a id="at-fr-dat-172"></a>AT-FR-DAT-172 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_172`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据集元数据详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-173 | <a id="at-fr-dat-173"></a>AT-FR-DAT-173 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_173`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看字段元数据详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-174 | <a id="at-fr-dat-174"></a>AT-FR-DAT-174 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.update.fr_dat_174`；`PATCH /api/v2/governance-assets/{governance_asset_id}`；200；保存新修订或草稿差异 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-174-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“维护元数据负责人、业务标签和备注，记录修改历史。”执行“维护元数据责任人与标签”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“不维护部门、组织或数据范围授权；变更不改写冻结版本快照。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-175 | <a id="at-fr-dat-175"></a>AT-FR-DAT-175 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.operate.fr_dat_175`；`POST /api/v2/governance-assets/{governance_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-175-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“记录元数据变更字段、变更前后值、变更人、变更时间和变更原因。”执行“登记元数据变更记录”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-176 | <a id="at-fr-dat-176"></a>AT-FR-DAT-176 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.execute.fr_dat_176`；`POST /api/v2/governance-assets/{governance_asset_id}/tasks`；202；创建执行任务和输入快照 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-176-01；前置：元数据、标准与血缘资产的输入、配置、引用版本和执行门禁已通过；数据负责人具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“按模板导入数据集和字段元数据，校验重复、缺失和类型错误并返回导入结果。”执行“导入元数据目录”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产生命周期为“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-177 | <a id="at-fr-dat-177"></a>AT-FR-DAT-177 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.export.fr_dat_177`；`POST /api/v2/governance-assets/{governance_asset_id}/exports`；202；仅创建导出任务，不改变来源对象状态 | governance_asset_id=GOV-T001；artifact_id=ART-001；artifact_state=success；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；前置：用户同时具有元数据、标准与血缘资产读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | governance_asset_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-DAT-178 | <a id="at-fr-dat-178"></a>AT-FR-DAT-178 | 数据治理 / 主页面：数据治理｜区域：元数据目录管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_178`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看元数据影响范围”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-179 | <a id="at-fr-dat-179"></a>AT-FR-DAT-179 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_179`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据标准列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-180 | <a id="at-fr-dat-180"></a>AT-FR-DAT-180 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.create.fr_dat_180`；`POST /api/v2/governance-assets`；201；创建对象与首条审计 | governance_asset_id=未生成；业务唯一键=UK-FR-DAT-180-01；actor=U-DATA-GOVERNANCE-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-180-01；前置：数据负责人具有元数据、标准与血缘资产创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“填写标准名称、编码、适用范围、责任人和说明，保存数据标准。”执行“新增数据标准”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“创建后进入“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-181 | <a id="at-fr-dat-181"></a>AT-FR-DAT-181 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.update.fr_dat_181`；`PATCH /api/v2/governance-assets/{governance_asset_id}`；200；保存新修订或草稿差异 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-181-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“修改标准说明、适用范围和责任人，提交变更并记录变更原因。”执行“编辑数据标准”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-182 | <a id="at-fr-dat-182"></a>AT-FR-DAT-182 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.transition.fr_dat_182`；`POST /api/v2/governance-assets/{governance_asset_id}/actions/{action}`；200/202；迁移状态并写审计 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-182-01；前置：数据负责人具有“停用数据标准”动作权限；元数据、标准与血缘资产处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“选择停用原因并停用未被有效数据集引用的标准，保留历史版本。”执行“停用数据标准”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“只允许“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-DAT-183 | <a id="at-fr-dat-183"></a>AT-FR-DAT-183 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.update.fr_dat_183`；`PATCH /api/v2/governance-assets/{governance_asset_id}`；200；保存新修订或草稿差异 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-183-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“创建标准新版本，维护版本号、生效时间、变更说明和状态。”执行“管理数据标准版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-184 | <a id="at-fr-dat-184"></a>AT-FR-DAT-184 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.update.fr_dat_184`；`PATCH /api/v2/governance-assets/{governance_asset_id}`；200；保存新修订或草稿差异 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-184-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“维护字段名称、数据类型、长度、单位、枚举值、编码规则和必填约束。”执行“配置字段标准定义”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-185 | <a id="at-fr-dat-185"></a>AT-FR-DAT-185 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.operate.fr_dat_185`；`POST /api/v2/governance-assets/{governance_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-185-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择数据集字段并绑定标准字段，校验类型、单位和枚举兼容性。”执行“映射数据标准与数据集字段”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-186 | <a id="at-fr-dat-186"></a>AT-FR-DAT-186 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.read.fr_dat_186`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看标准变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-187 | <a id="at-fr-dat-187"></a>AT-FR-DAT-187 | 数据治理 / 主页面：数据治理｜区域：数据标准管理｜载体：页面区块 | `v2.data-governance.validate.fr_dat_187`；`POST /api/v2/governance-assets/{governance_asset_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-187-01；前置：元数据、标准与血缘资产及其引用版本已固定，数据负责人具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“查看标准变更影响的数据集、清洗规则、训练任务和 API，并生成影响清单。”执行“分析标准变更影响”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“校验记录独立保存；元数据、标准与血缘资产仅按“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-192 | <a id="at-fr-dat-192"></a>AT-FR-DAT-192 | 数据治理 / 主页面：数据治理｜区域：数据血缘治理｜载体：页面区块 | `v2.data-governance.update.fr_dat_192`；`PATCH /api/v2/governance-assets/{governance_asset_id}`；200；保存新修订或草稿差异 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-192-01；前置：数据负责人具有元数据、标准与血缘资产创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择数据源、数据集、加工任务、训练版本和 API，设置自动采集范围。”执行“配置血缘采集范围”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“元数据、标准与血缘资产遵循“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-193 | <a id="at-fr-dat-193"></a>AT-FR-DAT-193 | 数据治理 / 主页面：数据治理｜区域：数据血缘治理｜载体：页面区块 | `v2.data-governance.read.fr_dat_193`；`GET /api/v2/governance-assets/{governance_asset_id}`；200；只读响应，不改变revision/state_version | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有元数据、标准与血缘资产读取权限和对象数据范围；目标governance_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看端到端数据血缘”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | governance_asset_id、查询请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-194 | <a id="at-fr-dat-194"></a>AT-FR-DAT-194 | 数据治理 / 主页面：数据治理｜区域：数据血缘治理｜载体：页面区块 | `v2.data-governance.validate.fr_dat_194`；`POST /api/v2/governance-assets/{governance_asset_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | governance_asset_id=GOV-T001；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-194-01；前置：元数据、标准与血缘资产及其引用版本已固定，数据负责人具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“选定数据集或字段后查看上游来源、下游任务、服务和受影响对象。”执行“分析血缘影响范围”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“校验记录独立保存；元数据、标准与血缘资产仅按“草稿→启用→变更中→已停用；采集结果独立为可用/部分可用/失败”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、资产类型、责任人、标签、标准版本、字段映射、血缘摘要、影响范围、采集时间、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-DAT-195 | <a id="at-fr-dat-195"></a>AT-FR-DAT-195 | 数据治理 / 主页面：数据治理｜区域：数据血缘治理｜载体：页面区块 | `v2.data-governance.export.fr_dat_195`；`POST /api/v2/governance-assets/{governance_asset_id}/exports`；202；仅创建导出任务，不改变来源对象状态 | governance_asset_id=GOV-T001；artifact_id=ART-001；artifact_state=success；actor=U-DATA-GOVERNANCE-01；revision=3；state_version=5；前置：用户同时具有元数据、标准与血缘资产读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | governance_asset_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-DAT-215 | <a id="at-fr-dat-215"></a>AT-FR-DAT-215 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.read.fr_dat_215`；`GET /api/v2/data-apis/{data_api_id}`；200；只读响应，不改变revision/state_version | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据 API读取权限和对象数据范围；目标data_api_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据 API 列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | data_api_id、查询请求号、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-216 | <a id="at-fr-dat-216"></a>AT-FR-DAT-216 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.create.fr_dat_216`；`POST /api/v2/data-apis`；201；创建对象与首条审计 | data_api_id=未生成；业务唯一键=UK-FR-DAT-216-01；actor=U-DATA-API-01；revision=0；state_version=0；幂等键=IDEM-FR-DAT-216-01；前置：数据工程师具有数据 API创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“填写 API 名称、路径、请求方式、关联数据集和返回字段，生成数据 API。”执行“新增数据 API”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“创建后进入“草稿→测试中→待发布→已发布→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-DAT-217 | <a id="at-fr-dat-217"></a>AT-FR-DAT-217 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.update.fr_dat_217`；`PATCH /api/v2/data-apis/{data_api_id}`；200；保存新修订或草稿差异 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-217-01；前置：数据工程师具有数据 API创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“修改 API 描述、参数、返回字段和限流配置，提交变更并生成变更记录。”执行“编辑数据 API”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据 API遵循“草稿→测试中→待发布→已发布→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-218 | <a id="at-fr-dat-218"></a>AT-FR-DAT-218 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.transition.fr_dat_218`；`POST /api/v2/data-apis/{data_api_id}/actions/{action}`；200/202；迁移状态并写审计 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-218-01；前置：数据工程师具有“停用数据 API”动作权限；数据 API处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“校验无进行中的调用或发布任务后停用 API，保留历史版本和调用记录。”执行“停用数据 API”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“只允许“草稿→测试中→待发布→已发布→已停用”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-DAT-219 | <a id="at-fr-dat-219"></a>AT-FR-DAT-219 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.update.fr_dat_219`；`PATCH /api/v2/data-apis/{data_api_id}`；200；保存新修订或草稿差异 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-219-01；前置：数据工程师具有数据 API创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“定义数据API输出契约：固定数据集版本、返回字段、业务筛选参数及输出脱敏规则。”执行“配置数据 API 输出契约”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“这是接口返回内容配置，不是用户或角色字段级授权；调用方认证与模块权限分别校验。”；状态遵循“数据 API遵循“草稿→测试中→待发布→已发布→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-220 | <a id="at-fr-dat-220"></a>AT-FR-DAT-220 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.update.fr_dat_220`；`PATCH /api/v2/data-apis/{data_api_id}`；200；保存新修订或草稿差异 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-220-01；前置：数据工程师具有数据 API创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“创建、复制、启用、停用 API 版本，维护版本说明和兼容性关系。”执行“管理数据 API 版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据 API遵循“草稿→测试中→待发布→已发布→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-DAT-221 | <a id="at-fr-dat-221"></a>AT-FR-DAT-221 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.execute.fr_dat_221`；`POST /api/v2/data-apis/{data_api_id}/tasks`；202；创建执行任务和输入快照 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-221-01；前置：数据 API的输入、配置、引用版本和执行门禁已通过；数据工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“填写请求参数执行测试，返回状态码、响应字段、样例数据、耗时和错误信息。”执行“测试数据 API”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据 API生命周期为“草稿→测试中→待发布→已发布→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-222 | <a id="at-fr-dat-222"></a>AT-FR-DAT-222 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.read.fr_dat_222`；`GET /api/v2/data-apis/{data_api_id}`；200；只读响应，不改变revision/state_version | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有数据 API读取权限和对象数据范围；目标data_api_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看 API 调用记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | data_api_id、查询请求号、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、权限判定、数据时间、分页结果和审计记录。 |
| FR-DAT-223 | <a id="at-fr-dat-223"></a>AT-FR-DAT-223 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.execute.fr_dat_223`；`POST /api/v2/data-apis/{data_api_id}/tasks`；202；创建执行任务和输入快照 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-223-01；前置：数据 API的输入、配置、引用版本和执行门禁已通过；数据工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“生成请求参数、响应字段、鉴权方式、错误码和调用示例文档。”执行“生成数据 API 文档”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据 API生命周期为“草稿→测试中→待发布→已发布→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-DAT-224 | <a id="at-fr-dat-224"></a>AT-FR-DAT-224 | 数据服务 / 主页面：数据服务｜区域：主工作区｜载体：页面 | `v2.data-api.update.fr_dat_224`；`PATCH /api/v2/data-apis/{data_api_id}`；200；保存新修订或草稿差异 | data_api_id=DAPI-T001；actor=U-DATA-API-01；revision=3；state_version=5；幂等键=IDEM-FR-DAT-224-01；前置：数据工程师具有数据 API创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置超时、限流、重试、熔断和异常通知策略，记录策略执行结果。”执行“配置 API 异常处理”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“数据 API遵循“草稿→测试中→待发布→已发布→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、API编号、路径、方法、输入输出契约、鉴权策略、限流、版本、调用统计、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-001 | <a id="at-fr-alg-001"></a>AT-FR-ALG-001 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_001`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选算法资产”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验算法版本或开发工作区；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-002 | <a id="at-fr-alg-002"></a>AT-FR-ALG-002 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_002`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询算法资产”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-003 | <a id="at-fr-alg-003"></a>AT-FR-ALG-003 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_003`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置算法资产筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-004 | <a id="at-fr-alg-004"></a>AT-FR-ALG-004 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_004`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新算法资产列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-005 | <a id="at-fr-alg-005"></a>AT-FR-ALG-005 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_005`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法资产列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-006 | <a id="at-fr-alg-006"></a>AT-FR-ALG-006 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_006`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法资产详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-007 | <a id="at-fr-alg-007"></a>AT-FR-ALG-007 | 算法资产 / 主页面：算法资产｜区域：算法创建与登记操作弹窗｜载体：操作弹窗 | `v2.algorithm-asset.create.fr_alg_007`；`POST /api/v2/algorithm-assets`；201；创建对象与首条审计 | algorithm_asset_id=未生成；业务唯一键=UK-FR-ALG-007-01；actor=U-ALGORITHM-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-007-01；前置：算法工程师具有算法资产与组件创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写算法名称、工业场景、负责人、技术路线、输入输出要求、运行条件。”执行“新增算法”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“创建后进入“草稿→校验中→可用/阻断→已冻结→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-008 | <a id="at-fr-alg-008"></a>AT-FR-ALG-008 | 算法资产 / 主页面：算法资产｜区域：算法创建与登记配置表单｜载体：配置表单 | `v2.algorithm-asset.select.fr_alg_008`；`GET /api/v2/algorithm-assets/options`；200；返回有权限且状态可选的候选项，不保存表单 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法资产关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-009 | <a id="at-fr-alg-009"></a>AT-FR-ALG-009 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_009`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-009-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“提交前校验算法名称、工业场景、负责人、技术路线、输入输出要求、运行条件的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“算法创建与登记表单校验”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-010 | <a id="at-fr-alg-010"></a>AT-FR-ALG-010 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_010`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-010-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回算法资产编号和当前算法版本编号。”执行“保存算法资产”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新算法资产列表或进入算法详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-011 | <a id="at-fr-alg-011"></a>AT-FR-ALG-011 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_011`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-011-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“算法创建与登记编辑”功能，打开算法资产编辑页面并加载当前配置；保存后刷新详情。”执行“算法创建与登记编辑”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-012 | <a id="at-fr-alg-012"></a>AT-FR-ALG-012 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_012`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-012-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“算法创建与登记复制”功能，复制当前算法资产配置并生成新的草稿或版本，保留来源关系。”执行“算法创建与登记复制”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-013 | <a id="at-fr-alg-013"></a>AT-FR-ALG-013 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_013`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“算法创建与登记变更记录查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-014 | <a id="at-fr-alg-014"></a>AT-FR-ALG-014 | 算法资产 / 主页面：算法资产｜区域：外部算法导入操作弹窗｜载体：操作弹窗 | `v2.algorithm-asset.execute.fr_alg_014`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-014-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“在表单中填写导入类型、代码包或镜像、来源、版本、许可证、入口、输入输出。”执行“导入外部算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-015 | <a id="at-fr-alg-015"></a>AT-FR-ALG-015 | 算法资产 / 主页面：算法资产｜区域：外部算法导入配置表单｜载体：配置表单 | `v2.algorithm-asset.select.fr_alg_015`；`GET /api/v2/algorithm-assets/options`；200；返回有权限且状态可选的候选项，不保存表单 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法资产关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-016 | <a id="at-fr-alg-016"></a>AT-FR-ALG-016 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_016`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-016-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“提交前校验导入类型、代码包或镜像、来源、版本、许可证、入口、输入输出的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“外部算法导入表单校验”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-017 | <a id="at-fr-alg-017"></a>AT-FR-ALG-017 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_017`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-017-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回算法资产编号和当前算法版本编号；导入失败时保留已填写内容并提示原因。”执行“保存外部算法资产”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新算法资产列表或进入算法详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-018 | <a id="at-fr-alg-018"></a>AT-FR-ALG-018 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_018`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-018-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“外部算法导入编辑”功能，打开算法资产编辑页面并加载当前配置；保存后刷新详情。”执行“外部算法导入编辑”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-019 | <a id="at-fr-alg-019"></a>AT-FR-ALG-019 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_019`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-019-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“外部算法导入复制”功能，复制当前算法资产配置并生成新的草稿或版本，保留来源关系。”执行“外部算法导入复制”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-020 | <a id="at-fr-alg-020"></a>AT-FR-ALG-020 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_020`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“外部算法导入变更记录查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-021 | <a id="at-fr-alg-021"></a>AT-FR-ALG-021 | 算法资产 / 主页面：算法资产｜区域：算法组件封装操作弹窗｜载体：操作弹窗 | `v2.algorithm-asset.create.fr_alg_021`；`POST /api/v2/algorithm-assets`；201；创建对象与首条审计 | algorithm_asset_id=未生成；业务唯一键=UK-FR-ALG-021-01；actor=U-ALGORITHM-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-021-01；前置：算法工程师具有算法资产与组件创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写组件名称、组件类型、参数、依赖、输入输出、执行入口、版本。”执行“新增算法组件”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“创建后进入“草稿→校验中→可用/阻断→已冻结→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-022 | <a id="at-fr-alg-022"></a>AT-FR-ALG-022 | 算法资产 / 主页面：算法资产｜区域：算法组件封装配置表单｜载体：配置表单 | `v2.algorithm-asset.select.fr_alg_022`；`GET /api/v2/algorithm-assets/options`；200；返回有权限且状态可选的候选项，不保存表单 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法组件关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-023 | <a id="at-fr-alg-023"></a>AT-FR-ALG-023 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.validate.fr_alg_023`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-023-01；前置：算法资产与组件及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验组件名称、组件类型、参数、依赖、输入输出、执行入口、版本的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验算法组件表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；算法资产与组件仅按“草稿→校验中→可用/阻断→已冻结→已停用”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-024 | <a id="at-fr-alg-024"></a>AT-FR-ALG-024 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_024`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-024-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回算法组件编号和组件版本编号。”执行“保存算法组件”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新算法组件列表或进入组件详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-025 | <a id="at-fr-alg-025"></a>AT-FR-ALG-025 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_025`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-025-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开算法组件编辑页面并加载当前配置；保存后刷新详情。”执行“编辑算法组件”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-026 | <a id="at-fr-alg-026"></a>AT-FR-ALG-026 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.create.fr_alg_026`；`POST /api/v2/algorithm-assets`；201；创建对象与首条审计 | algorithm_asset_id=未生成；业务唯一键=UK-FR-ALG-026-01；actor=U-ALGORITHM-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-026-01；前置：算法工程师具有算法资产与组件创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前算法组件配置并生成新的草稿或版本，保留来源关系。”执行“复制算法组件”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→校验中→可用/阻断→已冻结→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-027 | <a id="at-fr-alg-027"></a>AT-FR-ALG-027 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_027`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法组件变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-028 | <a id="at-fr-alg-028"></a>AT-FR-ALG-028 | 算法资产 / 主页面：算法资产｜区域：输入输出接口定义配置表单｜载体：配置表单 | `v2.algorithm-asset.update.fr_alg_028`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-028-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在表单中填写输入字段、数据类型、必填规则、约束、输出结构、异常返回、示例。”执行“配置算法输入输出”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-029 | <a id="at-fr-alg-029"></a>AT-FR-ALG-029 | 算法资产 / 主页面：算法资产｜区域：输入输出接口定义配置表单｜载体：配置表单 | `v2.algorithm-asset.select.fr_alg_029`；`GET /api/v2/algorithm-assets/options`；200；返回有权限且状态可选的候选项，不保存表单 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法接口定义关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-030 | <a id="at-fr-alg-030"></a>AT-FR-ALG-030 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.validate.fr_alg_030`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-030-01；前置：算法资产与组件及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验输入字段、数据类型、必填规则、约束、输出结构、异常返回、示例的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验算法接口定义表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；算法资产与组件仅按“草稿→校验中→可用/阻断→已冻结→已停用”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-031 | <a id="at-fr-alg-031"></a>AT-FR-ALG-031 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_031`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-031-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回算法接口定义编号和当前版本状态。”执行“保存算法接口定义”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新接口定义或进入算法详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-032 | <a id="at-fr-alg-032"></a>AT-FR-ALG-032 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_032`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-032-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开算法接口定义编辑页面并加载当前配置；保存后刷新详情。”执行“编辑算法接口定义”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-033 | <a id="at-fr-alg-033"></a>AT-FR-ALG-033 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.create.fr_alg_033`；`POST /api/v2/algorithm-assets`；201；创建对象与首条审计 | algorithm_asset_id=未生成；业务唯一键=UK-FR-ALG-033-01；actor=U-ALGORITHM-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-033-01；前置：算法工程师具有算法资产与组件创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前算法接口定义配置并生成新的草稿或版本，保留来源关系。”执行“复制算法接口定义”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→校验中→可用/阻断→已冻结→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-034 | <a id="at-fr-alg-034"></a>AT-FR-ALG-034 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_034`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法接口定义变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-179 | <a id="at-fr-alg-179"></a>AT-FR-ALG-179 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_179`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看时序预测算法组件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-180 | <a id="at-fr-alg-180"></a>AT-FR-ALG-180 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_180`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看分类聚类算法组件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-181 | <a id="at-fr-alg-181"></a>AT-FR-ALG-181 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_181`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看异常检测算法组件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-182 | <a id="at-fr-alg-182"></a>AT-FR-ALG-182 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_182`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看图像识别算法组件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-183 | <a id="at-fr-alg-183"></a>AT-FR-ALG-183 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_183`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看 OCR 算法组件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-184 | <a id="at-fr-alg-184"></a>AT-FR-ALG-184 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.read.fr_alg_184`；`GET /api/v2/algorithm-assets/{algorithm_asset_id}`；200；只读响应，不改变revision/state_version | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法资产与组件读取权限和对象数据范围；目标algorithm_asset_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看 NLP 解析算法组件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | algorithm_asset_id、查询请求号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-185 | <a id="at-fr-alg-185"></a>AT-FR-ALG-185 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.create.fr_alg_185`；`POST /api/v2/algorithm-assets`；201；创建对象与首条审计 | algorithm_asset_id=未生成；业务唯一键=UK-FR-ALG-185-01；actor=U-ALGORITHM-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-185-01；前置：算法工程师具有算法资产与组件创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“选择算法类别，填写名称、版本、适用场景、依赖和说明，保存算法组件。”执行“新增基础算法组件”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“创建后进入“草稿→校验中→可用/阻断→已冻结→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-186 | <a id="at-fr-alg-186"></a>AT-FR-ALG-186 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_186`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-186-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“定义组件参数名称、类型、默认值、范围、必填约束和说明。”执行“配置算法组件参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“参数契约随组件版本保存；非法默认值或范围阻断保存。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-187 | <a id="at-fr-alg-187"></a>AT-FR-ALG-187 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_187`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-187-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置组件输入输出端口、字段、类型、结构和样例。”执行“配置算法组件输入输出契约”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验上下游契约兼容性，变更已冻结契约必须新建组件版本。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-188 | <a id="at-fr-alg-188"></a>AT-FR-ALG-188 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_188`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-188-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“创建、复制、启用、停用组件版本，记录变更说明和兼容性信息。”执行“管理算法组件版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-189 | <a id="at-fr-alg-189"></a>AT-FR-ALG-189 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_189`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-189-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择组件版本、样例输入及参数，在独立运行环境执行一次试运行，返回输出、日志和运行编号。”执行“试运行算法组件”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅访问指定输入和输出目录；默认禁止访问宿主机敏感目录及未经允许的网络；设置运行时长和资源上限。具体隔离方案由研发选择并验证，试运行不替代正式训练或独立评测。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-190 | <a id="at-fr-alg-190"></a>AT-FR-ALG-190 | 算法资产 / 主页面：算法资产｜区域：主工作区｜载体：页面 | `v2.algorithm-asset.update.fr_alg_190`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-190-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择组件版本加入流程画布，配置连线与端口映射。”执行“添加算法组件到流程画布”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“V2.0交付；检查上下游契约与版本兼容性，不自动执行流程。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-191 | <a id="at-fr-alg-191"></a>AT-FR-ALG-191 | 算法资产 / 主页面：算法资产｜区域：通用输入输出组件｜载体：页面 | `v2.algorithm-asset.operate.fr_alg_191`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-191-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在组件配置区选择已授权文件连接和文件，设置 CSV 编码及分隔符、JSON 记录路径或 Parquet 列选择，执行读取后返回字段结构、行数及数据预览。”执行“读取 CSV/JSON/Parquet 文件”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验文件权限、大小和字段类型；解析失败定位文件及记录，不将敏感原文写入日志。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的产物先…”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-192 | <a id="at-fr-alg-192"></a>AT-FR-ALG-192 | 算法资产 / 主页面：算法资产｜区域：通用输入输出组件｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_192`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-192-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择数据库连接，填写参数化 SQL、查询参数和读取上限，执行后返回表格数据、字段类型、行数及耗时。”执行“执行数据库只读查询”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅允许只读查询；校验连接权限、参数绑定、超时和行数上限，禁止执行数据写入及结构变更语句。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-193 | <a id="at-fr-alg-193"></a>AT-FR-ALG-193 | 算法资产 / 主页面：算法资产｜区域：通用输入输出组件｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_193`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-193-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 API 连接，设置请求参数、分页、响应字段映射、超时和重试，执行读取后返回标准表格及请求结果摘要。”执行“执行 API 数据读取”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按连接授权访问；校验分页终止条件与限流，认证信息脱敏，失败返回请求批次和可重试原因。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-194 | <a id="at-fr-alg-194"></a>AT-FR-ALG-194 | 算法资产 / 主页面：算法资产｜区域：通用输入输出组件｜载体：页面 | `v2.algorithm-asset.export.fr_alg_194`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/exports`；202；仅创建导出任务，不改变来源对象状态 | algorithm_asset_id=ALG-T001；artifact_id=ART-001；artifact_state=success；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；前置：用户同时具有算法资产与组件读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | algorithm_asset_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-ALG-195 | <a id="at-fr-alg-195"></a>AT-FR-ALG-195 | 算法资产 / 主页面：算法资产｜区域：通用输入输出组件｜载体：页面 | `v2.algorithm-asset.update.fr_alg_195`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-195-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在算法运行结果区选择模型对象，填写模型名称、产物格式和依赖环境，保存模型文件及特征映射并返回产物编号和模型登记入口。”执行“保存组件模型产物”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“模型文件绑定算法、数据、参数及环境版本；仅保存受支持格式，模型发布仍遵循已有独立评测与发布门禁。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需…”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-196 | <a id="at-fr-alg-196"></a>AT-FR-ALG-196 | 算法资产 / 主页面：算法资产｜区域：通用数据预处理｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_196`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-196-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择数值字段，配置 Min-Max 归一化或 Z-score 标准化，拟合后输出转换数据及可复用变换参数。”执行“执行数值归一化与标准化”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“只在训练数据拟合统计量；验证和测试数据复用参数，常量列、空值与异常范围须明确处理。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-197 | <a id="at-fr-alg-197"></a>AT-FR-ALG-197 | 算法资产 / 主页面：算法资产｜区域：通用数据预处理｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_197`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-197-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择类别字段和 One-Hot 或 Ordinal 编码，配置未知类别处理及输出字段命名，返回编码数据和映射表。”执行“执行类别编码”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“编码器只在训练数据拟合；校验输出维度、未知类别及空值策略，推理时复用同一映射版本。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-198 | <a id="at-fr-alg-198"></a>AT-FR-ALG-198 | 算法资产 / 主页面：算法资产｜区域：通用数据预处理｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_198`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-198-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“在组件表单配置字段条件、抽样比例、分层字段和随机种子，执行后返回保留数据、剔除数量与抽样摘要。”执行“执行条件过滤与抽样”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验表达式和比例；分层与抽样不得跨已冻结数据分集，记录种子及来源数据版本。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-199 | <a id="at-fr-alg-199"></a>AT-FR-ALG-199 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_199`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-199-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择时间字段和数值字段，配置窗口长度、步长、滞后阶数及滚动统计，返回特征矩阵和字段说明。”执行“生成时窗与滞后特征”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验时间排序、采样间隔及窗口边界；禁止使用预测时点之后的数据，保留生成参数。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-200 | <a id="at-fr-alg-200"></a>AT-FR-ALG-200 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_200`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-200-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择分组键与输入字段，配置计数、均值、标准差、最大最小值及算术组合，执行后返回特征数据和计算定义。”执行“生成聚合与组合特征”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验字段类型、空值和除零；训练与推理沿用同一特征定义及版本。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-201 | <a id="at-fr-alg-201"></a>AT-FR-ALG-201 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_201`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-201-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择特征矩阵，配置主成分数量或累计解释方差阈值，执行 PCA 拟合与转换并返回低维特征、载荷和解释方差。”执行“执行 PCA 降维”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“只在训练数据拟合；校验数值输入和维度边界，保存变换器供后续数据复用。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-202 | <a id="at-fr-alg-202"></a>AT-FR-ALG-202 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_202`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-202-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择序列字段，配置采样频率、窗函数和频段，执行 FFT 并输出频谱、峰值频率及频带统计特征。”执行“执行 FFT 频域特征提取”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验采样频率、序列长度和等间隔要求；记录单位、窗口和异常序列处理方式。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-203 | <a id="at-fr-alg-203"></a>AT-FR-ALG-203 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_203`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-203-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择特征矩阵，配置邻居数、最小距离、输出维度和随机种子，执行 UMAP 并返回低维嵌入及已拟合变换器。”执行“执行 UMAP 降维”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验距离度量、样本数和依赖版本；保留参数与种子，不以可视化分离度替代正式评测。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-204 | <a id="at-fr-alg-204"></a>AT-FR-ALG-204 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_204`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-204-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择序列字段，配置小波类型、尺度和采样间隔，执行 CWT 并返回时频系数、能量特征及输出结构。”执行“执行 CWT 时频特征提取”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验序列长度和尺度范围；设置内存上限并记录单位，失败返回字段和参数原因。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-205 | <a id="at-fr-alg-205"></a>AT-FR-ALG-205 | 算法资产 / 主页面：算法资产｜区域：通用特征工程｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_205`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-205-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择已训练模型和解释数据，配置解释器、背景样本及样本上限，执行后返回全局重要性、样本贡献和解释图表数据。”执行“执行 SHAP 特征解释”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按模型类型校验解释器兼容性和数据权限；限制计算规模，解释结果绑定模型与数据版本。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-206 | <a id="at-fr-alg-206"></a>AT-FR-ALG-206 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_206`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-206-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“在算法运行区选择线性回归、Ridge、Lasso 或随机森林回归，绑定训练数据及目标字段，提交后返回模型产物、预测样例和运行记录。”执行“运行基础回归算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验数值目标、特征契约和依赖；固定种子及数据版本，正式训练与评测仍进入已有模块。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的产…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-207 | <a id="at-fr-alg-207"></a>AT-FR-ALG-207 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_207`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-207-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择逻辑回归、决策树、随机森林或 SVM，绑定分类标签和特征，执行拟合与预测并返回模型、预测标签及可用概率输出。”执行“运行基础分类算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验标签类别、参数和资源限额；不支持概率输出的版本须明确提示，禁止用测试集拟合。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的产…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-208 | <a id="at-fr-alg-208"></a>AT-FR-ALG-208 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_208`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-208-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 K-Means 或 DBSCAN，配置簇数或邻域参数，执行聚类并返回簇标签、中心或核心样本及噪声标记。”执行“运行基础聚类算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验样本量与参数范围；区分噪声标签，保存缩放器、算法参数及依赖版本。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的产物先形成算法…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-209 | <a id="at-fr-alg-209"></a>AT-FR-ALG-209 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_209`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-209-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 ARIMA 或指数平滑，配置时间字段、频率、预测步数及参数，执行后返回模型、预测序列和可用区间估计。”执行“运行基础时序预测算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按时间顺序切分数据，校验连续性及样本量；区间估计不支持时须明确提示。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的产物先形成算法…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-210 | <a id="at-fr-alg-210"></a>AT-FR-ALG-210 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_210`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-210-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 Isolation Forest、One-Class SVM 或 LOF，配置特征、阈值和检测模式，执行后返回异常分数、标签及模型产物。”执行“运行基础异常检测算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验拟合与新样本检测模式，尤其 LOF 的 novelty 配置；阈值与模型版本绑定。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-211 | <a id="at-fr-alg-211"></a>AT-FR-ALG-211 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_211`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-211-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 LightGBM 分类或回归，配置目标函数、树参数、验证集及早停条件，提交后返回模型、预测结果和训练摘要。”执行“运行 LightGBM 算法”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“预置受支持 LightGBM 运行环境并通过样例验收；校验目标类型、类别特征和参数，禁止将代码上传视为支持完成。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-212 | <a id="at-fr-alg-212"></a>AT-FR-ALG-212 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_212`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-212-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 HDBSCAN，配置最小簇规模、最小样本数及距离度量，执行后返回簇标签、成员概率和噪声结果。”执行“运行 HDBSCAN 聚类”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验依赖、样本数及度量兼容性；保存参数、变换器及组件版本，明确新样本预测支持范围。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-213 | <a id="at-fr-alg-213"></a>AT-FR-ALG-213 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_213`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-213-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择 MLP、CNN、LSTM 或 GRU 预置模板，配置网络参数、训练轮次、批大小和优化器，提交后返回模型、曲线及预测样例。”执行“运行通用深度学习组件”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“模板必须包含可执行实现、依赖和样例；校验张量形状、资源及种子，图像或序列任务须匹配输入契约。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-214 | <a id="at-fr-alg-214"></a>AT-FR-ALG-214 | 算法资产 / 主页面：算法资产｜区域：基础算法运行｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_214`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-214-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择投票、加权平均或 Stacking，关联已授权基础模型并配置权重或元学习器，执行后返回融合模型及预测结果。”执行“运行通用模型融合组件”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验模型输出、标签顺序与特征契约；Stacking 使用训练集交叉验证输出拟合，禁止测试集泄漏。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需…”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-215 | <a id="at-fr-alg-215"></a>AT-FR-ALG-215 | 算法资产 / 主页面：算法资产｜区域：通用评估组件｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_215`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-215-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择真实值和预测结果，配置指标 MAE、MSE、RMSE、R²，执行后返回指标表、残差分布和评估报告。”执行“计算回归评估指标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按样本键对齐预测与真实值；空值、常量目标及无定义指标须明确标记，绑定输入版本。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-216 | <a id="at-fr-alg-216"></a>AT-FR-ALG-216 | 算法资产 / 主页面：算法资产｜区域：通用评估组件｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_216`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-216-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择真实标签、预测标签和概率，配置 Accuracy、Precision、Recall、F1、ROC-AUC，输出指标、混淆矩阵和曲线数据。”执行“计算分类评估指标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验标签顺序及二分类或多分类策略；缺概率或类别不足时禁用不适用指标，不替代独立发布评测。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-217 | <a id="at-fr-alg-217"></a>AT-FR-ALG-217 | 算法资产 / 主页面：算法资产｜区域：通用评估组件｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_217`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-217-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择特征与聚类标签，配置轮廓系数、Calinski-Harabasz、Davies-Bouldin，执行后输出指标表与簇分布。”执行“计算聚类评估指标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验有效簇数和样本数；明确噪声点纳入策略，无定义指标返回原因。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-218 | <a id="at-fr-alg-218"></a>AT-FR-ALG-218 | 算法资产 / 主页面：算法资产｜区域：通用评估组件｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_218`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-218-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择时间索引、真实序列和预测序列，配置 MAE、RMSE、MAPE、sMAPE，输出整体及分预测步长指标。”执行“计算时序预测评估指标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按时间对齐；真实值为零时明确 MAPE 处理策略，禁止用未来信息修正评估输入。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-219 | <a id="at-fr-alg-219"></a>AT-FR-ALG-219 | 算法资产 / 主页面：算法资产｜区域：组件包交换｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_219`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-219-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“在组件库导入入口上传组件包，解析代码或镜像引用、清单、参数模板、输入输出契约、依赖、许可证和样例，校验后生成组件草稿与导入报告。”执行“导入标准算法组件包”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验包结构、校验摘要、依赖兼容性、权限和编号冲突；不得自动执行导入代码，失败不覆盖已有版本。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-220 | <a id="at-fr-alg-220"></a>AT-FR-ALG-220 | 算法资产 / 主页面：算法资产｜区域：组件包交换｜载体：页面 | `v2.algorithm-asset.export.fr_alg_220`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/exports`；202；仅创建导出任务，不改变来源对象状态 | algorithm_asset_id=ALG-T001；artifact_id=ART-001；artifact_state=success；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；前置：用户同时具有算法资产与组件读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | algorithm_asset_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-ALG-221 | <a id="at-fr-alg-221"></a>AT-FR-ALG-221 | 算法资产 / 主页面：算法资产｜区域：组件测试复用｜载体：页面 | `v2.algorithm-asset.update.fr_alg_221`；`PATCH /api/v2/algorithm-assets/{algorithm_asset_id}`；200；保存新修订或草稿差异 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-221-01；前置：算法工程师具有算法资产与组件创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“从已有试运行记录保存输入引用、参数和预期输出断言为测试用例，选择用例重新运行后返回通过项、失败项和差异摘要。”执行“保存与复用组件测试用例”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复用既有试运行执行入口；用例绑定组件与数据版本，敏感数据只保存授权引用。”；状态遵循“算法资产与组件遵循“草稿→校验中→可用/阻断→已冻结→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-222 | <a id="at-fr-alg-222"></a>AT-FR-ALG-222 | 算法资产 / 主页面：算法资产｜区域：组件测试复用｜载体：页面 | `v2.algorithm-asset.execute.fr_alg_222`；`POST /api/v2/algorithm-assets/{algorithm_asset_id}/tasks`；202；创建执行任务和输入快照 | algorithm_asset_id=ALG-T001；actor=U-ALGORITHM-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-222-01；前置：算法资产与组件的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择候选版本、基准版本和测试用例集，执行批量回归并返回输出差异、兼容性、耗时及通过率报告。”执行“执行组件版本回归测试”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“隔离执行并限制资源；失败用例保留诊断，未通过约定门槛的候选版本不得标记可复用。”；状态遵循“算法资产与组件生命周期为“草稿→校验中→可用/阻断→已冻结→已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法编号、组件版本、输入输出契约、参数契约、代码摘要、依赖摘要、测试结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-035 | <a id="at-fr-alg-035"></a>AT-FR-ALG-035 | 开发工作区 / 主页面：开发工作区｜区域：创建开发工作区操作弹窗｜载体：操作弹窗 | `v2.workspace.create.fr_alg_035`；`POST /api/v2/workspaces`；201；创建对象与首条审计 | workspace_id=未生成；业务唯一键=UK-FR-ALG-035-01；actor=U-WORKSPACE-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-035-01；前置：算法工程师具有开发工作区创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写工作区名称、开发方式、关联算法、负责人、协作成员、运行环境。”执行“新增开发工作区”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“创建后进入“创建中→可用→保存中→异常→归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-036 | <a id="at-fr-alg-036"></a>AT-FR-ALG-036 | 开发工作区 / 主页面：开发工作区｜区域：创建开发工作区配置表单｜载体：配置表单 | `v2.workspace.select.fr_alg_036`；`GET /api/v2/workspaces/options`；200；返回有权限且状态可选的候选项，不保存表单 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择开发工作区关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-037 | <a id="at-fr-alg-037"></a>AT-FR-ALG-037 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.validate.fr_alg_037`；`POST /api/v2/workspaces/{workspace_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-037-01；前置：开发工作区及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验工作区名称、开发方式、关联算法、负责人、协作成员、运行环境的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验开发工作区表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；开发工作区仅按“创建中→可用→保存中→异常→归档”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-038 | <a id="at-fr-alg-038"></a>AT-FR-ALG-038 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.create.fr_alg_038`；`POST /api/v2/workspaces`；201；创建对象与首条审计 | workspace_id=未生成；业务唯一键=UK-FR-ALG-038-01；actor=U-WORKSPACE-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-038-01；前置：算法工程师具有开发工作区创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“保存成功后返回开发工作区编号和工作区状态。”执行“创建开发工作区保存”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后进入开发工作区或刷新工作区列表；失败保留用户输入和失败原因，支持重试。”；状态遵循“创建后进入“创建中→可用→保存中→异常→归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-039 | <a id="at-fr-alg-039"></a>AT-FR-ALG-039 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.update.fr_alg_039`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-039-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开开发工作区编辑页面并加载当前配置；保存后刷新详情。”执行“编辑开发工作区”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-040 | <a id="at-fr-alg-040"></a>AT-FR-ALG-040 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.create.fr_alg_040`；`POST /api/v2/workspaces`；201；创建对象与首条审计 | workspace_id=未生成；业务唯一键=UK-FR-ALG-040-01；actor=U-WORKSPACE-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-040-01；前置：算法工程师具有开发工作区创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前开发工作区配置并生成新的草稿或版本，保留来源关系。”执行“创建开发工作区复制”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“创建中→可用→保存中→异常→归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-041 | <a id="at-fr-alg-041"></a>AT-FR-ALG-041 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.read.fr_alg_041`；`GET /api/v2/workspaces/{workspace_id}`；200；只读响应，不改变revision/state_version | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区读取权限和对象数据范围；目标workspace_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发工作区变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | workspace_id、查询请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-042 | <a id="at-fr-alg-042"></a>AT-FR-ALG-042 | 开发工作区 / 主页面：开发工作区｜区域：数据版本绑定配置表单｜载体：配置表单 | `v2.workspace.link.fr_alg_042`；`PUT /api/v2/workspaces/{workspace_id}/relations/{relation_type}`；200；写关联记录和审计，不启动关联对象 | workspace_id=WS-T001；target_id=TARGET-001；relation_type=related；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-042-01；前置：用户具有开发工作区关联权限和两端对象读取范围；源对象与目标对象版本有效，关系类型允许且未存在同一有效关系。 | 1)读取两端对象版本和可关联状态；2)执行“绑定数据版本”；3)核对关系编号、两端固定版本和审计；4)重复关系、越权目标和过期revision复测 | 关系记录含workspace_id、target_id、relation_type、source_revision、target_revision、effective_state和request_id | 仅关系记录新增/修订；目标对象状态和执行状态不变；重复请求不产生第二条有效关系 | 对象越权、版本失效、关系重复、形成非法环或并发修订冲突时拒绝；不产生半条关系。；越权返回AUTHZ_403；并发修订返回STATE_409 | 关系编号、workspace_id、目标对象、固定版本、关系状态、目标对象状态未变化证据和审计。 |
| FR-ALG-043 | <a id="at-fr-alg-043"></a>AT-FR-ALG-043 | 开发工作区 / 主页面：开发工作区｜区域：数据版本绑定配置表单｜载体：配置表单 | `v2.workspace.select.fr_alg_043`；`GET /api/v2/workspaces/options`；200；返回有权限且状态可选的候选项，不保存表单 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择开发工作区数据绑定关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-044 | <a id="at-fr-alg-044"></a>AT-FR-ALG-044 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.validate.fr_alg_044`；`POST /api/v2/workspaces/{workspace_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-044-01；前置：开发工作区及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验数据服务连接、数据集、数据版本、数据切分、访问授权、版本摘要的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验开发工作区数据绑定表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；开发工作区仅按“创建中→可用→保存中→异常→归档”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-045 | <a id="at-fr-alg-045"></a>AT-FR-ALG-045 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.update.fr_alg_045`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-045-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回数据绑定编号，并回显数据集ID、不可变数据版本ID和数据切分ID；平台只保存独立数据服务的稳定标识。”执行“保存开发工作区数据绑定”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新绑定列表或回到开发工作区；失败保留用户输入和失败原因，支持重试。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-046 | <a id="at-fr-alg-046"></a>AT-FR-ALG-046 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.update.fr_alg_046`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-046-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开开发工作区数据绑定编辑页面并加载当前配置；保存后刷新详情。”执行“编辑开发工作区数据绑定”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-047 | <a id="at-fr-alg-047"></a>AT-FR-ALG-047 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.create.fr_alg_047`；`POST /api/v2/workspaces`；201；创建对象与首条审计 | workspace_id=未生成；业务唯一键=UK-FR-ALG-047-01；actor=U-WORKSPACE-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-047-01；前置：算法工程师具有开发工作区创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前开发工作区数据绑定配置并生成新的草稿或版本，保留来源关系。”执行“复制开发工作区数据绑定”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“创建中→可用→保存中→异常→归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-048 | <a id="at-fr-alg-048"></a>AT-FR-ALG-048 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.read.fr_alg_048`；`GET /api/v2/workspaces/{workspace_id}`；200；只读响应，不改变revision/state_version | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区读取权限和对象数据范围；目标workspace_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发工作区数据绑定变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | workspace_id、查询请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-049 | <a id="at-fr-alg-049"></a>AT-FR-ALG-049 | 开发工作区 / 主页面：开发工作区｜区域：开发参数定义配置表单｜载体：配置表单 | `v2.workspace.update.fr_alg_049`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-049-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在表单中填写参数名称、类型、默认值、搜索范围、随机种子、停止条件、输出要求。”执行“配置开发参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-050 | <a id="at-fr-alg-050"></a>AT-FR-ALG-050 | 开发工作区 / 主页面：开发工作区｜区域：开发参数定义配置表单｜载体：配置表单 | `v2.workspace.select.fr_alg_050`；`GET /api/v2/workspaces/options`；200；返回有权限且状态可选的候选项，不保存表单 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择开发参数配置关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-051 | <a id="at-fr-alg-051"></a>AT-FR-ALG-051 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.validate.fr_alg_051`；`POST /api/v2/workspaces/{workspace_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-051-01；前置：开发工作区及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验参数名称、类型、默认值、搜索范围、随机种子、停止条件、输出要求的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验开发参数配置表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；开发工作区仅按“创建中→可用→保存中→异常→归档”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-052 | <a id="at-fr-alg-052"></a>AT-FR-ALG-052 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.update.fr_alg_052`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-052-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回开发参数配置编号和配置状态。”执行“保存开发参数配置”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新参数配置或回到开发工作区；失败保留用户输入和失败原因，支持重试。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-053 | <a id="at-fr-alg-053"></a>AT-FR-ALG-053 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.update.fr_alg_053`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-053-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开开发参数配置编辑页面并加载当前配置；保存后刷新详情。”执行“编辑开发参数配置”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-054 | <a id="at-fr-alg-054"></a>AT-FR-ALG-054 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.create.fr_alg_054`；`POST /api/v2/workspaces`；201；创建对象与首条审计 | workspace_id=未生成；业务唯一键=UK-FR-ALG-054-01；actor=U-WORKSPACE-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-054-01；前置：算法工程师具有开发工作区创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前开发参数配置配置并生成新的草稿或版本，保留来源关系。”执行“复制开发参数配置”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“创建中→可用→保存中→异常→归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-055 | <a id="at-fr-alg-055"></a>AT-FR-ALG-055 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.read.fr_alg_055`；`GET /api/v2/workspaces/{workspace_id}`；200；只读响应，不改变revision/state_version | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区读取权限和对象数据范围；目标workspace_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发参数配置变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | workspace_id、查询请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-056 | <a id="at-fr-alg-056"></a>AT-FR-ALG-056 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.read.fr_alg_056`；`GET /api/v2/workspaces/{workspace_id}`；200；只读响应，不改变revision/state_version | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区读取权限和对象数据范围；目标workspace_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发工作区概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法版本或开发工作区状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | workspace_id、查询请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-057 | <a id="at-fr-alg-057"></a>AT-FR-ALG-057 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.read.fr_alg_057`；`GET /api/v2/workspaces/{workspace_id}`；200；只读响应，不改变revision/state_version | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区读取权限和对象数据范围；目标workspace_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发工作区详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | workspace_id、查询请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-058 | <a id="at-fr-alg-058"></a>AT-FR-ALG-058 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.read.fr_alg_058`；`GET /api/v2/workspaces/{workspace_id}`；200；只读响应，不改变revision/state_version | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区读取权限和对象数据范围；目标workspace_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发工作区关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | workspace_id、查询请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-059 | <a id="at-fr-alg-059"></a>AT-FR-ALG-059 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.operate.fr_alg_059`；`POST /api/v2/workspaces/{workspace_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-059-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“工作区保存与复制保存”功能，保存当前工作区草稿，或基于当前工作区复制生成新的工作区并保留来源关联；复制后生成新的工作区编号。”执行“工作区保存与复制保存”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-060 | <a id="at-fr-alg-060"></a>AT-FR-ALG-060 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.operate.fr_alg_060`；`POST /api/v2/workspaces/{workspace_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-060-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“开发工作区复制”功能，保存当前工作区草稿，或基于当前工作区复制生成新的工作区并保留来源关联；复制后生成新的工作区编号。”执行“开发工作区复制”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-061 | <a id="at-fr-alg-061"></a>AT-FR-ALG-061 | 开发工作区 / 主页面：开发工作区｜区域：协作成员与职责操作弹窗｜载体：操作弹窗 | `v2.workspace.update.fr_alg_061`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-061-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择负责人和协作成员，维护职责说明及通知对象。”执行“添加协作成员”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成员关系用于协作分工，不授予查看、编辑或提交等操作级权限；平台访问统一由系统管理的模块权限控制。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-062 | <a id="at-fr-alg-062"></a>AT-FR-ALG-062 | 开发工作区 / 主页面：开发工作区｜区域：协作成员与职责配置表单｜载体：配置表单 | `v2.workspace.select.fr_alg_062`；`GET /api/v2/workspaces/options`；200；返回有权限且状态可选的候选项，不保存表单 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有开发工作区表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择工作区协作成员”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“不建立工作区权限树，成员关联不改变模块授权。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-063 | <a id="at-fr-alg-063"></a>AT-FR-ALG-063 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.validate.fr_alg_063`；`POST /api/v2/workspaces/{workspace_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-063-01；前置：开发工作区及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“检查工作区状态、用户有效性、重复成员及职责说明。”执行“校验工作区协作成员”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“不校验或配置操作级权限；无模块访问权限者提示由系统管理授权。”；状态遵循“校验记录独立保存；开发工作区仅按“创建中→可用→保存中→异常→归档”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-064 | <a id="at-fr-alg-064"></a>AT-FR-ALG-064 | 开发工作区 / 主页面：开发工作区｜区域：主工作区｜载体：页面 | `v2.workspace.update.fr_alg_064`；`PATCH /api/v2/workspaces/{workspace_id}`；200；保存新修订或草稿差异 | workspace_id=WS-T001；actor=U-WORKSPACE-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-064-01；前置：算法工程师具有开发工作区创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成员与职责关联，返回协作记录编号。”执行“保存工作区协作成员”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“保留成员变更记录，不修改系统角色或模块权限。”；状态遵循“开发工作区遵循“创建中→可用→保存中→异常→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区编号、数据版本、算法版本、参数修订、协作者、代码引用、环境引用、保存点、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-065 | <a id="at-fr-alg-065"></a>AT-FR-ALG-065 | 代码与开发环境 / 主页面：代码与开发环境｜区域：代码脚本与Notebook管理操作弹窗｜载体：操作弹窗 | `v2.dev-environment.create.fr_alg_065`；`POST /api/v2/development-environments`；201；创建对象与首条审计 | environment_id=未生成；业务唯一键=UK-FR-ALG-065-01；actor=U-DEV-ENVIRONMENT-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-065-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在当前开发工作区中新建受控相对路径的代码文件、配置文件或Notebook；创建后进入可编辑状态并记录来源工作区。”执行“新增代码文件或Notebook”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“禁止绝对路径和上级目录穿越；同路径不得重复创建；创建只产生工作区文件草稿，不自动冻结算法版本。”；状态遵循“创建后进入“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-066 | <a id="at-fr-alg-066"></a>AT-FR-ALG-066 | 代码与开发环境 / 主页面：代码与开发环境｜区域：代码脚本与Notebook管理配置表单｜载体：配置表单 | `v2.dev-environment.select.fr_alg_066`；`GET /api/v2/development-environments/options`；200；返回有权限且状态可选的候选项，不保存表单 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法代码与Notebook关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-067 | <a id="at-fr-alg-067"></a>AT-FR-ALG-067 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.validate.fr_alg_067`；`POST /api/v2/development-environments/{environment_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-067-01；前置：代码工作区、代码修订与开发环境及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验仓库地址、分支、提交版本、脚本、Notebook、配置文件、变更记录的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验算法代码与Notebook表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；代码工作区、代码修订与开发环境仅按“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-068 | <a id="at-fr-alg-068"></a>AT-FR-ALG-068 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.update.fr_alg_068`；`PATCH /api/v2/development-environments/{environment_id}`；200；保存新修订或草稿差异 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-068-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存当前文件内容并生成递增代码修订，记录文件路径、内容摘要、操作者、保存时间和所属工作区。”执行“保存算法代码与Notebook”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅工作区草稿和有维护权限的协作者可保存；失败保留未保存内容；历史修订不可覆盖。”；状态遵循“代码工作区、代码修订与开发环境遵循“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-069 | <a id="at-fr-alg-069"></a>AT-FR-ALG-069 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.update.fr_alg_069`；`PATCH /api/v2/development-environments/{environment_id}`；200；保存新修订或草稿差异 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-069-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在代码编辑器中打开工作区文件，支持文件切换、代码输入、行列定位和未保存状态提示；保存后刷新代码修订。”执行“编辑算法代码与Notebook”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“切换文件前处理未保存修改；冻结算法版本只读，继续编辑必须派生新工作区或新修订。”；状态遵循“代码工作区、代码修订与开发环境遵循“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-070 | <a id="at-fr-alg-070"></a>AT-FR-ALG-070 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.create.fr_alg_070`；`POST /api/v2/development-environments`；201；创建对象与首条审计 | environment_id=未生成；业务唯一键=UK-FR-ALG-070-01；actor=U-DEV-ENVIRONMENT-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-070-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前算法代码与Notebook配置并生成新的草稿或版本，保留来源关系。”执行“复制算法代码与Notebook”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-071 | <a id="at-fr-alg-071"></a>AT-FR-ALG-071 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_071`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法代码与Notebook变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-072 | <a id="at-fr-alg-072"></a>AT-FR-ALG-072 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_072`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发环境概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验开发环境状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-073 | <a id="at-fr-alg-073"></a>AT-FR-ALG-073 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_073`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发环境详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-074 | <a id="at-fr-alg-074"></a>AT-FR-ALG-074 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_074`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看开发环境关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-075 | <a id="at-fr-alg-075"></a>AT-FR-ALG-075 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.select.fr_alg_075`；`GET /api/v2/development-environments/options`；200；返回有权限且状态可选的候选项，不保存表单 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择编程语言”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“操作前校验权限和状态，操作结果写入操作记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-076 | <a id="at-fr-alg-076"></a>AT-FR-ALG-076 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.select.fr_alg_076`；`GET /api/v2/development-environments/options`；200；返回有权限且状态可选的候选项，不保存表单 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法框架”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“操作前校验权限和状态，操作结果写入操作记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-077 | <a id="at-fr-alg-077"></a>AT-FR-ALG-077 | 代码与开发环境 / 主页面：代码与开发环境｜区域：依赖管理操作弹窗｜载体：操作弹窗 | `v2.dev-environment.create.fr_alg_077`；`POST /api/v2/development-environments`；201；创建对象与首条审计 | environment_id=未生成；业务唯一键=UK-FR-ALG-077-01；actor=U-DEV-ENVIRONMENT-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-077-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写依赖名称、版本、软件源、系统库、安装结果、冲突和安全风险。”执行“新增开发依赖”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“创建后进入“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-078 | <a id="at-fr-alg-078"></a>AT-FR-ALG-078 | 代码与开发环境 / 主页面：代码与开发环境｜区域：依赖管理配置表单｜载体：配置表单 | `v2.dev-environment.select.fr_alg_078`；`GET /api/v2/development-environments/options`；200；返回有权限且状态可选的候选项，不保存表单 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法依赖关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-079 | <a id="at-fr-alg-079"></a>AT-FR-ALG-079 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.validate.fr_alg_079`；`POST /api/v2/development-environments/{environment_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-079-01；前置：代码工作区、代码修订与开发环境及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验依赖名称、版本、软件源、系统库、安装结果、冲突和安全风险的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验算法依赖表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；代码工作区、代码修订与开发环境仅按“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-080 | <a id="at-fr-alg-080"></a>AT-FR-ALG-080 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.update.fr_alg_080`；`PATCH /api/v2/development-environments/{environment_id}`；200；保存新修订或草稿差异 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-080-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回依赖配置编号和校验状态。”执行“保存算法依赖”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新依赖配置或回到开发工作区；失败保留用户输入和失败原因，支持重试。”；状态遵循“代码工作区、代码修订与开发环境遵循“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-081 | <a id="at-fr-alg-081"></a>AT-FR-ALG-081 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.update.fr_alg_081`；`PATCH /api/v2/development-environments/{environment_id}`；200；保存新修订或草稿差异 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-081-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开算法依赖编辑页面并加载当前配置；保存后刷新详情。”执行“编辑算法依赖”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“代码工作区、代码修订与开发环境遵循“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-082 | <a id="at-fr-alg-082"></a>AT-FR-ALG-082 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.create.fr_alg_082`；`POST /api/v2/development-environments`；201；创建对象与首条审计 | environment_id=未生成；业务唯一键=UK-FR-ALG-082-01；actor=U-DEV-ENVIRONMENT-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-082-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前算法依赖配置并生成新的草稿或版本，保留来源关系。”执行“复制算法依赖”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-083 | <a id="at-fr-alg-083"></a>AT-FR-ALG-083 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_083`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法依赖变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-084 | <a id="at-fr-alg-084"></a>AT-FR-ALG-084 | 代码与开发环境 / 主页面：代码与开发环境｜区域：环境模板与容器配置表单｜载体：配置表单 | `v2.dev-environment.select.fr_alg_084`；`GET /api/v2/development-environments/options`；200；返回有权限且状态可选的候选项，不保存表单 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择开发环境模板”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-085 | <a id="at-fr-alg-085"></a>AT-FR-ALG-085 | 代码与开发环境 / 主页面：代码与开发环境｜区域：环境模板与容器配置表单｜载体：配置表单 | `v2.dev-environment.select.fr_alg_085`；`GET /api/v2/development-environments/options`；200；返回有权限且状态可选的候选项，不保存表单 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择运行环境模板关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-086 | <a id="at-fr-alg-086"></a>AT-FR-ALG-086 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.validate.fr_alg_086`；`POST /api/v2/development-environments/{environment_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-086-01；前置：代码工作区、代码修订与开发环境及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验环境模板、容器镜像、启动命令、挂载目录、环境变量、硬件要求的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验运行环境模板表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；代码工作区、代码修订与开发环境仅按“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-087 | <a id="at-fr-alg-087"></a>AT-FR-ALG-087 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.update.fr_alg_087`；`PATCH /api/v2/development-environments/{environment_id}`；200；保存新修订或草稿差异 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-087-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回运行环境模板编号和模板状态。”执行“保存运行环境模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新运行环境模板或回到开发工作区；失败保留用户输入和失败原因，支持重试。”；状态遵循“代码工作区、代码修订与开发环境遵循“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-088 | <a id="at-fr-alg-088"></a>AT-FR-ALG-088 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.update.fr_alg_088`；`PATCH /api/v2/development-environments/{environment_id}`；200；保存新修订或草稿差异 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-088-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开运行环境模板编辑页面并加载当前配置；保存后刷新详情。”执行“编辑运行环境模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“代码工作区、代码修订与开发环境遵循“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-089 | <a id="at-fr-alg-089"></a>AT-FR-ALG-089 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.create.fr_alg_089`；`POST /api/v2/development-environments`；201；创建对象与首条审计 | environment_id=未生成；业务唯一键=UK-FR-ALG-089-01；actor=U-DEV-ENVIRONMENT-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-089-01；前置：算法工程师具有代码工作区、代码修订与开发环境创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前运行环境模板配置并生成新的草稿或版本，保留来源关系。”执行“复制运行环境模板”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-ALG-090 | <a id="at-fr-alg-090"></a>AT-FR-ALG-090 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_090`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看运行环境模板变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-091 | <a id="at-fr-alg-091"></a>AT-FR-ALG-091 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.transition.fr_alg_091`；`POST /api/v2/development-environments/{environment_id}/actions/{action}`；200/202；迁移状态并写审计 | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-091-01；前置：算法工程师具有“恢复环境快照”动作权限；代码工作区、代码修订与开发环境处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“显示算法版本或开发工作区当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“恢复环境快照”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；算法版本或开发工作区的关键状态变化必须写入操作审计。”；状态遵循“只允许“文件已保存/未保存修改；运行待执行→运行中→成功/失败/已停止；测试待执行→运行中→通过/不通过；环境构建中→就绪/构建失败”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-ALG-092 | <a id="at-fr-alg-092"></a>AT-FR-ALG-092 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_092`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看环境快照与恢复处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-093 | <a id="at-fr-alg-093"></a>AT-FR-ALG-093 | 代码与开发环境 / 主页面：代码与开发环境｜区域：主工作区｜载体：页面 | `v2.dev-environment.read.fr_alg_093`；`GET /api/v2/development-environments/{environment_id}`；200；只读响应，不改变revision/state_version | environment_id=ENV-T001；actor=U-DEV-ENVIRONMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有代码工作区、代码修订与开发环境读取权限和对象数据范围；目标environment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看环境快照与恢复操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | environment_id、查询请求号、工作区文件、活动文件、代码修订、运行尝试、测试运行、语言、依赖锁、环境快照、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-094 | <a id="at-fr-alg-094"></a>AT-FR-ALG-094 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_094`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看流程组件概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法版本或开发工作区状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-095 | <a id="at-fr-alg-095"></a>AT-FR-ALG-095 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_095`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看流程组件详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-096 | <a id="at-fr-alg-096"></a>AT-FR-ALG-096 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_096`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看流程组件关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-097 | <a id="at-fr-alg-097"></a>AT-FR-ALG-097 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_097`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-097-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“按语言、框架和任务类型筛选可用组件；选择组件后展示输入输出定义、参数说明和兼容环境，并提供“添加到画布”操作。”执行“添加组件到流程画布”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-098 | <a id="at-fr-alg-098"></a>AT-FR-ALG-098 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_098`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看算法流程概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法流程状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-099 | <a id="at-fr-alg-099"></a>AT-FR-ALG-099 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_099`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看算法流程详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-100 | <a id="at-fr-alg-100"></a>AT-FR-ALG-100 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_100`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看算法流程关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-101 | <a id="at-fr-alg-101"></a>AT-FR-ALG-101 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.create.fr_alg_101`；`POST /api/v2/workflows`；201；创建对象与首条审计 | workflow_id=未生成；业务唯一键=UK-FR-ALG-101-01；actor=U-WORKFLOW-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-101-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)确认业务唯一键未占用及默认值；2)按“通过“新增流程节点”功能，拖拽、连线或调整节点顺序时校验输入输出类型、必填参数和流程方向；校验失败时定位到具体节点并保留当前画布。”执行“新增流程节点”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-102 | <a id="at-fr-alg-102"></a>AT-FR-ALG-102 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_102`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-102-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“通过“连接流程节点”功能，拖拽、连线或调整节点顺序时校验输入输出类型、必填参数和流程方向；校验失败时定位到具体节点并保留当前画布。”执行“连接流程节点”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-103 | <a id="at-fr-alg-103"></a>AT-FR-ALG-103 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.operate.fr_alg_103`；`POST /api/v2/workflows/{workflow_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-103-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“通过“移动流程节点”功能，拖拽、连线或调整节点顺序时校验输入输出类型、必填参数和流程方向；校验失败时定位到具体节点并保留当前画布。”执行“移动流程节点”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-104 | <a id="at-fr-alg-104"></a>AT-FR-ALG-104 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.transition.fr_alg_104`；`POST /api/v2/workflows/{workflow_id}/actions/{action}`；200/202；迁移状态并写审计 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-104-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“通过“删除流程节点”功能，拖拽、连线或调整节点顺序时校验输入输出类型、必填参数和流程方向；校验失败时定位到具体节点并保留当前画布。”执行“删除流程节点”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-105 | <a id="at-fr-alg-105"></a>AT-FR-ALG-105 | 可视化流程编排 / 主页面：可视化流程编排｜区域：组件参数配置配置表单｜载体：配置表单 | `v2.workflow.update.fr_alg_105`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-105-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“在表单中填写节点参数、数据引用、运行条件、缓存策略、失败处理方式。”执行“配置流程组件参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-106 | <a id="at-fr-alg-106"></a>AT-FR-ALG-106 | 可视化流程编排 / 主页面：可视化流程编排｜区域：组件参数配置配置表单｜载体：配置表单 | `v2.workflow.select.fr_alg_106`；`GET /api/v2/workflows/options`；200；返回有权限且状态可选的候选项，不保存表单 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法流程与节点尝试表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择流程组件参数关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-107 | <a id="at-fr-alg-107"></a>AT-FR-ALG-107 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.validate.fr_alg_107`；`POST /api/v2/workflows/{workflow_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-107-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“提交前校验节点参数、数据引用、运行条件、缓存策略、失败处理方式的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验流程组件参数表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-108 | <a id="at-fr-alg-108"></a>AT-FR-ALG-108 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_108`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-108-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回流程组件参数配置编号和流程校验状态。”执行“保存流程组件参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新节点参数或回到流程编排；失败保留用户输入和失败原因，支持重试。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-109 | <a id="at-fr-alg-109"></a>AT-FR-ALG-109 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_109`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-109-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“打开流程组件参数编辑页面并加载当前配置；保存后刷新详情。”执行“编辑流程组件参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-110 | <a id="at-fr-alg-110"></a>AT-FR-ALG-110 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.create.fr_alg_110`；`POST /api/v2/workflows`；201；创建对象与首条审计 | workflow_id=未生成；业务唯一键=UK-FR-ALG-110-01；actor=U-WORKFLOW-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-110-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前流程组件参数配置并生成新的草稿或版本，保留来源关系。”执行“复制流程组件参数”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-111 | <a id="at-fr-alg-111"></a>AT-FR-ALG-111 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_111`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看流程组件参数变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-112 | <a id="at-fr-alg-112"></a>AT-FR-ALG-112 | 可视化流程编排 / 主页面：可视化流程编排｜区域：自定义脚本节点操作弹窗｜载体：操作弹窗 | `v2.workflow.create.fr_alg_112`；`POST /api/v2/workflows`；201；创建对象与首条审计 | workflow_id=未生成；业务唯一键=UK-FR-ALG-112-01；actor=U-WORKFLOW-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-112-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)确认业务唯一键未占用及默认值；2)按“在表单中填写脚本内容、输入字段、输出字段、运行环境、依赖、超时和资源参数。”执行“新增自定义脚本节点”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-113 | <a id="at-fr-alg-113"></a>AT-FR-ALG-113 | 可视化流程编排 / 主页面：可视化流程编排｜区域：自定义脚本节点配置表单｜载体：配置表单 | `v2.workflow.select.fr_alg_113`；`GET /api/v2/workflows/options`；200；返回有权限且状态可选的候选项，不保存表单 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法流程与节点尝试表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择脚本节点关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-114 | <a id="at-fr-alg-114"></a>AT-FR-ALG-114 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.validate.fr_alg_114`；`POST /api/v2/workflows/{workflow_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-114-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“提交前校验脚本内容、输入字段、输出字段、运行环境、依赖、超时和资源参数的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验脚本节点表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-115 | <a id="at-fr-alg-115"></a>AT-FR-ALG-115 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_115`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-115-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回脚本节点编号和流程校验状态。”执行“保存脚本节点”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新脚本节点或回到流程编排；失败保留用户输入和失败原因，支持重试。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-116 | <a id="at-fr-alg-116"></a>AT-FR-ALG-116 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_116`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-116-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“打开脚本节点编辑页面并加载当前配置；保存后刷新详情。”执行“编辑脚本节点”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-117 | <a id="at-fr-alg-117"></a>AT-FR-ALG-117 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.create.fr_alg_117`；`POST /api/v2/workflows`；201；创建对象与首条审计 | workflow_id=未生成；业务唯一键=UK-FR-ALG-117-01；actor=U-WORKFLOW-01；revision=0；state_version=0；幂等键=IDEM-FR-ALG-117-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前脚本节点配置并生成新的草稿或版本，保留来源关系。”执行“复制脚本节点”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-118 | <a id="at-fr-alg-118"></a>AT-FR-ALG-118 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_118`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看脚本节点变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-119 | <a id="at-fr-alg-119"></a>AT-FR-ALG-119 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_119`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看算法流程版本概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法版本或开发工作区状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-120 | <a id="at-fr-alg-120"></a>AT-FR-ALG-120 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_120`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看算法流程版本详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-121 | <a id="at-fr-alg-121"></a>AT-FR-ALG-121 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.read.fr_alg_121`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看算法流程版本关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-122 | <a id="at-fr-alg-122"></a>AT-FR-ALG-122 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.validate.fr_alg_122`；`POST /api/v2/workflows/{workflow_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-122-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“通过“校验算法流程”功能，校验节点连接、输入输出、必填参数和运行环境；校验通过后保存为新的算法流程版本并返回流程版本编号。”执行“校验算法流程”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-123 | <a id="at-fr-alg-123"></a>AT-FR-ALG-123 | 可视化流程编排 / 主页面：可视化流程编排｜区域：主工作区｜载体：页面 | `v2.workflow.update.fr_alg_123`；`PATCH /api/v2/workflows/{workflow_id}`；200；保存新修订或草稿差异 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-123-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“通过“保存算法流程版本”功能，校验节点连接、输入输出、必填参数和运行环境；校验通过后保存为新的算法流程版本并返回流程版本编号。”执行“保存算法流程版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-223 | <a id="at-fr-alg-223"></a>AT-FR-ALG-223 | 可视化流程编排 / 主页面：可视化流程编排｜区域：编排执行闭环｜载体：页面 | `v2.workflow.execute.fr_alg_223`；`POST /api/v2/workflows/{workflow_id}/tasks`；202；创建执行任务和输入快照 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-223-01；前置：流程已通过无环、端口类型、必填参数、组件版本、环境和资源检查；执行输入绑定固定版本。 | 1)读取前值和可执行动作；2)按“在已保存流程版本详情选择输入数据、运行参数和资源，校验 DAG、组件版本、端口及环境后提交执行并返回运行编号。”执行“提交算法流程执行”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“冻结流程和组件版本；校验数据权限、无环关系和资源限额，不允许执行未通过校验的流程。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的…”；状态遵循“流程运行与节点尝试独立维护；节点失败使流程失败或按策略部分成功，缓存命中不伪装为本次执行成功。”；重复请求不新增对象或副作用 | 端口不兼容、依赖循环、缓存污染、节点超时或执行端失联时阻断对应路径；旧尝试未确认结束不得并发重试。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 运行编号、DAG快照、节点时间线、缓存判定、日志、中间产物摘要、失败节点和重试关联。 |
| FR-ALG-224 | <a id="at-fr-alg-224"></a>AT-FR-ALG-224 | 可视化流程编排 / 主页面：可视化流程编排｜区域：编排执行闭环｜载体：页面 | `v2.workflow.read.fr_alg_224`；`GET /api/v2/workflows/{workflow_id}`；200；只读响应，不改变revision/state_version | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有流程版本读取权限；目标流程修订和组件定义存在。 | 1)记录对象版本和状态；2)执行“查看流程运行与节点结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志按权限展示并脱敏；状态与运行编号一致，失败返回节点及原因，不覆盖历史结果。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入正式训练的产物先形成算法版本和训练…”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 组件版本失效或中间产物已清理时保留结构并显示失效原因，不以空结果替代。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 流程修订号、DAG摘要、节点端口清单、运行时间线、缓存命中和产物状态。 |
| FR-ALG-225 | <a id="at-fr-alg-225"></a>AT-FR-ALG-225 | 可视化流程编排 / 主页面：可视化流程编排｜区域：编排执行闭环｜载体：页面 | `v2.workflow.stop.fr_alg_225`；`POST /api/v2/workflows/{workflow_id}/tasks/{task_id}/stop`；202；记录停止请求，不创建替代任务 | workflow_id=WF-T001；task_id=TASK-RUNNING-001；state=running；attempt_no=1；state_version=5；actor=U-WORKFLOW-01；前置：算法流程与节点尝试的任务处于排队、准备或运行中；操作者具有停止权限；任务编号、attempt和state_version一致。 | 1)记录任务心跳、attempt和运行状态；2)发起停止并核对执行端回执；3)重复停止并等待最终裁决；4)模拟自然完成竞态、执行端失联和旧state_version | 停止请求含task_id、attempt_no、state_version、reason和request_id；响应含stop_request_id、accepted_at、executor_ack和final_state | 状态按“任务进入停止中→已停止/原自然终态/未知；“终止算法流程执行”不创建新任务，不把停止写成失败。”；不创建新任务；保留日志和允许保留的中间产物；重复停止返回当前结果 | 停止与自然完成竞态按执行证据裁决；执行端失联时保持停止中或未知，禁止伪造已停止并禁止盲目重试。；旧状态版本返回STATE_409；未知不得显示已停止 | 停止请求、执行端回执、任务时间线、心跳、最终状态、保留日志/产物和竞态审计。 |
| FR-ALG-226 | <a id="at-fr-alg-226"></a>AT-FR-ALG-226 | 可视化流程编排 / 主页面：可视化流程编排｜区域：编排执行闭环｜载体：页面 | `v2.workflow.retry.fr_alg_226`；`POST /api/v2/workflows/{workflow_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | workflow_id=WF-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-WORKFLOW-01；幂等键=IDEM-FR-ALG-226-01；前置：算法流程与节点尝试的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接。正式训练产物由训练模块完成完整性确认后，再由模型管理登记为模型版本。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-ALG-227 | <a id="at-fr-alg-227"></a>AT-FR-ALG-227 | 可视化流程编排 / 主页面：可视化流程编排｜区域：编排执行闭环｜载体：页面 | `v2.workflow.operate.fr_alg_227`；`POST /api/v2/workflows/{workflow_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | workflow_id=WF-T001；actor=U-WORKFLOW-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-227-01；前置：流程处于可编辑草稿；用户具有编辑权限；节点组件和端口契约版本有效。 | 1)读取前值和可执行动作；2)按“在流程结果区查看输出数据、模型、报告及节点来源，按产物类型进入数据版本、训练交接或独立评测入口。”执行“追溯流程产物并交接训练评测”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对流程修订、DAG摘要、节点、端口、连线、缓存键、运行尝试、中间产物；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“保留流程、组件、数据、参数和环境版本链；模型发布必须经过既有评测门禁，禁止直接绕过发布审核。 开发试运行产物保留开发来源，不冒充正式训练或评测结果；数据读取只引用数据管理提供的固定版本或连接；需进入…”；状态遵循“编辑仅产生流程草稿新修订；已冻结流程和已执行快照不可原地修改。”；重复请求不新增对象或副作用 | 发现环路、悬空必需端口、类型不兼容或修订冲突时拒绝保存，并定位节点、端口和连线，保留用户画布。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 修改前后DAG摘要、节点端口清单、校验结果、修订号、冲突明细和审计记录。 |
| FR-ALG-124 | <a id="at-fr-alg-124"></a>AT-FR-ALG-124 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.select.fr_alg_124`；`GET /api/v2/debug-runs/options`；200；返回有权限且状态可选的候选项，不保存表单 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择算法调试样本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“只能选择当前算法版本有权使用的数据；调试样本不改变数据集版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-ALG-125 | <a id="at-fr-alg-125"></a>AT-FR-ALG-125 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.update.fr_alg_125`；`PATCH /api/v2/debug-runs/{debug_run_id}`；200；保存新修订或草稿差异 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-125-01；前置：算法工程师具有调试运行与兼容性检查创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“填写或调整本次调试允许覆盖的输入参数、运行参数和输出展示方式。”执行“配置算法调试输入”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“参数类型必须符合算法输入契约；密钥和敏感字段不得明文展示。”；状态遵循“调试运行与兼容性检查遵循“草稿→排队→运行中→成功/失败/已停止；检查结论为通过/警告/阻断”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-126 | <a id="at-fr-alg-126"></a>AT-FR-ALG-126 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.execute.fr_alg_126`；`POST /api/v2/debug-runs/{debug_run_id}/tasks`；202；创建执行任务和输入快照 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-126-01；前置：调试运行与兼容性检查的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“提交调试后生成调试任务编号，展示排队、运行、成功或失败状态。”执行“运行样本调试”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“算法版本、数据版本和环境版本在提交后锁定；重复点击不得重复创建任务。”；状态遵循“调试运行与兼容性检查生命周期为“草稿→排队→运行中→成功/失败/已停止；检查结论为通过/警告/阻断”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-127 | <a id="at-fr-alg-127"></a>AT-FR-ALG-127 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_127`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看样本调试输出”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“失败结果保留原输入快照；输出仅用于开发验证，不形成正式评测结论。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-128 | <a id="at-fr-alg-128"></a>AT-FR-ALG-128 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.update.fr_alg_128`；`PATCH /api/v2/debug-runs/{debug_run_id}`；200；保存新修订或草稿差异 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-128-01；前置：算法工程师具有调试运行与兼容性检查创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存本次输入快照、输出摘要、关联算法版本和调试说明，供后续复现。”执行“保存样本调试记录”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作结果写入业务操作记录；关键状态变化同步写入操作审计。”；状态遵循“调试运行与兼容性检查遵循“草稿→排队→运行中→成功/失败/已停止；检查结论为通过/警告/阻断”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-129 | <a id="at-fr-alg-129"></a>AT-FR-ALG-129 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.operate.fr_alg_129`；`POST /api/v2/debug-runs/{debug_run_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-129-01；前置：算法工程师具有调试运行与兼容性检查创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“启动已完成输入校验的调试任务，并展示任务编号和当前运行阶段。”执行“启动算法调试任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅草稿或待运行任务可启动；启动前校验环境和临时资源可用性。”；状态遵循“调试运行与兼容性检查遵循“草稿→排队→运行中→成功/失败/已停止；检查结论为通过/警告/阻断”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-130 | <a id="at-fr-alg-130"></a>AT-FR-ALG-130 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.stop.fr_alg_130`；`POST /api/v2/debug-runs/{debug_run_id}/tasks/{task_id}/stop`；202；记录停止请求，不创建替代任务 | debug_run_id=DBG-T001；task_id=TASK-RUNNING-001；state=running；attempt_no=1；state_version=5；actor=U-DEBUG-VALIDATION-01；前置：调试运行与兼容性检查的任务处于排队、准备或运行中；操作者具有停止权限；任务编号、attempt和state_version一致。 | 1)记录任务心跳、attempt和运行状态；2)发起停止并核对执行端回执；3)重复停止并等待最终裁决；4)模拟自然完成竞态、执行端失联和旧state_version | 停止请求含task_id、attempt_no、state_version、reason和request_id；响应含stop_request_id、accepted_at、executor_ack和final_state | 状态按“任务进入停止中→已停止/原自然终态/未知；“停止算法调试任务”不创建新任务，不把停止写成失败。”；不创建新任务；保留日志和允许保留的中间产物；重复停止返回当前结果 | 停止与自然完成竞态按执行证据裁决；执行端失联时保持停止中或未知，禁止伪造已停止并禁止盲目重试。；旧状态版本返回STATE_409；未知不得显示已停止 | 停止请求、执行端回执、任务时间线、心跳、最终状态、保留日志/产物和竞态审计。 |
| FR-ALG-131 | <a id="at-fr-alg-131"></a>AT-FR-ALG-131 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.retry.fr_alg_131`；`POST /api/v2/debug-runs/{debug_run_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | debug_run_id=DBG-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-DEBUG-VALIDATION-01；幂等键=IDEM-FR-ALG-131-01；前置：调试运行与兼容性检查的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“新任务使用独立编号并关联原任务，原日志和结果不可覆盖。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-ALG-132 | <a id="at-fr-alg-132"></a>AT-FR-ALG-132 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_132`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法调试状态”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“状态由执行服务回写，页面刷新后能够恢复当前任务状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-133 | <a id="at-fr-alg-133"></a>AT-FR-ALG-133 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_133`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法调试日志”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志只读并按权限脱敏。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-134 | <a id="at-fr-alg-134"></a>AT-FR-ALG-134 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_134`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选调试运行结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按算法开发模块权限访问，敏感内容脱敏；只读查询不处理组织或系统审计对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-135 | <a id="at-fr-alg-135"></a>AT-FR-ALG-135 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_135`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询调试运行结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-136 | <a id="at-fr-alg-136"></a>AT-FR-ALG-136 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_136`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置调试运行结果筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-137 | <a id="at-fr-alg-137"></a>AT-FR-ALG-137 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_137`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新调试运行结果列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-138 | <a id="at-fr-alg-138"></a>AT-FR-ALG-138 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_138`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看调试运行结果列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-139 | <a id="at-fr-alg-139"></a>AT-FR-ALG-139 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_139`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看调试运行结果详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-140 | <a id="at-fr-alg-140"></a>AT-FR-ALG-140 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_140`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法兼容性检查概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算法版本或开发工作区状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-141 | <a id="at-fr-alg-141"></a>AT-FR-ALG-141 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_141`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法兼容性检查详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-142 | <a id="at-fr-alg-142"></a>AT-FR-ALG-142 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_142`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法兼容性检查关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-143 | <a id="at-fr-alg-143"></a>AT-FR-ALG-143 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.validate.fr_alg_143`；`POST /api/v2/debug-runs/{debug_run_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-143-01；前置：调试运行与兼容性检查及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“通过“检查接口兼容性”功能，执行接口契约、依赖、基础镜像和运行环境兼容检查；返回检查项、通过状态和问题定位信息，检查不通过时阻止提交训练或构建。”执行“检查接口兼容性”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“校验记录独立保存；调试运行与兼容性检查仅按“草稿→排队→运行中→成功/失败/已停止；检查结论为通过/警告/阻断”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-144 | <a id="at-fr-alg-144"></a>AT-FR-ALG-144 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.validate.fr_alg_144`；`POST /api/v2/debug-runs/{debug_run_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-144-01；前置：调试运行与兼容性检查及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“通过“检查环境兼容性”功能，执行接口契约、依赖、基础镜像和运行环境兼容检查；返回检查项、通过状态和问题定位信息，检查不通过时阻止提交训练或构建。”执行“检查环境兼容性”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“校验记录独立保存；调试运行与兼容性检查仅按“草稿→排队→运行中→成功/失败/已停止；检查结论为通过/警告/阻断”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-ALG-145 | <a id="at-fr-alg-145"></a>AT-FR-ALG-145 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_145`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选算法调试记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验算法调试记录；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-146 | <a id="at-fr-alg-146"></a>AT-FR-ALG-146 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_146`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询算法调试记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-147 | <a id="at-fr-alg-147"></a>AT-FR-ALG-147 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_147`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置算法调试记录筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-148 | <a id="at-fr-alg-148"></a>AT-FR-ALG-148 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_148`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新算法调试记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-149 | <a id="at-fr-alg-149"></a>AT-FR-ALG-149 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_149`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法调试记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-150 | <a id="at-fr-alg-150"></a>AT-FR-ALG-150 | 调试与开发验证 / 主页面：调试与开发验证｜区域：主工作区｜载体：页面 | `v2.debug-validation.read.fr_alg_150`；`GET /api/v2/debug-runs/{debug_run_id}`；200；只读响应，不改变revision/state_version | debug_run_id=DBG-T001；actor=U-DEBUG-VALIDATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有调试运行与兼容性检查读取权限和对象数据范围；目标debug_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法调试记录详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | debug_run_id、查询请求号、样本版本、输入快照、算法修订、环境摘要、输出摘要、日志、兼容性结论、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-151 | <a id="at-fr-alg-151"></a>AT-FR-ALG-151 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.transition.fr_alg_151`；`POST /api/v2/handoff-packages/{handoff_package_id}/actions/{action}`；200/202；迁移状态并写审计 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-151-01；前置：算法工程师具有“冻结算法版本”动作权限；算法版本与训练交接包处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“显示算法版本或开发工作区当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“冻结算法版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；算法版本或开发工作区的关键状态变化必须写入操作审计。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“只允许“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-ALG-152 | <a id="at-fr-alg-152"></a>AT-FR-ALG-152 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_152`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法版本冻结处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-153 | <a id="at-fr-alg-153"></a>AT-FR-ALG-153 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_153`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法版本冻结操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-154 | <a id="at-fr-alg-154"></a>AT-FR-ALG-154 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.update.fr_alg_154`；`PATCH /api/v2/handoff-packages/{handoff_package_id}`；200；保存新修订或草稿差异 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-154-01；前置：算法工程师具有算法版本与训练交接包创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择冻结算法版本、产物类型、基础环境、构建命令、依赖清单和目标架构。”执行“配置训练运行包”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“未满足输入完整性、权限、版本兼容性或资源条件时禁止提交，并定位具体问题。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“算法版本与训练交接包遵循“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-155 | <a id="at-fr-alg-155"></a>AT-FR-ALG-155 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.execute.fr_alg_155`；`POST /api/v2/handoff-packages/{handoff_package_id}/tasks`；202；创建执行任务和输入快照 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-155-01；前置：算法版本与训练交接包的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“按当前算法版本构建可执行包或镜像；提交后生成构建任务编号，完成后展示产物地址、版本和构建日志。”执行“提交算法交接包构建”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“防止重复提交；提交成功后锁定本次执行配置，允许从任务详情查看进度。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“算法版本与训练交接包生命周期为“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-156 | <a id="at-fr-alg-156"></a>AT-FR-ALG-156 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.read.fr_alg_156`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法交接包执行进度”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“状态由后台任务回写；刷新或重新进入页面后仍可恢复当前任务状态。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-157 | <a id="at-fr-alg-157"></a>AT-FR-ALG-157 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.read.fr_alg_157`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法交接包日志”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志按任务权限展示，敏感信息脱敏。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-158 | <a id="at-fr-alg-158"></a>AT-FR-ALG-158 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.read.fr_alg_158`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法交接包结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“成功时提供查看、下载或进入下一模块入口；敏感信息按权限脱敏。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-159 | <a id="at-fr-alg-159"></a>AT-FR-ALG-159 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.export.fr_alg_159`；`POST /api/v2/handoff-packages/{handoff_package_id}/artifacts/{artifact_id}/download-token`；200；返回限时令牌，不改变来源对象 | handoff_package_id=HOF-T001；artifact_id=ART-001；artifact_state=success；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；前置：用户同时具有算法版本与训练交接包读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | handoff_package_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-ALG-160 | <a id="at-fr-alg-160"></a>AT-FR-ALG-160 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.read.fr_alg_160`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法交接包失败原因”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“失败信息与原执行记录绑定并保持只读。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-161 | <a id="at-fr-alg-161"></a>AT-FR-ALG-161 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.retry.fr_alg_161`；`POST /api/v2/handoff-packages/{handoff_package_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | handoff_package_id=HOF-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-ALGORITHM-HANDOFF-01；幂等键=IDEM-FR-ALG-161-01；前置：算法版本与训练交接包的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“重试生成新的执行记录并关联原记录，不覆盖原始失败日志。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-ALG-175 | <a id="at-fr-alg-175"></a>AT-FR-ALG-175 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.update.fr_alg_175`；`PATCH /api/v2/handoff-packages/{handoff_package_id}`；200；保存新修订或草稿差异 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-175-01；前置：算法工程师具有算法版本与训练交接包创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在训练运行包中配置基础镜像、镜像仓库、镜像标签、入口命令和构建缓存策略。”执行“配置容器镜像构建明细”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“提交前校验镜像来源、依赖、构建命令、权限和目标架构；配置不完整或不兼容时禁止提交。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“算法版本与训练交接包遵循“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-ALG-176 | <a id="at-fr-alg-176"></a>AT-FR-ALG-176 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.execute.fr_alg_176`；`POST /api/v2/handoff-packages/{handoff_package_id}/tasks`；202；创建执行任务和输入快照 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-176-01；前置：算法版本与训练交接包的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“构建成功后生成不可变镜像摘要、版本标签和产物地址，并关联算法版本和构建任务。”执行“生成镜像标签与摘要”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“防止重复提交；任务执行配置锁定，构建失败保留日志和失败原因并允许修正后重试。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“算法版本与训练交接包生命周期为“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-177 | <a id="at-fr-alg-177"></a>AT-FR-ALG-177 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.read.fr_alg_177`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看镜像依赖与安全检查”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志按任务权限展示，敏感信息脱敏；摘要与算法版本和构建配置绑定，禁止手工改写。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-178 | <a id="at-fr-alg-178"></a>AT-FR-ALG-178 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：训练运行包构建｜载体：页面区块 | `v2.algorithm-handoff.execute.fr_alg_178`；`POST /api/v2/handoff-packages/{handoff_package_id}/tasks`；202；创建执行任务和输入快照 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-178-01；前置：算法版本与训练交接包的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“按目标CPU、GPU或NPU架构生成对应镜像并执行入口、依赖、驱动和推理协议兼容校验，展示各架构结果。”执行“执行多架构适配构建与兼容校验”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“任一目标架构校验失败时标记对应结果并阻止该架构进入训练或发布；通过结果保留可追溯记录。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“算法版本与训练交接包生命周期为“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-162 | <a id="at-fr-alg-162"></a>AT-FR-ALG-162 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_162`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练交接清单”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“清单中的版本必须唯一且可追溯；缺失项明确标记为阻断。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-163 | <a id="at-fr-alg-163"></a>AT-FR-ALG-163 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.execute.fr_alg_163`；`POST /api/v2/handoff-packages/{handoff_package_id}/tasks`；202；创建执行任务和输入快照 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；幂等键=IDEM-FR-ALG-163-01；前置：算法版本与训练交接包的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“逐项检查算法版本已冻结、数据版本可用、输入输出定义完整、运行环境可用、依赖可解析和输出目录符合约定。”执行“执行训练交接完整性检查”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“任一阻断项未通过时不得进入训练实验创建。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；状态遵循“算法版本与训练交接包生命周期为“草稿→构建中→构建成功/失败→检查通过/阻断→已交接”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-ALG-164 | <a id="at-fr-alg-164"></a>AT-FR-ALG-164 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_164`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练交接阻断项”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重新检查生成新的检查记录，历史检查记录保持只读。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-165 | <a id="at-fr-alg-165"></a>AT-FR-ALG-165 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.navigate.fr_alg_165`；`GET /api/v2/handoff-packages/{handoff_package_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源算法版本与训练交接包读取权限和目标页面模块权限；handoff_package_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含handoff_package_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、handoff_package_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-ALG-166 | <a id="at-fr-alg-166"></a>AT-FR-ALG-166 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_166`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选算法版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验算法版本；未授权对象不得出现在结果中。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-167 | <a id="at-fr-alg-167"></a>AT-FR-ALG-167 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_167`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询算法版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-168 | <a id="at-fr-alg-168"></a>AT-FR-ALG-168 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_168`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置算法版本筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-169 | <a id="at-fr-alg-169"></a>AT-FR-ALG-169 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_169`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新算法版本列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-170 | <a id="at-fr-alg-170"></a>AT-FR-ALG-170 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_170`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法版本列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-ALG-171 | <a id="at-fr-alg-171"></a>AT-FR-ALG-171 | 算法版本与训练交接 / 主页面：算法版本与训练交接｜区域：主工作区｜载体：页面 | `v2.algorithm-handoff.read.fr_alg_171`；`GET /api/v2/handoff-packages/{handoff_package_id}`；200；只读响应，不改变revision/state_version | handoff_package_id=HOF-T001；actor=U-ALGORITHM-HANDOFF-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有算法版本与训练交接包读取权限和对象数据范围；目标handoff_package_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看算法版本详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。 算法版本及训练交接包由算法开发完成冻结、安全扫描和完整性检查；训练直接引用固定交接包，模型管理不登记算法包。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | handoff_package_id、查询请求号、算法版本、代码摘要、数据契约、环境摘要、运行入口、镜像摘要、安全扫描、完整性结论、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-137 | <a id="at-fr-trn-137"></a>AT-FR-TRN-137 | 训练实验 / 主页面：训练实验｜区域：新增训练实验页｜载体：页面区块 | `v2.training-experiment.update.fr_trn_137`；`PATCH /api/v2/experiments/{experiment_id}`；200；保存新修订或草稿差异 | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-137-01；前置：算法工程师具有训练实验与实验组创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“按训练方法维护批次大小、梯度累积、学习率、精度、检查点评估和保存策略。”执行“配置训练方法参数”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“训练实验与实验组遵循“草稿→检查通过→待执行→执行中→完成/部分完成/失败→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-012 | <a id="at-fr-trn-012"></a>AT-FR-TRN-012 | 训练实验 / 主页面：训练实验｜区域：实验模板与复制配置表单｜载体：配置表单 | `v2.training-experiment.update.fr_trn_012`；`PATCH /api/v2/experiments/{experiment_id}`；200；保存新修订或草稿差异 | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-012-01；前置：算法工程师具有训练实验与实验组创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在模板草稿中填写名称、来源实验、固定参数、数据版本、环境版本和复制说明，校验后暂存配置，不直接提交训练。”执行“配置训练实验模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“训练实验与实验组遵循“草稿→检查通过→待执行→执行中→完成/部分完成/失败→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-013 | <a id="at-fr-trn-013"></a>AT-FR-TRN-013 | 训练实验 / 主页面：训练实验｜区域：实验模板与复制配置表单｜载体：配置表单 | `v2.training-experiment.select.fr_trn_013`；`GET /api/v2/experiments/options`；200；返回有权限且状态可选的候选项，不保存表单 | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择训练实验模板关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-TRN-014 | <a id="at-fr-trn-014"></a>AT-FR-TRN-014 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.validate.fr_trn_014`；`POST /api/v2/experiments/{experiment_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-014-01；前置：训练实验与实验组及其引用版本已固定，算法工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验模板名称、来源实验、固定参数、数据版本、环境版本、复制说明的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验训练实验模板表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；训练实验与实验组仅按“草稿→检查通过→待执行→执行中→完成/部分完成/失败→归档”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-TRN-015 | <a id="at-fr-trn-015"></a>AT-FR-TRN-015 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.update.fr_trn_015`；`PATCH /api/v2/experiments/{experiment_id}`；200；保存新修订或草稿差异 | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-015-01；前置：算法工程师具有训练实验与实验组创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“提交已校验的训练实验模板草稿，生成模板编号、修订号和模板状态；不创建训练任务。”执行“保存训练实验模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新实验模板列表或进入训练实验；失败保留用户输入和失败原因，支持重试。”；状态遵循“训练实验与实验组遵循“草稿→检查通过→待执行→执行中→完成/部分完成/失败→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-016 | <a id="at-fr-trn-016"></a>AT-FR-TRN-016 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.update.fr_trn_016`；`PATCH /api/v2/experiments/{experiment_id}`；200；保存新修订或草稿差异 | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-016-01；前置：算法工程师具有训练实验与实验组创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开训练实验模板编辑页面并加载当前配置；保存后刷新详情。”执行“编辑训练实验模板”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“训练实验与实验组遵循“草稿→检查通过→待执行→执行中→完成/部分完成/失败→归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-017 | <a id="at-fr-trn-017"></a>AT-FR-TRN-017 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.create.fr_trn_017`；`POST /api/v2/experiments`；201；创建对象与首条审计 | experiment_id=未生成；业务唯一键=UK-FR-TRN-017-01；actor=U-TRAINING-EXPERIMENT-01；revision=0；state_version=0；幂等键=IDEM-FR-TRN-017-01；前置：算法工程师具有训练实验与实验组创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前训练实验模板配置并生成新的草稿或版本，保留来源关系。”执行“复制训练实验模板”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→检查通过→待执行→执行中→完成/部分完成/失败→归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-TRN-018 | <a id="at-fr-trn-018"></a>AT-FR-TRN-018 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_018`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验模板变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-019 | <a id="at-fr-trn-019"></a>AT-FR-TRN-019 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_019`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选训练实验组”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验训练实验或训练任务；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-020 | <a id="at-fr-trn-020"></a>AT-FR-TRN-020 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_020`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询训练实验组”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-021 | <a id="at-fr-trn-021"></a>AT-FR-TRN-021 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_021`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置训练实验组筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-022 | <a id="at-fr-trn-022"></a>AT-FR-TRN-022 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_022`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新训练实验组列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-023 | <a id="at-fr-trn-023"></a>AT-FR-TRN-023 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_023`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验组列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-024 | <a id="at-fr-trn-024"></a>AT-FR-TRN-024 | 训练实验 / 主页面：训练实验｜区域：主工作区｜载体：页面 | `v2.training-experiment.read.fr_trn_024`；`GET /api/v2/experiments/{experiment_id}`；200；只读响应，不改变revision/state_version | experiment_id=EXP-T001；actor=U-TRAINING-EXPERIMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练实验与实验组读取权限和对象数据范围；目标experiment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验组详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_id、查询请求号、实验编号、模板版本、算法版本、数据版本、参数空间、随机种子、评价目标、创建人、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-059 | <a id="at-fr-trn-059"></a>AT-FR-TRN-059 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.execute.fr_trn_059`；`POST /api/v2/training-runs/{training_run_id}/tasks`；202；创建执行任务和输入快照 | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-059-01；前置：训练任务与检查点的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择有效检查点创建新的训练执行记录，并展示继承配置和允许调整项。”执行“训练启动与过程控制 / 从检查点恢复训练”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“原训练执行保持只读；检查点与算法、数据和环境版本必须兼容。”；状态遵循“训练任务与检查点生命周期为“待提交→排队→准备→运行中→停止中→成功/失败/已停止/未知”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-TRN-062 | <a id="at-fr-trn-062"></a>AT-FR-TRN-062 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_062`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“失败重试概览展示”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验训练任务状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-063 | <a id="at-fr-trn-063"></a>AT-FR-TRN-063 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_063`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“失败重试详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-064 | <a id="at-fr-trn-064"></a>AT-FR-TRN-064 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_064`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“失败重试关联对象查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-065 | <a id="at-fr-trn-065"></a>AT-FR-TRN-065 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_065`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练失败原因”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“原记录只读；需要重试时通过独立重试操作生成新记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-066 | <a id="at-fr-trn-066"></a>AT-FR-TRN-066 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.retry.fr_trn_066`；`POST /api/v2/training-runs/{training_run_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | training_run_id=TRN-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-TRAINING-RUN-01；幂等键=IDEM-FR-TRN-066-01；前置：训练任务与检查点的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“操作前校验权限和状态，操作结果写入操作记录。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-TRN-067 | <a id="at-fr-trn-067"></a>AT-FR-TRN-067 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.retry.fr_trn_067`；`POST /api/v2/training-runs/{training_run_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | training_run_id=TRN-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-TRAINING-RUN-01；幂等键=IDEM-FR-TRN-067-01；前置：训练任务与检查点的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“原任务记录、日志和检查点不可覆盖；检查点摘要不一致、已损坏或资源未就绪时禁止恢复。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-TRN-068 | <a id="at-fr-trn-068"></a>AT-FR-TRN-068 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_068`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看检查点与断点恢复处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-069 | <a id="at-fr-trn-069"></a>AT-FR-TRN-069 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_069`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看检查点与断点恢复操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-070 | <a id="at-fr-trn-070"></a>AT-FR-TRN-070 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.update.fr_trn_070`；`PATCH /api/v2/training-runs/{training_run_id}`；200；保存新修订或草稿差异 | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-070-01；前置：算法工程师具有训练任务与检查点创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置执行日期、时间、时区、重复规则和计划有效期。”执行“配置定时训练计划”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“计划触发时重新校验数据、环境和资源条件。”；状态遵循“训练任务与检查点遵循“待提交→排队→准备→运行中→停止中→成功/失败/已停止/未知”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-071 | <a id="at-fr-trn-071"></a>AT-FR-TRN-071 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.update.fr_trn_071`；`PATCH /api/v2/training-runs/{training_run_id}`；200；保存新修订或草稿差异 | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-071-01；前置：算法工程师具有训练任务与检查点创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置实验组并发任务数、单任务资源规格和整体资源上限。”执行“配置并行训练上限”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“并发量不得超过已授权配额和资源池限制。”；状态遵循“训练任务与检查点遵循“待提交→排队→准备→运行中→停止中→成功/失败/已停止/未知”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-072 | <a id="at-fr-trn-072"></a>AT-FR-TRN-072 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.execute.fr_trn_072`；`POST /api/v2/training-runs/{training_run_id}/tasks`；202；创建执行任务和输入快照 | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-072-01；前置：训练任务与检查点的输入、配置、引用版本和执行门禁已通过；算法工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“保存计划或批量任务后生成计划编号和子任务清单。”执行“提交定时或并行训练任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作结果写入业务操作记录；关键状态变化同步写入操作审计。”；状态遵循“训练任务与检查点生命周期为“待提交→排队→准备→运行中→停止中→成功/失败/已停止/未知”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-TRN-073 | <a id="at-fr-trn-073"></a>AT-FR-TRN-073 | 训练执行 / 主页面：训练执行｜区域：主工作区｜载体：页面 | `v2.training-run.read.fr_trn_073`；`GET /api/v2/training-runs/{training_run_id}`；200；只读响应，不改变revision/state_version | training_run_id=TRN-T001；actor=U-TRAINING-RUN-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练任务与检查点读取权限和对象数据范围；目标training_run_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看并行训练子任务”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“单个子任务失败不覆盖其他子任务结果，支持仅重试失败项。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_run_id、查询请求号、任务编号、实验快照、资源引用、运行状态、检查点、日志、指标、产物、失败类别、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-035 | <a id="at-fr-trn-035"></a>AT-FR-TRN-035 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：主工作区｜载体：页面 | `v2.compute-resource.read.fr_trn_035`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练资源需求概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算力资源或资源申请状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-036 | <a id="at-fr-trn-036"></a>AT-FR-TRN-036 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：主工作区｜载体：页面 | `v2.compute-resource.read.fr_trn_036`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练资源需求详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-037 | <a id="at-fr-trn-037"></a>AT-FR-TRN-037 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：主工作区｜载体：页面 | `v2.compute-resource.read.fr_trn_037`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练资源需求关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-038 | <a id="at-fr-trn-038"></a>AT-FR-TRN-038 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：主工作区｜载体：页面 | `v2.compute-resource.operate.fr_trn_038`；`POST /api/v2/resource-requests/{resource_request_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-038-01；前置：算法工程师具有资源需求与使用记录创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“评估训练资源需求”功能，根据训练配置、预计资源需求和当前可用容量展示可申请的资源规格；选择规格后显示预计排队和使用限制，并提供提交资源申请入口。”执行“评估训练资源需求”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“资源需求与使用记录遵循“草稿→自动审批中→已批准/已拒绝→关联中→已就绪→使用中→已释放”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-039 | <a id="at-fr-trn-039"></a>AT-FR-TRN-039 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：主工作区｜载体：页面 | `v2.compute-resource.operate.fr_trn_039`；`POST /api/v2/resource-requests/{resource_request_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-039-01；前置：算法工程师具有资源需求与使用记录创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“推荐训练资源规格”功能，根据训练配置、预计资源需求和当前可用容量展示可申请的资源规格；选择规格后显示预计排队和使用限制，并提供提交资源申请入口。”执行“推荐训练资源规格”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“资源需求与使用记录遵循“草稿→自动审批中→已批准/已拒绝→关联中→已就绪→使用中→已释放”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-TRN-128 | <a id="at-fr-trn-128"></a>AT-FR-TRN-128 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：个人资源使用记录｜载体：页面区块或操作 | `v2.compute-resource.read.fr_trn_128`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选个人算力使用记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验算力资源或资源申请；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-129 | <a id="at-fr-trn-129"></a>AT-FR-TRN-129 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：个人资源使用记录｜载体：页面区块或操作 | `v2.compute-resource.read.fr_trn_129`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询个人算力使用记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-130 | <a id="at-fr-trn-130"></a>AT-FR-TRN-130 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：个人资源使用记录｜载体：页面区块或操作 | `v2.compute-resource.read.fr_trn_130`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置个人算力使用记录筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-131 | <a id="at-fr-trn-131"></a>AT-FR-TRN-131 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：个人资源使用记录｜载体：页面区块或操作 | `v2.compute-resource.read.fr_trn_131`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新个人算力使用记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-132 | <a id="at-fr-trn-132"></a>AT-FR-TRN-132 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：个人资源使用记录｜载体：页面区块或操作 | `v2.compute-resource.read.fr_trn_132`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看个人算力使用记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-133 | <a id="at-fr-trn-133"></a>AT-FR-TRN-133 | 算力选择与资源申请 / 主页面：算力选择与资源申请｜区域：个人资源使用记录｜载体：页面区块或操作 | `v2.compute-resource.read.fr_trn_133`；`GET /api/v2/resource-requests/{resource_request_id}`；200；只读响应，不改变revision/state_version | resource_request_id=RES-T001；actor=U-COMPUTE-RESOURCE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有资源需求与使用记录读取权限和对象数据范围；目标resource_request_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看个人算力使用记录详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | resource_request_id、查询请求号、资源申请编号、CPU/GPU/内存、时长、评估依据、推荐规格、关联任务、实际用量、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-084 | <a id="at-fr-trn-084"></a>AT-FR-TRN-084 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_084`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练资源使用概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验算力资源或资源申请状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-085 | <a id="at-fr-trn-085"></a>AT-FR-TRN-085 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_085`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练资源使用详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-086 | <a id="at-fr-trn-086"></a>AT-FR-TRN-086 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_086`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练资源使用关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-087 | <a id="at-fr-trn-087"></a>AT-FR-TRN-087 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_087`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练异常告警概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验训练异常告警状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-088 | <a id="at-fr-trn-088"></a>AT-FR-TRN-088 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_088`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练异常告警详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-089 | <a id="at-fr-trn-089"></a>AT-FR-TRN-089 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_089`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练异常告警关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-090 | <a id="at-fr-trn-090"></a>AT-FR-TRN-090 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.read.fr_trn_090`；`GET /api/v2/training-alerts/{training_alert_id}`；200；只读响应，不改变revision/state_version | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练监控与告警读取权限和对象数据范围；目标training_alert_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练异常诊断”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“操作前校验权限和状态，操作结果写入操作记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | training_alert_id、查询请求号、任务编号、指标名称、采样时间、当前值、阈值、告警级别、诊断结论、处理入口、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-091 | <a id="at-fr-trn-091"></a>AT-FR-TRN-091 | 训练监控与诊断 / 主页面：训练监控与诊断｜区域：主工作区｜载体：页面 | `v2.training-monitor.navigate.fr_trn_091`；`GET /api/v2/training-alerts/{training_alert_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | training_alert_id=TAL-T001；actor=U-TRAINING-MONITOR-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源训练监控与告警读取权限和目标页面模块权限；training_alert_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含training_alert_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、training_alert_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
| FR-TRN-098 | <a id="at-fr-trn-098"></a>AT-FR-TRN-098 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_098`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选训练实验结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验训练实验或训练任务；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-099 | <a id="at-fr-trn-099"></a>AT-FR-TRN-099 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_099`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询训练实验结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-100 | <a id="at-fr-trn-100"></a>AT-FR-TRN-100 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_100`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置训练实验结果筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-101 | <a id="at-fr-trn-101"></a>AT-FR-TRN-101 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_101`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新训练实验结果列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-102 | <a id="at-fr-trn-102"></a>AT-FR-TRN-102 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_102`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验结果列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-103 | <a id="at-fr-trn-103"></a>AT-FR-TRN-103 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_103`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验结果详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-104 | <a id="at-fr-trn-104"></a>AT-FR-TRN-104 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_104`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验训练实验或训练任务状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-105 | <a id="at-fr-trn-105"></a>AT-FR-TRN-105 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_105`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-106 | <a id="at-fr-trn-106"></a>AT-FR-TRN-106 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.read.fr_trn_106`；`GET /api/v2/experiment-results/{experiment_result_id}`；200；只读响应，不改变revision/state_version | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有训练结果与实验分析读取权限和对象数据范围；目标experiment_result_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看训练实验关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | experiment_result_id、查询请求号、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-TRN-107 | <a id="at-fr-trn-107"></a>AT-FR-TRN-107 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.create.fr_trn_107`；`POST /api/v2/experiment-results`；201；创建对象与首条审计 | experiment_result_id=未生成；业务唯一键=UK-FR-TRN-107-01；actor=U-EXPERIMENT-ANALYSIS-01；revision=0；state_version=0；幂等键=IDEM-FR-TRN-107-01；前置：算法工程师具有训练结果与实验分析创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“通过“复制实验配置”功能，基于原实验配置、数据版本和运行环境复制生成新的训练实验或训练任务；复制后允许调整参数，原实验保持不变。”执行“复制实验配置”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“创建后进入“待汇总→汇总中→可分析/不完整→结论已保存→已归档”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-TRN-108 | <a id="at-fr-trn-108"></a>AT-FR-TRN-108 | 训练结果与实验分析 / 主页面：训练结果与实验分析｜区域：主工作区｜载体：页面 | `v2.experiment-analysis.operate.fr_trn_108`；`POST /api/v2/experiment-results/{experiment_result_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | experiment_result_id=ERA-T001；actor=U-EXPERIMENT-ANALYSIS-01；revision=3；state_version=5；幂等键=IDEM-FR-TRN-108-01；前置：算法工程师具有训练结果与实验分析创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“发起复现实验”功能，基于原实验配置、数据版本和运行环境复制生成新的训练实验或训练任务；复制后允许调整参数，原实验保持不变。”执行“发起复现实验”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“训练结果与实验分析遵循“待汇总→汇总中→可分析/不完整→结论已保存→已归档”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、实验版本、指标集、参数快照、资源消耗、模型产物、对比基线、分析结论、复现任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-EVA-035 | <a id="at-fr-eva-035"></a>AT-FR-EVA-035 | 评测规则 / 主页面：评测规则｜区域：规则版本与有效期配置表单｜载体：配置表单 | `v2.evaluation-rule.execute.fr_eva_035`；`POST /api/v2/evaluation-rules/{evaluation_rule_id}/tasks`；202；创建执行任务和输入快照 | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-035-01；前置：评测规则版本的输入、配置、引用版本和执行门禁已通过；评测工程师具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“在表单中填写规则版本、生效时间、有效期、适用范围、变更说明、历史引用。”执行“发布评测规则版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“评测规则版本生命周期为“草稿→校验通过→已发布→即将过期→已过期/已停用”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-EVA-036 | <a id="at-fr-eva-036"></a>AT-FR-EVA-036 | 评测规则 / 主页面：评测规则｜区域：规则版本与有效期配置表单｜载体：配置表单 | `v2.evaluation-rule.select.fr_eva_036`；`GET /api/v2/evaluation-rules/options`；200；返回有权限且状态可选的候选项，不保存表单 | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有评测规则版本表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择评测规则关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-EVA-037 | <a id="at-fr-eva-037"></a>AT-FR-EVA-037 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.validate.fr_eva_037`；`POST /api/v2/evaluation-rules/{evaluation_rule_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-037-01；前置：评测规则版本及其引用版本已固定，评测工程师具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验规则版本、生效时间、有效期、适用范围、变更说明、历史引用的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验评测规则表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；评测规则版本仅按“草稿→校验通过→已发布→即将过期→已过期/已停用”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-EVA-038 | <a id="at-fr-eva-038"></a>AT-FR-EVA-038 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.update.fr_eva_038`；`PATCH /api/v2/evaluation-rules/{evaluation_rule_id}`；200；保存新修订或草稿差异 | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-038-01；前置：评测工程师具有评测规则版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回评测规则编号、规则版本编号和规则状态。”执行“保存评测规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新评测规则列表或进入规则详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“评测规则版本遵循“草稿→校验通过→已发布→即将过期→已过期/已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-EVA-039 | <a id="at-fr-eva-039"></a>AT-FR-EVA-039 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.update.fr_eva_039`；`PATCH /api/v2/evaluation-rules/{evaluation_rule_id}`；200；保存新修订或草稿差异 | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-039-01；前置：评测工程师具有评测规则版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开评测规则编辑页面并加载当前配置；保存后刷新详情。”执行“编辑评测规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“评测规则版本遵循“草稿→校验通过→已发布→即将过期→已过期/已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-EVA-040 | <a id="at-fr-eva-040"></a>AT-FR-EVA-040 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.create.fr_eva_040`；`POST /api/v2/evaluation-rules`；201；创建对象与首条审计 | evaluation_rule_id=未生成；业务唯一键=UK-FR-EVA-040-01；actor=U-EVALUATION-RULE-01；revision=0；state_version=0；幂等键=IDEM-FR-EVA-040-01；前置：评测工程师具有评测规则版本创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前评测规则配置并生成新的草稿或版本，保留来源关系。”执行“复制评测规则”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→校验通过→已发布→即将过期→已过期/已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-EVA-041 | <a id="at-fr-eva-041"></a>AT-FR-EVA-041 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.read.fr_eva_041`；`GET /api/v2/evaluation-rules/{evaluation_rule_id}`；200；只读响应，不改变revision/state_version | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有评测规则版本读取权限和对象数据范围；目标evaluation_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看评测规则变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | evaluation_rule_id、查询请求号、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-042 | <a id="at-fr-eva-042"></a>AT-FR-EVA-042 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.read.fr_eva_042`；`GET /api/v2/evaluation-rules/{evaluation_rule_id}`；200；只读响应，不改变revision/state_version | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有评测规则版本读取权限和对象数据范围；目标evaluation_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看即将过期评测报告”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“过期阈值按系统配置计算。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | evaluation_rule_id、查询请求号、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-043 | <a id="at-fr-eva-043"></a>AT-FR-EVA-043 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.operate.fr_eva_043`；`POST /api/v2/evaluation-rules/{evaluation_rule_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-043-01；前置：评测工程师具有评测规则版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“基于原模型版本创建新的评测任务，并允许选择当前有效规则和测试数据版本。”执行“发起重新评测”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“原报告保持只读；新任务不得覆盖原评测结论。”；状态遵循“评测规则版本遵循“草稿→校验通过→已发布→即将过期→已过期/已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-EVA-044 | <a id="at-fr-eva-044"></a>AT-FR-EVA-044 | 评测规则 / 主页面：评测规则｜区域：主工作区｜载体：页面 | `v2.evaluation-rule.read.fr_eva_044`；`GET /api/v2/evaluation-rules/{evaluation_rule_id}`；200；只读响应，不改变revision/state_version | evaluation_rule_id=ERU-T001；actor=U-EVALUATION-RULE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有评测规则版本读取权限和对象数据范围；目标evaluation_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看重新评测任务”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“新评测通过前，过期报告仍不能作为发布准入依据。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | evaluation_rule_id、查询请求号、规则编号、指标定义、阈值、适用范围、生效时间、失效时间、版本摘要、发布人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-069 | <a id="at-fr-eva-069"></a>AT-FR-EVA-069 | 技术评测 / 主页面：技术评测｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_069`；`GET /api/v2/evaluations/{evaluation_task_id}`；200；只读响应，不改变revision/state_version | evaluation_task_id=EVA-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：冻结模型、独立测试数据、规则快照、隔离环境和资源均有效；评测工程师具有技术评测职责。 | 1)记录对象版本和状态；2)执行“筛选模型版本评测对比”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、测试数据、规则快照、环境、子任务、原始指标、技术结论、有效期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验模型版本评测对比；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 数据泄漏、子任务失败、指标缺失、规则变化或证据过期时不得生成通过；重试创建关联尝试并保留原结果。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 评测编号、独立性结果、任务时间线、原始指标、规则判定、报告、技术结论和审计记录。 |
| FR-EVA-070 | <a id="at-fr-eva-070"></a>AT-FR-EVA-070 | 技术评测 / 主页面：技术评测｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_070`；`GET /api/v2/evaluations/{evaluation_task_id}`；200；只读响应，不改变revision/state_version | evaluation_task_id=EVA-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：冻结模型、独立测试数据、规则快照、隔离环境和资源均有效；评测工程师具有技术评测职责。 | 1)记录对象版本和状态；2)执行“查询模型版本评测对比”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、测试数据、规则快照、环境、子任务、原始指标、技术结论、有效期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 数据泄漏、子任务失败、指标缺失、规则变化或证据过期时不得生成通过；重试创建关联尝试并保留原结果。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 评测编号、独立性结果、任务时间线、原始指标、规则判定、报告、技术结论和审计记录。 |
| FR-EVA-071 | <a id="at-fr-eva-071"></a>AT-FR-EVA-071 | 技术评测 / 主页面：技术评测｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_071`；`GET /api/v2/evaluations/{evaluation_task_id}`；200；只读响应，不改变revision/state_version | evaluation_task_id=EVA-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：冻结模型、独立测试数据、规则快照、隔离环境和资源均有效；评测工程师具有技术评测职责。 | 1)记录对象版本和状态；2)执行“重置模型版本评测对比筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、测试数据、规则快照、环境、子任务、原始指标、技术结论、有效期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 数据泄漏、子任务失败、指标缺失、规则变化或证据过期时不得生成通过；重试创建关联尝试并保留原结果。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 评测编号、独立性结果、任务时间线、原始指标、规则判定、报告、技术结论和审计记录。 |
| FR-EVA-072 | <a id="at-fr-eva-072"></a>AT-FR-EVA-072 | 技术评测 / 主页面：技术评测｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_072`；`GET /api/v2/evaluations/{evaluation_task_id}`；200；只读响应，不改变revision/state_version | evaluation_task_id=EVA-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：冻结模型、独立测试数据、规则快照、隔离环境和资源均有效；评测工程师具有技术评测职责。 | 1)记录对象版本和状态；2)执行“刷新模型版本评测对比列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、测试数据、规则快照、环境、子任务、原始指标、技术结论、有效期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 数据泄漏、子任务失败、指标缺失、规则变化或证据过期时不得生成通过；重试创建关联尝试并保留原结果。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 评测编号、独立性结果、任务时间线、原始指标、规则判定、报告、技术结论和审计记录。 |
| FR-EVA-073 | <a id="at-fr-eva-073"></a>AT-FR-EVA-073 | 技术评测 / 主页面：技术评测｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_073`；`GET /api/v2/evaluations/{evaluation_task_id}`；200；只读响应，不改变revision/state_version | evaluation_task_id=EVA-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：冻结模型、独立测试数据、规则快照、隔离环境和资源均有效；评测工程师具有技术评测职责。 | 1)记录对象版本和状态；2)执行“查看模型版本评测对比列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、测试数据、规则快照、环境、子任务、原始指标、技术结论、有效期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 数据泄漏、子任务失败、指标缺失、规则变化或证据过期时不得生成通过；重试创建关联尝试并保留原结果。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 评测编号、独立性结果、任务时间线、原始指标、规则判定、报告、技术结论和审计记录。 |
| FR-EVA-074 | <a id="at-fr-eva-074"></a>AT-FR-EVA-074 | 技术评测 / 主页面：技术评测｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_074`；`GET /api/v2/evaluations/{evaluation_task_id}`；200；只读响应，不改变revision/state_version | evaluation_task_id=EVA-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：冻结模型、独立测试数据、规则快照、隔离环境和资源均有效；评测工程师具有技术评测职责。 | 1)记录对象版本和状态；2)执行“查看模型版本评测对比详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、测试数据、规则快照、环境、子任务、原始指标、技术结论、有效期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 数据泄漏、子任务失败、指标缺失、规则变化或证据过期时不得生成通过；重试创建关联尝试并保留原结果。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 评测编号、独立性结果、任务时间线、原始指标、规则判定、报告、技术结论和审计记录。 |
| FR-EVA-075 | <a id="at-fr-eva-075"></a>AT-FR-EVA-075 | 业务确认 / 主页面：业务确认｜区域：业务目标与达标规则配置表单｜载体：配置表单 | `v2.evaluation.update.fr_eva_075`；`PATCH /api/v2/business-confirmations/{business_confirmation_id}`；200；保存新修订或草稿差异 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-075-01；前置：技术报告有效且绑定固定模型、数据和规则快照；业务场景、样例集及达标规则可选择；用户具有业务确认草稿编辑权限。 | 1)读取前值和可执行动作；2)按“在表单中填写工业问题、业务目标、达标指标、达标阈值、适用对象、可接受风险。”执行“配置业务达标规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“新记录进入草稿，编辑只增加修订；技术结论、发布准入和模型状态均不改变。”；重复请求不新增对象或副作用 | 报告失效、样例越权、字段校验或并发修订失败时保留输入并返回字段错误，不产生正式结论。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认编号、草稿修订、报告摘要、样例集、字段差异、校验结果和审计。 |
| FR-EVA-076 | <a id="at-fr-eva-076"></a>AT-FR-EVA-076 | 业务确认 / 主页面：业务确认｜区域：业务目标与达标规则配置表单｜载体：配置表单 | `v2.evaluation.select.fr_eva_076`；`GET /api/v2/business-confirmations/options`；200；返回有权限且状态可选的候选项，不保存表单 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有业务确认记录表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择业务确认记录关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-EVA-077 | <a id="at-fr-eva-077"></a>AT-FR-EVA-077 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.validate.fr_eva_077`；`POST /api/v2/business-confirmations/{business_confirmation_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-077-01；前置：业务确认记录及其引用版本已固定，业务确认人具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验工业问题、业务目标、达标指标、达标阈值、适用对象、可接受风险的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验业务确认记录表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；业务确认记录仅按“草稿→待确认→确认中→通过/退回/阻断→已失效”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-EVA-078 | <a id="at-fr-eva-078"></a>AT-FR-EVA-078 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.update.fr_eva_078`；`PATCH /api/v2/business-confirmations/{business_confirmation_id}`；200；保存新修订或草稿差异 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-078-01；前置：技术报告有效且绑定固定模型、数据和规则快照；业务场景、样例集及达标规则可选择；用户具有业务确认草稿编辑权限。 | 1)读取前值和可执行动作；2)按“保存成功后返回业务确认记录编号、确认状态和关联评测规则编号。”执行“保存业务确认记录”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新业务确认记录或进入评测任务；失败保留用户输入和失败原因，支持重试。”；状态遵循“新记录进入草稿，编辑只增加修订；技术结论、发布准入和模型状态均不改变。”；重复请求不新增对象或副作用 | 报告失效、样例越权、字段校验或并发修订失败时保留输入并返回字段错误，不产生正式结论。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认编号、草稿修订、报告摘要、样例集、字段差异、校验结果和审计。 |
| FR-EVA-079 | <a id="at-fr-eva-079"></a>AT-FR-EVA-079 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.update.fr_eva_079`；`PATCH /api/v2/business-confirmations/{business_confirmation_id}`；200；保存新修订或草稿差异 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-079-01；前置：技术报告有效且绑定固定模型、数据和规则快照；业务场景、样例集及达标规则可选择；用户具有业务确认草稿编辑权限。 | 1)读取前值和可执行动作；2)按“打开业务确认记录编辑页面并加载当前配置；保存后刷新详情。”执行“编辑业务确认记录”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“新记录进入草稿，编辑只增加修订；技术结论、发布准入和模型状态均不改变。”；重复请求不新增对象或副作用 | 报告失效、样例越权、字段校验或并发修订失败时保留输入并返回字段错误，不产生正式结论。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认编号、草稿修订、报告摘要、样例集、字段差异、校验结果和审计。 |
| FR-EVA-080 | <a id="at-fr-eva-080"></a>AT-FR-EVA-080 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.create.fr_eva_080`；`POST /api/v2/business-confirmations`；201；创建对象与首条审计 | business_confirmation_id=未生成；业务唯一键=UK-FR-EVA-080-01；actor=U-EVALUATION-01；revision=0；state_version=0；幂等键=IDEM-FR-EVA-080-01；前置：技术报告有效且绑定固定模型、数据和规则快照；业务场景、样例集及达标规则可选择；用户具有业务确认草稿编辑权限。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前业务确认记录配置并生成新的草稿或版本，保留来源关系。”执行“复制业务确认记录”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“新记录进入草稿，编辑只增加修订；技术结论、发布准入和模型状态均不改变。”；重复请求不新增对象或副作用 | 报告失效、样例越权、字段校验或并发修订失败时保留输入并返回字段错误，不产生正式结论。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 确认编号、草稿修订、报告摘要、样例集、字段差异、校验结果和审计。 |
| FR-EVA-081 | <a id="at-fr-eva-081"></a>AT-FR-EVA-081 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_081`；`GET /api/v2/business-confirmations/{business_confirmation_id}`；200；只读响应，不改变revision/state_version | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有业务确认记录读取权限和对象数据范围；目标business_confirmation_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务确认记录变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | business_confirmation_id、查询请求号、技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-082 | <a id="at-fr-eva-082"></a>AT-FR-EVA-082 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.transition.fr_eva_082`；`POST /api/v2/business-confirmations/{business_confirmation_id}/actions/{action}`；200/202；迁移状态并写审计 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-082-01；前置：业务确认处于待确认或确认中；技术报告仍有效；样例结果和达标规则完整；操作者承担确认职责。 | 1)读取前值和可执行动作；2)按“通过“确认业务样例通过”功能，显示业务样例确认记录当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“确认业务样例通过”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；业务样例确认记录的关键状态变化必须写入操作审计。”；状态遵循“业务确认进入通过/退回/阻断；技术评测结论保持不变；输入摘要变化使确认失效。”；重复请求不新增对象或副作用 | 样例不足、证据缺失、职责冲突、报告过期或并发状态变化时不得提交通过。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认修订、样例结果、规则判定、技术报告摘要、签署、状态和审计。 |
| FR-EVA-083 | <a id="at-fr-eva-083"></a>AT-FR-EVA-083 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.transition.fr_eva_083`；`POST /api/v2/business-confirmations/{business_confirmation_id}/actions/{action}`；200/202；迁移状态并写审计 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-083-01；前置：业务确认处于待确认或确认中；技术报告仍有效；样例结果和达标规则完整；操作者承担确认职责。 | 1)读取前值和可执行动作；2)按“通过“退回业务样例”功能，显示业务样例确认记录当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“退回业务样例”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；业务样例确认记录的关键状态变化必须写入操作审计。”；状态遵循“业务确认进入通过/退回/阻断；技术评测结论保持不变；输入摘要变化使确认失效。”；重复请求不新增对象或副作用 | 样例不足、证据缺失、职责冲突、报告过期或并发状态变化时不得提交通过。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认修订、样例结果、规则判定、技术报告摘要、签署、状态和审计。 |
| FR-EVA-084 | <a id="at-fr-eva-084"></a>AT-FR-EVA-084 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_084`；`GET /api/v2/business-confirmations/{business_confirmation_id}`；200；只读响应，不改变revision/state_version | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有业务确认记录读取权限和对象数据范围；目标business_confirmation_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务样例确认处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | business_confirmation_id、查询请求号、技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-085 | <a id="at-fr-eva-085"></a>AT-FR-EVA-085 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_085`；`GET /api/v2/business-confirmations/{business_confirmation_id}`；200；只读响应，不改变revision/state_version | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有业务确认记录读取权限和对象数据范围；目标business_confirmation_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务样例确认操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | business_confirmation_id、查询请求号、技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-086 | <a id="at-fr-eva-086"></a>AT-FR-EVA-086 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.transition.fr_eva_086`；`POST /api/v2/business-confirmations/{business_confirmation_id}/actions/{action}`；200/202；迁移状态并写审计 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-086-01；前置：业务确认处于待确认或确认中；技术报告仍有效；样例结果和达标规则完整；操作者承担确认职责。 | 1)读取前值和可执行动作；2)按“通过“确认模型适用范围”功能，显示模型适用范围确认当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“确认模型适用范围”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；模型适用范围确认的关键状态变化必须写入操作审计。”；状态遵循“业务确认进入通过/退回/阻断；技术评测结论保持不变；输入摘要变化使确认失效。”；重复请求不新增对象或副作用 | 样例不足、证据缺失、职责冲突、报告过期或并发状态变化时不得提交通过。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认修订、样例结果、规则判定、技术报告摘要、签署、状态和审计。 |
| FR-EVA-087 | <a id="at-fr-eva-087"></a>AT-FR-EVA-087 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.transition.fr_eva_087`；`POST /api/v2/business-confirmations/{business_confirmation_id}/actions/{action}`；200/202；迁移状态并写审计 | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-087-01；前置：业务确认处于待确认或确认中；技术报告仍有效；样例结果和达标规则完整；操作者承担确认职责。 | 1)读取前值和可执行动作；2)按“通过“退回补充适用说明”功能，显示模型适用范围确认当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“退回补充适用说明”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；模型适用范围确认的关键状态变化必须写入操作审计。”；状态遵循“业务确认进入通过/退回/阻断；技术评测结论保持不变；输入摘要变化使确认失效。”；重复请求不新增对象或副作用 | 样例不足、证据缺失、职责冲突、报告过期或并发状态变化时不得提交通过。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 确认修订、样例结果、规则判定、技术报告摘要、签署、状态和审计。 |
| FR-EVA-088 | <a id="at-fr-eva-088"></a>AT-FR-EVA-088 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_088`；`GET /api/v2/business-confirmations/{business_confirmation_id}`；200；只读响应，不改变revision/state_version | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有业务确认记录读取权限和对象数据范围；目标business_confirmation_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看适用范围与限制确认处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | business_confirmation_id、查询请求号、技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-089 | <a id="at-fr-eva-089"></a>AT-FR-EVA-089 | 业务确认 / 主页面：业务确认｜区域：主工作区｜载体：页面 | `v2.evaluation.read.fr_eva_089`；`GET /api/v2/business-confirmations/{business_confirmation_id}`；200；只读响应，不改变revision/state_version | business_confirmation_id=BC-T001；actor=U-EVALUATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有业务确认记录读取权限和对象数据范围；目标business_confirmation_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看适用范围与限制确认操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | business_confirmation_id、查询请求号、技术报告、业务场景、样例集、预期结果、实际结果、问题、结论、签署人、权限判定、数据时间、分页结果和审计记录。 |
| FR-EVA-098 | <a id="at-fr-eva-098"></a>AT-FR-EVA-098 | 评测结论与发布准入 / 主页面：评测结论与发布准入｜区域：主工作区｜载体：页面 | `v2.release-admission.operate.fr_eva_098`；`POST /api/v2/release-admissions/{admission_record_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | admission_record_id=ADM-T001；actor=U-RELEASE-ADMISSION-01；revision=3；state_version=5；幂等键=IDEM-FR-EVA-098-01；前置：模型负责人具有发布准入与环境差异创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“记录验证环境与正式运行环境的资源、依赖和配置差异及影响说明。”执行“登记验证环境差异”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、技术结论、业务结论、验证环境、目标环境、差异项、处置结论、准入状态；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“例外记录不能替代评测通过结论，未通过评测仍不得发布。”；状态遵循“发布准入与环境差异遵循“未检查→检查中→满足/不满足/需例外审批→已失效”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、技术结论、业务结论、验证环境、目标环境、差异项、处置结论、准入状态、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-EVA-099 | <a id="at-fr-eva-099"></a>AT-FR-EVA-099 | 评测结论与发布准入 / 主页面：评测结论与发布准入｜区域：主工作区｜载体：页面 | `v2.release-admission.read.fr_eva_099`；`GET /api/v2/release-admissions/{admission_record_id}`；200；只读响应，不改变revision/state_version | admission_record_id=ADM-T001；actor=U-RELEASE-ADMISSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有发布准入与环境差异读取权限和对象数据范围；目标admission_record_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看环境差异记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、技术结论、业务结论、验证环境、目标环境、差异项、处置结论、准入状态；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并与模型版本绑定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | admission_record_id、查询请求号、模型版本、技术结论、业务结论、验证环境、目标环境、差异项、处置结论、准入状态、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-007 | <a id="at-fr-mod-007"></a>AT-FR-MOD-007 | 模型库 / 主页面：模型库｜区域：模型归属筛选｜载体：页面区块 | `v2.model-asset.operate.fr_mod_007`；`POST /api/v2/models/{model_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-007-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在“模型库”的“查询区”提供创建人、负责人、本人参与等业务筛选条件作为筛选条件，支持文本输入、下拉选择、时间范围和多条件组合。”执行“模型归属筛选条件设置”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按模型管理模块权限访问；归属筛选只用于查询，不建立数据范围授权。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-008 | <a id="at-fr-mod-008"></a>AT-FR-MOD-008 | 模型库 / 主页面：模型库｜区域：模型归属筛选｜载体：页面区块 | `v2.model-asset.operate.fr_mod_008`；`POST /api/v2/models/{model_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-008-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“模型权限范围筛选查询执行”功能，点击“查询”按当前条件刷新列表，显示加载状态、结果总数和空数据提示。”执行“模型归属筛选查询执行”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按模型管理模块权限访问；归属筛选只用于查询，不建立数据范围授权。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-009 | <a id="at-fr-mod-009"></a>AT-FR-MOD-009 | 模型库 / 主页面：模型库｜区域：模型归属筛选｜载体：页面区块 | `v2.model-asset.operate.fr_mod_009`；`POST /api/v2/models/{model_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-009-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“模型权限范围筛选查询重置”功能，点击“重置”清空已输入条件并恢复页面默认筛选范围。”执行“模型归属筛选查询重置”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按模型管理模块权限访问；归属筛选只用于查询，不建立数据范围授权。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-010 | <a id="at-fr-mod-010"></a>AT-FR-MOD-010 | 模型库 / 主页面：模型库｜区域：模型归属筛选｜载体：页面区块 | `v2.model-asset.operate.fr_mod_010`；`POST /api/v2/models/{model_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-010-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“模型权限范围筛选结果刷新”功能，点击“刷新”重新获取列表数据，并保留当前筛选条件、分页和排序。”执行“模型归属筛选结果刷新”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按模型管理模块权限访问；归属筛选只用于查询，不建立数据范围授权。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-011 | <a id="at-fr-mod-011"></a>AT-FR-MOD-011 | 模型库 / 主页面：模型库｜区域：模型归属筛选｜载体：页面区块 | `v2.model-asset.read.fr_mod_011`；`GET /api/v2/models/{model_id}`；200；只读响应，不改变revision/state_version | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型资产与字段模板读取权限和对象数据范围；目标model_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“模型归属筛选列表展示”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模型管理模块权限访问；归属筛选只用于查询，不建立数据范围授权。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_id、查询请求号、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-012 | <a id="at-fr-mod-012"></a>AT-FR-MOD-012 | 模型库 / 主页面：模型库｜区域：模型归属筛选｜载体：页面区块 | `v2.model-asset.read.fr_mod_012`；`GET /api/v2/models/{model_id}`；200；只读响应，不改变revision/state_version | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型资产与字段模板读取权限和对象数据范围；目标model_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“模型归属筛选详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模型管理模块权限访问；归属筛选只用于查询，不建立数据范围授权。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_id、查询请求号、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-017 | <a id="at-fr-mod-017"></a>AT-FR-MOD-017 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.update.fr_mod_017`；`PATCH /api/v2/models/{model_id}`；200；保存新修订或草稿差异 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-017-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在表单中填写输入数据要求、输出结果、适用工厂、设备工况、使用条件、限制。”执行“编辑工业适用说明”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-018 | <a id="at-fr-mod-018"></a>AT-FR-MOD-018 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.select.fr_mod_018`；`GET /api/v2/models/options`；200；返回有权限且状态可选的候选项，不保存表单 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型资产与字段模板表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择模型关联对象”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“版本、来源和权限信息必须可追溯；已被下游引用的版本按规则只读或生成新版本。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-MOD-019 | <a id="at-fr-mod-019"></a>AT-FR-MOD-019 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.validate.fr_mod_019`；`POST /api/v2/models/{model_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-019-01；前置：模型资产与字段模板及其引用版本已固定，模型负责人具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验输入数据要求、输出结果、适用工厂、设备工况、使用条件、限制的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验模型表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；模型资产与字段模板仅按“草稿→登记完成→可用→维护中→已停用”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-MOD-020 | <a id="at-fr-mod-020"></a>AT-FR-MOD-020 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.update.fr_mod_020`；`PATCH /api/v2/models/{model_id}`；200；保存新修订或草稿差异 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-020-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回模型编号和当前模型版本编号。”执行“保存模型”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新模型库或进入模型详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-021 | <a id="at-fr-mod-021"></a>AT-FR-MOD-021 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.update.fr_mod_021`；`PATCH /api/v2/models/{model_id}`；200；保存新修订或草稿差异 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-021-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开模型编辑页面并加载当前配置；保存后刷新详情。”执行“编辑模型”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-022 | <a id="at-fr-mod-022"></a>AT-FR-MOD-022 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.create.fr_mod_022`；`POST /api/v2/models`；201；创建对象与首条审计 | model_id=未生成；业务唯一键=UK-FR-MOD-022-01；actor=U-MODEL-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-MOD-022-01；前置：模型负责人具有模型资产与字段模板创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前模型配置并生成新的草稿或版本，保留来源关系。”执行“复制模型”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→登记完成→可用→维护中→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-MOD-023 | <a id="at-fr-mod-023"></a>AT-FR-MOD-023 | 模型库 / 主页面：模型库｜区域：工业适用说明｜载体：页面区块 | `v2.model-asset.read.fr_mod_023`；`GET /api/v2/models/{model_id}`；200；只读响应，不改变revision/state_version | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型资产与字段模板读取权限和对象数据范围；目标model_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_id、查询请求号、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-286 | <a id="at-fr-mod-286"></a>AT-FR-MOD-286 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.read.fr_mod_286`；`GET /api/v2/models/{model_id}`；200；只读响应，不改变revision/state_version | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型资产与字段模板读取权限和对象数据范围；目标model_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型模板列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_id、查询请求号、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-287 | <a id="at-fr-mod-287"></a>AT-FR-MOD-287 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.create.fr_mod_287`；`POST /api/v2/models`；201；创建对象与首条审计 | model_id=未生成；业务唯一键=UK-FR-MOD-287-01；actor=U-MODEL-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-MOD-287-01；前置：模型负责人具有模型资产与字段模板创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“填写模板名称、编码、适用场景、说明和默认发布方式，保存模板。”执行“新增模型管理模板”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“创建后进入“草稿→登记完成→可用→维护中→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-MOD-288 | <a id="at-fr-mod-288"></a>AT-FR-MOD-288 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.update.fr_mod_288`；`PATCH /api/v2/models/{model_id}`；200；保存新修订或草稿差异 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-288-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置基础信息、版本信息、输入输出、评测、发布和运维字段及必填规则。”执行“配置模板字段”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-289 | <a id="at-fr-mod-289"></a>AT-FR-MOD-289 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.update.fr_mod_289`；`PATCH /api/v2/models/{model_id}`；200；保存新修订或草稿差异 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-289-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“绑定行业、设备、算法类型、部署环境和使用范围，限制模板可用对象。”执行“配置模板适用场景”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-290 | <a id="at-fr-mod-290"></a>AT-FR-MOD-290 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.update.fr_mod_290`；`PATCH /api/v2/models/{model_id}`；200；保存新修订或草稿差异 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-290-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“创建、复制、启用、停用模板版本，记录版本说明和变更内容。”执行“管理模板版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-291 | <a id="at-fr-mod-291"></a>AT-FR-MOD-291 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.create.fr_mod_291`；`POST /api/v2/models`；201；创建对象与首条审计 | model_id=未生成；业务唯一键=UK-FR-MOD-291-01；actor=U-MODEL-ASSET-01；revision=0；state_version=0；幂等键=IDEM-FR-MOD-291-01；前置：模型负责人具有模型资产与字段模板创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制已有模板及字段规则，修改名称和适用范围后生成新模板。”执行“复制模型管理模板”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“创建后进入“草稿→登记完成→可用→维护中→已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-MOD-292 | <a id="at-fr-mod-292"></a>AT-FR-MOD-292 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.operate.fr_mod_292`；`POST /api/v2/models/{model_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-292-01；前置：模型负责人具有模型资产与字段模板创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择启用模板填写模板字段，校验必填项和格式后创建模型及初始版本。”执行“按模板创建模型”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型资产与字段模板遵循“草稿→登记完成→可用→维护中→已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-293 | <a id="at-fr-mod-293"></a>AT-FR-MOD-293 | 模型库 / 主页面：模型库｜区域：模型管理字段模板｜载体：页面区块或操作 | `v2.model-asset.read.fr_mod_293`；`GET /api/v2/models/{model_id}`；200；只读响应，不改变revision/state_version | model_id=MDL-T001；actor=U-MODEL-ASSET-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型资产与字段模板读取权限和对象数据范围；目标model_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模板变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_id、查询请求号、模型编号、归属、工业适用说明、字段模板、版本清单、负责人、状态、最新模型版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-035 | <a id="at-fr-mod-035"></a>AT-FR-MOD-035 | 模型版本详情 / 主页面：模型版本详情｜区域：版本差异与状态历史｜载体：页面区块 | `v2.model-version.read.fr_mod_035`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选模型版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验模型版本；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-036 | <a id="at-fr-mod-036"></a>AT-FR-MOD-036 | 模型版本详情 / 主页面：模型版本详情｜区域：版本差异与状态历史｜载体：页面区块 | `v2.model-version.read.fr_mod_036`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询模型版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-037 | <a id="at-fr-mod-037"></a>AT-FR-MOD-037 | 模型版本详情 / 主页面：模型版本详情｜区域：版本差异与状态历史｜载体：页面区块 | `v2.model-version.read.fr_mod_037`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置模型版本筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-038 | <a id="at-fr-mod-038"></a>AT-FR-MOD-038 | 模型版本详情 / 主页面：模型版本详情｜区域：版本差异与状态历史｜载体：页面区块 | `v2.model-version.read.fr_mod_038`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新模型版本列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-039 | <a id="at-fr-mod-039"></a>AT-FR-MOD-039 | 模型版本详情 / 主页面：模型版本详情｜区域：版本差异与状态历史｜载体：页面区块 | `v2.model-version.read.fr_mod_039`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型版本列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-040 | <a id="at-fr-mod-040"></a>AT-FR-MOD-040 | 模型版本详情 / 主页面：模型版本详情｜区域：版本差异与状态历史｜载体：页面区块 | `v2.model-version.read.fr_mod_040`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“版本差异与状态历史详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-047 | <a id="at-fr-mod-047"></a>AT-FR-MOD-047 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.update.fr_mod_047`；`PATCH /api/v2/model-versions/{model_version_id}`；200；保存新修订或草稿差异 | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-047-01；前置：模型负责人具有模型版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在表单中填写版本变更、推荐用途、使用说明、维护人、更新时间、评测结论只读标识。”执行“编辑模型版本说明”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“支持保存草稿、取消和重新编辑；关联对象选择器只返回当前用户有权限使用的对象。”；状态遵循“模型版本遵循“草稿→待验证→验证中→可发布/阻断→已发布/已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-048 | <a id="at-fr-mod-048"></a>AT-FR-MOD-048 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.link.fr_mod_048`；`PUT /api/v2/model-versions/{model_version_id}/relations/{relation_type}`；200；写关联记录和审计，不启动关联对象 | model_version_id=MV-T001；target_id=TARGET-001；relation_type=related；actor=U-MODEL-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-048-01；前置：用户具有模型版本关联权限和两端对象读取范围；源对象与目标对象版本有效，关系类型允许且未存在同一有效关系。 | 1)读取两端对象版本和可关联状态；2)执行“关联模型版本来源和适用范围”；3)核对关系编号、两端固定版本和审计；4)重复关系、越权目标和过期revision复测 | 关系记录含model_version_id、target_id、relation_type、source_revision、target_revision、effective_state和request_id | 仅关系记录新增/修订；目标对象状态和执行状态不变；重复请求不产生第二条有效关系 | 对象越权、版本失效、关系重复、形成非法环或并发修订冲突时拒绝；不产生半条关系。；越权返回AUTHZ_403；并发修订返回STATE_409 | 关系编号、model_version_id、目标对象、固定版本、关系状态、目标对象状态未变化证据和审计。 |
| FR-MOD-049 | <a id="at-fr-mod-049"></a>AT-FR-MOD-049 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.validate.fr_mod_049`；`POST /api/v2/model-versions/{model_version_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-049-01；前置：模型版本及其引用版本已固定，模型负责人具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“提交前校验版本变更、推荐用途、使用说明、维护人、更新时间、评测结论只读标识的必填、格式、唯一性、权限、关联关系、版本兼容性和当前状态，校验失败定位到具体字段或对象。”执行“校验模型版本表单”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“校验失败时定位到字段或具体对象；校验通过后才允许保存或发起后续任务。”；状态遵循“校验记录独立保存；模型版本仅按“草稿→待验证→验证中→可发布/阻断→已发布/已停用”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-MOD-050 | <a id="at-fr-mod-050"></a>AT-FR-MOD-050 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.update.fr_mod_050`；`PATCH /api/v2/model-versions/{model_version_id}`；200；保存新修订或草稿差异 | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-050-01；前置：模型负责人具有模型版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“保存成功后返回模型版本编号、版本状态和关联评测报告。”执行“保存模型版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“成功后刷新模型版本列表或进入版本详情；失败保留用户输入和失败原因，支持重试。”；状态遵循“模型版本遵循“草稿→待验证→验证中→可发布/阻断→已发布/已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-051 | <a id="at-fr-mod-051"></a>AT-FR-MOD-051 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.update.fr_mod_051`；`PATCH /api/v2/model-versions/{model_version_id}`；200；保存新修订或草稿差异 | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-051-01；前置：模型负责人具有模型版本创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“打开模型版本编辑页面并加载当前配置；保存后刷新详情。”执行“编辑模型版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可编辑未锁定且有维护权限的对象；已被引用版本按规则只读。”；状态遵循“模型版本遵循“草稿→待验证→验证中→可发布/阻断→已发布/已停用”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-052 | <a id="at-fr-mod-052"></a>AT-FR-MOD-052 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.create.fr_mod_052`；`POST /api/v2/model-versions`；201；创建对象与首条审计 | model_version_id=未生成；业务唯一键=UK-FR-MOD-052-01；actor=U-MODEL-VERSION-01；revision=0；state_version=0；幂等键=IDEM-FR-MOD-052-01；前置：模型负责人具有模型版本创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制当前模型版本配置并生成新的草稿或版本，保留来源关系。”执行“复制模型版本”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“复制不覆盖原记录，新的草稿或版本使用独立编号。”；状态遵循“创建后进入“草稿→待验证→验证中→可发布/阻断→已发布/已停用”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-MOD-053 | <a id="at-fr-mod-053"></a>AT-FR-MOD-053 | 模型版本详情 / 主页面：模型版本详情｜区域：版本说明维护｜载体：页面区块 | `v2.model-version.read.fr_mod_053`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型版本变更记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“变更记录只读，展示操作人、时间、变更摘要和结果。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-072 | <a id="at-fr-mod-072"></a>AT-FR-MOD-072 | 模型版本详情 / 主页面：模型版本详情｜区域：评测历史与版本对比｜载体：页面区块 | `v2.model-version.read.fr_mod_072`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选模型评测记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验模型评测记录；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-073 | <a id="at-fr-mod-073"></a>AT-FR-MOD-073 | 模型版本详情 / 主页面：模型版本详情｜区域：评测历史与版本对比｜载体：页面区块 | `v2.model-version.read.fr_mod_073`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询模型评测记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-074 | <a id="at-fr-mod-074"></a>AT-FR-MOD-074 | 模型版本详情 / 主页面：模型版本详情｜区域：评测历史与版本对比｜载体：页面区块 | `v2.model-version.read.fr_mod_074`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置模型评测记录筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-075 | <a id="at-fr-mod-075"></a>AT-FR-MOD-075 | 模型版本详情 / 主页面：模型版本详情｜区域：评测历史与版本对比｜载体：页面区块 | `v2.model-version.read.fr_mod_075`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新模型评测记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-076 | <a id="at-fr-mod-076"></a>AT-FR-MOD-076 | 模型版本详情 / 主页面：模型版本详情｜区域：评测历史与版本对比｜载体：页面区块 | `v2.model-version.read.fr_mod_076`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型评测记录列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-077 | <a id="at-fr-mod-077"></a>AT-FR-MOD-077 | 模型版本详情 / 主页面：模型版本详情｜区域：评测历史与版本对比｜载体：页面区块 | `v2.model-version.read.fr_mod_077`；`GET /api/v2/model-versions/{model_version_id}`；200；只读响应，不改变revision/state_version | model_version_id=MV-T001；actor=U-MODEL-VERSION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型版本读取权限和对象数据范围；目标model_version_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型评测记录详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | model_version_id、查询请求号、版本编号、来源类型、来源算法版本、训练交接包、来源训练任务、产物摘要、外部来源证明、状态历史、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-276 | <a id="at-fr-mod-276"></a>AT-FR-MOD-276 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.update.fr_mod_276`；`PATCH /api/v2/adaptation-tasks/{adaptation_task_id}`；200；保存新修订或草稿差异 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-276-01；前置：模型负责人具有模型量化与适配任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择模型版本、量化方式、目标精度、校准数据集和输出格式，保存量化配置。”执行“配置模型量化任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型量化与适配任务遵循“草稿→排队→转换中→适配中→测试中→成功/失败/部分成功”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-277 | <a id="at-fr-mod-277"></a>AT-FR-MOD-277 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.select.fr_mod_277`；`GET /api/v2/adaptation-tasks/options`；200；返回有权限且状态可选的候选项，不保存表单 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型量化与适配任务表单访问权限和候选对象读取范围；表单草稿、依赖字段和目标环境已确定。 | 1)记录对象版本和状态；2)执行“选择量化方式与精度”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 每个候选项含展示值、保存值、对象版本、可选状态和不可选原因；选择仅进入前端草稿，不调用保存接口 | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 候选对象失效、越权、依赖字段变化或兼容性不满足时标记不可选并清除无效草稿值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 候选展示值/保存值、来源接口、对象版本、可选状态、不可选原因、选择前后对象版本未变化证据。 |
| FR-MOD-278 | <a id="at-fr-mod-278"></a>AT-FR-MOD-278 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.execute.fr_mod_278`；`POST /api/v2/adaptation-tasks/{adaptation_task_id}/tasks`；202；创建执行任务和输入快照 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-278-01；前置：模型量化与适配任务的输入、配置、引用版本和执行门禁已通过；模型负责人具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“校验模型产物、校准数据和算力资源后提交量化任务并生成任务编号。”执行“提交模型量化任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型量化与适配任务生命周期为“草稿→排队→转换中→适配中→测试中→成功/失败/部分成功”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-MOD-279 | <a id="at-fr-mod-279"></a>AT-FR-MOD-279 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.read.fr_mod_279`；`GET /api/v2/adaptation-tasks/{adaptation_task_id}`；200；只读响应，不改变revision/state_version | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型量化与适配任务读取权限和对象数据范围；目标adaptation_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看量化任务日志与结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | adaptation_task_id、查询请求号、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-280 | <a id="at-fr-mod-280"></a>AT-FR-MOD-280 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.retry.fr_mod_280`；`POST /api/v2/adaptation-tasks/{adaptation_task_id}/tasks/{task_id}/retry`；202；创建关联的新任务或尝试 | adaptation_task_id=ADP-T001；original_task_id=TASK-FAILED-001；original_state=failed；attempt_no=1；actor=U-MODEL-ADAPTATION-01；幂等键=IDEM-FR-MOD-280-01；前置：模型量化与适配任务的原任务处于允许重试的失败/已停止终态；失败分类可重试；输入、版本、资源和环境重新校验通过。 | 1)核对原失败分类、终态和快照；2)选择允许修订项并发起重试；3)核对新task_id/attempt及来源关系；4)用存活旧任务、不可重试失败和相同幂等键复测 | 新任务含source_task_id、retry_reason、attempt_no、输入/配置摘要、修订差异和task_id；原日志、状态和产物只读 | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；新任务从合法初态流转；原任务保持失败/已停止终态且重复请求不再新建 | 原任务仍存活、失败不可重试、快照不兼容、重试上限或幂等冲突时拒绝；不得并发创建多个等价重试。；原任务未终止或重试上限时返回STATE_409/DEPENDENCY_412 | 原/新任务编号、来源关系、失败证据、输入快照差异、重试次数、原任务未覆盖证据和审计。 |
| FR-MOD-281 | <a id="at-fr-mod-281"></a>AT-FR-MOD-281 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.update.fr_mod_281`；`PATCH /api/v2/adaptation-tasks/{adaptation_task_id}`；200；保存新修订或草稿差异 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-281-01；前置：模型负责人具有模型量化与适配任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“选择源格式和目标格式，设置算子转换、权重精度和输出目录。”执行“配置模型格式转换”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型量化与适配任务遵循“草稿→排队→转换中→适配中→测试中→成功/失败/部分成功”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-282 | <a id="at-fr-mod-282"></a>AT-FR-MOD-282 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.execute.fr_mod_282`；`POST /api/v2/adaptation-tasks/{adaptation_task_id}/tasks`；202；创建执行任务和输入快照 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-282-01；前置：模型量化与适配任务的输入、配置、引用版本和执行门禁已通过；模型负责人具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“选择目标硬件、驱动、操作系统和运行时，提交模型适配任务。”执行“执行 CPU/GPU/NPU 适配”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型量化与适配任务生命周期为“草稿→排队→转换中→适配中→测试中→成功/失败/部分成功”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-MOD-283 | <a id="at-fr-mod-283"></a>AT-FR-MOD-283 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.validate.fr_mod_283`；`POST /api/v2/adaptation-tasks/{adaptation_task_id}/validations`；200/202；生成独立校验记录，不覆盖业务结论 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-283-01；前置：模型量化与适配任务及其引用版本已固定，模型负责人具有校验职责；待检查字段、规则版本和环境摘要完整。 | 1)读取前值和可执行动作；2)按“检查驱动版本、运行时版本、算子支持、输入输出协议和依赖完整性。”执行“校验运行时与输入输出兼容性”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“校验记录独立保存；模型量化与适配任务仅按“草稿→排队→转换中→适配中→测试中→成功/失败/部分成功”开放下一动作，规则或输入变化使原结论失效。”；重复请求不新增对象或副作用 | 输入变化、规则过期、依赖超时或证据缺失时不得汇总为通过；技术执行失败与业务不通过分别记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 校验请求号、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、规则快照、逐项断言、汇总结论、失效原因和审计记录。 |
| FR-MOD-284 | <a id="at-fr-mod-284"></a>AT-FR-MOD-284 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.read.fr_mod_284`；`GET /api/v2/adaptation-tasks/{adaptation_task_id}`；200；只读响应，不改变revision/state_version | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型量化与适配任务读取权限和对象数据范围；目标adaptation_task_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看适配测试结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按模块权限只读访问；查询失败保留筛选条件并提示原因，下载导出记录审计。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | adaptation_task_id、查询请求号、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-285 | <a id="at-fr-mod-285"></a>AT-FR-MOD-285 | 模型适配与量化 / 主页面：模型适配与量化｜区域：模型量化与运行适配｜载体：页面区块 | `v2.model-adaptation.operate.fr_mod_285`；`POST /api/v2/adaptation-tasks/{adaptation_task_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | adaptation_task_id=ADP-T001；actor=U-MODEL-ADAPTATION-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-285-01；前置：模型负责人具有模型量化与适配任务创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“将通过验证的量化或适配产物登记为模型版本并关联来源和适用范围。”执行“登记量化或适配模型版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“按当前用户权限校验；保存失败时保留已填写内容并提示原因。”；状态遵循“模型量化与适配任务遵循“草稿→排队→转换中→适配中→测试中→成功/失败/部分成功”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、源模型、目标格式、精度、目标设备、运行时、兼容性结果、性能结果、输出版本、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-122 | <a id="at-fr-mod-122"></a>AT-FR-MOD-122 | 服务部署管理 / 主页面：服务部署管理｜区域：部署失败回滚｜载体：页面区块 | `v2.deployment.read.fr_mod_122`；`GET /api/v2/deployments/{deployment_id}`；200；只读响应，不改变revision/state_version | deployment_id=DEP-T001；actor=U-DEPLOYMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有服务部署与回切记录读取权限和对象数据范围；目标deployment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看API服务部署版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“版本信息来自实际部署记录，不允许手工修改。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | deployment_id、查询请求号、服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-123 | <a id="at-fr-mod-123"></a>AT-FR-MOD-123 | 服务部署管理 / 主页面：服务部署管理｜区域：部署失败回滚｜载体：页面区块 | `v2.deployment.transition.fr_mod_123`；`POST /api/v2/deployments/{deployment_id}/actions/{action}`；200/202；迁移状态并写审计 | deployment_id=DEP-T001；actor=U-DEPLOYMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-123-01；前置：模型运营人员具有“回滚失败部署”动作权限；服务部署与回切记录处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“停止失败部署产生的新实例并恢复上一稳定版本的服务实例和路由。”执行“回滚失败部署”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“无上一稳定版本时只清理失败实例，不生成虚假的回滚成功状态。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“只允许“待执行→部署中→成功/部分成功/失败→回切中→已回切/回切失败/未知”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MOD-124 | <a id="at-fr-mod-124"></a>AT-FR-MOD-124 | 服务部署管理 / 主页面：服务部署管理｜区域：部署失败回滚｜载体：页面区块 | `v2.deployment.execute.fr_mod_124`；`POST /api/v2/deployments/{deployment_id}/tasks`；202；创建执行任务和输入快照 | deployment_id=DEP-T001；actor=U-DEPLOYMENT-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-124-01；前置：服务部署与回切记录的输入、配置、引用版本和执行门禁已通过；模型运营人员具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“新版本部署或健康验证失败时，恢复上一稳定版本的实例和路由；计划内版本切换由“服务发布策略”处理。”执行“部署失败后回切稳定版本”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“切换前再次校验发布准入；切换失败时继续保留当前稳定版本。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“服务部署与回切记录生命周期为“待执行→部署中→成功/部分成功/失败→回切中→已回切/回切失败/未知”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-MOD-125 | <a id="at-fr-mod-125"></a>AT-FR-MOD-125 | 服务部署管理 / 主页面：服务部署管理｜区域：部署失败回滚｜载体：页面区块 | `v2.deployment.read.fr_mod_125`；`GET /api/v2/deployments/{deployment_id}`；200；只读响应，不改变revision/state_version | deployment_id=DEP-T001；actor=U-DEPLOYMENT-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有服务部署与回切记录读取权限和对象数据范围；目标deployment_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看版本回切结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“结果记录只读；操作结果写入业务操作记录；关键状态变化同步写入操作审计。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | deployment_id、查询请求号、服务编号、目标版本、部署策略、实例清单、健康结论、稳定版本、回切结果、失败原因、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-192 | <a id="at-fr-mod-192"></a>AT-FR-MOD-192 | 服务详情 / 主页面：服务详情｜区域：服务告警｜载体：页面区块或操作 | `v2.service.read.fr_mod_192`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看API服务告警概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验API服务告警状态和关联对象，异常时保留原数据并提示处理原因。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-193 | <a id="at-fr-mod-193"></a>AT-FR-MOD-193 | 服务详情 / 主页面：服务详情｜区域：服务告警｜载体：页面区块或操作 | `v2.service.read.fr_mod_193`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看API服务告警详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-194 | <a id="at-fr-mod-194"></a>AT-FR-MOD-194 | 服务详情 / 主页面：服务详情｜区域：服务告警｜载体：页面区块或操作 | `v2.service.read.fr_mod_194`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看API服务告警关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-195 | <a id="at-fr-mod-195"></a>AT-FR-MOD-195 | 服务详情 / 主页面：服务详情｜区域：服务告警｜载体：页面区块或操作 | `v2.service.transition.fr_mod_195`；`POST /api/v2/model-services/{service_id}/actions/{action}`；200/202；迁移状态并写审计 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-195-01；前置：模型运营人员具有“确认服务告警”动作权限；模型服务、实例与流量策略处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“确认服务告警”功能，查看告警原因、影响范围和关联服务；对告警执行确认、备注或关闭，关闭前必须记录处理结果。”执行“确认服务告警”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“只允许“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MOD-196 | <a id="at-fr-mod-196"></a>AT-FR-MOD-196 | 服务详情 / 主页面：服务详情｜区域：服务告警｜载体：页面区块或操作 | `v2.service.transition.fr_mod_196`；`POST /api/v2/model-services/{service_id}/actions/{action}`；200/202；迁移状态并写审计 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-196-01；前置：模型运营人员具有“指派服务告警处理人”动作权限；模型服务、实例与流量策略处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“指派服务告警处理人”功能，查看告警原因、影响范围和关联服务；对告警执行确认、备注或关闭，关闭前必须记录处理结果。”执行“指派服务告警处理人”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“只允许“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MOD-197 | <a id="at-fr-mod-197"></a>AT-FR-MOD-197 | 服务详情 / 主页面：服务详情｜区域：服务告警｜载体：页面区块或操作 | `v2.service.transition.fr_mod_197`；`POST /api/v2/model-services/{service_id}/actions/{action}`；200/202；迁移状态并写审计 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-197-01；前置：模型运营人员具有“关闭服务告警”动作权限；模型服务、实例与流量策略处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“关闭服务告警”功能，查看告警原因、影响范围和关联服务；对告警执行确认、备注或关闭，关闭前必须记录处理结果。”执行“关闭服务告警”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“只允许“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MOD-209 | <a id="at-fr-mod-209"></a>AT-FR-MOD-209 | 服务详情 / 主页面：服务详情｜区域：服务版本与变更记录｜载体：页面区块或操作 | `v2.service.read.fr_mod_209`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选API服务版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验API服务版本；未授权对象不得出现在结果中。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-210 | <a id="at-fr-mod-210"></a>AT-FR-MOD-210 | 服务详情 / 主页面：服务详情｜区域：服务版本与变更记录｜载体：页面区块或操作 | `v2.service.read.fr_mod_210`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询API服务版本”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-211 | <a id="at-fr-mod-211"></a>AT-FR-MOD-211 | 服务详情 / 主页面：服务详情｜区域：服务版本与变更记录｜载体：页面区块或操作 | `v2.service.read.fr_mod_211`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置API服务版本筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-212 | <a id="at-fr-mod-212"></a>AT-FR-MOD-212 | 服务详情 / 主页面：服务详情｜区域：服务版本与变更记录｜载体：页面区块或操作 | `v2.service.read.fr_mod_212`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新API服务版本列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-213 | <a id="at-fr-mod-213"></a>AT-FR-MOD-213 | 服务详情 / 主页面：服务详情｜区域：服务版本与变更记录｜载体：页面区块或操作 | `v2.service.read.fr_mod_213`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看API服务版本列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-214 | <a id="at-fr-mod-214"></a>AT-FR-MOD-214 | 服务详情 / 主页面：服务详情｜区域：服务版本与变更记录｜载体：页面区块或操作 | `v2.service.read.fr_mod_214`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型服务、实例与流量策略读取权限和对象数据范围；目标service_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看API服务版本详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | service_id、查询请求号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-254 | <a id="at-fr-mod-254"></a>AT-FR-MOD-254 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.update.fr_mod_254`；`PATCH /api/v2/model-services/{service_id}`；200；保存新修订或草稿差异 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-254-01；前置：目标服务、候选版本、稳定版本和可用回滚版本存在；操作者具有发布策略配置权限；策略仍为草稿。 | 1)读取前值和可执行动作；2)按“配置灰度批次、实例范围、流量比例、观察时长、成功阈值、停止条件和回退版本。”执行“配置灰度发布策略”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅评测通过且部署验证成功的版本可进入灰度；策略保存前校验流量比例和回退版本可用性。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“仅生成发布策略草稿新修订；不创建发布执行、不部署实例、不改变路由或实际流量。”；重复请求不新增对象或副作用 | 比例越界、资源不足、版本不兼容、健康规则缺失或修订冲突时拒绝保存并定位字段。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 策略草稿、字段差异、版本与容量校验、修订号、实际路由未变化证据和审计。 |
| FR-MOD-255 | <a id="at-fr-mod-255"></a>AT-FR-MOD-255 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.execute.fr_mod_255`；`POST /api/v2/model-services/{service_id}/tasks`；202；创建执行任务和输入快照 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-255-01；前置：发布审批快照有效；目标版本、实例规格、健康规则、流量策略和回滚版本已固定；执行人职责校验通过。 | 1)读取前值和可执行动作；2)按“按批次启动新版本实例并将指定比例流量路由到灰度版本，记录每批次开始、完成和决策结果。”执行“执行灰度发布”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“灰度期间保留稳定版本承接剩余流量；异常或健康检查失败时自动暂停并提示回退。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“发布执行、实例、健康、流量策略和业务服务分别迁移；允许部分成功、暂停、回滚中、回滚失败和未知，不用单一已发布覆盖。”；重复请求不新增对象或副作用 | 实例部分失败、健康不达标、网关写入失败或指标越界时停止扩大；保持或恢复最后稳定路由，孤儿实例进入待清理并告警。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 发布执行编号、实例时间线、健康证据、切流前后路由、指标窗口、回滚快照、补偿结果和审计记录。 |
| FR-MOD-256 | <a id="at-fr-mod-256"></a>AT-FR-MOD-256 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.transition.fr_mod_256`；`POST /api/v2/model-services/{service_id}/actions/{action}`；200/202；迁移状态并写审计 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-256-01；前置：灰度执行处于灰度中、观察中或暂停；候选与稳定实例、健康结果、指标窗口和网关实际权重可查询；操作者具有流量操作权限。 | 1)读取前值和可执行动作；2)按“查看灰度版本与稳定版本的成功率、延迟、吞吐、资源和业务效果对比，支持扩大比例、暂停或结束灰度。”执行“查看灰度指标与扩大/暂停操作”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“扩大比例前再次校验指标和权限；暂停不销毁实例，操作结果写入发布记录。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“只查看指标时不变状态；扩大后进入新一轮观察，暂停进入暂停，结束灰度在候选全量且验证通过后进入全量完成。”；重复请求不新增对象或副作用 | 指标越界、监控未知、实例不健康、路由版本冲突或网关未生效时拒绝扩大/结束并保持最后稳定权重；暂停不销毁实例。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 灰度批次、指标快照、健康检查、配置与实际权重、前后状态、网关回执和审计。 |
| FR-MOD-257 | <a id="at-fr-mod-257"></a>AT-FR-MOD-257 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.update.fr_mod_257`；`PATCH /api/v2/model-services/{service_id}`；200；保存新修订或草稿差异 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-257-01；前置：目标服务、候选版本、稳定版本和可用回滚版本存在；操作者具有发布策略配置权限；策略仍为草稿。 | 1)读取前值和可执行动作；2)按“为同一服务配置蓝环境、绿环境、实例规格、健康检查、流量入口和切换条件。”执行“配置蓝绿发布环境”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“两套环境必须可独立验证；资源不足、版本不兼容或健康检查缺失时禁止切换。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“仅生成发布策略草稿新修订；不创建发布执行、不部署实例、不改变路由或实际流量。”；重复请求不新增对象或副作用 | 比例越界、资源不足、版本不兼容、健康规则缺失或修订冲突时拒绝保存并定位字段。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 策略草稿、字段差异、版本与容量校验、修订号、实际路由未变化证据和审计。 |
| FR-MOD-258 | <a id="at-fr-mod-258"></a>AT-FR-MOD-258 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.execute.fr_mod_258`；`POST /api/v2/model-services/{service_id}/tasks`；202；创建执行任务和输入快照 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-258-01；前置：发布审批快照有效；目标版本、实例规格、健康规则、流量策略和回滚版本已固定；执行人职责校验通过。 | 1)读取前值和可执行动作；2)按“完成绿环境部署与验证后执行入口流量从蓝环境切换到绿环境，记录切换前后版本、路由和实例状态。”执行“执行蓝绿流量切换”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“切换支持预览、确认和失败中止；切换失败保持原稳定环境承接流量。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“发布执行、实例、健康、流量策略和业务服务分别迁移；允许部分成功、暂停、回滚中、回滚失败和未知，不用单一已发布覆盖。”；重复请求不新增对象或副作用 | 实例部分失败、健康不达标、网关写入失败或指标越界时停止扩大；保持或恢复最后稳定路由，孤儿实例进入待清理并告警。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 发布执行编号、实例时间线、健康证据、切流前后路由、指标窗口、回滚快照、补偿结果和审计记录。 |
| FR-MOD-259 | <a id="at-fr-mod-259"></a>AT-FR-MOD-259 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.read.fr_mod_259`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有服务、发布记录、实例和监控指标的读取权限；目标服务编号存在。 | 1)记录对象版本和状态；2)执行“查看发布策略执行结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“结果只读且可关联告警、日志和回滚记录；异常状态必须展示失败原因。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 网关、监控或实例数据缺失时分别显示未知和最后更新时间，不合并成发布成功。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 服务编号、发布及实例快照、健康结果、路由权重、指标窗口、更新时间和权限判定。 |
| FR-MOD-260 | <a id="at-fr-mod-260"></a>AT-FR-MOD-260 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.execute.fr_mod_260`；`POST /api/v2/model-services/{service_id}/tasks`；202；创建执行任务和输入快照 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-260-01；前置：当前发布异常或需人工回退；目标稳定版本、实例规格、入口路由、流量权重和健康规则快照有效；执行职责与二次确认通过。 | 1)读取前值和可执行动作；2)按“从当前发布详情选择目标稳定版本，执行实例、服务路由和流量配置的一键回滚。”执行“一键回滚发布”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“回滚前校验目标版本、资源和权限；回滚过程可观测，失败时不得伪造成功状态。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“发布执行进入回滚中→已回滚/回滚失败/未知；实例、健康、流量和业务服务独立迁移，原发布历史不改写。”；重复请求不新增对象或副作用 | 目标版本不可用、实例部分失败或网关写入失败时保持最后确认稳定路由；新增孤儿实例隔离待清理，不得显示回滚成功。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 回滚执行编号、目标快照、实例时间线、健康证据、路由实值、业务验证、补偿结果和审计。 |
| FR-MOD-261 | <a id="at-fr-mod-261"></a>AT-FR-MOD-261 | 服务详情 / 主页面：服务详情｜区域：灰度与蓝绿发布｜载体：页面区块或操作 | `v2.service.read.fr_mod_261`；`GET /api/v2/model-services/{service_id}`；200；只读响应，不改变revision/state_version | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有服务、发布记录、实例和监控指标的读取权限；目标服务编号存在。 | 1)记录对象版本和状态；2)执行“查看回滚对象与路由恢复结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“保留回滚前后快照、原因、操作者和时间；结果写入生命周期与操作审计。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 网关、监控或实例数据缺失时分别显示未知和最后更新时间，不合并成发布成功。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 服务编号、发布及实例快照、健康结果、路由权重、指标窗口、更新时间和权限判定。 |
| FR-MOD-262 | <a id="at-fr-mod-262"></a>AT-FR-MOD-262 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.update.fr_mod_262`；`PATCH /api/v2/model-services/{service_id}`；200；保存新修订或草稿差异 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-262-01；前置：模型运营人员具有模型服务、实例与流量策略创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置实例权重、健康检查、最小/最大实例数和故障摘除规则，查看当前分配状态。”执行“配置负载均衡策略”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“策略变更须校验资源配额和实例健康；无可用实例时返回明确告警。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略遵循“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-263 | <a id="at-fr-mod-263"></a>AT-FR-MOD-263 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.update.fr_mod_263`；`PATCH /api/v2/model-services/{service_id}`；200；保存新修订或草稿差异 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-263-01；前置：模型运营人员具有模型服务、实例与流量策略创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“按模型版本、调用方、工厂/产线/设备或时间段配置流量比例、路由条件和优先级。”执行“配置流量控制与路由比例”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“路由规则互斥性、比例总和和授权范围由后端校验；冲突时禁止生效。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略遵循“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-264 | <a id="at-fr-mod-264"></a>AT-FR-MOD-264 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.operate.fr_mod_264`；`POST /api/v2/model-services/{service_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-264-01；前置：模型运营人员具有模型服务、实例与流量策略创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在发布或监控页面调整稳定版、灰度版、蓝绿环境之间的实时流量比例，展示变更前后值。”执行“调整服务流量比例”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“调整需二次确认和权限校验；调整结果可回退并写入变更记录。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略遵循“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-265 | <a id="at-fr-mod-265"></a>AT-FR-MOD-265 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.update.fr_mod_265`；`PATCH /api/v2/model-services/{service_id}`；200；保存新修订或草稿差异 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-265-01；前置：模型运营人员具有模型服务、实例与流量策略创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置服务启动、停止、恢复的日期、时间、时区、重复规则和有效期。”执行“配置定时启停计划”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“计划触发时重新校验版本、资源、依赖和当前服务状态；计划冲突时提示并阻止保存。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略遵循“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-266 | <a id="at-fr-mod-266"></a>AT-FR-MOD-266 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.execute.fr_mod_266`；`POST /api/v2/model-services/{service_id}/tasks`；202；创建执行任务和输入快照 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-266-01；前置：模型服务、实例与流量策略的输入、配置、引用版本和执行门禁已通过；模型运营人员具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“按计划自动启动、停止或恢复服务，展示计划编号、执行状态、实际时间、实例和失败原因。”执行“执行定时启停”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“重复执行具备幂等性；执行失败保留原服务状态并触发告警。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略生命周期为“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-MOD-267 | <a id="at-fr-mod-267"></a>AT-FR-MOD-267 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.update.fr_mod_267`；`PATCH /api/v2/model-services/{service_id}`；200；保存新修订或草稿差异 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-267-01；前置：模型运营人员具有模型服务、实例与流量策略创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置云端、边缘节点、工厂/产线/设备范围、优先级、数据路径和可用模型版本。”执行“配置边云协同调度目标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅可选择已授权且健康的节点；目标版本、输入输出和硬件架构必须兼容。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略遵循“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-268 | <a id="at-fr-mod-268"></a>AT-FR-MOD-268 | 服务详情 / 主页面：服务详情｜区域：调度策略与定时控制｜载体：页面区块或操作 | `v2.service.execute.fr_mod_268`；`POST /api/v2/model-services/{service_id}/tasks`；202；创建执行任务和输入快照 | service_id=SVC-T001；actor=U-SERVICE-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-268-01；前置：模型服务、实例与流量策略的输入、配置、引用版本和执行门禁已通过；模型运营人员具有启动权限；资源、环境或外部依赖状态可确认。 | 1)读取前值和可执行动作；2)按“按策略将服务部署或流量调度到云端或边缘节点，节点异常时切换到可用目标并记录过程。”执行“执行边云协同调度与故障切换”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“切换前执行健康、资源和网络检查；切换失败保留原路由并生成告警和追溯记录。 使用同一服务编号关联部署、权重版本、API和监控；展示状态不创建另一套服务记录。”；状态遵循“模型服务、实例与流量策略生命周期为“服务未开放→开放→暂停→关闭；实例、健康、流量、告警分别维护”；执行状态、业务结论、产物完整性及下游登记状态分别维护，重试新建关联任务。”；重复请求不新增对象或副作用 | 资源未就绪、执行端失联、回调乱序、超时、部分成功或产物缺失时不得记为完整成功；可重试项按失败分类补偿，不可重试项转人工处理。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 执行任务号、服务编号、发布版本、实例、健康、路由版本、期望权重、实际权重、告警、调度目标、状态时间线、日志、心跳、产物摘要、回调记录、补偿结果和审计事件。 |
| FR-MOD-198 | <a id="at-fr-mod-198"></a>AT-FR-MOD-198 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：模型效果监控｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_198`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选模型效果监控”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验模型效果监控；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-199 | <a id="at-fr-mod-199"></a>AT-FR-MOD-199 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：模型效果监控｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_199`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查询模型效果监控”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-200 | <a id="at-fr-mod-200"></a>AT-FR-MOD-200 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：模型效果监控｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_200`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置模型效果监控筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-201 | <a id="at-fr-mod-201"></a>AT-FR-MOD-201 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：模型效果监控｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_201`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“刷新模型效果监控列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-202 | <a id="at-fr-mod-202"></a>AT-FR-MOD-202 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：模型效果监控｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_202`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型效果监控列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-203 | <a id="at-fr-mod-203"></a>AT-FR-MOD-203 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：模型效果监控｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_203`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“模型效果监控详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-204 | <a id="at-fr-mod-204"></a>AT-FR-MOD-204 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移与异常样例｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_204`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型效果监控概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验模型效果监控状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-205 | <a id="at-fr-mod-205"></a>AT-FR-MOD-205 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移与异常样例｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_205`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“效果漂移与异常样例详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-206 | <a id="at-fr-mod-206"></a>AT-FR-MOD-206 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移与异常样例｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_206`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型效果监控关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-207 | <a id="at-fr-mod-207"></a>AT-FR-MOD-207 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移与异常样例｜载体：页面区块 | `v2.model-monitoring.operate.fr_mod_207`；`POST /api/v2/model-monitoring/{monitoring_rule_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-207-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“标记效果漂移样例”功能，展示调用成功率、延迟、错误率和效果漂移分析；确认需要优化时生成关联算法开发或重新评测入口，不直接修改线上版本。并记录异常样例对应的数据集版本、样本批…”执行“标记效果漂移样例”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-208 | <a id="at-fr-mod-208"></a>AT-FR-MOD-208 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移与异常样例｜载体：页面区块 | `v2.model-monitoring.operate.fr_mod_208`；`POST /api/v2/model-monitoring/{monitoring_rule_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-208-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“发起模型效果复核”功能，展示调用成功率、延迟、错误率和效果漂移分析；确认需要优化时生成关联算法开发或重新评测入口，不直接修改线上版本。”执行“发起模型效果复核”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-241 | <a id="at-fr-mod-241"></a>AT-FR-MOD-241 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.update.fr_mod_241`；`PATCH /api/v2/model-monitoring/{monitoring_rule_id}`；200；保存新修订或草稿差异 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-241-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“在服务监控中配置基线数据版本、特征分布指标、计算窗口、采样比例和漂移阈值。”执行“配置数据漂移监测指标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅允许有模型监控权限的用户配置；基线、窗口和指标缺失时禁止启用，配置变更写入审计。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-242 | <a id="at-fr-mod-242"></a>AT-FR-MOD-242 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_242`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看数据漂移趋势”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“仅展示授权范围内数据；数据不足时显示样本量和不可判定原因，不生成虚假趋势。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-243 | <a id="at-fr-mod-243"></a>AT-FR-MOD-243 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.update.fr_mod_243`；`PATCH /api/v2/model-monitoring/{monitoring_rule_id}`；200；保存新修订或草稿差异 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-243-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“配置准确率、召回率及工业业务指标的基线、计算口径、评估窗口、阈值和告警级别。”执行“配置精度衰减监测指标”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“指标定义须关联可追溯的真实业务反馈或标注数据；口径变更形成新配置版本。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-244 | <a id="at-fr-mod-244"></a>AT-FR-MOD-244 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_244`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看准确率、召回率与业务指标趋势”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“指标缺失或样本不足时标记未上报/不可判定；运行可用性与业务效果分开展示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-245 | <a id="at-fr-mod-245"></a>AT-FR-MOD-245 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.update.fr_mod_245`；`PATCH /api/v2/model-monitoring/{monitoring_rule_id}`；200；保存新修订或草稿差异 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-245-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“设置数据漂移、精度衰减、业务指标异常的触发阈值、持续次数、通知方式和接收范围。”执行“配置效果阈值告警规则”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“规则保存前校验阈值方向、持续次数和通知范围；告警去重并保留规则版本。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-246 | <a id="at-fr-mod-246"></a>AT-FR-MOD-246 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_246`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看效果监控告警”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“告警记录只读，确认、关闭和升级均写入操作审计；无权限对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-247 | <a id="at-fr-mod-247"></a>AT-FR-MOD-247 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_247`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“检索效果异常日志与样例”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“敏感输入按权限脱敏；日志、样例和告警之间保留关联编号，查询失败提示具体原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-248 | <a id="at-fr-mod-248"></a>AT-FR-MOD-248 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：效果漂移监测与告警｜载体：页面区块 | `v2.model-monitoring.link.fr_mod_248`；`PUT /api/v2/model-monitoring/{monitoring_rule_id}/relations/{relation_type}`；200；写关联记录和审计，不启动关联对象 | monitoring_rule_id=MON-T001；target_id=TARGET-001；relation_type=related；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-248-01；前置：用户具有模型效果监控与重训练触发关联权限和两端对象读取范围；源对象与目标对象版本有效，关系类型允许且未存在同一有效关系。 | 1)读取两端对象版本和可关联状态；2)执行“关联异常样例至优化入口”；3)核对关系编号、两端固定版本和审计；4)重复关系、越权目标和过期revision复测 | 关系记录含monitoring_rule_id、target_id、relation_type、source_revision、target_revision、effective_state和request_id | 仅关系记录新增/修订；目标对象状态和执行状态不变；重复请求不产生第二条有效关系 | 对象越权、版本失效、关系重复、形成非法环或并发修订冲突时拒绝；不产生半条关系。；越权返回AUTHZ_403；并发修订返回STATE_409 | 关系编号、monitoring_rule_id、目标对象、固定版本、关系状态、目标对象状态未变化证据和审计。 |
| FR-MOD-249 | <a id="at-fr-mod-249"></a>AT-FR-MOD-249 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：自动迭代与重训练｜载体：页面区块 | `v2.model-monitoring.update.fr_mod_249`；`PATCH /api/v2/model-monitoring/{monitoring_rule_id}`；200；保存新修订或草稿差异 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-249-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“按数据漂移、准确率、召回率或业务指标阈值配置触发条件、数据窗口、目标算法版本、资源规格和通知对象。”执行“配置自动重训练触发策略”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“策略必须绑定可用数据、算法和资源；未完成评测的模型不得作为自动发布目标。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-250 | <a id="at-fr-mod-250"></a>AT-FR-MOD-250 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：自动迭代与重训练｜载体：页面区块 | `v2.model-monitoring.transition.fr_mod_250`；`POST /api/v2/model-monitoring/{monitoring_rule_id}/actions/{action}`；200/202；迁移状态并写审计 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-250-01；前置：模型负责人具有“启用或停用自动重训练”动作权限；模型效果监控与重训练触发处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“查看策略状态并执行启用、停用和重新启用，展示生效时间、最近触发和最近结果。”执行“启用或停用自动重训练”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅策略负责人或授权管理员可操作；停用不删除历史触发记录。”；状态遵循“只允许“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MOD-251 | <a id="at-fr-mod-251"></a>AT-FR-MOD-251 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：自动迭代与重训练｜载体：页面区块 | `v2.model-monitoring.operate.fr_mod_251`；`POST /api/v2/model-monitoring/{monitoring_rule_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-251-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“当漂移或效果指标连续达到触发条件时自动创建重训练任务，关联触发告警、数据窗口、算法版本和资源申请。”执行“自动触发重训练任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“后台再次校验权限、数据、环境和资源；创建失败记录原因并不改变线上稳定版本。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-252 | <a id="at-fr-mod-252"></a>AT-FR-MOD-252 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：自动迭代与重训练｜载体：页面区块 | `v2.model-monitoring.operate.fr_mod_252`；`POST /api/v2/model-monitoring/{monitoring_rule_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-252-01；前置：模型负责人具有模型效果监控与重训练触发创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“展示触发去重键、冷却时间、并发上限和当前执行状态，避免同一模型在同一窗口重复创建任务。”执行“防重复触发与冷却控制”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“同一策略和窗口只允许一个有效任务；冷却期内的新告警只累加证据并提示已存在任务。”；状态遵循“模型效果监控与重训练触发遵循“正常→观察→预警→告警→复核中→已恢复/已触发迭代/已关闭”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MOD-253 | <a id="at-fr-mod-253"></a>AT-FR-MOD-253 | 模型效果与漂移 / 主页面：模型效果与漂移｜区域：自动迭代与重训练｜载体：页面区块 | `v2.model-monitoring.read.fr_mod_253`；`GET /api/v2/model-monitoring/{monitoring_rule_id}`；200；只读响应，不改变revision/state_version | monitoring_rule_id=MON-T001；actor=U-MODEL-MONITORING-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型效果监控与重训练触发读取权限和对象数据范围；目标monitoring_rule_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看自动重训练关联链路”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“链路记录只读且按权限过滤；任何阶段失败均保留原始记录和下一步处理入口。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | monitoring_rule_id、查询请求号、模型版本、指标、统计窗口、基线、当前值、漂移量、阈值、异常样例、冷却期、触发任务、权限判定、数据时间、分页结果和审计记录。 |
| FR-MOD-215 | <a id="at-fr-mod-215"></a>AT-FR-MOD-215 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈列表与详情｜载体：页面区块 | `v2.feedback.read.fr_mod_215`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“筛选模型反馈”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户模块权限校验模型反馈；未授权对象不得出现在结果中。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-216 | <a id="at-fr-mod-216"></a>AT-FR-MOD-216 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈列表与详情｜载体：页面区块 | `v2.feedback.read.fr_mod_216`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查询模型反馈”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“查询失败时保留已输入条件并提示原因；刷新不改变当前筛选条件。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-217 | <a id="at-fr-mod-217"></a>AT-FR-MOD-217 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈列表与详情｜载体：页面区块 | `v2.feedback.read.fr_mod_217`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“重置模型反馈筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“重置后自动刷新列表；按模块权限刷新业务列表。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-218 | <a id="at-fr-mod-218"></a>AT-FR-MOD-218 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈列表与详情｜载体：页面区块 | `v2.feedback.read.fr_mod_218`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“刷新模型反馈列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“刷新失败时保留当前页面数据并提示失败原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-219 | <a id="at-fr-mod-219"></a>AT-FR-MOD-219 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈列表与详情｜载体：页面区块 | `v2.feedback.read.fr_mod_219`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型反馈列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持分页、排序和从结果行进入详情；长文本可查看完整内容，空结果与加载失败分别提示。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-220 | <a id="at-fr-mod-220"></a>AT-FR-MOD-220 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈列表与详情｜载体：页面区块 | `v2.feedback.read.fr_mod_220`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“反馈详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“详情入口受对应模块权限控制；对象已失效时展示历史状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-221 | <a id="at-fr-mod-221"></a>AT-FR-MOD-221 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.read.fr_mod_221`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型反馈概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验模型反馈状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-222 | <a id="at-fr-mod-222"></a>AT-FR-MOD-222 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.read.fr_mod_222`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“回复采纳与优化关联详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-223 | <a id="at-fr-mod-223"></a>AT-FR-MOD-223 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.read.fr_mod_223`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型反馈关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-224 | <a id="at-fr-mod-224"></a>AT-FR-MOD-224 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.operate.fr_mod_224`；`POST /api/v2/feedback/{feedback_id}/replies`；201；创建回复修订和通知，不改变采纳状态 | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-224-01；前置：反馈存在且处于可回复状态；操作者具有反馈回复权限；回复可见范围和通知对象已确定。 | 1)读取前值和可执行动作；2)按“填写对用户可见的回复内容、处理说明和可见范围，保存反馈回复并通知提交人；本动作不改变采纳结论。”执行“回复用户反馈”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“反馈关闭后不可新增回复；通知失败不回滚已保存回复，反馈采纳、关联优化和关闭分别使用独立动作。”；状态遵循“仅更新反馈沟通记录和最后回复时间；反馈处理状态保持原值，除非另行执行明确的受理或关闭动作。”；重复请求不新增对象或副作用 | 反馈已关闭、对象越权、正文为空或并发修订冲突时拒绝保存；通知失败进入待补发，不回滚已保存回复。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 反馈编号、回复修订、处理状态前后值、通知回执、权限判定和审计。 |
| FR-MOD-225 | <a id="at-fr-mod-225"></a>AT-FR-MOD-225 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.transition.fr_mod_225`；`POST /api/v2/feedback/{feedback_id}/actions/adopt`；200；记录采纳结论，不自动创建回流或优化任务 | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-225-01；前置：反馈处于待受理或分析中；来源调用与模型版本可核验；操作者具有反馈采纳权限并填写采纳原因和处理路线。 | 1)读取前值和可执行动作；2)按“对待受理或分析中的反馈记录采纳结论、原因、优先级和拟处理路线；采纳不自动创建回流批次或优化任务。”执行“采纳用户反馈”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“采纳前校验来源调用、模型版本、重复反馈和动作权限；采纳记录不可覆盖，后续处理另行发起。”；状态遵循“反馈由待受理/分析中进入已采纳；回流批次、优化任务、数据版本和模型版本均保持未创建或原状态。”；重复请求不新增对象或副作用 | 来源不可核验、反馈重复、权限不足或并发状态变化时拒绝采纳；重复请求返回首次采纳记录。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 反馈编号、来源调用、模型版本、采纳记录、前后状态、处理路线和审计。 |
| FR-MOD-226 | <a id="at-fr-mod-226"></a>AT-FR-MOD-226 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.link.fr_mod_226`；`PUT /api/v2/feedback/{feedback_id}/relations/{relation_type}`；200；写关联记录和审计，不启动关联对象 | feedback_id=FB-T001；target_id=TARGET-001；relation_type=related；actor=U-FEEDBACK-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-226-01；前置：用户具有反馈与模型优化任务关联权限和两端对象读取范围；源对象与目标对象版本有效，关系类型允许且未存在同一有效关系。 | 1)读取两端对象版本和可关联状态；2)执行“关联模型优化任务”；3)核对关系编号、两端固定版本和审计；4)重复关系、越权目标和过期revision复测 | 关系记录含feedback_id、target_id、relation_type、source_revision、target_revision、effective_state和request_id | 仅关系记录新增/修订；目标对象状态和执行状态不变；重复请求不产生第二条有效关系 | 对象越权、版本失效、关系重复、形成非法环或并发修订冲突时拒绝；不产生半条关系。；越权返回AUTHZ_403；并发修订返回STATE_409 | 关系编号、feedback_id、目标对象、固定版本、关系状态、目标对象状态未变化证据和审计。 |
| FR-MOD-227 | <a id="at-fr-mod-227"></a>AT-FR-MOD-227 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.read.fr_mod_227`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型优化任务概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验模型优化任务状态和关联对象，异常时保留原数据并提示处理原因。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-228 | <a id="at-fr-mod-228"></a>AT-FR-MOD-228 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.read.fr_mod_228`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型优化任务详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-229 | <a id="at-fr-mod-229"></a>AT-FR-MOD-229 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.read.fr_mod_229`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型优化任务关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-230 | <a id="at-fr-mod-230"></a>AT-FR-MOD-230 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：反馈处理与优化跟踪｜载体：页面区块 | `v2.feedback.execute.fr_mod_230`；`POST /api/v2/feedback/{feedback_id}/optimization-tasks`；201；创建优化任务草稿，不启动训练或发布 | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-230-01；前置：反馈已采纳且尚未绑定有效优化任务；原模型版本、目标、负责人和允许进入的研发/训练入口有效。 | 1)读取前值和可执行动作；2)按“根据已采纳反馈创建模型优化任务，关联原模型版本、目标、负责人和研发或训练入口；不直接启动训练、评测或发布。”执行“提交模型优化任务”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“同一反馈同一目标只允许一个有效优化任务；原模型、线上服务和历史反馈不可覆盖。”；状态遵循“优化任务进入草稿/待开始，反馈进入优化中；原模型版本、线上服务和历史反馈记录不变。”；重复请求不新增对象或副作用 | 反馈未采纳、已有有效任务、负责人失效或来源版本不可用时拒绝创建；同幂等键返回原优化任务。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 反馈采纳记录、优化任务编号、原模型版本、目标与负责人、前后状态和审计。 |
| FR-MOD-231 | <a id="at-fr-mod-231"></a>AT-FR-MOD-231 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：优化结果回填与关闭｜载体：页面区块 | `v2.feedback.transition.fr_mod_231`；`POST /api/v2/feedback/{feedback_id}/actions/{action}`；200/202；迁移状态并写审计 | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-231-01；前置：模型优化任务已有可核验终态，关联的新数据、算法、训练、评测、业务确认或模型版本存在；操作者具有结果回填权限。 | 1)读取前值和可执行动作；2)按“通过“回填模型优化结果”功能，显示模型优化任务当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“回填模型优化结果”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；模型优化任务的关键状态变化必须写入操作审计。”；状态遵循“优化任务由待验证进入完成或退回优化；关联反馈进入待关闭或继续优化，原模型和历史任务状态不覆盖。”；重复请求不新增对象或副作用 | 产物缺失、验证未完成、版本来源不一致或效果未达标时不得标记完成；保存失败保留输入并不改变原状态。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 优化任务终态、新旧版本对比、训练评测与业务确认引用、结果摘要、前后状态和审计。 |
| FR-MOD-232 | <a id="at-fr-mod-232"></a>AT-FR-MOD-232 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：优化结果回填与关闭｜载体：页面区块 | `v2.feedback.transition.fr_mod_232`；`POST /api/v2/feedback/{feedback_id}/actions/{action}`；200/202；迁移状态并写审计 | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；幂等键=IDEM-FR-MOD-232-01；前置：反馈已完成采纳或拒绝处理；已采纳反馈必须有关联优化结果和业务验证结论；操作者具有反馈关闭权限。 | 1)读取前值和可执行动作；2)按“通过“关闭用户反馈”功能，显示模型优化任务当前状态、关联版本、资源占用和状态变更前置条件，仅在当前状态允许时启用对应按钮。”执行“关闭用户反馈”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“前置条件不满足时禁用按钮并说明原因；模型优化任务的关键状态变化必须写入操作审计。”；状态遵循“反馈由待验证或已拒绝进入已关闭；验证未通过的已采纳反馈保持优化中/待验证，不允许关闭。”；重复请求不新增对象或副作用 | 缺少优化结果、业务验证失败、关联版本失效或并发状态变化时拒绝关闭；通知失败不回滚关闭事实但进入待补发。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 反馈编号、优化结果、验证结论、关闭说明、前后状态、通知回执和审计。 |
| FR-MOD-233 | <a id="at-fr-mod-233"></a>AT-FR-MOD-233 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：优化结果回填与关闭｜载体：页面区块 | `v2.feedback.read.fr_mod_233`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看优化结果回填与关闭处理结果”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“读取处理结果及影响对象；读取失败保留当前展示并提示刷新，不自动重新执行操作。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MOD-234 | <a id="at-fr-mod-234"></a>AT-FR-MOD-234 | 模型反馈与迭代 / 主页面：模型反馈与迭代｜区域：优化结果回填与关闭｜载体：页面区块 | `v2.feedback.read.fr_mod_234`；`GET /api/v2/feedback/{feedback_id}`；200；只读响应，不改变revision/state_version | feedback_id=FB-T001；actor=U-FEEDBACK-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看优化结果回填与关闭操作记录”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“记录只读并按权限查看，保留操作人、时间、原因、前后状态和关联对象。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-013 | <a id="at-fr-mkt-013"></a>AT-FR-MKT-013 | 模型列表 / 主页面：模型列表｜区域：主工作区｜载体：页面 | `v2.marketplace.read.fr_mkt_013`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“排序与收藏概览展示”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验模型状态和关联对象，异常时保留原数据并提示处理原因。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-014 | <a id="at-fr-mkt-014"></a>AT-FR-MKT-014 | 模型列表 / 主页面：模型列表｜区域：主工作区｜载体：页面 | `v2.marketplace.read.fr_mkt_014`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“排序与收藏详情查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-015 | <a id="at-fr-mkt-015"></a>AT-FR-MKT-015 | 模型列表 / 主页面：模型列表｜区域：主工作区｜载体：页面 | `v2.marketplace.read.fr_mkt_015`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“排序与收藏关联对象查看”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-016 | <a id="at-fr-mkt-016"></a>AT-FR-MKT-016 | 模型列表 / 主页面：模型列表｜区域：主工作区｜载体：页面 | `v2.marketplace.transition.fr_mkt_016`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；迁移状态并写审计 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-016-01；前置：业务用户具有“切换模型排序”动作权限；模型广场投影、收藏、评价与反馈处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“切换模型排序”功能，模型广场仅提供已发布模型的查看、下载、API调用入口、在线测试、收藏、评价和反馈；不提供模型编辑、发布或下线。”执行“切换模型排序”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“只允许“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MKT-017 | <a id="at-fr-mkt-017"></a>AT-FR-MKT-017 | 模型列表 / 主页面：模型列表｜区域：主工作区｜载体：页面 | `v2.marketplace.transition.fr_mkt_017`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；迁移状态并写审计 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-017-01；前置：业务用户具有“收藏模型”动作权限；模型广场投影、收藏、评价与反馈处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“收藏模型”功能，模型广场仅提供已发布模型的查看、下载、API调用入口、在线测试、收藏、评价和反馈；不提供模型编辑、发布或下线。”执行“收藏模型”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“只允许“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MKT-018 | <a id="at-fr-mkt-018"></a>AT-FR-MKT-018 | 模型列表 / 主页面：模型列表｜区域：主工作区｜载体：页面 | `v2.marketplace.transition.fr_mkt_018`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；迁移状态并写审计 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-018-01；前置：业务用户具有“取消收藏模型”动作权限；模型广场投影、收藏、评价与反馈处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“取消收藏模型”功能，模型广场仅提供已发布模型的查看、下载、API调用入口、在线测试、收藏、评价和反馈；不提供模型编辑、发布或下线。”执行“取消收藏模型”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“只允许“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MKT-028 | <a id="at-fr-mkt-028"></a>AT-FR-MKT-028 | 模型列表 / 主页面：模型列表｜区域：评测与业务达标Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_028`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型业务达标信息”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“内容来自评测报告和业务确认记录，模型广场不可编辑。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-055 | <a id="at-fr-mkt-055"></a>AT-FR-MKT-055 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_055`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型评价概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验模型评价状态和关联对象，异常时保留原数据并提示处理原因。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-056 | <a id="at-fr-mkt-056"></a>AT-FR-MKT-056 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_056`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型评价详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-057 | <a id="at-fr-mkt-057"></a>AT-FR-MKT-057 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_057`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看模型评价关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-058 | <a id="at-fr-mkt-058"></a>AT-FR-MKT-058 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.transition.fr_mkt_058`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；迁移状态并写审计 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-058-01；前置：业务用户具有“提交模型评分”动作权限；模型广场投影、收藏、评价与反馈处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“提交模型评分”功能，提交评分和评价内容并返回评价编号；评价仅影响广场展示和反馈记录，不改变模型版本。”执行“提交模型评分”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“只允许“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MKT-059 | <a id="at-fr-mkt-059"></a>AT-FR-MKT-059 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.transition.fr_mkt_059`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；迁移状态并写审计 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-059-01；前置：业务用户具有“提交模型评价”动作权限；模型广场投影、收藏、评价与反馈处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“通过“提交模型评价”功能，提交评分和评价内容并返回评价编号；评价仅影响广场展示和反馈记录，不改变模型版本。”执行“提交模型评价”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“只允许“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-MKT-060 | <a id="at-fr-mkt-060"></a>AT-FR-MKT-060 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.operate.fr_mkt_060`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；执行业务动作并返回逐项结果 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-060-01；前置：业务用户具有模型广场投影、收藏、评价与反馈创建或编辑权限；目标处于可编辑状态；引用对象、字段契约和revision有效。 | 1)读取前值和可执行动作；2)按“通过“修改本人评价”功能，提交评分和评价内容并返回评价编号；评价仅影响广场展示和反馈记录，不改变模型版本。”执行“修改本人评价”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“模型广场投影、收藏、评价与反馈遵循“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”；草稿可修订，已冻结、已发布或被执行引用的快照不可原地覆盖。”；重复请求不新增对象或副作用 | 必填、格式、唯一性、权限、兼容性或并发修订失败时保留用户输入并定位字段；保存失败不产生正式半对象。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 表单快照、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、字段断言、对象编号、修订号、差异摘要、幂等结果和审计记录。 |
| FR-MKT-061 | <a id="at-fr-mkt-061"></a>AT-FR-MKT-061 | 模型列表 / 主页面：模型列表｜区域：提交模型反馈｜载体：页面区块 | `v2.marketplace.read.fr_mkt_061`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型反馈概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验模型反馈状态和关联对象，异常时保留原数据并提示处理原因。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-062 | <a id="at-fr-mkt-062"></a>AT-FR-MKT-062 | 模型列表 / 主页面：模型列表｜区域：提交模型反馈｜载体：页面区块 | `v2.marketplace.read.fr_mkt_062`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型反馈详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-063 | <a id="at-fr-mkt-063"></a>AT-FR-MKT-063 | 模型列表 / 主页面：模型列表｜区域：提交模型反馈｜载体：页面区块 | `v2.marketplace.read.fr_mkt_063`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看模型反馈关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-064 | <a id="at-fr-mkt-064"></a>AT-FR-MKT-064 | 模型列表 / 主页面：模型列表｜区域：提交模型反馈｜载体：页面区块 | `v2.feedback.create.fr_mkt_064`；`POST /api/v2/feedback`；201；创建问题反馈，不改变模型广场投影 | feedback_id=未生成；业务唯一键=UK-FR-MKT-064-01；actor=U-FEEDBACK-01；revision=0；state_version=0；幂等键=IDEM-FR-MKT-064-01；前置：用户具有目标发布模型的访问权限；模型投影有效；问题描述、类型、严重程度和必要的调用引用已填写。 | 1)确认业务唯一键未占用及默认值；2)按“提交模型问题类型、问题描述、严重程度和可选调用记录，创建问题反馈并返回反馈编号。”执行“提交模型问题反馈”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅对当前用户可访问的有效发布模型提交；反馈进入模型管理待受理，不创建回流、训练或模型版本。”；状态遵循“新反馈进入待受理；模型广场投影、线上服务和模型版本状态均不改变。”；重复请求不新增对象或副作用 | 模型已下线、对象越权、描述为空或调用引用不属于当前用户时拒绝；重复请求返回原反馈。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 反馈创建请求、反馈编号、模型版本、调用引用、初始状态、权限判定和审计。 |
| FR-MKT-065 | <a id="at-fr-mkt-065"></a>AT-FR-MKT-065 | 模型列表 / 主页面：模型列表｜区域：提交模型反馈｜载体：页面区块 | `v2.feedback.create.fr_mkt_065`；`POST /api/v2/feedback`；201；创建建议反馈，不自动采纳或创建优化任务 | feedback_id=未生成；业务唯一键=UK-FR-MKT-065-01；actor=U-FEEDBACK-01；revision=0；state_version=0；幂等键=IDEM-FR-MKT-065-01；前置：用户具有目标发布模型的访问权限；模型投影有效；优化建议、适用场景和预期改进已填写。 | 1)确认业务唯一键未占用及默认值；2)按“提交模型优化建议、适用场景和预期改进，创建建议反馈并返回反馈编号。”执行“提交模型优化建议”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对反馈编号、调用来源、模型版本、处理路线、优化任务、验证结论、关闭说明、来源链；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“仅对当前用户可访问的有效发布模型提交；建议保持待受理，不自动采纳或创建优化任务。”；状态遵循“新反馈进入待受理；模型、服务、回流批次和优化任务状态均不改变。”；重复请求不新增对象或副作用 | 模型已下线、对象越权、建议为空或重复提交冲突时拒绝；同幂等键返回原反馈。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 建议创建请求、反馈编号、模型版本、初始状态、权限判定和审计。 |
| FR-MKT-066 | <a id="at-fr-mkt-066"></a>AT-FR-MKT-066 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_066`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看我的模型反馈概览”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“按当前用户权限展示；操作前校验我的模型反馈状态和关联对象，异常时保留原数据并提示处理原因。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-067 | <a id="at-fr-mkt-067"></a>AT-FR-MKT-067 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_067`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看我的模型反馈详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“支持折叠、复制编号和进入关联对象；按钮是否可用由对象状态决定。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-068 | <a id="at-fr-mkt-068"></a>AT-FR-MKT-068 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_068`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有反馈、调用记录和关联模型版本的读取权限；敏感样本访问范围已确定。 | 1)记录对象版本和状态；2)执行“查看我的模型反馈关联关系”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“只显示当前用户有权限访问的关联对象；关联不存在时显示明确空状态。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 原始样本不可访问、已过保留期或链路缺失时显示不可用原因，不返回未脱敏内容。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | 反馈编号、调用请求号、模型版本、回流批次、脱敏结果、去重结果、数据版本和迭代链路。 |
| FR-MKT-069 | <a id="at-fr-mkt-069"></a>AT-FR-MKT-069 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.read.fr_mkt_069`；`GET /api/v2/marketplace/{market_item_id}`；200；只读响应，不改变revision/state_version | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有模型广场投影、收藏、评价与反馈读取权限和对象数据范围；目标market_item_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看本人反馈详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“操作前校验权限和状态，操作结果写入操作记录。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | market_item_id、查询请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限判定、数据时间、分页结果和审计记录。 |
| FR-MKT-070 | <a id="at-fr-mkt-070"></a>AT-FR-MKT-070 | 模型列表 / 主页面：模型列表｜区域：评价与反馈Tab｜载体：Tab | `v2.marketplace.transition.fr_mkt_070`；`POST /api/v2/marketplace/{market_item_id}/actions/{action}`；200/202；迁移状态并写审计 | market_item_id=MKT-T001；actor=U-MARKETPLACE-01；revision=3；state_version=5；幂等键=IDEM-FR-MKT-070-01；前置：业务用户具有“撤回未处理反馈”动作权限；模型广场投影、收藏、评价与反馈处于允许状态；revision/state_version、影响范围和必需原因完整。 | 1)读取前值和可执行动作；2)按“撤回本人提交且尚未处理的反馈，记录原因及时间。”执行“撤回未处理反馈”；3)以同幂等键重复；4)改用无权限账号和过期state_version复测 | 逐项核对发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“已受理或已关闭反馈不能撤回；状态同步模型管理，保留历史。 只读取模型管理已发布记录；下线后停止新增下载或调用，广场不更改发布状态。”；状态遵循“只允许“投影可见/已下线；收藏未收藏→已收藏；反馈待处理→已受理→已关闭/已撤回”中定义的迁移；正式记录不覆盖，复制、重试、恢复和派生均生成新记录并保留来源。”；重复请求不新增对象或副作用 | 非法状态、职责冲突、并发修订、依赖阻断或部分写入失败时拒绝或进入明确补偿状态；成功事实不得因通知失败回滚。；无权限返回AUTHZ_403；旧状态版本返回STATE_409 | 操作请求号、发布投影、模型版本、业务达标摘要、授权范围、收藏状态、评分、评价、本人反馈、权限结果、前后状态、字段差异、影响清单、回执和审计记录。 |
| FR-SYS-059 | <a id="at-fr-sys-059"></a>AT-FR-SYS-059 | 系统日志 / 主页面：系统日志｜区域：操作审计Tab｜载体：Tab | `v2.system-log.read.fr_sys_059`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看变更前后对比”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志记录只读，按模块权限展示，禁止编辑、复制为业务对象或删除单条记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-060 | <a id="at-fr-sys-060"></a>AT-FR-SYS-060 | 系统日志 / 主页面：系统日志｜区域：操作审计Tab｜载体：Tab | `v2.system-log.read.fr_sys_060`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选操作审计”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志记录只读，按模块权限展示，禁止编辑、复制为业务对象或删除单条记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-061 | <a id="at-fr-sys-061"></a>AT-FR-SYS-061 | 系统日志 / 主页面：系统日志｜区域：操作审计Tab｜载体：Tab | `v2.system-log.read.fr_sys_061`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“重置审计筛选条件”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志记录只读，按模块权限展示，禁止编辑、复制为业务对象或删除单条记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-062 | <a id="at-fr-sys-062"></a>AT-FR-SYS-062 | 系统日志 / 主页面：系统日志｜区域：操作审计Tab｜载体：Tab | `v2.system-log.export.fr_sys_062`；`POST /api/v2/system-logs/{log_id}/exports`；202；仅创建导出任务，不改变来源对象状态 | log_id=LOG-T001；artifact_id=ART-001；artifact_state=success；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；前置：用户同时具有审计与异常日志读取、文件下载/导出和字段范围权限；目标产物已完成完整性与安全扫描。 | 1)核对产物状态、摘要和对象/字段权限；2)申请下载令牌或导出任务；3)核对文件名、大小、摘要、过期时间和下载审计；4)授权撤销、链接过期和未完成产物复测 | 文件元数据、字段范围、内容摘要、大小、MIME类型、令牌过期时间或导出task_id完整；敏感字段按策略裁剪 | 成功仅表示令牌签发或导出任务受理；来源对象revision/state_version及业务状态不变；重复下载不重复生成业务产物 | 产物未完成、摘要不一致、字段越权、链接过期或导出范围变化时拒绝；生成与下载阶段均重新鉴权。；下载阶段权限撤销返回AUTHZ_403；过期令牌不可复用 | log_id、产物状态、文件摘要与大小、字段范围、限时令牌/导出任务、权限拒绝和审计。 |
| FR-SYS-065 | <a id="at-fr-sys-065"></a>AT-FR-SYS-065 | 系统日志 / 主页面：系统日志｜区域：系统异常日志Tab｜载体：Tab | `v2.system-log.read.fr_sys_065`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“筛选系统异常日志”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志记录只读，按模块权限展示，禁止编辑、复制为业务对象或删除单条记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-066 | <a id="at-fr-sys-066"></a>AT-FR-SYS-066 | 系统日志 / 主页面：系统日志｜区域：系统异常日志Tab｜载体：Tab | `v2.system-log.read.fr_sys_066`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看系统异常日志列表”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“日志记录只读，按模块权限展示，禁止编辑、复制为业务对象或删除单条记录。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-067 | <a id="at-fr-sys-067"></a>AT-FR-SYS-067 | 系统日志 / 主页面：系统日志｜区域：系统异常日志Tab｜载体：Tab | `v2.system-log.read.fr_sys_067`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看系统异常详情”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“敏感参数必须脱敏；日志记录只读。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-068 | <a id="at-fr-sys-068"></a>AT-FR-SYS-068 | 系统日志 / 主页面：系统日志｜区域：系统异常日志Tab｜载体：Tab | `v2.system-log.create.fr_sys_068`；`POST /api/v2/system-logs`；201；创建对象与首条审计 | log_id=未生成；业务唯一键=UK-FR-SYS-068-01；actor=U-SYSTEM-LOG-01；revision=0；state_version=0；幂等键=IDEM-FR-SYS-068-01；前置：系统管理员具有审计与异常日志创建权限；业务唯一键未占用；必需引用对象、字段契约和初始配置有效。 | 1)确认业务唯一键未占用及默认值；2)按“复制请求编号用于关联排障。”执行“复制异常请求编号”；3)以同幂等键和同请求体重复；4)改用重复业务键、不同请求体和无权限账号复测 | 逐项核对日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；必填、类型、枚举、单位、版本引用和脱敏符合字段字典；响应含request_id、revision/state_version、updated_at | 符合“日志记录只读，按模块权限展示，禁止编辑、复制为业务对象或删除单条记录。”；状态遵循“创建后进入“日志只读；异常未确认→已确认→处理中→已关闭”定义的首个合法状态；创建不直接跳过校验、冻结、审批、执行或发布门禁。”；重复请求不新增对象或副作用 | 同幂等键同请求返回原对象；同键不同请求体、业务键重复、引用失效或部分写入时不产生第二对象或正式半对象。；无权限返回AUTHZ_403；同键不同请求体返回IDEMPOTENCY_409 | 创建请求、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、唯一性校验、生成编号、初始修订/状态版本、幂等复用结果和首条审计。 |
| FR-SYS-069 | <a id="at-fr-sys-069"></a>AT-FR-SYS-069 | 系统日志 / 主页面：系统日志｜区域：日志说明页｜载体：说明页 | `v2.system-log.read.fr_sys_069`；`GET /api/v2/system-logs/{log_id}`；200；只读响应，不改变revision/state_version | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；revision=3；state_version=5；data_time=2026-09-23T10:00:00+08:00；前置：用户具有审计与异常日志读取权限和对象数据范围；目标log_id存在；读取版本、采集时间和脱敏策略可确定。 | 1)记录对象版本和状态；2)执行“查看业务日志归属”；3)核对分页/候选项、展示值、保存值、数据时间和脱敏；4)用无权限账号、失效候选和空结果复测 | 按权限返回日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期；类型、枚举、版本引用、数据时间和脱敏符合字段契约 | 符合“系统日志页只提供边界说明和跳转，不重复建设业务日志页面。”；查询/选择前后revision=3、state_version=5；不新增对象、修订、任务或业务审计 | 对象无权、已失效、采集延迟或下游不可用时返回明确空态、未知或错误码；不泄露无权数量、摘要和历史成功值。；无权限返回AUTHZ_403或统一不可见；不泄露总数和摘要 | log_id、查询请求号、日志编号、请求编号、事件类型、业务对象、操作者、前后摘要、错误码、发生时间、保留期、权限判定、数据时间、分页结果和审计记录。 |
| FR-SYS-070 | <a id="at-fr-sys-070"></a>AT-FR-SYS-070 | 系统日志 / 主页面：系统日志｜区域：日志说明页｜载体：说明页 | `v2.system-log.navigate.fr_sys_070`；`GET /api/v2/system-logs/{log_id}/navigation-context`；200；返回目标路由和只读上下文，不写业务对象 | log_id=LOG-T001；actor=U-SYSTEM-LOG-01；来源筛选=FILTER-01；revision=3；state_version=5；前置：用户具有来源审计与异常日志读取权限和目标页面模块权限；log_id及目标路由有效。 | 1)记录来源路由、筛选条件和对象版本；2)点击跳转并核对目标路由参数；3)在目标页重新鉴权；4)用无目标模块权限账号、失效路由和不可见对象复测 | 上下文仅含log_id、固定版本、来源路由和允许携带的筛选字段；不携带凭证或越权摘要 | 目标页面与上下文正确；来源对象revision/state_version及业务状态不变；目标页不因前端传参跳过鉴权 | 目标页面无权、路由失效或对象不存在时停留当前页并显示受控原因；不得泄露目标对象摘要。；无权限返回AUTHZ_403或统一不可见；不产生业务写入 | 跳转前后路由、log_id、筛选上下文、双重权限判定、对象版本未变化证据和访问审计。 |
