| 字段 | 值 |
|---|---|
| 版本 | v0.2(草案·已过第1轮评审修复) |
| 最后更新日期 | 2026-10-14 |
| 状态 | 草稿 · 第1轮评审已修复,待复审 |
| 本次变更原因 | 第1轮独立评审修复(7 严重 + 11 一般):见 docs/04-quality/review/2026-10-14-SPEC-ER评审-第1轮.md |
| 需求源 | 《访谈-20261014-现状调研汇总.md》+ 用户决策(保留全部功能面 / 重新设计 / 先出设计规范) |
本草案的效力:FR 编号与 AC 均已写出,但每条 FR 的「确认状态」为
待确认。用户回答《访谈问卷-20261014-v2需求挖掘.md》后,逐条回填为已确认,再由评审员子代理评审通过,方可进入阶段②。 标识约定:[存量]存量已有保留;[重构]存量有但改为规范做法;[增项·暂不实现]保留在池不实现;[新增·裁决派生]由用户裁决派生非新功能;[治理]治理条款无可验收行为。
Fmode 双端客户端(桌面横版 + 手机竖版)· 人机共生 IM 中枢:用户通过 IM 式会话与"数字生命"(AI Agent)交互,并查看其运行状态与交付成果。
7 个功能模块(不含登录):
通讯录(FR-03)· 会话(FR-04)· 项目(FR-05)· 事件(FR-06)· 工作台(FR-07)· 任务看板(FR-07b) · 成果(FR-08)
通用能力(跨模块,不计入 7 模块):
入口分流(FR-01)· 登录(FR-02) · 移动聚合首页(FR-19)· 数字生命详情(FR-09)· 我的(FR-10,含端切换)
口径说明(评审 S1 修复):「7 个功能模块」不含登录——登录是跨端通用能力,与"用户可见的业务功能面"不同层。 「7 个模块全部通过测试」(PRD §2.3)指上表 7 个;通用能力另有各自 AC,同样必须通过。
[争议] D3,建议明确排除)| 项 | 裁决 |
|---|---|
| v2 与旧版关系 | ✅ 替换旧版。v2 上线后接管主入口,旧项目源码原地保留但停用 |
| 使用者画像 | ✅ 三类全部:业务同事(手机端为主)/ 管理者超管(桌面端为主)/ 运维交付方(双端) |
| 新功能 | ✅ 无。范围冻结在 7 个模块,禁止蔓延 |
| 旧项目处置 | ✅ 原地保留不动(E:\work\fmode-app,只读参考) |
⚠️ 「替换」带来的新增迁移需求(见 FR-16):需处理
localStorage键兼容、 旧书签/已推送链接跳转、用户重新登录引导。这是裁决直接派生的需求,不是新功能。
[存量]| 项 | 内容 |
|---|---|
| 描述 | 入口页 / 按 UA + 视口一次性判定访问端,replaceUrl 跳转,不留历史;各端提供固定导航 |
| 验收 | AC-01.1 桌面 UA 访问 / → 落 /desktop/chat;移动 UA → 落 /mobile/homeAC-01.2 跳转使用 replaceUrl,浏览器返回不弹回入口页AC-01.3 桌面导航 7 项(会话/通讯录/项目/事件/工作台/成果/我的),移动底部 5 Tab AC-01.4 旧路径按当前端前缀重定向 —— 判定标准与路径清单见 FR-16(避免重复表述) |
| 确认状态 | 待确认(Q4) |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 支持手机验证码登录、Token 直登、#token=/?token= 自动登录;登录后建立会话并校正租户归属 |
| 验收 | AC-02.1 三种登录方式均可用;桌面/移动共用逻辑、形态不同 AC-02.2 #token= 自动登录成功后清空地址栏(防截屏泄露)AC-02.3 未登录访问受保护路由 → 跳 /login?redirect=,登录后 replaceUrl 回跳AC-02.4 租户归属校正由服务端权威判定(现状为客户端 PUT 自改, [重构] 项)AC-02.5 登录页无 console.debug 残留AC-02.6 输入校验:手机号格式非法 / 验证码错误 / 验证码过期 / #token= 无效或已失效 → 各有明确错误文案,不得静默失败AC-02.7 重复登录/重复提交有防抖,不产生并发请求 |
| 依赖声明(评审 S3) | AC-02.4 的"服务端权威判定"依赖云函数 zl4yU8PAEB 改造(单前端 SPA 无自建后端)。性质与 FR-07b 的云函数依赖相同。降级策略:服务端仍在 token-sync 内返回权威 company,前端只读不写;禁止前端 PUT 自改(存量反模式) |
| 确认状态 | 待确认(Q4.3) |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 三类 Tab:全部 / AI 数字生命 / 同事;同事行可展开其名下数字生命 |
| 验收 | AC-03.1 点击 Tab X 后 [data-testid=tabpanel-X] 可见且其余 tabpanel 不可见;搜索框输入 a 后列表项名称均包含 aAC-03.2 点数字生命行 → 已接入 FMODE 进会话页,未接入进详情页(判定逻辑须在服务层单点实现,全项目仅一处) AC-03.3 触达区 ≥ 44×44px AC-03.4 三态:列表区必须具备 空态/加载态/错误态;错误态含可重试入口,禁止用空态文案掩盖请求失败 |
| 确认状态 | 待确认 |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 与数字生命一对一 Matrix 会话:发文本/文件、翻历史、看实时状态与成果 |
| 验收 | AC-04.1 桌面四栏(导航+会话列+聊天区+成果栏);移动全屏+成果抽屉 AC-04.2 发送文本 → Matrix 房间消息 → 气泡追加 → 滚动到底 AC-04.3 发送文件 → 预签名直传 → 发文件卡片;有上传进度可见 AC-04.4 历史超过 200 条启用虚拟滚动,上翻保持锚点 AC-04.5 输入框支持 Enter 发送 / Shift+Enter 换行 / 真实自增高( scrollHeight 驱动)AC-04.6 同一状态不得三处同屏重复渲染 AC-04.7 成果栏 variant 样式分支真实生效(修正恒等三元)AC-04.8 发送失败有可见错误提示与重试入口;失败消息不丢失 AC-04.9 断线可自动重连并显示连接状态(connecting/connected/disconnected) AC-04.10 超长文本:消息气泡/列表标题超长时截断或换行规则明确,不撑破布局 AC-04.11 三态:会话列表与消息区必须具备 空态/加载态/错误态,错误态含可重试入口 |
| 确认状态 | 待确认(Q4.2) |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 项目工作区:项目 ↔ 会话 ↔ 交付物 关联视图 |
| 验收 | AC-05.1 桌面宽窗(≥ 1150px 断点,见 NFR-05)左右分栏同屏;移动为列表→详情同页切换且可返回列表(判据:返回后列表滚动位置保持) AC-05.2 选中项目可见其会话与交付物,交付物可展开看 artifacts 外链AC-05.3 三态:项目列表与详情必须具备 空态/加载态/错误态,错误态含可重试入口 |
| 确认状态 | 待确认 |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 交付 / 执行 / 告警 事件流,按天分组,支持分类筛选 |
| 数据源口径(评审 G3) | 事件为由交付物 + 状态派生的合成信号,v2 不新增服务端事件表。「告警」= 由交付失败/状态异常派生的提示,非独立审计流 |
| 验收 | AC-06.1 点击筛选 chip X 后,列表项 data-category 均为 XAC-06.2 事件按天分组显示,组头为日期 AC-06.3 筛选 chip 触达区 ≥ 44px(现状 28px) AC-06.4 三态:事件流必须具备 空态/加载态/错误态,错误态含可重试入口 |
| 确认状态 | 待确认 |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 网格卡片展示每个数字生命:头像/状态/当前任务/CPU/内存/余额/通道 |
| 验收 | AC-07.1 卡片展示上述字段 AC-07.2 双端取数走同一实况服务,口径一致(含 token 用量) AC-07.3 加载失败必须显示错误态,禁止伪装为空态或权限问题 AC-07.4 余额可点击外链;通道详情用 bottom-sheet |
| 确认状态 | ✅ 已确认(多任务部分由 FR-07b 承载) |
[新增·已纳入]| 项 | 内容 |
|---|---|
| 描述 | 消费 Hermes kanban 真任务数据,展示任务列表 / 详情 / 运行流水 / 阻塞告警 |
| 裁决(用户 2026-10-14) | ✅ 纳入 v2 范围 |
| 调研结论 | 见《调研-20261014-多任务并行可行性.md》——Agent 侧能力具备,采集脚本已写,AgentTask/AgentTaskRun 表已建,仅缺云函数接收端 |
| 数据源 | 容器 /opt/data/kanban.db(SQLite 只读) → 云函数 → 5 张表:AgentTask / AgentTaskRun / AgentLiveEvent(已建) + AgentTaskComment / AgentTaskAttachment(待建,评审 N3 补) |
| 展示范围 | ① 任务列表(标题 / 状态 / 负责人 / assignee / 时间 / 分支) ② 任务详情(body markdown / 评论 / 附件 / 运行流水 runs) ③ 阻塞告警( block_kind + consecutive_failures + 阻塞时长,如现存「已阻塞 436h」)④ 状态筛选(按 tasks.status 七态:triage/todo/scheduled/ready/running/blocked/done) |
| 双端形态 | 桌面:列表 + 详情分栏(或独立路由);移动:列表 ↔ 详情同页切换 |
AgentLiveEvent 口径(评审 G7) |
一期仅落库,前端不消费(task_events 1845 条,需增量上报;v2 UI 不展示) |
| 关键约束 | ① 一期只读(写操作待 RBAC,不做派发/评论) ② 依赖云函数改造(当前未实现,属独立工作流) ③ 前端不得直读 SQLite 或绕过 AgentTask 表④ 任务数据按 agentId 过滤,与现有会话/成果页保持同一数字生命上下文 |
| 验收 | AC-07b.1 任务列表按状态筛选、按时间倒序 AC-07b.2 任务详情展示 body(markdown 渲染)/评论/附件/运行流水 AC-07b.3 阻塞任务显著标记并显示阻塞时长与原因 AC-07b.4 双端取数走同一任务服务,口径一致 AC-07b.5 加载失败显示错误态,禁止伪装空态 AC-07b.6 一期零写操作入口(无派发/评论按钮) |
| 阻塞前置 | 云函数接收端未实现 + 新增评论/附件两表(见 ER §二.B) + 6 组未知待 Agent 核实(见《待问Agent-20261014-多任务接入核实.md》) |
| 依赖声明 | 本 FR 的前端实现依赖云函数改造完成。若云函数未就绪,v2 可先落空态与接口层,不得伪造数据 |
| 确认状态 | ✅ 已裁决(纳入) |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 交付成果浏览:按项目分组 / 按时间线 双视图 |
| 验收 | AC-08.1 点击分段器「按时间线」后时间线容器可见且按项目容器不可见(反之亦然) AC-08.2 条目可展开看文件,图片/视频支持全屏预览 AC-08.3 成果数据统一走成果服务,禁止组件自行请求 AC-08.4 三态:成果列表必须具备 空态/加载态/错误态,错误态含可重试入口(修正存量「接口挂了显示暂无成果」) |
| 确认状态 | 待确认 |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 数字生命档案页:身份信息 + 运行指标 + 交付时间轴 |
| 验收 | AC-09.1 展示身份/状态/当前任务/CPU/内存/更新时间 AC-09.2 未接入 FMODE 时提供进入会话入口(桌面禁用态,移动不得用原生 alert)AC-09.3 指标不得在页面内两处重复渲染 AC-09.4 三态:详情页必须具备 加载态/错误态,错误态含可重试入口 |
| 确认状态 | 待确认 |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 身份卡 + 账号信息 + 端切换 + 修复 Token + 退出 |
| 验收 | AC-10.1 端切换与"恢复自动识别"可用 AC-10.2 退出需二次确认 AC-10.3 版本号从构建注入,禁止硬编码 |
| 确认状态 | ✅ 已确认(端切换保留,见第二轮裁决 D5) |
[增项·暂不实现]| 项 | 内容 |
|---|---|
| 描述 | 全屏语音通话,信令走 Matrix m.call,媒体走 WebRTC |
| 裁决(用户 2026-10-14) | 暂不实现,作为"增项"保留在需求池。v2 首选版本不含此功能 |
| 范围处理 | ① 不进 MVP 范围;② 不设路由、不建组件、不引通话相关代码; ③ 但需求条目保留,以 [增项] 标记,便于后续版本捡起;④ 存量中 voiceEnabled 恒 false 的死入口一并移除,不得把不可达 UI 带进 v2 |
| 遗留依赖 | 若未来捡起,必须先解决:AC-11.2 TURN 凭据由服务端签发临时凭据。 存量 core/matrix-client.ts 存在明文硬编码的 TURN username/credential(具体值见存量文件,本文件不复录,违反黄金规则 9) |
| 验收 | AC-11.1 (暂不适用) AC-11.2 将来实现时:前端零 TURN 凭据 AC-11.3 v2 中不得存在通话死入口 |
| 确认状态 | ✅ 已裁决(暂缓) |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 所有界面基于 ui-kit 官方组件底座 + 设计令牌构建 |
| 验收 | 12.1~12.5 全部可脚本断言(npm run verify:ui),判据为脚本退出码 0AC-12.1 扫描业务目录匹配 #[0-9a-fA-F]{3,8} / rgb( / rgba( / hsl( → 0 处(现状 321)AC-12.2 匹配 --wecom- / --fx- / --dk- / --ok / --crit / --warn- → 0 处(现状 3 套前缀 + 46 处双轨色)AC-12.3 实际使用的 font-size 去重 ≤ 8 档;border-radius 去重 ≤ 4 档(现状 25/24)。测量口径:业务目录(core/components/desktop/mobile),底座 src/app/ui/** 豁免(见《设计令牌.md》§6.1)AC-12.4 src/styles.scss(+拆分出的 _palette.scss)总行数 ≤ 300,业务样式扫描 0 处(现状 2079 行全局)AC-12.5 全项目只有一处 ThemeService + 只有一处 PaletteService;4 套整体配色 × 明暗(共 8 种观感)切换后无残留硬编码色→ 修订留痕(2026-10-14):原文为「9 accent 切换」;用户敲定原型改为 4 套整体配色后,AC 口径同步修订(《设计令牌.md》§4.5 / ADR-006 v2.0) AC-12.6 ui-kit 引用 ≥ 30 个不同组件(现状 2 个)。 → 门槛定为 30,已定稿可直接判定。依据:阶段②组件规范已明确"关键页面由哪些 ui-kit 组件拼装",实际清单 58 项; → 判据: grep -roh '<ui-[a-z-]*' src/app/{desktop,mobile,components} \| sort -u \| wc -l ≥ 30;→ 若阶段②完成后实际清单 < 30,则下修门槛并留痕,不得反向放宽判定标准。 |
| 确认状态 | 待确认(AC-12.6 门槛 30,实列 58,不阻塞) |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 达到可用的无障碍基线 |
| 验收 | AC-13.1 交互元素有 aria-*/role;图像有 altAC-13.2 键盘可达, :focus 有可见样式(禁止全局 outline:none)AC-13.3 所有触达区 ≥ 44×44px(现状 5 处违规) AC-13.4 支持 prefers-reduced-motion |
| 确认状态 | 待确认 |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 每个数据域只允许一个服务负责取数,视图只消费 |
| 验收 | AC-14.1 轮询器收敛为 1 个(现状 4 个重叠) AC-14.2 视图层零直接数据请求(现状 StatusPanel/移动工作台/详情页各自请求)AC-14.3 stop() 真实停止轮询,不得空实现 |
| 确认状态 | 待确认(Q4.3) |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 无死代码、无调试残留 |
| 验收 | AC-15.1 零 console.log/debugAC-15.2 无 0 引用的服务/方法/样式类(现状 matrix.service.ts 142 行等)AC-15.3 无注释掉的旧逻辑 |
| 确认状态 | 待确认 |
[新增·裁决派生]| 项 | 内容 |
|---|---|
| 描述 | v2 替换旧版上线,需平滑迁移存量用户状态,不得让用户"打开就懵" |
| 来源 | 用户 2026-10-14 裁决「替换旧版」直接派生,非新功能 |
| 迁移项 | ① localStorage 键兼容:fmode_ui_mode_override(端选)/ fx-theme(主题)/ fmode_dk_sidebar_collapsed(侧栏折叠)② 旧书签/已推送链接: /messages、/workbench、/deliverables、/mine、/chat/:id、/agent/:id 等旧路径按当前端前缀重定向③ 登录态:token 存储机制若变更,需明确是否自动续期还是引导重新登录 ④ 首访引导:若用户状态无法完整迁移,给出明确提示而非静默降级 |
| 验收 | AC-16.1 旧 localStorage 键能正确读取或安全忽略(不报错、不串主题) AC-16.2 完整旧路径清单均可重定向: /messages /workbench /deliverables /mine /chat/:id /agent/:id /call/:agentId(本 FR 为路径重定向的唯一事实源,FR-01 AC-01.4 引用本项)→ /call/:agentId 落点明确(评审 T-A):因 FR-11 语音通话已裁决暂不实现,重定向目标为 /agent/:id(数字生命详情页),并在详情页给出可见提示「语音通话功能暂未开放」。禁止为其建通话路由或空壳页面。 AC-16.3 登录态迁移策略已文档化且有实现 AC-16.4 迁移失败有可见提示,禁止静默失败 |
| 关联 | 与 FR-01(端分流)、FR-02(登录)交叉 |
| 确认状态 | ✅ 已派生(源自上线形态裁决),AC 待评审 |
[新增·裁决派生]| 项 | 内容 |
|---|---|
| 描述 | 同一份数据服务三种信息密度(见《用户画像.md》) |
| 来源 | 用户 2026-10-14 裁决「三类使用者全部」直接派生 |
| 设计约束 | ① 桌面端走高密度(多栏对比),移动端走高可达(单列、大触达区、沉浸) ② P2/P3 的核心场景是工作台 + 任务看板,须保证这两个模块的可见性 ③ 术语分层:P1 看到业务语言("交付成果"),P2/P3 可见技术指标但不与 P1 界面混排 ④ 首页信息架构需兼顾:移动端聚合首页(P1)、桌面端看板优先(P2/P3) |
| 验收 | AC-17.1 两端默认落地页已定稿并写入路由表:桌面 /desktop → /desktop/chat,移动 /mobile → /mobile/home;判据:重定向目标与文档一致AC-17.2 工作台与任务看板在两端均可 ≤ 2 次点击到达(判据:从落地页起算的导航路径长度) AC-17.3 技术指标(CPU/内存/用量/运行流水)不出现在 P1 主流程界面(会话页、成果页)的默认视图中 |
| 确认状态 | ✅ 已派生,AC 待评审 |
[治理]| 项 | 内容 |
|---|---|
| 描述 | v2 范围冻结于 7 个功能模块 + 5 项通用能力(见 §1.2) |
| 来源 | 用户 2026-10-14 裁决「无新功能,冻结范围」 |
| 治理要求 | ① 任何新增功能须走变更请求流程,由用户 A 决策 ② AI 禁止以"顺手做了"为由增加页面/接口 ③ 已确认为增项的功能(语音通话)不得在无新裁决的情况下捡起 |
| 确认状态 | ✅ 已确认 |
[存量]| 项 | 内容 |
|---|---|
| 描述 | 移动端落地页:①事件提醒条 ②最新交付成果×3 ③最近会话×6,各带"全部"入口 |
| 来源 | 评审 G1 —— 该页被 AC-01.1 引用却无 FR 定义 |
| 验收 | AC-19.1 计数与列表条数一致(修正存量"显示 20 却只有 6 行"的误导) AC-19.2 每个区块独立三态(空/加载/错误),错误态不得伪装成"暂无交付成果" AC-19.3 搜索/输入框字号 ≥16px(iOS 不触发缩放) AC-19.4 "全部"入口分别落到 /mobile/events、/mobile/deliverables、/mobile/messages |
| 确认状态 | 待确认 |
[重构]| 项 | 内容 |
|---|---|
| 描述 | 超管(角色 FMODE_AGENT_SUPERADMIN)可见名下全部容器/数字生命,不受普通用户 ACL 限制 |
| 来源 | 评审 G2 —— 存量 v0.6.0 已实现但无 FR 承载,且与租户隔离存在潜在越权冲突 |
| 安全要求 | ① 可见范围判定在服务端,前端 roles 字段不得作为授权依据② 与"业务表必须带 company 指针隔离"共存:超管跨租户取数由服务端授权后返回,前端只读③ 普通用户越权访问他租户资源 → 服务端返回 403 语义,不得返回空列表(空列表会掩盖越权尝试) |
| 验收 | AC-20.1 超管可见跨公司容器;普通用户不可见 AC-20.2 前端代码中无基于 roles 字段的授权分支(判据:grep 命中 0)AC-20.3 越权访问返回 403 而非空列表 |
| 依赖声明 | 依赖服务端授权逻辑;若未就绪,前端按"仅可见本人 ACL 范围"降级,不得自行放宽 |
| 确认状态 | 待确认 |
| 编号 | 类别 | 要求 | 现值/目标 |
|---|---|---|---|
| NFR-01 | 性能 | 首屏初始包体(gzip) | ≤ 400 KB;懒加载后单 chunk ≤ 250 KB |
| NFR-02 | 性能 | 路由懒加载,Matrix SDK 不进主包 | [存量] 已实现,保留 |
| NFR-03 | 安全 | 前端零服务端密钥(masterKey / OBS / TURN) | 存量违规 2 处,v2 必须为 0 |
| NFR-04 | 安全 | 租户隔离由服务端权威 | [重构]。依赖声明:承载方 = 云函数 zl4yU8PAEB(token-sync),需改造为服务端返回权威 company;未就绪时前端只读不写 |
| NFR-05 | 兼容 | 桌面 1440×900 / 移动 390×844 为主基线;桌面断点定值见本节末尾「断点定值」 | [重构],现状无降级 |
| NFR-06 | 可测 | 单测 + 双端全路由冒烟 | [存量] Karma+Jasmine + Playwright |
| NFR-07 | 可追踪 | 全链文档:PRD→SPEC→ER→API→测试→留痕 | [重构] |
| 断点令牌 | 值 | 布局行为 |
|---|---|---|
bp-dk-full |
≥ 1280px | 桌面四栏全展开,右栏 340px 舒适宽 |
bp-dk-4col |
1150–1279px | 桌面四栏压缩:右栏收窄至 300px |
bp-dk-3col |
940–1149px | 桌面三栏:右栏变为浮层(默认收起) |
bp-dk-2col |
768–939px | 桌面两栏:导航图标化 + 列表 + 主区 |
bp-mobile |
< 768px | 由端分流接管;桌面路由不在此宽下渲染 |
依据:
DeviceService.NARROW_PX = 768 保持一致,避免出现两套窄屏判定落地要求:断点必须定义成令牌(见《设计令牌.md》§十布局令牌),不得在组件里写媒体查询魔数。
断言:扫描中不得出现裸 @media (max-width: 1150px) 之类的非令牌断点。
修订留痕:本表初稿曾定为 1280/1024/768 三段。采纳《同类产品参考调研》§五·Q4 的实测结论后修订——
用 1150(实测痛点)替代 1024(推测值),并补 940 一档;768 保留(与代码一致)。
依据强度从"推测"提升为"实测"。
NFR-03 适用范围裁决(用户 2026-10-14):用户明确表示「不用管这个安全,git 是我自己的服务器」。 据此调整:存量
deploy.sh明文 OBS 凭证 +matrix-client.ts明文 TURN 凭据,因仓库托管于用户自有私有服务器,风险等级由「事故」降为「可接受的技术债」,不列入 v2 的阻塞项。 仍保留的约束:v2 新写代码不得引入服务端密钥到前端(masterKey 铁律不变,黄金规则 6);存量旧代码的既有问题不在 v2 范围处理。 原 S1/S2 安全事项从访谈问卷的「必答」降为「已裁决·不处理」。
唯一事实源:完整矩阵维护于
docs/04-quality/traceability-matrix.md(评审 N2/T-B)。 本处不再维护副本 —— 第 2 轮评审发现两处副本的 AC 区间会各自陈旧、互相误导。 本节仅保留导航指针,任何矩阵更新只改traceability-matrix.md。
| 项 | 位置 |
|---|---|
| 矩阵全表(FR × 画像 × AC × 设计 × 测试) | docs/04-quality/traceability-matrix.md |
| NFR 追溯 | 同上 §非功能需求追溯 |
| 变更传播链 | 同上末尾 |
当前规模:21 条 FR 行(FR-01~FR-20 + FR-07b),13 条 NFR 行。
| 门禁 | 条件 | 当前 |
|---|---|---|
| G1 SPEC 草案完成 | 本文档落盘 | ✅ |
| G2 用户确认 FR/AC | 访谈问卷全部回答(见《访谈-20261014-第三轮裁决记录.md》§五) | ✅ 已解除 |
| G3 画像/RACI/流程图 | 已产出 | ✅ |
| G4 ER 图落位 | 见 02-design/database/ER-图-草案.md |
🟡 草案(❓ 待核对,不阻塞设计阶段) |
| G5 评审员子代理评审 | 第1轮报告:不通过 → 已修复 → 待复审 | 🟡 |
| G6 阶段① → ② 切换 | G2~G5 全通 | ⬜ |
| G-D1 设计初版评审 | 关键页面原型经用户确认(裁决 11) | ⬜ |