Communitygithub.com

aurumiles/Skill

SKILL CAROSELLI CANVA — 在 Canva 中为 @aurumiles 创建 Instagram 轮播图(create-design / copy-design #8),设计风格由 Davide 于 2026 年 9 月 24-25 日确定:使用 Anton/Roboto/OpenSauce 字体,金色配黑色,封面仅使用一张 Davide 的真实照片。仅在 Davide 明确要求“在 Canva 中”或需要克隆/调整已在 Canva 中完成的轮播图时使用。对于课程风格的轮播图(红底黑字、Oswald 字体、由 Claude 在此处制作),请使用 `caroselli-claude` 技能。

Skill 是什么?

此技能用于在 Canva 中为 @aurumiles 生成 Instagram 轮播图(carousel)。它定义了一个完整的从创意到交付的工作流程,利用 Canva 的 `create-design` 和 `copy-design` API 进行图形制作。工作流程包括:编写包含指定风格(黑底金色、骑士/罗马主题、特定字体)的详细设计简报;异步处理设计生成;以及严格的质量控制阶段,以检查并修复常见问题,如页面顺序错误、缺失幻灯片、文本幻影(由于文本被渲染到背景图像中)、图层顺序、页码、字体一致性和封面图像替换。最后一部分包括添加标准的行动号召(CTA)幻灯片、导出 PNG、保存到本地目录,并在最终定稿前发送预览以供审核。该技能强调了手动检查和修复的必要性,因为 AI 生成的设计通常包含缺陷。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aurumiles/Skill/tree/HEAD/caroselli-canva

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Caroselli Canva(原 carosello-aurum)

自 2026 年 10 月 13 日起,Davide 更喜欢第 1 课幻灯片风格,并希望在所有轮播图中复制这种风格:这些轮播图应使用 caroselli-claude 技能(无需 Canva)制作。此技能仅保留用于 Canva 中的轮播图。

取代了旧方法(手动复制 Canva 模板,在照片+深色条带上使用 Anton 字体)。该旧风格仍可作为 Reel 封面的参考风格([[copertine-reel]]),但不再用于轮播图。同时也取代了全局技能 ig-carousel(Higgsfield/Nano Banana):该技能会生成 AI 图像并将文本直接嵌入其中,这不再是我们的工作流程。

在打开此技能之前,内容(文本、研究、语气)应按照 [[caroselli]](记忆/维基)中的描述进行准备:向 Davide 提出 5-6 个问题,核实真实研究,使用“你”称呼 Davide 并始终保持客观(从不使用“我”)。此技能从该步骤出发,仅负责图形制作。

为什么使用此方法而不是旧方法

edit-design(用于制作 Reel 封面的工具)是外科手术式的:它修改已存在的元素,不能为新内容选择字体或布局。create-design 则不同:你向它发送一个书面简报,Canva 自身的 AI 引擎(与“Magic Design”所用引擎相同)会决定字体、布局、图标、层级结构——而不是手动完成。结果是一个真正的设计,每张幻灯片都有不同的图形(准星、巨大数字、清单、编号圆圈),而不是拼贴画。代价是:总是带有需要检查的缺陷——因此下面的第 4 阶段并非可选项。

第 1 阶段 — 简报

一个单一的文本简报(非结构化大纲——那仅适用于 design_type: presentation,这里我们不使用),包含:

  • 格式:"Instagram Post"(提供 4:5 比例,1080x1350 像素——已在项目中确认)。
  • 语气:温和的骑士/罗马风格,2026 年 9 月 25 日与 Davide 共同确定——角斗士/斯巴达风格是健身/格斗领域最泛滥的陈词滥调(Gladiator Gym Gear、Spartan Race……),骑士风格使用较少,且与 [[cammino-guerriero]] 中已写的内容一致(宫本武藏/武士道 = 个人准则,而非大众军团纪律)。尚未 100% 确定 — Davide 表示他喜欢两种风格,并希望随着时间的推移找到“合适的组合”:如果距离上次使用间隔时间不长,请确认;否则,继续使用相同的组合(Anton/Roboto/OpenSauce 字体,金色配黑色,不出现明确的头盔/盾牌/短剑,仅使用像罗马数字这样的低调细节)。
  • 颜色:黑色/深灰色背景,白色文本,仅使用一种浅金色强调色(范围 #c29342–#d8af54,每张幻灯片之间略有变化,因为由 AI 生成——这不是 bug,无需统一)。
  • 照片:仅封面包含一张照片(Davide 于 9 月 24 日决定:其他幻灯片保持图形/排版形式,无照片——这样无需处理多个不同的图像)。在简报中写明“仅封面包含一张照片……其他 7 页为图形/排版形式,无照片”。
  • 结构:将每张幻灯片列为 第 N 页:...,并包含标签、标题、正文以及引用研究的斜体注释。最后一张幻灯片是带有“保存”CTA(图标 + 两行文本,见第 4 阶段)的结尾页。
  • 滚动指示器:在所有页面上(除最后一张外)请求一个页面指示器“1/8”…“8/8”以及一个箭头(它会默认提供,然后在第 4 阶段转换为罗马数字)。
  • Logo/账号:每页上放置一个小的、低调的“AURUM MILES”。

使用此简报调用 create-design,并附带简短 user_intent,无需 outline(我们使用 Instagram Post 格式,而非 Presentation)。

第 2 阶段 — 等待生成

create-design 是异步的:它返回一个 job_id + continuation_token 以及一个 status: pending。

  1. 在首次轮询前等待 polling_policy.wait_seconds(通常 10-15 秒)。
  2. 使用 job_id + 最新的 continuation_token 调用 get-create-design-async-job。
  3. 重复直到 status: completed — 通常需要 4-6 轮,不要缩短等待时间(相同的响应会重复返回,不会加速任何东西)。使用 Bash 命令配合 sleep 进行等待,而不是连续快速调用。
  4. 结果会返回 design.id 和 design.url — 这就是需要检查和纠正的轮播图。

第 3 阶段 — 质量控制(始终执行,无例外)

在向 Davide 展示任何内容之前,读取所有页面(使用 read-design,design_content 不带 page_indices 可一次性查看所有文本)并检查:

a) 页面的物理顺序

生成器有时会按照与每张幻灯片上写的(“N/8”)不同的顺序创建页面。将每页的文本与其携带的标签进行比较;如果某张幻灯片位置错误,请使用以下命令重新排序:

merge-designs, type: modify_existing_design, operations: [{type: move_pages, from_page_numbers: [N], to_after_page_number: M}]

每次调用仅执行一个操作 — 该工具会拒绝批量操作。

b) 缺失的幻灯片

