Communitygithub.com

aurumiles/Skill

在 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 是什麼?

這項技能是針對 @aurumiles 的 Instagram 輪播貼文設計的精確圖形生產流程,專門在 Canva 環境內運作。它取代了舊的手動複製範本方法,利用 Canva 的 AI 驅動「create-design」功能,根據詳細的文字摘要自動生成完整的設計,包含字型、版面與圖示。技能文件明確界定其使用範圍:僅在 Davide 要求「在 Canva 中」製作或改編現有輪播貼文時使用;對於課堂風格的輪播貼文,則需使用另一個專門技能。 工作流程包含五個嚴格的階段:根據 Cavalleresco/Romano 風格創建摘要、輪詢非同步設計生成作業、全面的品質檢查(包含頁面順序、遺漏幻燈片、背景中的「幽靈」文字、圖層順序、使用羅馬數字頁碼、字型一致性,以及處理封面照片),最後以標準化的結尾行動呼籲(CTA)和正確的檔案匯出命名慣例作結。此技能強調手動檢查與修正的必要性,因為 AI 生成的設計「總會有缺陷需要檢查」,同時也記錄了已知的 API 限制,例如無法透過 API 直接設定字型系列,以及調整圖片填充圖示大小時的錯誤。 支援的平台包括 Claude Code(透過自動化腳本)以及與 Canva API 的直接互動。其運作方式是先呼叫 Canva 的 `create-design` 工具,然後遵循非同步的輪詢流程來擷取生成的設計 ID 與 URL。後續階段則使用一系列圖形操作工具(`read-design`、`merge-designs`、`copy-design`、`replace-text`、`insert-shape`、`layer-element` 等)來修正缺陷、重新排序頁面、移除「幽靈」文字,並套用經過 Davide 核准的確切格式標準。這項技能對於在 Canva 生態系統內維持一致、高品質的品牌輪廓,同時迴避 AI 生成佈局的常見陷阱至關重要。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Canva 輪播貼文 (原名 carosello-aurum)

自 2026 年 10 月 13 日起 Davide 偏好第 1 課幻燈片的風格,並希望將其複製到所有輪播貼文:那些應使用 caroselli-claude 技能(非 Canva)。本技能僅保留用於在 Canva 中製作的輪播貼文。

取代舊方法(手動複製 Canva 範本、在照片+深色橫幅上使用 Anton 字型)。該方法仍可作為 Reels 封面 的參考風格([[copertine-reel]]),但不再用於輪播貼文。同時也取代了全域技能 ig-carousel(Higgsfield/Nano Banana):該技能會生成 AI 圖像並內嵌文字,已不再是我們的工作流程。

在開啟此技能之前,內容(文案、研究、語氣)應按照 [[caroselli]](記憶/維基)中的說明準備:向 Davide 提出 5-6 個問題,確認真實的研究,使用「你」來稱呼 Davide,且始終保持客觀語氣(從不使用「我」)。本技能自此起點接手,僅負責 圖形製作。

為何選擇此方法而非舊方法

edit-design(用於 Reels 封面的工具)是手術式的:它修改已存在的元素,無法為新元素選擇字型或版面。create-design 則不同:您向它發送一份 書面摘要,而 Canva 自身的 AI 引擎(與「Magic Design」相同)負責決定字型、版面、圖示、階層 — 我不再手動處理。結果是真正的設計,每張幻燈片都有不同的圖形(準星、巨大數字、檢查清單、編號圓圈),而不是拼貼。代價是:它總是帶有需要檢查的缺陷 — 這就是為什麼下面的第 4 階段是強制性的。

第 1 階段 — 摘要

一個統一的文字摘要(不是結構化大綱 — 那僅適用於 design_type: presentation,我們在此不使用),內容包括:

  • 格式:"Instagram Post"(產生 4:5 比例,1080x1350 — 已在此專案中確認)。
  • 語氣:適度的騎士/羅馬風格,Davide 於 2026 年 9 月 25 日在一項研究後確認 — 角鬥士/斯巴達是健身/格鬥領域最老套的陳腔濫調(Gladiator Gym Gear、Spartan Race...),騎士較少被濫用,且與 [[cammino-guerriero]](武藏/武士道 = 個人準則,非軍團的大眾紀律)中已寫的內容一致。尚未 100% 確定 — Davide 表示他喜歡這兩種風格,並希望隨著時間找到「正確的混合」:如果距離上次確認時間不長,請確認;否則,重新提出相同的混合(Anton/Roboto/OpenSauce、金底黑字、無明確的頭盔/盾牌/短劍,僅有像羅馬數字這樣的低調細節)。
  • 顏色:黑色/深灰色背景、白色文字、僅一個淺金色強調色(#c29342–#d8af54 區域,每張幻燈片因 AI 生成而略有變化 — 這不是錯誤,無需統一)。
  • 照片:僅封面有照片(Davide 於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. 使用現有的定位器(永遠不要對標題使用 add_text — 它會遺失生成器選擇的字型,請參閱下面的技術說明)以 replace_text 重寫文字。
  3. 使用 delete_element 刪除不再需要的裝飾元素(例如,如果變成 CTA,則刪除檢查清單圖示行)。
  4. 插入最終的 CTA(圖示 + 兩行文字,見下文)。
  5. 使用 merge-designs → insert_pages 將頁面重新插入到正確的位置。

c) 背景中的「幽靈」文字

此生成器的重複性錯誤:原始文字(在任何 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。相反地,如果現有元素(Logo、標題、頁碼)位於您新增的某個元素之後,請對其使用 layer_element: front。

e) 羅馬數字頁碼

生成器會產生「1/8」、「2/8」… 將其替換為「I / VIII」、「II / VIII」… 直到最後一頁的「VIII / VIII」。羅馬文字更長:幾乎總是 需要加寬文字框(resize_element,寬度增加 100-150px)並 重新定位到左側(position_element),以免超出旁邊的箭頭圖示 — 始終檢查同一頁上箭頭圖示的左邊界,並將數字框 flush 放置在其之前。最後一張幻燈片沒有箭頭(沒有更多內容可滑動):只需保留「VIII / VIII」,不要觸及其他內容。

f) 一致的字型

