mcpField
C
canva-implement-feedback

canva-implement-feedback

github.com/canva-sdks设计与 UI138261 次安装5 天前更新
代码仓库

关于 canva-implement-feedback

用于处理 Canva 演示文稿评审意见的技能,可汇总反馈并执行 API 支持的修改。它在一次审批后应用改动,并列出需要手动处理的事项。

主要功能

  1. 01读取评论线程和设计文本
  2. 02分类可执行、需手动处理及已解决的反馈
  3. 03汇总修改计划并仅请求一次审批
  4. 04应用支持的修改并提交更改
  5. 05列出剩余手动修改事项

适用场景

  1. 01根据评审意见修改 Canva 演示文稿
  2. 02识别相互矛盾或含糊的审阅请求
  3. 03区分 API 可执行修改与手动任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/canva-sdks/canva-skills --skill canva-implement-feedback

安装后在 Claude Code 中输入/canva-implement-feedback确认已加载。

详细介绍

从反馈到完成

一份演示文稿已提交审核——利益相关者在各张幻灯片上留下了零散的评论。这项技能会读取所有评论串,总结审阅者的实际需求,直接完成明确的修改,并标记任何含糊之处,留待人工决策。

Canva Editing API — 可以做什么和不能做什么

在分类反馈之前,你 MUST 了解以下限制。这样可以避免与用户来回沟通那些无法通过 API 实现的修改。

API 可以做什么(通过 perform-editing-operations)
  • 文本内容:替换整个文本元素(replace_text)、查找并替换子字符串(find_and_replace_text)
  • 文本格式:字体大小、字重(粗体)、字体样式(斜体)、文本颜色、文本对齐方式、行高、文本装饰(下划线)、删除线、链接、列表格式
  • 媒体:替换图片/视频(update_fill)、插入新图片/视频(insert_fill)、删除元素(delete_element)
  • 布局:重新定位元素(position_element)、调整元素大小(resize_element)
  • 元数据:更新设计标题(update_title)
API 不能做什么
  • 更改字体系列/字型——仅支持调整大小、字重和样式
  • 添加新的文本元素——只能插入媒体(图片/视频),不能添加新的文本框
  • 更改背景颜色或渐变
  • 添加、删除或重新排序页面/幻灯片
  • 修改动画或转场
  • 更改元素不透明度(新插入的填充内容除外)
  • 对元素进行分组/取消分组
  • 修改形状(颜色、边框等)——只能编辑形状内的文本
分类规则

如果评论要求执行“不能做什么”列表中的操作,将其归类为需要手动处理。不必反复解释限制——只需在摘要中简要说明,然后继续处理。这种情况很常见;大多数设计审核都会同时包含 API 支持的修改和需要手动完成的修改。手动修改的具体信息留到最后的手动修改清单中(第 7 步)。

工作流

第 1 步:解析设计
  • 如果用户提供了短链接(canva.link),调用 Canva:resolve-shortlink 获取设计 URL
  • 如果用户提供了完整的 Canva URL,从 URL 中提取设计 ID
  • 如果用户直接提供了设计 ID(通常以 D 开头,例如 DABcd1234ef),将其用作 design_id;不要对原始 ID 使用 Canva:search-designs
  • 否则,询问用户提供设计 ID 或链接
第 2 步:读取所有反馈
  • 使用设计 ID 调用 Canva:list-comments,获取所有评论串
  • 对于包含回复的评论串,调用 Canva:list-replies,获取完整对话
  • 调用 Canva:get-design-content,读取每一页上的当前文本
第 3 步:分类反馈

将每条评论串归入以下类别之一:

  • 可执行——API 支持且你能够合理解读的修改。运用最佳判断:如果评论说“让标题更有冲击力”,就改写标题,使其更有冲击力,而不是标记为含糊;如果评论说“调整间距”,就查看设计内容并进行合理调整。只有在确实无法判断审阅者的意图时才向用户确认(例如,两位审阅者直接提出相互矛盾的要求,或者评论提到的内容无法在设计中找到)。
  • 需要手动处理——审阅者要求执行 API 无法完成的操作(更改字体系列、添加新的文本元素、更改背景、重新排序页面等)。在摘要中简要说明——完整详情放入手动修改清单(第 7 步)。
  • 已解决——问题已处理、已明确标记为完成,或只是正面确认(例如“LGTM”“看起来不错”)

按类别向用户提供摘要:说明计划进行的修改、需要澄清的事项、必须手动完成的事项,以及将跳过的事项。

步骤 4:获取用户批准——仅一次
  • 呈现计划并等待用户批准
  • 如果用户希望调整,请更新计划并再次确认

这是整个工作流中唯一的确认环节。用户一旦同意,立即执行。

步骤 5:应用并提交更改

不要再次询问用户。 用户已经批准。立即按顺序执行以下所有操作:

  • 调用 Canva:start-editing-transaction 开始编辑会话
  • 调用 Canva:perform-editing-operations 执行每项已批准的更改(尽可能在一次调用中批量处理所有操作)
  • 调用 Canva:commit-editing-transaction 保存——不要询问“要提交吗?”或“可以保存了吗?”
  • 向用户展示编辑响应中的缩略图作为确认
步骤 7:列出剩余的手动更改

提交后(或无法通过 API 执行更改时),在 Canva 编辑器中清晰列出所有仍需手动完成的事项:

## Changes to make manually in Canva

1. **Slide 3 — Change heading font to Montserrat**
   Reviewer: @Sarah | Why: API cannot change font family
   → Open slide 3, select the heading, change font to Montserrat

2. **Slide 7 — Add a new text box for the disclaimer**
   Reviewer: @James | Why: API cannot add new text elements
   → Add a text box below the chart with: "Source: Q3 2025 internal data"

3. ...

列出幻灯片编号、要更改的内容、提出请求的人,以及分步说明,方便用户快速完成。

步骤 8:处理评论串
  • 提交后,对每个需要处理的评论串调用 Canva:reply-to-comment,说明已更改的内容
  • 对于“需要手动操作”的评论串,回复说明已采取的最接近的替代方案,以及仍需手动处理的事项
  • 这样可以完成反馈闭环,让审核者了解他们的评论已得到处理

规则

  • 积极提供帮助,不要过于谨慎——尽可能宽泛地理解反馈并尽力修改,而不是将其标记为“含糊不清”后放弃。用户随时可以在批准环节拒绝你的更改。
  • 只有在确实无法理解意图时才向用户确认——例如两位审核者直接提出相互矛盾的意见,或评论提及了设计中找不到的内容
  • 审核者意见不一致时,呈现双方的观点并让用户决定
  • 呈现计划更改的摘要并等待一次批准——此后无需再次确认,直接执行所有操作
  • 绝不要询问“要提交吗?”、“可以保存了吗?”或类似问题——用户最初的批准涵盖整个编辑和提交流程
  • 手动更改很常见,也在预期之内——不必过度解释或为 API 限制道歉,只需在清单中列出
  • 批量操作:使用一次包含多项操作的 perform-editing-operations 调用,而不是每项更改调用一次

评论

支持 Markdown