生成器有时会跳过简报中的一页(已经发生过:7 页而不是 8 页,缺少了结尾页)。如果缺少:

  1. copy-design 复制结构上最相似的页面(例如,最后一个“修正”页面用于结尾页,而不是像“01”这样带有主题特定数字幻影的页面)。
  2. 使用 replace_text 在现有的定位器上重写文本(切勿为标题使用 add_text — 这会导致丢失生成器选择的字体,请参见下面的技术说明)。
  3. 使用 delete_element 删除不再需要的装饰元素(例如,如果变为 CTA,则删除清单图标行)。
  4. 插入最终的 CTA(图标 + 两行文本,见下文)。
  5. 使用 merge-designs → insert_pages 将页面重新插入到正确位置。

c) 背景中的“幻影”文本

此生成器的一个反复出现的 bug:原始文本(在任何 replace_text 之前)有时会“烤”入页面的背景图像中,而不仅仅存在于可编辑的文本元素中——替换文本并不能使其从渲染中消失。它看起来像一道微弱的水印,位于标题或正文后面。 修复方法:insert_shape 使用一个实心矩形(路径 M0,0 H<w> V<h> H0 Z),颜色接近页面黑色(#0e0e0e 或 #131110 均可),放置在整个受影响的区域之上——然后始终在该同一定位器上使用 layer_element 配合 position: "back",这样补丁位于光栅背景之上,但位于标题/正文/徽章(它们仍然是独立的、可见的元素)之下。如果幻影继续在较低位置(例如,靠近列表处)可见,请使用 resize_element 扩大补丁,直到没有痕迹为止——在将其视为已关闭前,始终通过渲染进行检查。

d) 一般的层叠顺序(z-order)

