---
name: xiaohongshu-cards
description: 用户提供小红书文案后，按十套模版渲染 3:4 配图。用户给出标题和正文、要求做配图、出卡片或渲染小红书图片时使用。
---

## 运行目录

每次成品放在本 skill 根目录下的
`output/<YYYY-MM-DD>-<slug>/`（下文简称 `<run>`，用户可以改名）。不要写到会话工作目录。

```text
output/2026-09-22-avoid-brain-rot/
  draft.md                  # 用户给的文案，原样保存
  spec.json                 # 渲染脚本读取的卡片规格
  cards/*.png               # 3:4 图片 + preview.html + manifest.json
```

下面命令里的路径都相对本 skill 根目录。脚本会把相对路径落到 skill 目录，
与当前工作目录无关。给用户看图片。

## 输入

用户提供文案。至少要有标题和正文。来源、截图、头像有就收下，没有就不编。

文案不完整（没有正文，或只有一句标题）就停下来问。不要自己写成一篇笔记，也不要改写用户的句子。

把原文存成 `<run>/draft.md`。

## 配图

先读 [references/card-spec.md](references/card-spec.md)：十套模版的选择表、字段说明和完整自检都在里面。
**一篇笔记只选一个模版**：按这篇文案的内容形态选一套写进 `meta.template`，整篇所有页都用
这一套渲染。不要给每张卡各选一套，也不要先定风格再硬塞字段。
不放话题标签、角标、评论号召。

分页、换行和 `**强调**` 是为了上屏。判断、数字、原话保持用户的说法。
字被压得太小就删重复句或拆页，不换一种说法。

```bash
python3 scripts/render_cards.py output/<run>/spec.json \
  --out output/<run>/cards
```

每张卡片是精确的 1080×1440 PNG，外加 `preview.html` 和 `manifest.json`。
分页按内容量定：内容少就 2–3 页，不硬凑；一句话的末页并回上一页（用引用块收尾），
不单独占页。先写 spec 渲一遍，按输出逐条修到干净：

- `text shrunk to` 且低于 85%——这一页塞多了，删字或拆成两张，字太小手机上读不了；
- `only ... filled`——正文页填充率不到 60%，合并短页或把邻页内容挪过来，
  不允许靠留白凑页数（封面大字页除外）。

交付前逐张打开图片看一遍（中文字形、换行、裁切），再按 card-spec.md 的自检逐条过，
全部通过才算完。然后在对话里用绝对路径把图片直接显示出来，告诉用户文件夹在哪。
