docs: close Phase 0 acceptance gate

This commit is contained in:
chick
2026-07-16 08:07:58 +08:00
parent c7da857aff
commit 43a69d8617
10 changed files with 473 additions and 23 deletions
+28 -15
View File
@@ -1,5 +1,7 @@
# API-first Multi SimAdmin 信息架构
> Operation 的精确页面归属、surface、风险、确认、执行模式及 Fleet/资源批量语义见 [117 项验收账本](./operation-acceptance-matrix.md)Registry 是风险事实源。
> 本文定义 V1 路由、导航、页面职责、上游模块映射、状态呈现与验收矩阵。路由与 OperationRegistry 是实现边界,不允许再建立“任意 endpoint 工作台”。
> Phase 0.1 文档导航:[返回项目章程](./project-charter.md)[现状审计](./current-system-audit.md)[角色与流程](./personas-and-workflows.md)**信息架构**(本文)
@@ -33,12 +35,12 @@
| `/instances/new` | 添加实例、连接/认证/capability 初探 | R0 health/auth-statusR1-S credential verify/login;保存 | 仅登记并校验 canonical originR1-S 限速、脱敏元数据审计、禁止重放;secret 不回显 |
| `/instances/:id/overview` | 设备、SIM、网络、系统、关键异常摘要 | 刷新;服务/系统重启 | 查询 R0;重启 R3 Job |
| `/instances/:id/cellular` | 蜂窝、信号、小区、运营商、射频、锁频/锁小区、数据/APN | register、lock、data 等 | R0/R1/R2;影响服务项 Job 化 |
| `/instances/:id/device-network` | 接口、地址、DDNS、WLAN | DDNS sync、WLAN connect/forget | R0/R1/R2,断连影响需预检 |
| `/instances/:id/device-network` | 接口、地址、DDNS、WLAN | DDNS sync、WLAN connect/forget | 查询 R0WLAN connect R1WLAN forget R2 JobDDNS config R2 Job,断连影响需预检 |
| `/instances/:id/messages` | 统计、列表、会话、发送、删除 | send、delete、clear | 查询 R0;发送按 registry;删除/清空 R3 |
| `/instances/:id/calls` | 实时通话、拨号、设置、历史、IMS、voicemail | dial/answer/hangup/settings;删除通话记录 | 查询 R0;通话控制/设置按 R1/R2;通话记录删除 R3 Job |
| `/instances/:id/esim` | work mode、config、lpac、eUICC、profiles | download/enable/rename/delete | R1/R2profile delete R3 |
| `/instances/:id/notifications` | config、channel test、logs、queue | test/retry/clear/delete | config R1;清理类 R3 |
| `/instances/:id/automation` | 配置、task test、logs | save/test/clear | config R1;测试按 operationclear R3 |
| `/instances/:id/esim` | work mode、config、lpac、eUICC、profiles | download/enable/rename/delete | eSIM download/enable R1 directconfig/work mode R2 Jobprofile delete R3 |
| `/instances/:id/notifications` | config、channel test、logs、queue | test/retry/clear/delete | notifications config R2 Job;清理类 R3 |
| `/instances/:id/automation` | 配置、task test、logs | save/test/clear | automation config R2 Jobtask test R2 Jobclear R3 |
| `/instances/:id/ota` | 当前/最新版本、上传、prepare、apply、cancel | upload/prepare/apply/cancel | prepare R2apply R3 Job;专用流上传 |
| `/jobs` | Job 表格与筛选 | 取消/重试入口 | cancel 默认 R1retry 继承原 operation 风险且最低 R2,均由 registry 可提高 |
| `/jobs/:jobId` | 阶段、items、attempt、事件、retry lineage 和关联 audit | cancel/retry items | cancel 默认 R1retry 创建新 Job 且继承原风险(最低 R2);不复制/重放成功 item,非幂等先核实 |
@@ -95,7 +97,7 @@
| SIM | SIM 信息、详情刷新、缓存更新 | `overview` | 与 cellular 交叉字段只引用同一 resource/query,不重复 endpoint 定义 |
| 蜂窝网络 | network、cells、monitor、signal、location、operators、register | `cellular` | overview 仅摘要和深链 |
| 射频与锁定 | radio mode、band lock、cell lock、unlock all | `cellular` | lock/unlock 预检并按 R2/R3 registry 执行 |
| 数据连接 | data、roaming、airplane、APN、baseband | `cellular` | R1 开关与 R2 restart 分开呈现 |
| 数据连接 | data、roaming、airplane、APN、baseband | `cellular` | R1 开关baseband restart R3 Jobbaseband restart status R0 read,必须分开呈现 |
| 设备网络 | interfaces、addresses、DDNS、WLAN 全生命周期 | `device-network` | connect/disconnect 后需验证 connectivity |
| 工作模式与 eSIM | work mode、config、lpac、eUICC、profiles | `esim` | profile delete R3;工作模式影响说明 |
| 短信 | stats、list、conversation、send、delete、clear | `messages` | 删除/清空 R3;短信正文不进入 audit |
@@ -188,12 +190,12 @@ R3 全部 Job 化。R2 默认 Job 化;仅单目标 operation 可在 OperationR
| New instance | 实例与认证 | L,X,A,U/unknown capability | 配置专用保存/secret set | 连接与认证分阶段;失败可存 disabled 草稿;无 secret 回显 |
| Overview | 设备系统、SIM、摘要 | L,E,S,X,U,A,P | restart service/system R3 | 摘要深链;重启进入 Job,不在断连时假报成功 |
| Cellular | 蜂窝、射频、数据连接 | L,E,S,X,U,A,P | data/roaming R1register/lock/baseband R2/3 | 当前值→目标值;断连影响;验证后状态 |
| Device Network | interfaces/DDNS/WLAN | L,E,S,X,U,A,P | config R1connect/forget R2 | 扫描空与 unsupported 区分;变更后 connectivity 验证 |
| Device Network | interfaces/DDNS/WLAN | L,E,S,X,U,A,P | DDNS config R2 JobWLAN connect R1WLAN forget R2 Job | 扫描空与 unsupported 区分;变更后 connectivity 验证 |
| Messages | SMS | L,E,S,X,U,A,P | send R2(默认 Job`syncSafe` 例外);delete/clear R3 Job | 分页/会话;号码校验;删除数量强确认 |
| Calls | Calls/IMS/voicemail | L,E,S,X,U,A,P | dial/answer/hangup/settings R1/2history delete R3 Job | 实时与历史分离;拨号超时不重放;记录删除复述目标/数量并落 Job、刷新历史及脱敏 audit |
| eSIM | work mode/eSIM/lpac/eUICC/profile | L,E,S,X,U,A,P | config R1download/enable R2delete R3 | profile 身份可见;删除复述;完成后列表与连接核实 |
| Notifications | config/test/logs/queue | L,E,S,X,U,A,P | config R1test/retry R2(默认 Job`syncSafe` 例外)clear/delete R3 Job | channel 级反馈;队列逐项;清理确认数量 |
| Automation | config/test/logs | L,E,S,X,U,A,P | config R1test R2(默认 Job`syncSafe` 例外)clear R3 Job | schema 表单;测试与正式任务明确区分 |
| eSIM | work mode/eSIM/lpac/eUICC/profile | L,E,S,X,U,A,P | eSIM download/enable R1 directconfig/work mode R2 Jobdelete R3 | profile 身份可见;删除复述;完成后列表与连接核实 |
| Notifications | config/test/logs/queue | L,E,S,X,U,A,P | notifications config R2 Jobtest/retry R2 Jobclear/delete R3 Job | channel 级反馈;队列逐项;清理确认数量 |
| Automation | config/test/logs | L,E,S,X,U,A,P | automation config R2 Jobtest R2 Jobclear R3 Job | schema 表单;测试与正式任务明确区分 |
| OTA | status/release/upload/prepare/apply/cancel | L,E,S,X,U,A,P | prepare R2apply R3 | 流式进度/校验;版本重现判完成;可取消性明确 |
| Jobs | jobs/items/attempts | L,E,S,X,P | cancel 默认 R1(可提高);retry 继承原风险且最低 R2、创建新 Job | 重启恢复;终态不可变;失败项选择重试;新 jobId+attemptId 与 retry/root/source lineage 关联 |
| Job Detail `/jobs/:jobId` | jobs/items/events/audit links | L,E,S,X,P | cancel 默认 R1retry 最低 R2 | 阶段、逐项、attempt 与关联 audit;不可取消/重试原因可见 |
@@ -225,11 +227,22 @@ R3 全部 Job 化。R2 默认 Job 化;仅单目标 operation 可在 OperationR
## 10. IA 阶段门禁
进入 Web 实现前必须满足:
### Phase 0 → Phase 1 workspace/contract bootstrap gate
进入 Phase 1 workspace/contract bootstrap 前只要求规格、结构化证据与复审门禁;不以尚未进入实现阶段的 Fleet 组件或 E2E 产物阻断 workspace bootstrap
- [x] 全部 117 个上游 operation 由显式 operation ID exact partition 映射到唯一主路由与可实施 section/surface;测试验证 exact cover、无重叠、无未知 ID,且 route owner 一致。
- [x] loading/empty/stale/error/unsupported/auth/partial、policy-forbidden、unknown-result 与 owner-switch 由显式 operation ID scenario profile exact partition 决定,并保留逐 profile 不适用理由。
- [x] policy 与 availability 均由显式 operation ID exact partition 决定;每个写动作具有 Registry 风险等级、确认形态、结构化政策和结果落点,缺失映射立即失败。
- [x] 规格与测试不存在 iframe、任意 path、任意 JSON 或第二份 endpoint catalog 的产品入口。
- [x] 1440–320 的导航与数据降级策略已形成可执行规格。
- [x] 最终独立规格与质量/安全复审均已通过;防假绿 mutation、独立 Phase 0.2 Git-object 安全基线和 metadata-only fixture 扫描均获批准。
### Phase 5 implementation gate
以下实现证据不能删除或伪造为已完成,但 deferred 到 Phase 5;它们不是 Phase 1 workspace/contract bootstrap blocker
- [ ] 全部上游 operation 在 OperationRegistry 中有且仅有一个主页面 owner。
- [ ] 目标路由均有 loading/empty/stale/error/unsupported/auth/partial 设计或明确不适用理由。
- [ ] 每个写动作有风险等级、确认形态和结果落点。
- [ ] Fleet 默认列、排序、筛选和批量选择规则已形成组件/E2E 验收用例。
- [ ] 不存在 iframe、任意 path、任意 JSON 或第二份 endpoint catalog 的产品入口
- [ ] 1440–320 的导航与数据降级策略可执行,而不是仅写“响应式”。
- [ ] E2E 当前为 N/A;进入 Phase 5 Fleet 页面实现前,必须将上述规格落为可执行组件/E2E 验收并通过
Phase 0 release gate 已通过;Phase 5 实现与 E2E 仍是各自阶段的独立门禁,不能由本次规格复审替代。