From 034faa402169435440271b908a7c6990082355dc Mon Sep 17 00:00:00 2001 From: weichen Date: Thu, 15 Oct 2026 07:20:46 +0000 Subject: [PATCH] Record the document duty matrix rework Why: the duty page needs one record for the four domain rulings, and the earlier settings plan must show which duty-page sections it no longer owns. Evidence: SELF review of the proposal text against the approved implementation plan. Impact: r1 section 4 and the duty-page parts of P5 and P7 point at r2. Settings, members, and the permission matrix stay in r1. Refs: docs/proposals/2026-10-15-rdm-duty-matrix-rework.md Co-authored-by: Cursor --- ...settings-members-duties-perms-increment.md | 8 +++- .../2026-10-15-rdm-duty-matrix-rework.md | 48 +++++++++++++++++++ docs/proposals/INDEX.md | 6 ++- 3 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 docs/proposals/2026-10-15-rdm-duty-matrix-rework.md diff --git a/docs/proposals/2026-10-13-rdm-settings-members-duties-perms-increment.md b/docs/proposals/2026-10-13-rdm-settings-members-duties-perms-increment.md index a98fcd1..bac2d9e 100644 --- a/docs/proposals/2026-10-13-rdm-settings-members-duties-perms-increment.md +++ b/docs/proposals/2026-10-13-rdm-settings-members-duties-perms-increment.md @@ -81,6 +81,10 @@ product_contract_source: legacy-requirements ## 四、文档查找与职责分配 +> 2026-10-15:本节的职责页交互(文档清单加选中详情、章节级入口、整文审签)已被 +> [文档职责矩阵整改 r2](2026-10-15-rdm-duty-matrix-rework.md) 取代。成员校验、版本冲突、 +> 在途审签确认和历史保全仍然有效。下文保留作被取代前的记录。 + 文档职责页面采用“**文档清单+选中文档的职责详情**”: - 上方提供统一搜索框,支持文档 ID 精确检索、标题精确/模糊匹配。 @@ -162,9 +166,9 @@ product_contract_source: legacy-requirements | P2 系统设置闭环 | Core 设置描述、Backend 设置 API/存储/生效链/模型及密钥解析;系统管理入口 | P1;**基座发版与 RDM/Dev 升 pins**(见评审补充 1) | 系统受管项只能由有权管理员配置,旧个人/项目值不能覆盖 | | P3 人员与成员接口 | 扩展公开账号搜索;RDM 专业角色摘要、成员查询、项目身份调整与提交校验 | P1;姓名来源核实(见评审补充 3) | 账号/姓名/角色过滤同源,添加与身份调整明确分离 | | P4 文档与职责接口 | 专用文档目录、当前职责读取、统一职责服务、版本校验、变更失效及成员移除联动 | P1、P3 | 跨项目/非成员指派被拒,职责与审签变更全成或全败 | -| P5 通用选择器 | UI 仓搜索选择、单/多选、键盘操作、分页与状态;Frontend 人员/文档适配 | P1,接线依赖 P3、P4 | 三类使用场景共享交互,无自由文本误提交 | +| P5 通用选择器 | UI 仓搜索选择、单/多选、键盘操作、分页与状态;Frontend 人员适配。文档职责页的文档选择器改由 r2 三视图承接 | P1,接线依赖 P3、P4 | 人员选择共享交互,无自由文本误提交。职责页交互见 r2 | | P6 权限解释与矩阵 | RDM 项目动作目录、单人/批量解释、覆盖三态、来源与拒绝原因 | P1、P3 | 矩阵与执行规则一致,系统动作无法写入项目覆盖 | -| P7 项目设置集成 | 重构现有项目页,连接四个页面、能力状态、读取回填与保存结果 | P2—P6 | 创建者、普通成员、职责人员均有对应可用流程 | +| P7 项目设置集成 | 重构现有项目页,连接设置、成员与权限页。文档职责页改为 r2 的三视图,不再包含整文审签 | P2—P6 | 创建者、普通成员、职责人员均有对应可用流程。职责页验收以 r2 为准 | | P8 迁移与组合验收 | 旧配置处置、真实数据库与浏览器验收、精确组件组合验证、证据回填 | P2—P7 | 需求到证据闭合,无越权、隐私泄露或数据丢失 | 前端主要改动落在现有 `ProjectSettingsModal`、`adminRdmSections`、`rdmManagement`、`api` 和 `store`;按业务拆分成员、职责及权限组件,避免继续扩大一个管理组件文件。 diff --git a/docs/proposals/2026-10-15-rdm-duty-matrix-rework.md b/docs/proposals/2026-10-15-rdm-duty-matrix-rework.md new file mode 100644 index 0000000..95acf4b --- /dev/null +++ b/docs/proposals/2026-10-15-rdm-duty-matrix-rework.md @@ -0,0 +1,48 @@ +--- +title: 文档职责矩阵整改 +date: 2026-10-15 +type: feature +execution: code +artifact_contract: rdm-duty-matrix/v1 +product_contract_source: legacy-requirements +--- + +# 文档职责矩阵整改 r2 + +负责人:weichen;编制日期:2026-10-15。 +本记录是文档职责整改的唯一主记录。它取代 +[r1 增量方案](2026-10-13-rdm-settings-members-duties-perms-increment.md) +第四节,以及该方案 P5、P7 中“文档职责页”的交互;r1 的设置归属、成员、权限矩阵与其余工作包继续有效。 + +候选分支 `feature/rdm-settings-completion` 里的文档职责界面暂停合入。系统设置、成员选择、权限矩阵和已落地的后端安全能力不在本暂停范围内。本任务从当时的 `origin/main` 另起兄弟分支 `feature/rdm-duty-matrix`,不把该候选当作父分支。 + +## 四项领域裁定 + +1. 职责只到文档级。项目设置不再新增章节级职责;历史章节审签只读保留。 +2. 项目设置只分配已有受控文档的编制、审核、批准职责。不创建文档、不从模板生成、不提交审核、不审核通过、不驳回、不终批。 +3. 每份文档恰好一名编制、至少一名审核、恰好一名批准。同一人在同一文档上只担一个职责。审核可以有多人。 +4. 与文档职责完全一致的旧章节覆盖可以归并为文档级。同一文档下章节人员不一致的,列出清单,由项目负责人逐文档确认,不自动覆盖。 + +项目负责人可以分配职责,但不因负责人身份自动成为编制、审核或批准人。当前职责与已冻结的审签名单分开保存;修改当前职责不改写已批准版本和历史名单。 + +姓名来源仍按 r1 评审补充第 3 条待证。本页用账号标识展示,不把未证实的姓名字段写进契约。 + +## 契约 + +读:`rdm.duty.matrix`。`view` 为 `member`、`document` 或 `matrix`。筛选在分页之前。文档页上限 20。响应给出文档完整性、`dutyVersion`、章节覆盖数、在途轮次、成员资格、单元格 `none|author|reviewer|approver`,以及当前操作人是否可分配。单元格只投影当前文档级职责。没有 `duty.assign` 的调用直接拒绝,避免矩阵列头泄露不可见文档。 + +写:唯一入口仍是每份文档的完整目标,`rdm.review.assign.doc` 与 `rdm.review.assign.doc.batch`(1–20 项,整批原子)。带 `expectedDutyVersion` 与 `confirmInvalidation`。`rdm.review.assign` 只返回“章节级职责已停用,请在文档级设置”。 + +预览:`rdm.duty.preview` 与写载荷相同,只读返回替换对象、在途失效和缺人原因,不写数据。保存时服务端重新校验。 + +迁移:`rdm.duty.legacy.scan` 只读;`rdm.duty.legacy.apply` 只清除与文档职责完全一致的章节覆盖。 + +## 三视图 + +按人员、按文档、成员×文档矩阵共享同一份服务端数据和同一份未保存草稿。单元格由文档三权反推。把唯一编制或批准改成其他值可以继续编辑,但在指定接替人前不能保存。替换已有编制或批准时提示“将替换某某”,保存时一次替换。窄屏不压缩整张矩阵,改走前两个视图。一次保存最多 20 份文档。请求带递增序号,过期响应丢弃。写入结果未知时重读,不自动重放。 + +页面顶部写明:本页只分配已有文档的职责,不创建或生成文档。 + +## 验收 + +单文档三权恰好、多审核人、一人一责、三视图草稿一致、替换提示与原子替换、缺人禁止保存、成员失效保存被拒、版本冲突、批量整批失败不写、影响预览与历史不变、无私密文档列头泄露、无创建/生成/审签按钮、迟到响应不覆盖、design-guard、`make test` 与 `make build`。部署和真实账号浏览器验收另行授权。 diff --git a/docs/proposals/INDEX.md b/docs/proposals/INDEX.md index 9c782a7..f79df77 100644 --- a/docs/proposals/INDEX.md +++ b/docs/proposals/INDEX.md @@ -182,7 +182,11 @@ RDM 总案把库分期作为支撑与依赖,不覆盖库分期的原始范围 - [最终验证与合入调度实施计划 r1](2026-10-13-merge-queue-implementation-plan.md):阶段 5 已于 2026-10-13 经用户「批准」确认,原生逐项实施;U1–U3 源码与自检在 Dev 任务分支推进,U4 待启用记录及规则已准备,U5 平台所有者操作与 U6 真实三任务 CI 试行仍 NOT_RUN。实际对象、证据和进度回链 Dev 任务卡,不把本索引当第二进度权威。 -- [RDM 设置归属、成员、文档职责与权限矩阵完善增量方案 r1](2026-10-13-rdm-settings-members-duties-perms-increment.md):承接总案 U3/U4/U6(衔接 U5)的完整增量——设置作用域与受管项、可搜索人员选择器、文档清单+职责分配、单成员/多人权限矩阵与三态项目覆盖;含服务端一致性修复(职责目标成员校验推翻 G1-5 旧裁定、职责变更与审签失效原子化)与 P1–P8 工作包。**2026-10-13 用户评审通过并授权实施**(两批推进;正式验收与清理回收保留人工节点);P1 契约随本稿固定,P2 基座契约扩展按总案发版顺序排队。 +- [RDM 设置归属、成员、文档职责与权限矩阵完善增量方案 r1](2026-10-13-rdm-settings-members-duties-perms-increment.md):承接总案 U3/U4/U6(衔接 U5)的完整增量——设置作用域与受管项、可搜索人员选择器、单成员/多人权限矩阵与三态项目覆盖;含服务端一致性修复。**2026-10-13 用户评审通过并授权实施**。第四节及 P5/P7 的文档职责页交互已被下方 r2 取代,其余部分继续有效。 + +## 2026-10-15 规划补充 + +- [文档职责矩阵整改 r2](2026-10-15-rdm-duty-matrix-rework.md):项目设置只分配已有文档的编制、审核、批准;按人员、按文档、成员×文档三视图共享一份草稿。章节级新指派停用,有歧义的旧章节职责逐文档确认。2026-10-15 按实施方案执行;部署与真实账号验收未授权。收录不把其余未完成增量自动标成已验收。 ## 2026-10-12 规划补充 -- 2.54.0