review-board-v1 — WorkBuddy 视频素材审核面板
核心规则
严禁自动猜测、创建临时路径、或使用虚假/模拟数据生成审核面板。 一切操作必须基于用户明确指定的真实工作区路径。没有用户提供的路径,绝不擅自生成 HTML。
交互流程
技能被触发后,按以下三步走:
第一步:获取工作区路径(必须)
向用户询问素材所在的工作区路径。提供以下选项:
> 请提供待审核素材所在的工作区路径:
> - 如果已经设置过,直接输入「继续」沿用上次的工作区
> - 如果是新工作区,请输入完整路径(如 <your_workspace>)
> - 也可以把原始视频素材文件夹拖进来
拿到路径后:
1. 检查该路径下是否已有 review_config.json(说明已 setup 过)
2. 如果没有,先执行 setup <路径> 初始化 SOP 目录结构
3. setup 完成后,告知用户目录结构已就绪,原始视频应放入 00_Inbox/
第二步:扫描 & 生成审核面板
工作区就绪后:
1. 执行 scan 扫描 02_PendingReview/
2. 执行 generate 生成 review_board.html
3. 用 present_files 打开 HTML 预览给用户
如果 02_PendingReview/ 为空,面板显示"暂无待审素材"并提醒用户先处理 00_Inbox/ 中的原始视频。
第三步:用户审核 & 执行
用户在面板中查看视频+文案,用自然语言下指令。WorkBuddy 解析指令后调用 approve / reject 命令执行文件移动。
常见审核指令示例:
- "全部通过" → 每个素材选默认变体(v1)通过
- "通过 beach_sunset 的 v2, machine_demo 的 vp1"
- "打回 factory_tour,原因:画面抖动严重"
- "素材1通过v1, 素材2和3全部打回, 素材4的v3通过"
命令清单
| 命令 | 说明 | 依赖 |
|---|---|---|
setup <workspace_path> |
初始化工作区目录结构 + 保存配置 | 用户提供路径后执行 |
scan |
扫描 02_PendingReview,输出 JSON | 必须先 setup |
generate |
生成审核 HTML → workspace 根目录 | 必须先 setup |
approve <name> <variant> |
通过指定变体 → 移入 03_Approved | 用户审核指令驱动 |
reject <name> [reason] |
驳回素材 → 移入 03_Rejected | 用户审核指令驱动 |
batch <json_file> |
批量执行审核决定 | 高级用法 |
plan |
输出专家发布排期方案 | 必须先 setup |
所有命令通过 python skills/review_board/scripts/run.py <command> 执行。
工作区目录结构
setup 后自动创建:
<workspace>/
├── 00_Inbox/ ← 原始视频素材(用户放素材的地方)
│ └── _done/ ← 已处理素材归档
├── 01_ClipOutput/ ← 视频处理中间输出
├── 02_PendingReview/ ← 待人工审核(video.processor 处理后产出)
│ └── <素材名>/
│ ├── clip_v1.mp4 ~ clip_v3.mp4
│ ├── clip_vp1.mp4 ~ clip_vp3.mp4 (横版/方版才有)
│ ├── caption.json
│ ├── .sop_meta.json
│ └── frames/
├── 03_Approved/ ← 审核通过
├── 03_Rejected/ ← 审核驳回
├── 04_Published/ ← 已发布记录
├── review_board.html ← 生成的审核面板
└── review_config.json ← 技能配置(setup 时生成)
审核面板功能
生成的 HTML 面包含:
- 素材列表 — 每个 02_PendingReview 中的素材一张卡片
- 变体对比 — 3 个变体(v1/v2/v3)并排展示,含视频播放器 + AI 文案
- 竖版垫黑边区 — 横版/方版素材的 vp1/vp2/vp3 单独展示
- 打回区域 — 每个素材底部有原因输入框 + 全部打回按钮
- 一键操作 — 一键全选默认、一键全部打回
- 审核指令生成 — 点击复制后粘贴到 WorkBuddy 执行
- 专家发布面板 — 底部自动编排已通过素材的发布日程