生成器會為不同元素分配不同的字型。我無法為新元素或現有元素選擇字型 — 沒有任何操作允許這樣做(format_text 僅更改大小/粗細/顏色/斜體,從不更改字型系列)。唯一的方法:Davide 在 Canva 中選擇文字(使用 edit_url 的連結)並手動選擇字型,每個元素只需一次;從那時起,我可以在其他元素上使用 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)。
  • 與上方的段落之間 用真正的垂直空間隔開(約 150px),不要緊貼 — 否則看起來像是同一句話的延續。
  • 兩行 = 兩個不同的文字元素(不是一個元素內的 \n),因為每行具有不同的格式。

第 5 階段 — 交付

  1. export-design,格式為 png,width: 1080, height: 1350,不加 pages(一次全部匯出),在第 3 階段完成後執行。
  2. 下載每個 PNG 並將其儲存到「已處理的輪播貼文 / AAMMGG_Title / 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. 僅在獲得他的同意後:記錄在 memoria/wiki/log.md 中,並更新 [[caroselli]] 中的狀態。

版面標準 — 由 Davide 於 2026 年 10 月 2 日在 #12 上確定(從現在起適用於每個輪播貼文)

在克隆 #8(見下文)之後,Davide 在 Canva 上手動修正了一系列細節,這些細節在每個「帶有頁首」的幻燈片(標籤 + 羅馬數字 + 頂部箭頭,例如「技術 N」)上都是完全相同的。以下是 從現在起 應立即應用的固定尺寸/標準,而不是在每張幻燈片中重新發現:

  • 羅馬數字與標籤對齊:羅馬數字的頂部應與旁邊標籤的頂部一致(或接近)(「技術 2」、「為什麼」等),而不是獨自更高或更低。同一行,相同視覺高度。
  • 箭頭:字型/大小約 32-36px,顏色始終為 #c29342(標準金色,見下文)。箭頭應緊跟在羅馬數字之後,並帶有一個小的乾淨間隔(約 15-20px),切勿緊貼。
  • 頁首下方的水平分隔線:當存在時(帶有標籤下方線條的幻燈片),應使其幾乎全寬(約 560-930px),而不是一個短筆劃 — 在整個標籤+數字區塊下方乾淨地切開,而不僅僅在標籤下方。
  • 正文粗體:正文(非標題,非引用)應使用 font_weight: bold,而非 normal/medium — 在黑底上呈現更飽滿、更易讀。簡短且連續的段落(例如「句子 1:」+「句子 2。」)如果邏輯上是一個被分成兩行的一句話,則可以合併到一個文字元素中,而不是將它們分開。
  • 白色永不純白:在白色文字和「Aurum Miles」Logo 上,#ffffff 應替換為 #f1f1f1 — 相對於黑色,稍微不那麼刺眼。
  • 最終 CTA(圖示 + 2 行文字):儲存圖示和第一行文字(「儲存它...」)共享 相同的 top(同一行,而非圖示較高、文字較低),圖示右邊緣與文字開頭之間的水平間隔約 25-30px。

已確認的錯誤:對圖片填充圖示使用 resize_element

我們這邊無法解決:透過 API 調整具有圖片填充的圖示(箭頭、徽章)大小會將其裁切,而不是縮放(請參閱 [[caroselli]] 中的說明)。當需要較小的箭頭/圖示時,不要使用 resize_element:要么保持其原始大小並調整位置,要么 — 如果 Davide 在 Canva 中手動調整 — 請注意在那裡調整大小效果很好(真正的編輯器會正確縮放內容,只有 API 操作有此錯誤)。某個東西以這種方式損壞的具體跡象:靠近帶有 textAlign: end 的文字的元素看起來「顛倒了」 — 很可能是損壞的圖示片段重疊在上面,而不是文字本身的錯誤。

雜項技術說明(無需每次重新發現)

  • merge-designs:每次呼叫一個操作,始終如此。
  • resize-design(舊方法搭配 Canva 範本的那個)是有限制/試用的 — 在此流程中不再需要,create-design 已生成正確的格式。
  • 如果需要保留某個版本...

相關技能