用途
本技能用于创建和管理 MotherDuck Dives,覆盖新建、编辑、发布、分享与嵌入等交付路径。它面向需要以 React 与 SQL 运行时构建数据可视化或交互式数据界面的场景。
主要能力
- 按任务类型分类:新建 Dive、编辑现有 Dive、Dives-as-code 工作流、团队分享或嵌入。
- 在可视化前先用 motherduck-explore 和 motherduck-query 验证底层 SQL 与 schema。
- 使用 React + useSQLQuery 组件契约构建 Dive,包含默认导出、支持的运行时库、显式的加载/空/错误状态,且不在浏览器端放置密钥。
- 支持本地预览与热重载(在环境支持时),保存前先预览。
- 通过 save_dive、update_dive 或 deploy 保存或部署,并回读 URL、版本与状态。
- 支持 Dives-as-code 布局、元数据、CI 预览与部署脚本,参考官方示例仓库。
- 支持使用 Dives SQL 函数进行脚本化的 SQL 原生增删改查工作流。
- 支持分享与嵌入:嵌入 Dive 适用于需要实时只读 Dive 界面并由后端创建嵌入会话的产品;当需要自定义 API 契约、写入、非 Dive 路由、租户策略或更丰富授权时,转向 motherduck-build-cfa-app。
使用方式
- 选择请求的交付路径:工作区 Dive、现有编辑、Dives-as-code、分享或嵌入,仅遵循该路径。
- 先探索实时 schema 并验证核心 SQL。
- 若 MCP 可用,调用 get_dive_guide,然后设计故事、分区、交互与主题。
- 构建或编辑 Dive 组件,尽可能使用本地预览/热重载。
- 在查询、加载状态、所需资源与视觉行为正确后,再调用 save_dive、update_dive 或 deploy。
- 回读生成的 URL、版本与状态。若交付包含发布,则通过可写路径将已验证的 Draft 提升为 Ready。
- 若队友或应用用户需要访问,显式配置底层分享或嵌入会话流程。
适用场景
- 需要创建或编辑 MotherDuck Dive 的数据可视化任务。
- 需要以 Dives-as-code 方式管理 Dive 源码、元数据与 CI 预览。
- 需要将 Dive 分享给团队或嵌入到产品中作为实时只读界面。
- 需要脚本化 SQL 原生 CRUD 工作流而非 MCP 工具。
限制与约定
- 以当前 MotherDuck Dive 文档为准;在生成 Dive 代码前以及 save_dive 或 update_dive 前,若 MCP 可用必须调用 get_dive_guide。
- 新建 Dive 默认为 Draft;仅在请求的交付包含发布时才提升为 Ready;只有管理员可标记 Endorsed,智能体不得自我背书。
- 复用现有工作时优先选择 Endorsed,其次 Ready;Archived Dive 已退役,默认从智能体列表中排除,除非明确请求。
- 编辑现有 Dive 前先读取当前内容与版本元数据;MCP list_dives 返回 current_version,read_dive 可获取历史版本。
- 保持 Dive 查询完全限定且以 SQL 为主,让 React 负责展示而非数据重塑。
- 优先每个视觉分区或交互面使用一个查询,而非一个巨大的跨用途查询。
- 本地预览使用 REQUIRED_DATABASES 时,保持导出一行,并在元数据或保存/更新输入中镜像真实分享依赖,避免与现有数据库名冲突的别名。
- 对现有 Dive 的局部编辑保留其视觉系统;新 Dive 选择适合受众的具体主题方向。
- 嵌入前需验证当前套餐权益,不要凭记忆保留套餐名称或可用性声明。
- 共享仓库或 CI/CD 使用服务账号令牌,避免 Dive 所有权绑定到单个用户。
- 对于回答、审查或规划请求,停在请求的设计或代码产物;对于创建、更新或部署请求,将请求范围内的操作推进到预览与验证;破坏性替换或未授权的更广泛外部发布前需询问。
- 相关技能仅在缺少能力时加载:motherduck-explore、motherduck-query、motherduck-design-dive、motherduck-build-dashboard、motherduck-build-cfa-app、motherduck-cli、motherduck-manage-guides。
- 参考文档 references/DIVE_DESIGN_GUIDE.md 涵盖编写工作流、useSQLQuery 机制、Dives-as-code、编辑/版本历史、分享、嵌入、SQL 函数、主题提示、图表选择规则、加载/错误状态、布局模式与实现注意事项。