Rule builder — 融合方案:句式构建器(创建)+ 规则卡片(管理)+ 高级表单兜底
真实任务不变:教师新增「学生丄004 与学生丌012 不要坐在一起(距离 ≥ 2)」,并管理现有规则。创建与管理正交分层:句式负责"新建",卡片负责"管理",高级表单兜底复杂组合;规则 JSON 仅只读查看(PD-D3-ADJ-1)。
不可违反约束:规则参数 schema 唯一来源为 Rust RuleSpec/metadata(§7.3);UI 不得自编译规则(M6 删除项);未知学生/座位、字段缺失、明显冲突须即时发现;生成前可查看 feasibility summary;JSON 禁止编辑(仅只读,PD-D3-ADJ-1)。
✓
融合目标形态
左:规则卡片列表(管理:启用/停用、权重、排序、编辑、删除);右:句式构建器(新建入口,预置句式模板);「高级」按钮展开分层表单;「查看规则代码」为只读 JSON。
localhost:8765/class-302/rules
HARD违反 = 方案不可用1 条启用
学生丁001(STU001)→ 座位 R1C1 · Rust 编译校验通过
SOFT 目标权重驱动优化方向1 条启用
权重 20
「需要前排」的学生安排在教室前排 · 4 名学生命中
权重 10
停用中 · 需历史快照才能评估(当前班级无历史)
新建规则句式模板
学生距离固定座位标签分组区域成绩平衡历史目标
HARD
让选择学生…
与选择学生…
的距离≥(座)
+ 条件
等待编译
— 未填写完整,尚不能编译 —
试一下:点击句中的「选择学生…」槽位填充规则;点「高级…」展开分层表单;点「查看规则代码(只读)」看 JSON。
来自 A句式构建器作为创建入口:自然语言表达,槽位值来自 Rust 注册表
来自 B(合并)规则卡片作为管理视图:启用/停用、权重、排序、编辑、删除——与句式互补而非重复
来自 C高级表单兜底复杂组合;JSON 只读查看(PD-D3-ADJ-1)守住校验边界
| 设计要点 | 说明 |
|---|---|
| 创建/管理分层 | 句式 = 新建入口(预置模板:学生距离/固定座位/标签分组/区域/成绩平衡/历史目标);卡片 = 管理视图。原变体 B 的混淆已消除(设计缺陷记录在案) |
| 高级兜底 | 句式表达不了的组合条件 → 「高级…」分层表单(字段由 Rust registry 驱动,非自由 JSON) |
| JSON 策略 | 只读查看(PD-D3-ADJ-1);若未来开放编辑需重新过 Decision Gate |
| schema/API 影响 | 无新 API;需要 Rust metadata 暴露"句式模板 → RuleSpec 参数槽"映射;i18n 文案资产 |
待验证(dogfood):
- 预置句式模板清单与 Rust registry 对账
- 高级表单字段组织(组合条件 AND/OR 的呈现)