by op7418
🪧 Claude Code / Codex skill — generate Xiaohongshu carousels & WeChat 21:9+1:1 cover pairs. Editorial × Swiss visual systems, 28 layouts, 10 themes, single-file HTML → PNG. 小红书图文 + 公众号封面对
# Add to your Claude Code skills
git clone https://github.com/op7418/guizang-social-card-skillGuides for using ai agents skills like guizang-social-card-skill.
Create polished social card packages for Xiaohongshu/Rednote, WeChat Official Account, article covers, and platform thumbnails.
This skill is self-contained. It borrows visual principles from the Guizang PPT style system, but it must not edit the original PPT skill, its templates, or its references. If the original PPT skill is available, you may read it for reference only.
Generated work must live in a task folder, not in the skill root. Default to local-tests/<slug>/ inside this repository, or use the explicit output folder requested by the user. Do not create root-level task folders such as social-card-*, livephoto-*, wechat-*, output/, or loose rendered assets next to SKILL.md.
Use this skill for:
21:9 main cover plus one 1:1 square cover, composed together in the same HTML for visual checking.Do not use this skill for:
The 11 most-common Rednote (小红书) categories fall into three buckets. See references/category-cookbook.md for the recipe-by-recipe routing.
Strong end-to-end (text, structure, and image story all in scope):
Strong on text & structure; image needs to come from the user or a sourced library:
Outside scope — push back honestly rather than promise a result:
When a request falls in the third bucket, name what we cannot do at intake — do not silently retrofit a layout that misses the user's intent.
Expression comes first. The goal is not to squeeze text into posters; it is to turn the source into a clear visual argument.
For each page, decide:
Read these files as needed:
references/platform-specs.md for exact ratios, output sizes, and naming.references/style-system.md for Guizang editorial and Swiss visual rules.references/theme-presets.md when choosing electronic-magazine palettes or Swiss accent palettes.references/layout-recipes.md when selecting carousel/social-card/WeChat page structures.references/components.md for the shared component spec: font stacks, type scale, minimum readable sizes, Chinese title length bands, Swiss card-fill mutual-exclusion rule, image-container ratio classes, spacing tokens, and Lucide icon rules.references/background-systems.md when building electronic-magazine WebGL/ink/paper backgrounds.references/portrait-fill.md when adapting layouts to 3:4 and avoiding under-filled vertical space.references/content-planning.md for cover hooks, page breakdown, and copy compression.references/production-workflow.md for HTML/CSS rendering and image handling.references/live-photo-production.md when the user asks for Live Photo / 实况照片 / 三连实况拼图, supplies video assets for a social card, or wants Xiaohongshu / WeChat motion-card delivery. It covers information budget, single vs triple Live Photo, long-video intake, and platform publishing reminders.references/image-overlay.md whenever text sits on top of a photo: photo qualification, localized tint fallback, and face / subject avoidance via multimodal subject mapping.references/screenshot-treatment.md when the user supplies an app / web / code / dashboard screenshot — picks .frame-shot over .frame-img, sets corners/shadow/bg/inset, decides on .device-browser or .device-phone chrome.references/map-component.md when the content has spatial relationships (travel route, store locations, walking tour) — real routes default to Mapbox Static or OSM static tiles; schematic SVG is only for conceptual / illustrative maps. Pins are HTML overlays; never use live JS maps.references/title-shortener.md when the task is a WeChat 21:9+1:1 cover pair, or any cross-platform reuse — derives the 1:1 short title from the long one (5-step extraction, 4 patterns, anti-patterns, sizing on .poster.square).references/category-cookbook.md to route a user-named Rednote category (旅行 / 职场 / 游戏 / 影视 / 彩妆 / 美食 / 穿搭 / 家居 / 健身 / 情感 / 推荐) to applicable recipes and to confirm scope.references/qa-checklist.md before delivering final images.Gather only the missing information that changes the output:
Target platforms and ratios.
Source text, subtitles, article, or title.
Rednote category — if the user names one of the 11 common types (旅行 / 职场 / 游戏 / 影视 / 美食 / 彩妆 / 穿搭 / 家居 / 健身 / 情感 / 推荐), route via references/category-cookbook.md to find the right recipes and to confirm the request is inside the capability circle (see "Rednote Category Capability" above). If a request lands in the outside-scope bucket, surface that to the user before designing, do not silently retrofit.
Supplied images/screenshots and where each should appear. For News / Tutorial / Data / Review content, actively prompt for screenshots or photos — they are the evidence layer. A poster with no real artifact tends to read as filler.
Supplied video assets, if the user asks for Live Photo. Treat user-provided video as the normal path; web-sourced free video is only for demo/promo cases or when the user explicitly asks for sourced material. Confirm the target platform because duration differs: Xiaohongshu supports 5s; WeChat Official Account Live Photo should stay at 3s and must be uploaded from iPhone. Before cutting, read references/live-photo-production.md and classify the request as single Live Photo, triple collage, or long-video intake. If the source is too long or contains multiple usable moments, do a low-cost diagnosis first, then ask once whether to trim, speed up, split into multiple wells, or use a user-specified time range. If the source is shorter than the target duration, ask whether to provide a longer clip, accept a shorter Live Photo, or explicitly allow a hold/slowdown. If the important focus is ambiguous, suggest possible crop/enlarge options but let the user decide before executing.
If the user supplies only text (no images at all), ask once before designing:
这篇我需要 1-2 张图。三种走法:
A. 你自己有照片 / 截图,传给我(推荐——最不"AI 感")
B. 我去 Pexels / Unsplash / Flickr 帮你找
C. 用 AI 生成
Recommend A in one line — your own photo is what makes a poster not look AI-generated. Accept whatever the user picks (including "都行你看着办") and proceed. Do not re-prompt later, do not keep nudging toward A across multiple turns. This question is one-shot.
Preferred style if specified: Swiss Style, magazine/editorial, tech, outdoor, etc.
Hard constraints: title text, no image on 1:1 cover, must include a hardware photo, keep screenshot readable, and so on.
If the user has already supplied enough context, proceed with reasonable assumptions.
If the content involves current product releases, policies, prices, claims, or news, verify unstable facts with browsing and cite sources in the final response.
Turn the source into a page plan before designing.
For Rednote:
For WeChat:
21:9 main cover and 1:1 square cover.21:9 keeps the full or near-full title, subtitle, and one strong visual relation.1:1 uses a simplified short title derived from the long title: big centered type, no image by default, no cramped subtitles.Pick one mode per package. The two systems are not bound to specific content types — what changes is the visual stance, not which topic you can talk about. A workplace essay can be Editorial; a travel ledger can be Swiss. Pick by the feeling you want, not by category lookup.
Editorial Magazine x E-ink brings:
Swiss International brings:
If both feel viable for a piece of content, the question becomes editorial intent: "is this a feature story or a release note?" That decides the mode, not the topic itself.
Do not mix the two visual systems inside the same image set unless the user explicitly asks for a hybrid.
Then pick one theme:
Read references/theme-presets.md for exact CSS tokens. Do not invent arbitrary colors unless the user has a strict brand requirement.
Create a concise internal plan:
Page 01 / cover / hook / image source / layout intent
Page 02 / point / key copy / visual evidence / layout intent
...
When the user asks for approval, show this plan before rendering. Otherwise use it internally and proceed.
Use references/layout-recipes.md to choose page structures. Avoid making every page a repeated title-plus-card layout.
For 3:4 images, check references/portrait-fill.md before coding. A short table or ledger must be expanded into a full portrait composition with a quote column, image evidence, marginalia, larger rows, or a background hero zone.
Audience-facing copy must describe the user's actual scene, not the production method. Internal terms such as 3s, 5s, Live Photo, triple collage, information budget, long-video intake, speed-up, highlight detection, one action point, or layout template may guide planning, filenames, QA notes, and delivery summaries, but they must not become the H1, hook, or main body copy unless the user is explicitly making an instructional post about those concepts. Before rendering, read every visible headline once as a real viewer: if it sounds like a task requirement, replace it with scene-specific copy.
Do not add non-template ornaments just to satisfy an automated density warning. Extra rulers, side bars, pseudo time axes, decorative labels, or invented badges must come from an existing layout recipe or a user request. If a density warning appears, fix it by choosing a better recipe, resizing real content, or accepting the advisory warning with a visual rationale; do not put meaningless UI on the card.
For Live Photo cards, plan them as normal social cards first, then decide the motion role: one action point, one small process, a before/after change, three parallel results, or ambience/evidence. The only structural change is that one or more image wells become video wells. Keep the same ratio, crop, safe-area, typography, and style mode rules; apply the still-image crop logic to the video stream. The first frame must pass the same checks as a static image: no excessive crop, key UI/content remains readable, and the card still follows the chosen layout recipe. Read references/live-photo-production.md before rendering.
For material-first Live Photo puzzle cards, let the video assets lead. Use little or no copy: one short headline is enough for a single-video cover, and two-grid / three-grid / four-grid versions should usually have no added text. When a single-video cover adds text on top of the footage, use the M16 Image-Led Cover / text-on-image rules: subject map first, safe quiet zone, Editorial serif/Songti title at regular-medium weight, paper-cream text, and no default full-canvas mask. Do not invent extra kicker, meta, hairlines, labels, rulers, badges, subtitles, or explanatory production terms just to make the overlay feel designed. If only one headline is available, make the typography carry the layout: phrase-aware line break, restrained size, tracking, alignment, and placement. Treat source-embedded text as part of the footage; only avoid adding new text unless the user asks.
Do not write HTML from scratch. Pick one seed template based on the style mode chosen in Step 3:
assets/template-editorial-card.html into the task folder as index.html.assets/template-swiss-card.html into the task folder as index.html.The seed already wires up: font loading, theme tokens, all three poster sizes (.poster.xhs / .poster.square / .poster.wide), the pair-preview frame, grain/background layers, and all class definitions referenced by the layout recipes.
Set the theme/accent on the <html> element:
<html data-theme="ink-classic | indigo-porcelain | forest-ink | kraft-paper | dune | midnight-ink">.<html data-accent="ikb | lemon-yellow | lemon-green | safety-orange">.Replace the single placeholder poster after <!-- POSTERS_HERE --> with one <section class="poster ..."> block per page, each carrying the HTML skeleton from a chosen Layout Recipe (M01-M16 for Editorial, S01-S12 for Swiss). Never load the wrong template's class system: Editorial recipes assume serif display + ledger/marginalia/pipeline-v; Swiss recipes assume Inter + card-fills + matrix/h-bar/kpi-tower. Mixing them silently breaks the layout.
Default implementation pattern:
local-tests/<slug>/ by default, or inside the user-requested output folder. Never put generated task folders, rendered images, MOV files, .pvt packages, or downloaded sources in the skill root next to SKILL.md.assets/.<!-- POSTERS_HERE --> region page-to-page. If a task needs custom layout CSS, add one clearly named task-scoped block in the copied file and keep semantic defaults reset (figure { margin:0; }, no browser-default spacing surprises)..poster or .cover node.output/.node validate-social-deck.mjs <task-dir> available for auto-check passes. It checks overflow (R1), footer collision (R2), Swiss bold display (R3), minimum font size (R4), 4-band density (R5), .h-xl line caps (R6), browser-default figure margin drift (R7), visual bounds / bottom whitespace (R8), and title-to-content gaps (R9). Exit code 1 on any FAIL — fix before final delivery when auto-check is requested. WARN is advisory but read it.Live Photo branch:
3s fits one action point; 5s fits one small process; triple collage fits three parallel clips but not a complex story; long videos require diagnosis before editing..pvt. This catches crop and hierarchy issues with much lower token and render cost.5s for Xiaohongshu, 3s for WeChat Official Account.JPG + MOV into .pvt with makelive; AirDrop the .pvt as one item for iPhone tests.references/live-photo-production.md for exact commands and failure-mode checks.Do not place visible instructions, keyboard shortcuts, or usage explanations inside the images.
For Editorial Magazine x E-ink, use a layered background system. Prefer a subtle WebGL ink-flow canvas or a frozen procedural canvas plus paper grain. Read references/background-systems.md; do not rely on a flat beige background, and do not add page-wide grid/dot backgrounds.
When the user provides screenshots:
Whenever a poster places text on top of a photo (full-bleed cover, large image well, generated-image overlay), follow references/image-overlay.md:
image-overlay.md. Compose without a mask first; if the thumbnail check fails, add only a localized, image-toned tint around the title area. Do not default to full-canvas falloffs.object-position inline on every photo. The template default (center 50%) is a fallback, not a recommendation. For every <img>, decide based on subject location and write it inline: e.g. style="object-position:center 62%" for mid-body subjects, center 30% for sky-heavy landscapes with horizon-line subjects, center 70% for foreground gear. See the table in references/components.md for ranges and image-overlay.md for face-photo specifics. Skipping this silently crops subjects out of frame on tall ratios (r-3x4, r-21x9).Editorial dark covers (e.g. game journals on key art) and Swiss covers with hero photos both require these checks. Skipping them is a known failure mode (see style-system.md Anti-Pattern D).
When the user has no images:
When the user has no screenshots/photos and a generated bitmap would not fit the page's role (e.g. Editorial atmosphere shot, outdoor / lifestyle backdrop, game cover art, real-world product shot), fetch from the web instead of leaving the page thin.
Policy: grab first, disclose after, let the user decide on attribution. Do not pre-filter sources by guessed license — the user is the rights holder of the final composition and decides what is acceptable.
Recommended sources, in order of preference. All five below are free-tier libraries with no required licensing fees; we do not pull from paid stock sites (视觉中国 / Getty / 站酷海洛 etc.).
https://unsplash.com/s/photos/<keyword>. Strong for outdoor / lifestyle / atmospheric backdrops. English keywords work best. License is permissive but verify case by case.https://www.pexels.com/search/<keyword>/ or https://www.pexels.com/zh-cn/search/<keyword>/. Supports Chinese keyword search natively — fills Unsplash's gap on 国内场景 (中文街景 / 国风物件 / 本地地名). Use this first when the subject is China-specific or the keyword is Chinese. Free under Pexels License.https://www.flickr.com/search/?text=<keyword>&license=2%2C3%2C4%2C5%2C6%2C9. The license filter (license=2,3,4,5,6,9) restricts to Creative Commons photos. Fills the "documentary realness" gap: street photography, people-in-context, real interiors, non-styled scenes that Unsplash/Pexels lack. Always preserve CC attribution if the user opts in.https://wallhaven.cc/search?q=<keyword>. Strong for game / anime / wallpaper themes. Content is user-uploaded, rights are unverified.Editorial-mode picking order: Pexels (if keyword is Chinese / China-specific) → Unsplash → Flickr CC (if you need real-life feel) → direct search. Swiss mode rarely needs any of these — product renders, UI screenshots, and keyshot-style images should be user-supplied or AI-generated, not stock.
How to fetch:
curl to download the image into the task folder's assets/ directory.assets/hero-mountain.jpg, assets/ui-pulse-card.png.assets/SOURCES.md file next to the images (one line per file: hero-mountain.jpg ← <url>). Always do this even if the user declines attribution in the final image — it preserves provenance for the human author.After fetching, surface the provenance to the user before finalizing the design:
我从 <site> 取了这些图:
- assets/hero-mountain.jpg — <url>
- assets/ui-pulse-card.png — <url>
⚠️ 版权未经核实。请你判断是否可用。
是否需要在图文中标注来源?
- 要:我把 "Photo · <site> · @<author>" 加到对应页脚 / 角标。
- 不要:原样使用,不加注释。
If the user picks "标注" — add a small mono caption (Swiss: .t-meta 18-20px in corner; Editorial: .label next to the image well). Never crowd the caption into the layout's focal area.
If the user picks "不标注" — proceed silently. The provenance still lives in assets/SOURCES.md for the user's own records.
If an image is only one element among many in a composite (e.g. one of nine photos in a matrix), the user may reasonably skip attribution. Do not force a credit label that breaks the layout.
Show user first, validate on request. Auto-running the validator after every render takes too long and delays the user from seeing results. Default flow:
node validate-social-deck.mjs <task-dir>, fix any FAIL, and re-render before final delivery. Mention density/cap WARNs.Never silently run the validator before showing the user — it costs minutes per pass and the user often spots issues faster.
Final response (after the user has reviewed or asked for auto-check) should include:
.pvt package path, the debug JPG + MOV pair, target platform duration, and validation summary.5s Xiaohongshu, 3s WeChat Official Account) and publish path (AirDrop the .pvt package as one item to iPhone, then publish from the matching mobile app path; desktop/web upload paths generally cannot recognize .pvt as a publishable Live Photo).local-tests/<slug>/ by default, or under a user-requested output folder. Root-level generated folders like social-card-*, livephoto-*, wechat-*, and loose output assets are forbidden..foot with margin-top: auto inside a flex column, never with position: absolute over growing content.1-40px means nudge/tighten, 40-90px means local compaction, 90-160px means slight title or paragraph compression, and only 160px+ should trigger recipe changes or content removal. After fixing, check R8 bottom whitespace so the page does not swing from overflow to a giant empty lower band.28px below; local headings should keep at least 16px. Use validator R9 before relying on visual inspection.font-size + font-weight on display titles in Swiss. Use the typed classes (.h-hero / .h-statement / .h-xl / .num-mega). A 80-120px headline at weight 700-900 is not Swiss; "the larger, the lighter" is a hard rule.references/style-system.md — a serif title alone does not make a poster Editorial.<div style="flex: 1"></div> 上下夹击把内容塞到中段——杂志页留白逻辑不适用于社交卡(杂志靠对开页吸收留白,社交卡逐张独立刷,欠填看着像 PPT 漏排)。Recipe-by-recipe 最小密度见 references/layout-recipes.md 每条 recipe 的「Minimum density」段。Render 后必须跑 qa-checklist.md 的 4 横带密度检查。Last scanned: 5/28/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-28T07:57:16.761Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}
一个适配 Claude Code / Codex 等 Agent 环境的图文卡片技能,用于从文章、文案、截图、产品笔记、字幕、照片或用户视频生成小红书 / Rednote 图文组图、Live Photo 动态卡与公众号 21:9 + 1:1 封面对。
内置两套视觉系统,共用一份图文工作流:
这个 Skill 是 guizang-ppt-skill 的姊妹项目,共享美学语言但独立维护。PPT 解决"横向翻页演讲",这里解决"静态信息流图文"。
npx skills add https://github.com/op7418/guizang-social-card-skill --skill guizang-social-card-skill
也可以直接把这段话发给有 shell 权限的 AI Agent:
帮我安装 guizang-social-card-skill。请把 https://github.com/op7418/guizang-social-card-skill 克隆到 ~/.claude/skills/guizang-social-card-skill,安装完成后检查 SKILL.md、assets/、references/ 是否存在。
已经安装过的话,用这段话更新:
帮我更新 guizang-social-card-skill。请进入 ~/.claude/skills/guizang-social-card-skill 执行 git pull,然后告诉我当前最新 commit。
安装后直接对 Agent 说:
帮我基于这篇文章做一套瑞士风小红书图文,5 张,IKB 蓝。
也可以试这些请求:
基于这份产品测评做一套小红书 3:4,标题用电子杂志风。
帮我把这篇文章做成公众号封面对:21:9 头图 + 1:1 分享卡,视觉保持一致。
我有 3 张露营照片,帮我做一套全图风格的小红书图文。
把这段游戏攻略文案做成一套小红书图文,需要从 wallhaven 拿点游戏原画。
我有一段咖啡视频,帮我做成小红书 5 秒 Live Photo 卡片,文字压在安静区域。
把这三个游戏片段做成三连 Live Photo 拼图,用 Swiss 风介绍攻略要点。
.poster.xhs 1080×1440(小红书 3:4)、.poster.wide 2100×900(公众号 21:9)、.poster.square 1080×1080(公众号 1:1)5s,微信公众号文章内按 3sM01-M16,含 Image-Led Cover、Pipeline、Before/After 等)+ Swiss 12 个(S01-S12,含 KPI Tower、H-Bar Chart、Matrix + Hero 等)SOURCES.md.frame-shot / .device-browser / .device-phone 工具类validate-social-deck.mjs 自动检测溢出、字号上限、4 横带密度、footer 碰撞node render.mjs 直接出 PNGLive Photo 在这个 Skill 里的定位是"把用户提供的视频装进社交卡版式",不是让 Agent 随机找公开视频,也不是长视频正片剪辑。先让首帧按静态卡片成立,再让 3s/5s 的动作补充信息。
| 版式 | 效果 | 适合 |
|---|---|---|
| 单视频动态卡 | 一段视频裁成 3:4 吃满画布;需要文字时只放一组短标题,按 M16 Image-Led Cover / image-overlay 的主体避让、quiet-zone、字体与局部 tint 规则处理 |
咖啡、旅行、健身动作、产品状态、游戏瞬间 |
| 二宫格 / 三宫格 / 四宫格拼图 | 多个视频井拼成一张 Live Photo,通常不加文字,让高质量素材自己说话 | 旅行风景、穿搭精选、空间细节、菜品过程、运动动作 |
| 三连 Live Photo 拼图 | 三段几秒素材并列,提高短时长内的信息密度;只在必要时加一行真实场景标题 | 攻略步骤、前后对比、多视角展示、模型测试结果 |
| 长视频诊断 | 对超长素材做稀疏抽帧 / contact sheet,判断更适合裁哪段、倍速、拆分,还是请用户指定时间段 | 用户给了 1-3 分钟素材但还没选片段 |
| 平台发布包 | 输出调试用 JPG + MOV,以及 iPhone 测试/发布用 .pvt 包 |
小红书、微信公众号文章内 Live Photo |
信息量判断是第一步:微信 3s 更适合一个动作点或一次状态变化;小红书 5s 可以容纳一个小过程;三连拼图适合三个并列结果,不适合讲一个必须顺序理解的长故事。
3s/5s 内观众能看到什么。如果需要解释、音频或完整教程才能懂,就不应该硬塞进 Live Photo。.pvt;不要把生成结果写到 Skill 根目录。5s,微信公众号文章内按 3s;通常需要把 .pvt 作为一个包传到 iPhone,再从对应 App 发布,电脑端/网页端一般不能直接发布 Live Photo。可直接这样让 Agent 做:
把这个咖啡视频做成小红书 5 秒 Live Photo,标题只放一组,避开杯子和手。
这四段旅行视频素材质量很好,帮我做成四宫格 Live Photo,不加文字。
这段 2 分钟游戏视频先做 contact sheet,帮我判断适合截哪 5 秒做攻略 Live Photo。
✅ 合适:小红书图文组图 / Live Photo 动态卡 / 公众号封面对 / 微信朋友圈封面 / 视频号封面 / 文章配图 / 教程拆页 / 数据回顾 / 旅行攻略 / 产品测评 / 截图说明
❌ 不合适:横向翻页 PPT(用 guizang-ppt-skill)/ 长视频正片剪辑 / 纯图片修图 / 无版式诉求的纯文字编辑
按"能力圈"分三档,详见 references/category-cookbook.md:
端到端强势(文 / 结构 / 图都在能力圈内):
文与结构强势,图依赖用户或搜图源:
能力圈外,主动说清(不强行接):
| 任务 | 推荐方式 |
|---|---|
| 长文章 → 小红书图文 | 抽核心观点,Editorial 走叙事节奏,Swiss 走拆条数据 |
| 产品测评 / 工具回顾 | Swiss + IKB 蓝,优先 S09 KPI Tower / S10 H-Bar Chart |
| 旅行 / 生活方式分享 | Editorial + Midnight Ink 或 Dune,M16 Image-Led Cover 满铺主图 |
| 公众号封面对 | 同一份内容渲两块:.poster.wide 21:9 + .poster.square 1:1,视觉一致 |
| 截图教程 / 工具说明 | .frame-shot + .device-browser 包壳,优先 Swiss 网格底 |
| 游戏攻略 / 影视回顾 | Editorial + Midnight Ink,从 Wallhaven 取游戏原画做满铺 |
| 用户视频 → Live Photo | 先判断 3s/5s 信息量,再选单视频 / 拼图 / 三连 / 长视频诊断 |
| 数据回顾 / 年终总结 | Swiss + Lemon 或 Safety Orange,矩阵 + ledger 组合 |
validate-social-deck.mjs 用 Playwright 跑真实 DOM 测量,不是猜output/*.png 直接发,不需要部署、不需要导出工具JPG + MOV + .pvt,并记录小红书 / 微信的时长限制和手机端发布路径| 平台 | 状态 | 说明 |
|---|---|---|
| Claude Code | 支持 | 原生 Skill 工作流,适合生成 + 迭代图文 |
| Codex | 支持 | 适合长流程图文生成、调用图片源、做视觉检查 |
| Cursor / 其他本地 Agent | 可用 | 需要能读写文件 + 执行 shell |
| 普通 Chatbot | 不推荐 | 没有文件系统和渲染管线时无法稳定出图 |
npx skills add https://github.com/op7418/guizang-social-card-skill --skill guizang-social-card-skill
帮我安装
guizang-social-card-skill这个 Claude Code skill。请按下面步骤做:
- 确保
~/.claude/skills/目录存在(不存在就创建)- 执行
git clone https://github.com/op7418/guizang-social-card-skill.git ~/.claude/skills/guizang-social-card-skill- 验证:
ls ~/.claude/skills/guizang-social-card-skill/应该看到SKILL.md、assets/、references/三项- 告诉我装好了,之后我说"做一套小红书图文"之类的话就会触发这个 skill
把这段话复制粘贴给 Claude Code / Cursor / 任何有 shell 权限的 AI Agent,它会自动完成安装。
git clone https://github.com/op7418/guizang-social-card-skill.git ~/.claude/skills/guizang-social-card-skill
装好后,Claude Code 会自动发现并调用这个 skill。触发关键词:
Skill 本身是结构化工作流,Agent 会按 7 步走:
SOURCES.md;问用户要不要标来源<!-- POSTERS_HERE --> → node render.mjsLive Photo 请求会在第 5 步进入动态分支:先判断 3s/5s 内能承载的信息量,抽首帧或稀疏 contact sheet 检查裁切,再输出 JPG + MOV + .pvt。交付时会提醒平台限制和发布路径:小红书 5s,微信公众号文章内 3s,通常需要把 .pvt 传到 iPhone 后从对应 App 发布。
详细说明见 SKILL.md。深度细节去看对应 references/*.md。
node validate-social-deck.mjs path/to/task-dir
9 条规则,基于 Playwright 真实渲染测量,不是静态扫描:
.poster 立刻报错,并给出超出像素对应的修正阶梯.h-xl / .h-display / .h-statement 行数超出画板预算<figure> margin 造成版式漂移SKILL.md 第 7 步明确默认不自动跑 validator —— 等用户先看完图再问,避免每轮多花数十秒。
从 references/theme-presets.md 里选一套——不允许自定义 hex 值,保护美学比给自由更重要。
| 主题 | 色调 | 适合场景 |
|---|---|---|
| 🖋 墨水经典 Ink Classic | #0a0a0b / #f1efea |
通用默认、商业话题、不知道选啥时最稳 |
| 🌊 靛蓝瓷 Indigo Porcelain | #0a1f3d / #f1f3f5 |
科技、研究、AI、技术分享 |
| 🌿 森林墨 Forest Ink | #1a2e1f / #f5f1e8 |
自然、可持续、户外、非虚构 |
| 🍂 牛皮纸 Kraft Paper | #2a1e13 / #eedfc7 |
怀旧、人文、阅读、文学 |
| 🌙 沙丘 Dune | #1f1a14 / #f0e6d2 |
艺术、设计、创意、时尚 |
| ⚫ 午夜墨 Midnight Ink | #0e0d0c / #ece2cf / #d4a04a |
游戏 key art / 夜景 / 影调封面 / 黑神话 · 艾尔登法环类深色题材 |
| 主题 | 锚点色 | 适合场景 |
|---|---|---|
| 🔵 克莱因蓝 IKB | #002FA7 |
通用默认、商业发布、AI 产品、方法论 |
| 🟡 柠檬黄 Lemon | #FFD500 |
年轻、运动、零售、消费品、Y2K |
| 🟢 柠檬绿 Lemon Green | #C5E803 |
生态、健康、Z 世代、绿色品牌 |
| 🟠 安全橙 Safety Orange | #FF6B35 |
警示、新闻、工业、活力主题 |
切主题只需替换种子模板的 <section class="poster" data-theme="..."> 属性,所有 CSS 走 var(--...)。
guizang-social-card-skill/
├── SKILL.md ← Skill 主文件:7 步工作流
├── README.md ← 本文件
├── HANDOFF.md ← 交接文档:事实 + 版本历史
├── PRODUCT.md ← 产品文档:思考 + 决策 + road
guizang-social-card-skill is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by op7418. 🪧 Claude Code / Codex skill — generate Xiaohongshu carousels & WeChat 21:9+1:1 cover pairs. Editorial × Swiss visual systems, 28 layouts, 10 themes, single-file HTML → PNG. 小红书图文 + 公众号封面对. It has 4,941 GitHub stars.
Yes. guizang-social-card-skill passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/op7418/guizang-social-card-skill" and add it to your Claude Code skills directory (see the Installation section above). guizang-social-card-skill ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
guizang-social-card-skill is primarily written in HTML. It is open-source under op7418 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh guizang-social-card-skill against similar tools.
No comments yet. Be the first to share your thoughts!