Communitygithub.com

tjdgus4560/cardnews-maker-skill

將主題、網址或草稿轉換為 800x800 的韓式卡片新聞圖像(카드뉴스)。適用於 Claude Code 與 Codex CLI 的代理技能。

cardnews-maker-skill 是什麼?

這是一個專為 AI 代理(如 Claude Code 和 Codex CLI)設計的技能,能將主題、文章 URL 或草稿檔案,自動轉換為一套美觀的 800×800 像素韓式卡片新聞圖像。技能的核心流程是:先從來源提取內容,規劃每張卡片的角色(如封面、內文、統計圖表、結尾),接著使用內建的 HTML 建置腳本(build.js)產生卡片樣板,再透過 Playwright 渲染為高解析度 PNG,最後執行自我審查與修正循環,確保輸出品質。支援自適應色彩主題(根據主題自動挑選),並提供一份完整設計系統與卡片樣式的參考文件。主要輸出為 PNG 圖檔,也可應要求產生 A4 PDF。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add tjdgus4560/cardnews-maker-skill

在你喜歡的 AI 中提問

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

說明文件

卡片新聞製作器 (카드뉴스 메이커)

將主題、來源文章(URL)或草稿檔案轉換為一套精美的 800×800 卡片新聞圖像。使用者每次提出 新的主題;您需要讀取/推導內容、將其結構化為卡片、進行渲染,然後執行自我審查與修正循環,最後交付成品。

視覺風格是固定的(讓每套卡片感覺像一系列作品),但色彩主題會根據每次的主題調整。佈局、字體排印、間距和審查循環則保持不變。

何時提問 vs. 何時自行決定

使用者明確希望您對任何真正模糊不清的事提出詢問,而不是讓您猜測。當答案會有意義地改變輸出結果,且無法推斷時,請使用 AskUserQuestion(先提出推薦選項)。否則,請自行決定並簡短說明您的選擇。

自行決定(無需詢問):

  • 卡片數量 — 根據內容調整,通常為 8–15 張(封面 + 內文 + 結尾)。
  • 色彩主題 — 選擇適合主題/品牌的主題(請參閱參考資料)。
  • 每張卡片的佈局(標準內文卡 vs. 統計卡 vs. 圖表/檢查清單)。
  • 韓文文案撰寫、強調範圍、標籤文字。

詢問使用者(不明確時):

  • 來源不明確:只有一行主題但無來源,且範圍廣泛 → 詢問是否要進行網路搜尋,或希望採取何種角度/深度。
  • 當沒有強烈的單一標題可選時,封面標題(預設:提出一個提議 + 提供更好的替代方案,讓他們選擇)。
  • 若主題可能有多種方向(例如高層簡報 vs. 初學者解說)且會實質改變文案時,詢問受眾/語氣。
  • 使用者標記為「판단 애매」(判斷模糊)的任何事項 — 將其提出來詢問。

當反覆出現的偏好被確定時,可以將其記錄下來,以便未來執行更順利——但永遠不要因為一個可以用合理預設值回答的問題而阻塞整個工作。

工作流程

1. 取得內容

  • URL → 擷取(WebFetch)並提取論點、關鍵點、術語、重要數據/引言,以及主要結論。
  • 文字 / 草稿檔案 → 讀取;將提供的逐章草稿視為主要骨架。您可以稍微潤飾,但保留使用者的結構。
  • 僅有一行主題 → 如果範圍廣泛且無來源,在憑空創造內容之前,先詢問是否要進行網路搜尋或希望採取何種角度。

保持忠於來源。避免過度解讀。當您加入「我們該學到什麼 / 시사점」的角度時,將其表述為從來源中汲取的教訓,而非個人處方。將任何「做 X / 하라」的命令式語氣改寫為觀察陳述(「X가 중요하다」、「X일 때 강해진다」)。

2. 規劃卡片組合

決定卡片數量及每張卡片的角色。典型的架構: 封面 → 鉤子/引言 → 背景脈絡 → 核心概念(每張卡片一個想法) → 一張統計或圖表卡片(有助於傳達) → 結尾訊息(+ 來源連結)。

