figma-like mock
Template 版本管理 UI
一张画布里放完整交互。受保护模板从 test 发 prod;未保护模板直接发新 prod。两条路都锁 Skill 版本。
01 / Template 列表/templates
Templates
先看保护状态和当前版本锁了哪些 Skill。
mai_combo_prod v42
受保护test=mai_combo_test
runner v14 / burn v18 / omnihuman v7
从测试发布详情
mai_combo_test v13
测试模板
runner v14 / burn v18 / omnihuman v7
编辑测试版本
simple_clip_prod v8
未保护
ffmpeg v5 / uploader v3
直接发新版本
02 / 受保护正式模板prod readonly
mai_combo_prod v42
正式版只读。不能在这里改内容,也不能改 Skill 版本。
protected=true test_template=mai_combo_test
编辑正式版
打开测试模板
从测试发布新版
v42 锁定 Skill
| Skill | 锁定 | 最新版 |
|---|---|---|
| mai-combo-runner | v14 | v14 |
| subtitle-burn-rendi | v18 | v20 |
| omnihuman | v7 | v7 |
03 / 测试模板编辑test v13 -> v14
mai_combo_test v13
在测试模板里改内容,选择这次要锁的 Skill 版本。
Skill
当前
这次
mai-combo-runner
v14
v14
subtitle-burn-rendi
v18
v20
omnihuman
v7
v7
保存草稿
保存为 test v14
04 / 未保护正式模板direct prod publish
simple_clip_prod v8
未保护模板可以直接从正式页发布新版本,但也不能覆盖旧版。
protected=false这次发布锁定 Skill
Skill
当前
这次
generic-ffmpeg-rendi
v5
v6
asset-uploader
v3
v3
保存草稿
发布 simple_clip_prod v9
05 / 发布确认test -> prod
发布新的正式版本
mai_combo_test v14 -> mai_combo_prod v43
Template 差异
- subtitle.enabled 改为 true
- stage 改为 final_render
- prompt 更新 3 行
Skill 差异
| Skill | prod | new |
|---|---|---|
| runner | v14 | v14 |
| burn | v18 | v20 |
| omni | v7 | v7 |
发布后
创建 mai_combo_prod v43。旧版 v42 保留。
取消
确认发布
所有版本都显示“锁定 Skill 版本”。不要让用户猜现在跑的是哪个 Skill。
共同规则:不管哪条路,都只创建新 Template 版本,不覆盖旧版本。
这就是合成后的一个 UI board:左边进列表,受保护模板走上面的 test -> prod;未保护模板走下面 direct prod。最终都创建新 Template 版本,并记录 Skill 版本。