From c7c5f94b64c4682c0212f29b784bec8bcce0bd3e Mon Sep 17 00:00:00 2001 From: weichen Date: Sun, 11 Oct 2026 13:50:10 +0000 Subject: [PATCH] Propose the U5 action scope for user review Why: The r2 U5 clause requires a human review of the action scope before implementation; this draft grounds the decision in the current command inventory and existing safety machinery. Evidence: Source facts cited inline (builtin command list with risk levels, DangerHigh inline-confirm flow with pendingStore, audit envelope) verified against backend main on 2026-10-11. Impact: Documents-only (new proposal + index entry); no code changes. Refs: 2026-10-10-generative-ui-plugin.md (r2 U5); Dev task feature/generative-ui-u5-scope --- ...026-10-11-generative-ui-u5-action-scope.md | 84 +++++++++++++++++++ docs/proposals/INDEX.md | 4 + 2 files changed, 88 insertions(+) create mode 100644 docs/proposals/2026-10-11-generative-ui-u5-action-scope.md diff --git a/docs/proposals/2026-10-11-generative-ui-u5-action-scope.md b/docs/proposals/2026-10-11-generative-ui-u5-action-scope.md new file mode 100644 index 0000000..7ed68bf --- /dev/null +++ b/docs/proposals/2026-10-11-generative-ui-u5-action-scope.md @@ -0,0 +1,84 @@ +--- +title: Generative UI U5 action-scope proposal +date: 2026-10-11 +type: feat +revision: r1 +status: awaiting-user-review +product_contract_source: generative-ui-r2-U5-clause +--- + +# Generative UI U5 动作范围提案(待用户评审) + +依据:主记录 r2《Generative UI 调研与插件方案》U5 条款「**必须先评审本阶段动作范围**」。 +本文是该评审的提案稿:给出动作分类与开放范围、审批挂接要求、明确排除项与验收条件。 +用户裁定前不实施;实施另行开任务(U5 实现)。 + +负责人:裁定 weichen(用户);起草 Agent;更新时间 2026-10-11。 + +## 一、动作分类与本增量开放范围 + +| 类 | 定义 | U5 开放范围 | 通道 | +|---|---|---|---| +| **A 客户端本地** | 零副作用:页签切换、折叠展开、排序筛选、复制、doc-ref 打开工件预览 | **全部开放**(U4 已具雏形) | 纯前端,不经命令总线、不审计(无副作用可审);模型不能把 A 类标成"已执行" | +| **B 白名单命令绑定** | 把**既有命令目录**中的命令绑定为页面动作按钮 | **机制全量建设,第一版白名单为空**(见下) | cmdbus 四入口同源分发:审计信封、参数 Schema 校验、DangerHigh 确认卡 | +| **C 插件自身低危写** | generative-ui 表单提交落**插件自有**存储(Host.KVPut / 后台任务台账),不触发任何业务系统变更 | **开放**(场景 3「方案选择和需求表单」的实现面) | 新插件命令 `generative-ui.submit`,经同一分发/审计/幂等 | +| **D 业务写与高危** | 业务系统写(任务/项目/工件/知识库变更、对外发布、外发消息)、DangerHigh 命令直执、跨 owner/跨项目资源、代码执行 | **全部不开放** | U6+ 逐类单独评审后按 B 类机制逐条加白 | + +**B 类第一版白名单为空的依据**(2026-10-11 源码事实):当前内置命令为 +builtin.help / system.intent / conversation.create / runtime.mock / models.set / +conversation.profile——除 help/intent 外均为中危**写**命令,不存在可安全首开的内置只读命令。 +结论:U5 交付「绑定-审计-幂等-确认」管道与测试,白名单从空起步,此后每加一条都走 +独立评审(增量为零的机制 + 可验证的拒绝路径,先把地基打牢)。 + +## 二、审批挂接要求(映射 r2 KTD6 与现有机制,全部为既有能力复用) + +1. **生成的按钮不是批准**:页面动作提交 → 宿主校验(启停/epoch/revision/权限/参数)→ + `cmdbus.Dispatch`(Entrance=button,归一入审计信封)。模型只能引用允许的 action 名称, + 不能伪造执行结果。 +2. **DangerHigh 自动挂既有确认卡**:命中 `spec.Danger == high` 且未 Confirmed 时走现有 + 内联确认卡 + pendingStore 持久化 + Confirm 回道二次分发——**用户点卡确认是唯一批准来源**; + Confirmed 标志只能由卡回道置位,模型路径无法携带(红测断言)。 +3. **幂等**:requestId 由客户端生成;服务端绑定 `(owner, surfaceId, revision, actionId, + requestId, 参数哈希)`。重复 requestId 同参数 → 返回已有回执;同 requestId 异参数 → 拒绝 + (对齐 KTD6)。 +4. **旧修订受控**:动作提交带 revision;revision ≠ 当前 latest → 拒绝并提示刷新 + (旧按钮不重放)。 +5. **禁用语义**:activation 关闭后新动作 403;在途按 U2 KTD7 表(已提交业务操作按命令台账 + 收尾,不承诺撤销)。 +6. **表单草稿不进模型**:草稿由前端按 surfaceId/nodeId 管理,未提交不上传、不进 + ctxasm(KTD4/KTD8;测试断言上下文不含未提交字段值)。 +7. **参数校验**:动作参数按命令 ParamsSchema 服务端校验(validateParams 既有),拒绝 + 越权资源引用(owner 作用域)。 + +## 三、交付范围(实施任务的文件面,供参考) + +- Backend:`POST /api/surfaces/{id}/actions`(提交动作,走 surfacesvc 守卫 + cmdbus); + 幂等台账迁移(新表,纯增量);genui 目录文档补 action 绑定语法与「仅允许引用宿主下发的 + action 清单」纪律。 +- UI:UIRenderer `actions` 分支已有渲染,补 onAction 桥到宿主提交(SurfaceView 转发)。 +- Frontend:SurfaceView onAction → 动作端点;确认卡复用现有 HITL 卡 UI; + 表单草稿本地态(提交前不外发)。 +- Core:优先零变更(action 绑定用服务端表,不扩 UINode 契约)。 + +## 四、明确排除(本增量不做) + +业务实体写路径、跨会话/跨项目动作、自动触发的动作(只响应用户点击)、 +动作结果自动改写页面(回执展示后由用户或 Agent 显式重组织)、 +MCP/外部 HTTP 直连、任意命令即时全开。 + +## 五、验收条件(R7 映射,实施任务的判定线) + +1. 场景 3 表单可提交、校验失败可修改重试;提交落插件台账可回读。 +2. 旧 revision / 越权 action / 重复 requestId 异参数 → 拒绝(红测矩阵)。 +3. DangerHigh 路径必须经确认卡;模型伪造 Confirmed 被拒(红测)。 +4. 用户未提交的表单字段不出现在下一轮模型上下文(测试断言)。 +5. 禁用后动作 403;A 类本地行为不受影响。 +6. 幂等重放返回相同回执(并发双击一次生效)。 + +## 六、请用户裁定的三点 + +1. **分类与范围**:A 全开、B 机制先行白名单空起步、C 限插件自有写、D 全关——是否同意? +2. **C 类边界**:插件自身写是否限定为 KV + 后台任务台账(不建新的业务事实表)? +3. **确认卡 UX**:复用现有内联确认卡(不新建审批 UI)——是否同意? + +裁定后:U5 实施按 `policy/delivery.md` 另行开任务;本文升级为已批准范围并回填裁定记录。 diff --git a/docs/proposals/INDEX.md b/docs/proposals/INDEX.md index 6314292..8d0f0dd 100644 --- a/docs/proposals/INDEX.md +++ b/docs/proposals/INDEX.md @@ -6,6 +6,10 @@ ## 先看哪一份 +待用户裁定:[Generative UI U5 动作范围提案](2026-10-11-generative-ui-u5-action-scope.md)(2026-10-11)。 +r2 U5 条款要求先评审动作范围;本文给出 A/B/C/D 分类、审批挂接(复用既有 DangerHigh 确认卡与 +幂等)、排除项与验收线,待三点裁定后 U5 实施另行开任务。 + 新增方向(已裁定取舍;U1 试验完成,r2 含结果与修订):[Generative UI 调研与插件方案 r2](2026-10-10-generative-ui-plugin.md)。 首试点为对话内完整分析页,交付采用可信编译插件;U1 试验限 MiniMax M3 + M2.7-highspeed、合成或脱敏材料、费用上限 ¥200,作为独立任务另行评审启动。 此记录独立于下方历史核验快照,不改写历史方案/PR 数量或验收结论。