每个新元素(insert_shape、add_text)始终插入到最顶层(位于所有内容之前)。如果你添加了必须位于现有文本之后的内容(例如上述补丁),则始终需要在之后使用 layer_element: back。相反,如果一个现有元素(徽标、标题、页码)位于你添加的内容之后,请对其使用 layer_element: front。

e) 罗马数字页码

生成器生成“1/8”、“2/8”……将其替换为“I / VIII”、“II / VIII”……最后一张幻灯片为“VIII / VIII”。罗马数字文本更长:几乎总是需要加宽文本框(使用 resize_element,宽度增加 +100/150 像素)并重新定位到左侧(使用 position_element),以免侵入旁边的箭头图标——始终在同一页上检查箭头图标左侧的位置,并将数字框放置在其左侧紧邻的位置。最后一张幻灯片没有箭头(没有更多内容可以滚动):仅保留“VIII / VIII”,无需其他操作。

f) 字体一致性

生成器为不同元素分配不同的字体。我无法为新元素或现有元素选择字体——没有操作允许这样做(format_text 只能更改大小/粗细/颜色/斜体,不能更改字体系列)。唯一的方法:Davide 在 Canva(使用 edit_url 链接)中选择文本,并手动选择字体,对每个元素操作一次;然后我可以通过 replace_text 在其他元素上重复使用该字体,replace_text 始终保留目标元素的字体。如果新轮播图中的幻灯片字体不一致,这是正常的——请让 Davide 像以前一样迅速过一遍(标题用一种字体,正文用另一种,小标签用第三种),然后你手动调整大小/间距。

g) 封面图片

如果 Davide 发送了他本人的照片:create-upload-url(不要使用 upload-asset-from-url,它需要一个公开 URL)→ 直接向收到的唯一 URL 发送一个 POST 请求(包含文件)→ mediaId → 在封面的照片矩形上使用 update_fill。Canva 的自动裁剪对于垂直或正方形照片通常效果不错;在手动使用 crop_media 进行调整之前,先通过渲染进行检查。其他幻灯片保持无照片状态(见第 1 阶段)。

第 4 阶段 — 最终 CTA(结尾幻灯片)

与 Davide 确定的标准(2026 年 9 月 22-25 日),每次需要相同地重现:

  • 书签图标(insert_shape,路径 M0,0 H34 V44 L17,30 L0,44 Z,金色)位于 CTA 第一行的同一行上,而不是上方。
  • 第 1 行(操作,例如“在下次实战训练前保存它。”):大写、加粗、非斜体、金色。
  • 第 2 行(额外信息,例如“发送给下次需要上场的人。”):首字母大写,其余小写、斜体、相同金色——稍浅一些。注意文本:不要过度限制目标受众(例如,不要写成“第一次上场的人”,如果消息需要适用于任何重返拳台的人,而不仅仅是初学者——这取决于具体内容,如果初稿看起来范围太窄,请询问 Davide)。
  • 块与上方的段落之间使用真正的垂直间距(约 150 像素) 分隔,而不是紧贴在一起——否则它看起来像是同一句话的延续。
  • 两行 = 两个不同的文本元素(而不是在一个元素中使用 \n),因为每一行都有不同的格式。

