V7.0 · Creative Unit Steering Layer UI mock brownfield-extend
创意单元 (creative_unit) = 用户的 preset:选 N 个素材库 ref + 一段 steer 文字。 每个 slot / run / output 都挂一个 creative_unit_id(或它的 snapshot)。 默认单元锁定 / 不可删,是所有没显式配置路径的兜底。下面 5 个 tab 是 V7.0 加进 MB 的 6 个 UI 面。
cron 抓的 hot = 公共输入池(所有人可见);用户生成的 creative / delivery = 私有产物(owner 才能看 + retry)。"公共" 单元 = system 默认 + admin 推到共享池;非 owner 私有单元绝不暴露。
📷 素材库 · 你可用的 = 自己的 + 公共





















骑士守城方向
引用素材 (3 / 12)



每个 slot 卡片新增一行 🎛 创意单元 选择器。下拉项只包含 "我的 + 公共"(绝不暴露他人私有单元)。slot 列表也按 owner 严格隔离:normal user 只看自己的 slot;admin 视角能看全部 + 知道 owner。下面 3 张卡 = 同一用户 (Susan) 的 3 种 cu 绑定态;底下加 1 张 admin 视角的他人卡。
帮我找「美国地区」最新热门搞笑视频,优先选带反转感的、有人物出镜的素材。
东南亚地区最近一周的卷轴解谜游戏热点片段。
日韩区音乐节奏游戏热门 BGM,搭配高能剪辑反应类素材。
Normal user 看不见这张卡(owner ≠ self)。admin 视角下 slot 列表显示所有人 slot + owner 列;改其他人 slot 仍需明确 confirm dialog。
短视频反应类高互动模因,亚太/拉美对比剪辑。
手动运行弹窗里新增 运行级 creative_unit snapshot 编辑 区块。继承链按 source_run snapshot → 保存 unit → slot → 默认 顺序解析。所有改动只对这一次 run 生效;要写回必须 保存为新单元(V7 strict mode,不开 save-overwrite)。换 unit / 加 ref 时只能选 "我的 + 公共"(绝不见他人私有)。这弹窗 item-retry 也复用同一份。
手动运行
挑一段流程手动跑一次。这次跑出来的不会自动接力到下一步。
创意单元(运行级快照)
运行级编辑不回写

调度表新增 单元 列:badge 显示运行用的 creative_unit 名。✦ = 这次 run 的 snapshot 偏离了当前 saved unit(用户在运行前改了 steer/refs;item-retry 改 config 也用同一个 ✦);italic 灰 = 默认 fallback;↳ retry of = item-retry 派生的 lineage marker。 严格隔离: 默认只显示 owner=self 的 run, admin 可切"全部 + owner 列"。
| 状态 | stage | slot | 单元 | Task ID | started | 结果 |
|---|---|---|---|---|---|---|
| done | creative | 8a3e9c1d… | 骑士守城方向 ✦ | ULTRA…7K6P9 | 2 分钟前 | 12 imgs |
| running | crawl_daily | d4e6f127… | 默认 (slot) | ULTRA…9N12C | 8 分钟前 | — |
| done | delivery | ab12fa9e… | 末日逃生方向 | ULTRA…5KE3J | 21 分钟前 | 1 mp4 · 24s |
| done | creative | 8a3e9c1d… | 骑士守城方向 | ULTRA…2RK4D | 1 小时前 | 8 imgs |
| failed | creative | 8a3e9c1d… | 骑士守城方向 ✦ | ULTRA…0Q2WS | 1 小时前 | tobatsu 504 |
| done | crawl_daily | ab12fa9e… | 末日逃生方向 | ULTRA…87Y3T | 2 小时前 | 9 imgs |
| done | delivery | d4e6f127… | 默认 | ULTRA…M3LF1 | 3 小时前 | 1 mp4 · 30s |
| done | creative | 8a3e9c1d… | ↳ Becca 偶像方向 | ULTRA…AB3K9 | 5 小时前 | 6 imgs |
| running | creative | 8a3e9c1d… | 骑士守城方向 ✦ | ULTRA…RTRY7 | just now | ↳ retry of ULTRA…0Q2WS |
diff vs saved: steer 已编辑(+1 行)· refs 顺序 #1↔#2
snapshot 是 run 派发时冻结的 JSONB,已发出的 task 不受后续 unit 编辑影响。
cron 抓出来的 hot 是公共输入池 — 所有登录用户都能看,作为生成 creative 的起点。但谁拿 hot 生成的 creative 归生成者私有(不再共享)。hot 卡不挂 retry 按钮(cron 产物不能重抓单条,要重新抓走 slot),只挂 用这条生成创意。
hot = 抓回来的外部素材,没有"生成参数"可以重跑。要重新抓 → 在 /slots 里调 brief 后 cron 自动跑或手动跑 slot。
只有用户生成的 creative/delivery 才有"生成时用的 snapshot",所以 item-retry 仅在那两个面有意义(看下一个 tab)。
creative 和 delivery 卡片新增 item-level retry。retry 只对 owner 可见(私有产物),会打开手动运行弹窗并预填该 item 当时的 snapshot。 改 steer/refs 后再发出 = 新 run 的 ✦ 标记 + lineage 写 retry_of_item_id / retry_of_run_id。 若该 item 缺 snapshot 或 lineage(如旧数据),按钮 disabled + tooltip 解释 "无 snapshot, 无法 retry"。
创意 card · /creative
交付 card · /delivery
- retry 只对 owner / admin 可见(私有产物,不公开 retry 入口)
- 点 retry → 打开手动运行弹窗(看 tab "手动运行"),预填该 item 当时的 snapshot(继承链优先 source_run.snapshot, 不是当前 saved unit)
- 用户可改 unit / steer / refs / 额外指令 / 输出要求, 改了就出 ✦ config 已改 角标
- 派发出的新 run 写 retry_of_item_id / retry_of_run_id / attempt_no; 原 item 不被覆盖
- 缺 snapshot 的旧 item: retry 按钮 disabled + tooltip 解释; 用户可以走 "生成新创意" 作为替代(手动选 ref/steer)