Communitygithub.com

tjdgus4560/cardnews-maker-skill

将主题、URL或草稿转换为800x800的韩式卡片新闻图片(카드뉴스)。适用于Claude Code和Codex CLI的代理技能。

cardnews-maker-skill 是什么?

该技能(cardnews-maker-skill)旨在将主题、URL或草稿文件自动生成为一组风格统一的 **800×800** 韩式卡片新闻图片(카드뉴스)。它特别适用于云IDE或CLI环境中的AI代理(如Claude Code和Codex CLI),能够显著提升内容创作和视觉呈现的效率。技能的核心工作流包括:获取内容(从URL提取、读取草稿或仅根据主题生成)、规划卡片序列(通常8-15张)、使用内置的HTML布局引擎和Playwright渲染器生成PNG图片、执行强制性的自检修复循环以确保输出质量。该技能具有固定的视觉风格(布局、排版、页脚等),但会根据主题自动适配颜色主题。它强调对来源的忠实性,并在遇到歧义(如主题范围过宽)时主动询问用户,而非自行猜测。最终输出默认保存到项目目录或用户指定位置,并支持按需生成A4 PDF。

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

在你喜欢的 AI 中提问

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

文档

Card-News Maker (카드뉴스 메이커)

将主题、来源文章(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、标签芯片、标题、分隔符、带高亮span的正文、页脚、河波装饰)并为每张卡片输出一个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(当保存到项目时,同时保留中间HTML,根据规则1)。仅在用户要求时(或主动提供)使用 scripts/make_pdf.py 构建A4 PDF,该脚本将每张卡片放置在A4页面上,左右边距为零(卡片填满页面宽度),上下边距相等 — 请阅读其头部注释以了解行为。

保留工作文件(build.js 等)在项目文件夹中,以便用户可以调整文案并重新运行 node build.js && node render.js。

默认值(此技能的专属风格)

  • 尺寸:800×800 正方形,2倍渲染比例。
  • 每张卡片结构:标签芯片(编号 + 标签)→ 标题 → 分隔符 → 带选择性高亮span的正文 → 统一页脚(来源 · 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组装器(无边距,上下边距相等)。

相关技能