使用一張卡片一個想法的原則。如果一張卡片的內文會溢出,請將其拆分。

選擇一個適合主題的色彩主題,並閱讀 references/design-system.md 以了解確切的代碼、卡片佈局和組件模式。閱讀 references/card-patterns.md 以取得現成的卡片變體(封面、內文、統計、圖表、檢查清單、結尾)。

3. 建立 HTML

使用 scripts/build.js 作為起點——它已編碼了佈局系統(基礎 CSS、標籤晶片、標題、分隔線、帶有高亮度範圍的內文、頁尾、河流波紋裝飾),並為每張卡片輸出一個 HTML 檔案到 cards/。將其複製到工作目錄中,並為此主題編輯卡片定義和主題顏色。不要從頭重寫佈局引擎。

4. 渲染為 PNG

執行 scripts/render.js(Playwright + Chromium,deviceScaleFactor 2 → 清晰的 800×800 PNG 到 out/)。一次性設定(如果尚未安裝 Playwright):npm install playwright && npx playwright install chromium。

5. 自我審查與修正循環(務必執行)

這是必需的,非選項——這是讓輸出感覺完整的原因。

  • 回讀渲染後的 PNG(使用 Read 工具)並檢查每張卡片。
  • 檢查:內文是否與頁尾重疊、空間不平衡、文字溢出/尷尬換行、對比度/可讀性、標籤與頁尾一致性、正確的頁碼與總數。
  • 在 build.js 中修正問題,重新渲染,並重新檢查受影響的卡片。
  • 只有當整套卡片都乾淨無誤時才交付。請參閱 references/review-checklist.md 以了解完整清單與常見修正方法。

6. 交付

儲存位置 — 根據上下文選擇輸出位置,使結果落在使用者會尋找的地方:

  1. 如果您在專案/儲存庫內工作(會話有專案根目錄——例如 git 儲存庫,或使用者明確在某個特定工作目錄中操作):將所有內容儲存在該專案根目錄下,路徑為 <project-root>/cardnews/<topic>/>。將中間產物也放在那裡(工作中的 build.js、cards/*.html、out/*.png),以便卡片組可重現並可隨專案進行版本控制。這是存在專案上下文時的預設行為。
  2. 如果沒有專案上下文(一次性、臨時性請求,沒有工作儲存庫):儲存到全域、作業系統適用的位置 — <home>/cardnews/<topic>/(適用於 Windows、macOS、Linux;避免硬編碼 Downloads)。
  3. 如果使用者指定了位置,則優先遵循。

說明檔案儲存的位置。預設輸出僅為 PNG(根據規則 1,當儲存到專案時,再加上中間的 HTML)。僅在被要求時(或主動提供)才使用 scripts/make_pdf.py 建置 A4 PDF,該腳本會將每張卡片放在 A4 頁面上,左右邊距為零(卡片填滿頁面寬度),上下邊距相等——請閱讀其頁首註解以了解行為。

將工作檔案(build.js 等)保留在專案資料夾中,以便使用者可以調整文案並重新執行 node build.js && node render.js。

預設值(此技能的風格設定)

  • 尺寸:800×800 正方形,2× 渲染比例。
  • 每張卡片的結構:標籤晶片(編號 + 標籤)→ 標題 → 分隔線 → 帶有選擇性高亮度範圍的內文 → 統一頁尾(來源 · NN / 總數)。
  • 封面與結尾:主題色全出血漸層,波浪圖案;結尾卡片帶有來源連結。
  • 輸出:預設為 PNG;應要求提供 A4 PDF。
  • 語言:韓文文案(技術術語/識別碼保留原文)。

參考資料

  • references/design-system.md — 色彩主題、CSS 代碼、組件結構。
  • references/card-patterns.md — 可複製貼上的卡片變體與範例。
  • references/review-checklist.md — 要驗證的項目以及如何修正每個問題。
  • scripts/build.js — HTML 卡片建置器(佈局引擎 + 卡片定義)。
  • scripts/render.js — Playwright HTML→PNG 渲染器。
  • scripts/make_pdf.py — A4 PDF 組裝器(零側邊距,上下邊距)。

相關技能