第 5 阶段 — 交付

  1. export-design,格式为 png,width: 1080, height: 1350,不带 pages(一次性导出所有页面),在第 3 阶段完成后进行。
  2. 下载每个 PNG 并将其保存到 Caroselli elaborati/AAMMGG_Titolo/1.png … 8.png(与文本文件 slide_、caption_、note_ 相同的文件夹——请参见 [[caroselli]] 和 [[produzione-contenuti]])。
  3. 在将其视为最终版本之前,向 Davide 发送一个联系表或 8 幅图像——总会有修改轮次,不要假设首次导出即获批准。
  4. 发布前检查:统计导出的 PNG 数量(N),并在交付消息中明确提醒 Davide,在点击发布前检查是否所有 N 张幻灯片都已排队上传到 Instagram(例如:“共 N 张幻灯片,文件 1.png...N.png — 请在发布前确认它们都已存在”)。这种情况已经发生过(轮播图 #8),由于上传时遗忘,一张幻灯片被遗漏,而无人发现——虽然后来并未影响效果,但这是一个零成本的检查。
  5. 仅在获得 Davide 的同意后:在 memoria/wiki/log.md 中记录日志,并更新 [[caroselli]] 的状态。

布局标准 — Davide 于 2026 年 10 月 2 日在 #12 中确定(从现在起适用于每个轮播图)

在克隆 #8 之后(见下文),Davide 在 Canva 中手动修正了一系列细节,这些细节在每张“带标题”的幻灯片(标签 + 罗马数字 + 顶部箭头,例如“技术 N”)上是相同的。以下是可以立即应用的固定尺寸/标准,无需每张幻灯片重新发现:

  • 罗马数字与标签对齐:罗马数字的 top 应与旁边标签(“技术 2”、“为什么”等)的 top 重合(或近乎重合),而不是单独偏高或偏低。同一行,同一视觉高度。
  • 箭头:字体大小 ~32-36px,颜色始终为 #c29342(标准金色,见下文)。箭头应位于罗马数字之后,间距干净利落(约 15-20px),不要紧贴在一起。
  • 标题下方的水平分隔线:当存在时(标签下方有线条的幻灯片),应使其几乎达到全宽(大约 560-930px),而不是短线段——在标签+数字整个块下方整齐地切断,而不仅仅是在标签下方。
  • 正文加粗:正文(非标题,非引用)应使用 font_weight: bold,而不是 normal/medium——在黑色背景上更饱满、更易读。连续的短段落(例如“句子 1:” + “句子 2.”)可以合并为一个文本元素,而不是分开保留,如果在逻辑上它们是一个断成两行的句子。
  • 白色绝非纯白:在所有白色文本和“Aurum Miles”徽标上,将 #ffffff 替换为 #f1f1f1——与黑色相比稍微不那么刺眼。
  • 最终 CTA(图标 + 2 行):保存图标和第一行文本(“保存...”)共享相同的 top(相同行,而不是图标在上、文本在下),图标右边缘与文本开头之间有约 25-30px 的水平间距。

已确认的 Bug:resize_element 对图像填充图标的影响

我方无法解决:通过 API 调整带有图像填充的图标(箭头、徽章)的大小会进行裁剪而不是缩放(请参见 [[caroselli]] 中的说明)。当需要更小的箭头/图标时,不要使用 resize_element:要么保持其原生大小并调整位置,要么——如果 Davide 在 Canva 中手动修复——要注意,在那里调整大小效果良好(真正的编辑器可以正确缩放内容,只有 API 操作存在此 bug)。出现此类问题的具体迹象:一个靠近带有 textAlign: end 的文本的元素出现“翻转”现象——很可能是一个破碎的图标片段叠加其上,而不是文本本身的 bug。

技术杂项说明(无需每次重新发现)

  • merge-designs:每次调用仅执行一个操作,始终如此。
  • resize-design(旧方法中与 Canva 模板配合使用的那个)受到试用/有限使用限制——在此工作流程中不再需要,create-design 已经以正确的格式生成。
  • 如果需要保留一个版本的 p

…

[因翻译而截断]

相关技能