---
name: beatdesign-workspace
description: 操作本地 BeatDesign 项目中的 Canvas、Assets、生成任务、视频时间线和字幕；在用户要求创作、整理、检查或剪辑媒体时使用。
---

# BeatDesign 本地工作台

BeatDesign MCP 是结构化控制层，浏览器中的 BeatDesign 是用户审核界面；二者操作同一个本地 Project、Assets、Canvas、Timeline 和命令历史。

## 开始任务

1. 如果 BeatDesign 工具不可用，请用户在 WorkBuddy 中重试或重新安装
   Connector。若提示 3020 端口被占用，先关闭正在运行的其他 BeatDesign
   工作台，再重新连接；公共 Connector 不要求用户克隆仓库或运行 pnpm。
2. 目标项目不明确时，先调用 `bdesign_project_list`。
3. 调用一次 `bdesign_project_target` 绑定当前会话；之后可省略
   `projectId`。
4. 任务开始时调用 `bdesign_project_open`，保存返回的
   `workspaceUrl`。
5. Canvas 改动后用 `bdesign_canvas_view` 聚焦对应 `cardId`；时间线改动后用
   `bdesign_editor_view` 定位到相关时间。

如果 WorkBuddy 可以打开网页，则打开返回的 `workspaceUrl`；否则把准确链接交给用户，不要声称页面已经打开。

## 面向中文用户的沟通

- 用户用中文交流时，使用中文说明步骤和结果。把 Canvas、Assets、Editor、SRT
  分别称作“画布、素材库、剪辑页面、字幕文件”；只有用户需要识别文件格式时才补充 SRT。
- 用户第一次使用时，先说明项目和媒体保存在本机；整理素材、剪辑和预览不需要
  BeatAPI 密钥。只有用户确认远程 AI 生成或分析后，才引导其配置密钥并提交。
- 打开 `workspaceUrl` 后，请用户在中文界面核对实际画面或字幕；如果浏览器语言未
  自动匹配，可用页面右上角的语言切换器选择“中文”。不要把数据库写入成功当作用户已看见结果。
- 遇到 `Project not found`，用“没有找到这个项目，请先从项目列表选择”解释；
  遇到 3020 端口冲突，用“另一个 BeatDesign 工作台正在运行”解释。缺少
  `ffmpeg` 或 `ffprobe` 时，说明对应的尾帧提取或完整时间线渲染暂不可用，
  再给有需要的用户安装路径提示，不要把原始报错直接当成最终答复。

## 安全修改

- 修改前读取当前 Canvas 或 Editor 状态。
- 只使用带稳定 ID、revision 和幂等键的增量操作，不覆盖完整 Canvas 或 Timeline。
- 返回 `retry` 时，读取最新状态后按说明重试一次，不循环重试。
- 本地媒体先通过 `bdesign_asset_import` 导入，再放进 Canvas 或 Editor。
- 生成结果先成为 Project Asset；是否放进 Canvas/Editor 是下一步操作。

## 字幕

- 完整 SRT 文件或文本优先使用 `bdesign_editor_import_srt`；单条调整才使用
  `bdesign_editor_edit` 的 `upsert_caption`。
- SRT 校验失败不会改变原字幕。报告解析错误，不要清空或部分覆盖字幕轨。
- 导入后用 `bdesign_editor_view` 停在第一条相关字幕，让用户检查文字、时间、换行和预览效果。

## 尾帧续写

- `bdesign_canvas_continue_from_tail` 使用一个稳定 command ID；传输结果不确定时复用同一 ID，避免重复创建帧 Asset 或续写节点。
- 提交生成前，先调用返回的 review tool，让用户检查抽取帧和续写节点。
- 若提示缺少 `ffmpeg`，请用户把它加入 BeatDesign MCP 进程的 `PATH`，或设置绝对路径 `BEATDESIGN_FFMPEG`；环境未改变前不要重复调用。
- 抽帧和放置节点是本地操作；返回的生成请求是单独的远程付费动作，只有用户明确授权后才能提交。
- 生成成功只会创建 Asset。用 `bdesign_canvas_apply` 把输出更新到返回的生成卡片，再调用 `bdesign_canvas_view` 聚焦它。

## 导出权威时间线

- 用户明确授权导出后，先调用 `bdesign_editor_get`，再使用返回的 revision 调用 `bdesign_editor_render`。结果是项目内 MP4 Asset，包含可见 Clip、图片 Overlay、烧录字幕和混合音频。
- 若提示缺少 `ffmpeg` 或 `ffprobe`，请用户把两者加入 MCP 进程的 `PATH`，或设置绝对路径 `BEATDESIGN_FFMPEG` 和 `BEATDESIGN_FFPROBE`；环境未改变前不要重复调用。
- 会影响画面的时间线修改会让上一版当前导出失效，但不会删除历史 Asset。若导出期间时间线发生变化，先读取最新 revision，再询问用户是否重新导出。

## 完成标准

写入后核对返回的 revision 和变更 ID，再调用对应 view tool。Canvas 和 Editor 当前通常会在约两秒内或页面重新聚焦时读到 Agent 修改。最终提供准确的 `workspaceUrl` 供用户审核；仅有数据库 revision 不代表用户已经看到结果。

未获明确授权时，不要导出、提交付费生成或额外创建多个版本。
