完善小红书卡片与 GitHub 交付流程

This commit is contained in:
maomomo
2026-06-29 17:10:46 +08:00
parent 79c1968950
commit 81a4173155
12 changed files with 633 additions and 56 deletions
+48 -9
View File
@@ -1,6 +1,6 @@
# MAOMOMO 完整交付规则
本文件用于完整文章、配图、发布包、打包、一键下载和后续更新任务。只要用户没有明确说“只要文字”“不要图片”“不要打包”“先不要生成文件”“先只要大纲”,默认按完整交付模式执行。
本文件用于完整文章、配图、发布包、打包、一键下载、GitHub 分批推送和后续更新任务。只要用户没有明确说“只要文字”“不要图片”“不要打包”“先不要生成文件”“先只要大纲”,默认按完整交付模式执行。用户提到“小红书”“卡片”“多图”“3:4”“9:16”时,默认进入小红书卡片模式,不默认生成完整文章、Markdown 或 ZIP。
完整交付模式指“最终交付物必须完整”,不代表可以跳过确认一次性全量生成。执行时必须遵守 `SKILL.md` 的阶段门禁:先读资料和事实表,再确认标题 / 口径 / 大纲 / 素材映射 / 配图风格 / 生图后端,随后写文章、整理 prompts、先出一张样张,样张确认后再逐张生成剩余图片。
@@ -47,16 +47,48 @@ article_package.zip
## 多渠道交付策略
完整交付默认生成 Markdown、assets 和 ZIP,但最终发送方式按渠道和用户要求调整。
完整文章交付默认生成 Markdown、assets 和 ZIP;小红书卡片和大图片交付默认生成 `assets/`、`final_manifest.json` 和 GitHub 分批链接。最终发送方式按渠道和用户要求调整。
- 本地 / Web:优先给 Markdown + ZIP;如用户要图片,也附独立图片。
- Telegram / 聊天:ZIP 可能失败,优先发送 Markdown + 多张图片独立附件;ZIP 作为可选补充。
- 本地 / Web:完整文章可给 Markdown + ZIP;小红书卡片给 `assets/`、`final_manifest.json` 和 GitHub 链接。
- GitHub:图片较多、文件较大、Telegram 可能失败或用户要求最终交付时,先读 `references/github-delivery.md`,确认交付仓库、专用 KEY / token / deploy key、仓库隐私级别和目标路径;配置就绪后按批次推送,例如 `batch-01-cover`、`batch-02-content-cards`、`batch-03-final-assets`。每批推送后记录 GitHub 文件路径、commit、release 或下载链接。
- Telegram / 聊天:只负责通知进度和给 GitHub 链接;不要依赖 Telegram 直接承载 ZIP 或大图片包。少量小文件附件只能作为补充,不作为唯一交付证据。
- Email:按用户要求选择 ZIP 或独立附件。
- 用户说“打包发我 email”:发送 ZIP。
- 用户说“不打包”“分多个附件”:发送 Markdown 和图片作为多个独立附件,不再附 ZIP。
- 若附件发送失败,不要反复重复发送同一批附件;改用更稳定的渠道或分批发送,并说明只保留最后版本。
- 发送前确认附件对应的是最后确认版,不要把旧图、旧 Markdown 或临时文件发出。
## 小红书卡片交付模式
触发词包括“小红书”“卡片”“多图”“4 图看完”“发小红书”“3:4”“9:16”。
执行规则:
1. 不默认走完整文章 + Markdown + ZIP;除非用户明确要求,只交付小红书标题、正文、话题标签和多张独立 PNG。
2. 出图前确认比例 `3:4` 或 `9:16`,确认视觉方向 `2D 扁平风` 或 `3D 轻拟物风`。用户没指定时推荐 `2D 扁平风`。
3. 每张图 prompt 必须包含原生竖版防压扁规则:`native portrait composition`、`no squeezed elements`、`no stretched card / logo / text`、`vertical layout redesigned for Xiaohongshu`。
4. 每张图按一个 job / 一次请求 / 一次 QA 推进,状态文件记录 prompt 文件、生成结果、QA 状态、是否进入 `assets/`、是否已推送 GitHub。
5. QA 通过后生成 `final_manifest.json`,只包含最终图;推送或打包只能读取该 manifest 或状态文件里标记为 final 的 assets。
6. GitHub 分批推送前必须按 `references/github-delivery.md` 完成或确认仓库和专用凭据配置。缺少配置时先输出本机配置步骤并暂停 push,不生成假链接。
7. GitHub 分批推送建议:
- `batch-01-cover`:封面图和封面 prompt。
- `batch-02-content-cards`:内容卡、流程卡、避坑卡。
- `batch-03-final-assets`:`final_manifest.json`、全部 final assets、状态文件。
8. 每批推送后立即回报 GitHub 文件路径、commit、release 或下载链接,并写入 `github_batches.json` 或状态文件。
9. 最终回复固定包含 GitHub 链接、图片数量、风格:2D / 3D、比例:3:4 / 9:16、批次数量、QA 是否完成、已知限制。
## GitHub 交付配置门禁
GitHub 交付前必须先完成以下检查:
- 已读取 `references/github-delivery.md`。
- 已确认目标仓库,例如 `OWNER/maomomo-delivery`。
- 仓库默认是私有;公开仓库必须经用户明确确认。
- 已确认认证方式:`gh auth login`、`GH_TOKEN` fine-grained PAT,或 SSH deploy key。
- 凭据必须是专用且最小权限:fine-grained PAT 只给交付仓库 `Contents: Read and write`;deploy key 只授权单仓库 write access。
- 不要求用户在聊天里粘贴 token 或私钥;不把密钥写入项目文件、manifest、状态文件、日志或 commit。
- `github_batches.json` 只记录 batch、文件路径、commit、release / url 和备注。
## 配图执行规则
具体视觉风格、图片清单、文件命名、Markdown 插图和图片 QA 规则见 `references/visual-assets.md`。本节只规定完整交付时的执行边界。
@@ -74,6 +106,7 @@ article_package.zip
- 第三方 Logo 必须尺寸克制、位置辅助,不能抢占、替代或压过 `MAOMOMO` 主标识。
- 不得伪造真实 App 截图。
- prompt 中的视觉风格只能写成后台画面描述,不要写容易被模型照抄的中文风格标签;可见文字只允许出现指定业务文案、`MAOMOMO` 和已核对允许出现的品牌 / 支付标识。
- 小红书 3:4 / 9:16 图片必须原生竖版重新构图,不能把横版设计压进竖图;prompt 必须包含防压扁和防拉伸英文约束。
- 生成图应明确是 MAOMOMO 示意图 / 信息图,不伪装成真实截图或官方页面。
- 生成后的原始最终图先保存到 `origin_image/`,通过 QA 后同步到 `assets/`,并插入 Markdown。
- 港币金额在发布稿、图片文案、prompt、manifest 和 `deck_spec.json` 中统一写 `HKD`,来源原文抽取文件除外。
@@ -97,7 +130,9 @@ article_package.zip
- 只输出配图提示词,不生成图片文件。
- 只生成图片,不插入 Markdown。
- 只生成一张总图,不生成多张独立配图。
- 只给 assets,不打 ZIP。
- 完整文章模式只给 assets,不打 ZIP。
- 小红书卡片只扫描目录交付,未生成 `final_manifest.json`,导致草稿、失败图、旧比例图混入最终包。
- Telegram 发送失败后仍反复传大 ZIP,而不是改用 GitHub 分批链接。
- 只给一段新增内容,不输出更新后的完整文章。
- 只给旧文件链接,没有确认文件内容已更新。
- 修改了正文,但没有同步更新标题、摘要、配图清单、来源区和 ZIP 包。
@@ -145,6 +180,9 @@ article_package.zip
- `prompts/` 中每张图的 prompt 文件已保存,且与最终图片数量和顺序一致。
- 一张样张已确认,后续图片继承同一生图后端和视觉系统。
- `slide_jobs.json` / `slide_run_state.json` 已记录图片任务状态;如缺少记录,最终回复必须说明原因。
- 每张图的状态记录包含 prompt 文件、生成结果、QA 状态、是否进入 `assets/`、是否已推送 GitHub。
- `final_manifest.json` 已生成,并且最终交付只读取 manifest 中列出的 final assets。
- 需要 GitHub 交付时,已确认 `references/github-delivery.md` 中的仓库、专用凭据、隐私级别和目标路径;缺失时最终回复说明配置阻塞项。
- `origin_image/` 中最终原始图片存在。
- `assets/` 目录已生成。
- 已运行 `uv run python scripts/maomomo_check_markdown_assets.py article/article.md` 或等效脚本,确认所有 Markdown 图片路径都能对应到真实图片文件。
@@ -158,7 +196,7 @@ article_package.zip
- 文末来源区只包含实际使用的来源。
- 正文没有 `contentReference`、`oaicite`、调试标记或工具残留。
- 用户要求删除的分支,标题、正文、配图清单和来源区都已删除干净。
- ZIP 包已创建。
- 完整文章模式下 ZIP 包已创建;小红书卡片模式下 `final_manifest.json` 和 GitHub 批次记录已创建。
- 用户最后确认的标题是否已同步到 frontmatter 和 H1。
- 用户要求删除的词是否只删除指定词,未误删整条信息。
- 正文是否残留编辑指令或模型解释。
@@ -166,8 +204,9 @@ article_package.zip
- 用户提供的明确实测结论是否写成确定语气,未被改软成“可能 / 疑似 / 大概”。
- 用户提供的“以往惯例 / 过往尿性 / 过往经验”是否写成“大概率 / 按过往案例判断”的强概率语气,并保留合理边界。
- TLDR 是否过长,是否适合当前平台。
- 小红书图是否为 9:16 竖版,是否每张都有 MAOMOMO 标识。
- 小红书图是否为用户确认的 3:4 或 9:16,是否每张都有 MAOMOMO 标识,是否为原生竖版重构,是否没有压扁或拉伸。
- 小红书图是否全组保持同一 2D / 3D 视觉方向。
- 图片是否匹配最终文章口径,未残留旧规则、旧金额、旧标题。
- 邮件/聊天附件是否按用户要求选择 ZIP 或多个独立附件。
- 邮件/聊天附件是否按用户要求选择 ZIP、多个独立附件或 GitHub 分批链接;Telegram 是否只承载通知和链接。
- 若已发送过旧版本,最终回复要明确这是最后版本,避免重复发同一批图片。
- 最终回复包含 Markdown 下载链接和 ZIP 下载链接。
- 完整文章最终回复包含 Markdown 下载链接和 ZIP 或 GitHub 链接;小红书卡片最终回复包含 GitHub 链接、图片数量、风格、比例、批次数量、QA 是否完成和已知限制。
+138
View File
@@ -0,0 +1,138 @@
# GitHub 交付配置
本文件用于 GitHub 分批交付前的仓库和专用凭据配置。只要任务需要 GitHub push、release、下载链接,或用户提到 GitHub 仓库、专用 KEY、token、PAT、deploy key,先读本文件。
## 目标
- 使用专门的交付仓库,不和源码仓库混放。
- 默认使用私有仓库,除非用户明确要求公开交付。
- 使用专用、最小权限凭据;不要复用高权限个人 token。
- 不在聊天、prompt、manifest、状态文件、README、日志或提交记录里暴露完整 token / 私钥。
## 推荐配置
推荐环境变量:
```bash
export MAOMOMO_GITHUB_REPO="OWNER/maomomo-delivery"
export MAOMOMO_GITHUB_BRANCH="main"
export MAOMOMO_GITHUB_BASE_PATH="deliveries"
```
认证方式任选其一:
1. GitHub CLI 登录,适合本机交互使用:
```bash
gh auth login --web --git-protocol https
gh auth status
```
2. Fine-grained PAT,适合脚本或无头环境:
- Repository access:只选交付仓库。
- Repository permissions:只给 `Contents: Read and write`。
- 过期时间:建议 30-90 天。
- 本机设置为环境变量,不要发到聊天里:
```bash
export GH_TOKEN="只在本机 shell 中设置,不写入项目文件"
gh auth status
```
3. SSH deploy key,适合只给单仓库写权限:
```bash
ssh-keygen -t ed25519 -f "$HOME/.ssh/maomomo_delivery_ed25519" -C "maomomo-delivery"
```
把 `.pub` 公钥加入 GitHub 仓库 Settings -> Deploy keys,并勾选 write access。私钥只留本机,推送时使用:
```bash
export GIT_SSH_COMMAND="ssh -i $HOME/.ssh/maomomo_delivery_ed25519 -o IdentitiesOnly=yes"
```
## 首次仓库准备
如果用户还没有交付仓库,先引导其创建或确认仓库名。不要擅自创建公开仓库。
```bash
gh repo create "$MAOMOMO_GITHUB_REPO" --private --clone=false
```
检查仓库:
```bash
gh repo view "$MAOMOMO_GITHUB_REPO" --json nameWithOwner,visibility,defaultBranchRef
```
如果 `visibility` 不是 `PRIVATE`,先提醒用户可能公开图片、prompt、状态文件和活动信息;除非用户明确确认,否则不要继续推送。
## 本地工作目录
GitHub 交付工作目录默认放在 `$HOME/dev` 下,避免散落到桌面、下载目录或系统目录:
```bash
mkdir -p "$HOME/dev/maomomo-delivery-work"
cd "$HOME/dev/maomomo-delivery-work"
```
如果仓库尚未 clone:
```bash
gh repo clone "$MAOMOMO_GITHUB_REPO" repo
```
目标路径建议:
```text
deliveries/{project_slug}/
├── batch-01-cover/
├── batch-02-content-cards/
├── batch-03-final-assets/
├── final_manifest.json
├── github_batches.json
└── slide_run_state.json
```
## 推送前检查
推送前必须确认:
- `MAOMOMO_GITHUB_REPO` 已设置,或用户已明确给出目标仓库。
- 已通过 `gh auth status`,或 SSH deploy key 已能写入目标仓库。
- 仓库默认为私有;公开仓库必须经用户明确确认。
- `final_manifest.json` 已生成,最终文件只从 manifest 或状态文件里的 final assets 读取。
- 本批文件不包含 token、私钥、账号、真实个人信息或未确认敏感素材。
- `github_batches.json` 只记录 batch、路径、commit、release / url,不记录任何密钥。
## 分批推送流程
每批只复制本批需要交付的文件,不扫描整个项目目录。提交信息优先中文:
```bash
git add deliveries/{project_slug}/batch-01-cover deliveries/{project_slug}/github_batches.json
git commit -m "交付:{project_slug} batch-01-cover"
git push origin "$MAOMOMO_GITHUB_BRANCH"
```
推送后用状态脚本记录:
```bash
uv run python scripts/maomomo_job_state.py github-batch article \
--batch batch-01-cover \
--commit "<commit sha>" \
--url "https://github.com/OWNER/REPO/commit/<commit sha>" \
--paths assets/example-01-cover.png prompts/example_01.json final_manifest.json
```
每批推送后回复用户:GitHub 文件路径、commit、release 或下载链接,并说明下一批状态。
## 阻塞处理
如果缺少仓库或凭据,不要继续生成假链接,也不要要求用户把 token 粘贴到聊天里。回复应包含:
- 当前阻塞:缺少交付仓库、未登录 GitHub CLI、token 权限不足、deploy key 未授权等。
- 本机配置命令。
- 需要用户确认的仓库名或认证方式。
- 已完成的本地文件路径和下一步。
+28
View File
@@ -102,6 +102,8 @@ manifest 示例:
"core_text": "先报名,再看门槛和封顶",
"alt_text": "MAOMOMO 汇丰 Mastercard 支付宝返现活动封面图",
"style": "warm-fintech-guide",
"visual_direction": "2D 扁平风",
"delivery_batch": "batch-01-cover",
"allowed_brand_marks": ["HSBC", "Mastercard", "支付宝"],
"brand_mark_sources": [
{
@@ -143,6 +145,8 @@ uv run python scripts/maomomo_image_gen.py batch \
- 发布用 Markdown 默认引用 `assets/`,因此如果 manifest 输出到 `origin_image/`,必须在 QA 后复制到对应 `assets/` 路径。
- 金融活动 manifest 中涉及信用卡、支付卡、支付网络或机构 Logo 时,必须记录 `reference_assets`、`payment_network`、`allowed_brand_marks`、`brand_mark_sources` 和 `card_art_rule`,并在 QA 中核对卡组织和第三方 Logo 没有画错,也没有抢 MAOMOMO 主标识位置。用户未提供 Logo / 卡面素材时,先尽力查找官方或可信来源并保存到 `sources/`;无法核对时使用通用符号,不要凭记忆画真实 Logo。
- manifest、prompt、`deck_spec.json` 和发布稿中的港币金额统一使用 `HKD`,来源原文抽取文件除外。
- 小红书卡片 manifest 必须记录 `aspect_ratio`、`visual_direction`、`delivery_batch` 和 `portrait_composition_rules`;prompt 必须包含 `native portrait composition`、`no squeezed elements`、`no stretched card / logo / text`、`vertical layout redesigned for Xiaohongshu`。
- 小红书卡片默认不生成完整文章、Markdown 或 ZIP;最终文件清单以 `final_manifest.json` 为准。
## 内置风格名
@@ -194,6 +198,8 @@ uv run python scripts/maomomo_image_gen.py styles
- 发布图,例如 `assets/hsbc-mastercard-alipay-campaign-01-cover.png`
- 状态:`pending`、`dispatched`、`recorded`、`blocked`
- 生图后端、agent id、QA note、失败原因
- 小红书卡片字段:`aspect_ratio`、`visual_direction`、`delivery_batch`
- 最终交付字段:`qa_status`、`entered_assets`、`final`、`github_pushed`、`github_batch`
使用 `scripts/maomomo_job_state.py` 更新状态,不要手工改 JSON 后声称完成。
@@ -240,3 +246,25 @@ uv run python scripts/maomomo_job_state.py blocker article \
```
如果状态脚本失败,最终报告必须说明原因,并附上状态文件当前路径和未完成 job。
生成最终 manifest:
```bash
uv run python scripts/maomomo_job_state.py final-manifest article
```
`final_manifest.json` 只写入状态为 `recorded`、QA 已通过、且 `assets/` 文件真实存在的图片。最终推送、打包或给链接时只能读取该文件,不能扫描整个目录。
记录 GitHub 批次:
运行前必须先按 `references/github-delivery.md` 完成交付仓库和专用凭据配置;`github-batch` 只记录已经真实推送后的批次结果,不负责创建仓库、保存密钥或生成假链接。
```bash
uv run python scripts/maomomo_job_state.py github-batch article \
--batch batch-01-cover \
--commit "<commit sha>" \
--url "https://github.com/org/repo/commit/<commit sha>" \
--paths assets/example-01-cover.png prompts/example_01.json
```
每批推送后都要写入 batch 记录。状态文件里的单图记录会同步标记 `github_pushed=true`、`github_batch=batch-xx`;最终回复从 `github_batches.json` 或状态文件读取批次数量和链接。
@@ -4,6 +4,7 @@
- 小红书发布版
- 4 图看完
- 多图卡片 / 3:4 / 9:16
- 手机端快速理解的活动 / 避坑 / 教程内容
## MAOMOMO 出图 Brief
@@ -11,11 +12,11 @@
```json
{
"style_name": "xiaohongshu-vertical",
"visual_direction": "vertical mobile-first Chinese finance guide card, big readable text, series layout",
"visual_direction": "2D flat infographic card by default, optional 3D soft neumorphic direction only after user confirmation, vertical mobile-first Chinese finance guide card, big readable text, series layout",
"canvas": {
"aspect_ratio": "9:16",
"aspect_ratio": "3:4 or 9:16, confirm before generation",
"background": "warm white or light orange",
"composition": "large hook title, 2-4 key blocks, cat watermark or small mascot",
"composition": "native portrait composition, large hook title, 2-4 key blocks, cat watermark or small mascot, vertical layout redesigned for Xiaohongshu",
"density": "low, mobile readable"
},
"color_palette": {
@@ -36,6 +37,9 @@
],
"avoid": [
"reuse of horizontal article image",
"squeezed elements",
"stretched card / logo / text",
"mixing 2D and 3D visual directions in one image set",
"long source paragraph",
"tiny screenshot-like UI",
"exaggerated earning promise"
@@ -46,5 +50,5 @@
## Prompt 片段
```text
9:16 竖版,大字少字,手机端可读,暖橙白底,白橘猫水印,适合 4 图系列,包含 MAOMOMO 标识。可见文字只允许出现指定业务文案、MAOMOMO 和已核对允许出现的品牌 / 支付标识。
3:4 或 9:16 原生竖版,native portrait composition,vertical layout redesigned for Xiaohongshu,大字少字,手机端可读,暖橙白底,白橘猫水印,适合多图系列,包含 MAOMOMO 标识。no squeezed elements,no stretched card / logo / text。可见文字只允许出现指定业务文案、MAOMOMO 和已核对允许出现的品牌 / 支付标识。
```
+7 -4
View File
@@ -187,20 +187,23 @@
推荐语:
```text
我建议用 xiaohongshu-vertical,因为用户要发小红书,应该重新做 9:16 竖图,而不是复用站内横版图。
我建议用 xiaohongshu-vertical,并默认选 2D 扁平风,因为用户要发小红书,应该重新做 3:4 或 9:16 原生竖图,而不是复用站内横版图;2D 信息卡片更清爽,中文文字也更稳。
```
视觉要点:
- 9:16 竖版,手机端可读。
- 3:4 或 9:16 竖版,手机端可读。
- 出图前先确认 `2D 扁平风` 或 `3D 轻拟物风`;默认推荐 2D,3D 适合封面、活动感和金融产品展示。
- 全组保持同一 `visual_direction`,不得中途混用。
- 大字少字,标题钩子强。
- 4 图系列统一:封面、核心拆解、操作流程、避坑总结。
- 每张图都有 MAOMOMO 标识或猫咪水印。
- 原生竖版重新构图,禁止横版硬塞;元素、卡片、Logo 和文字不能压扁或拉伸。
提示词片段:
```text
9:16 竖版,手机端可读,大标题,少量关键数字,暖橙白底,白橘猫水印,适合 4 图看完的中文金融攻略,包含 MAOMOMO 标识。可见文字只允许出现指定业务文案、MAOMOMO 和已核对允许出现的品牌 / 支付标识。
3:4 或 9:16 原生竖版,native portrait composition,vertical layout redesigned for Xiaohongshu,手机端可读,大标题,少量关键数字,暖橙白底,白橘猫水印,适合多图系列的中文金融攻略,包含 MAOMOMO 标识。no squeezed elements,no stretched card / logo / text。可见文字只允许出现指定业务文案、MAOMOMO 和已核对允许出现的品牌 / 支付标识。
```
## 风格选择输出格式
@@ -214,7 +217,7 @@ A. warm-fintech-guide(推荐):【适合原因】
B. data-card-dashboard:【适合原因】
C. handdrawn-note:【适合原因】
你选哪个?也可以指定更偏简洁、数据感、手绘感或小红书感。
你选哪个?如果是小红书卡片,也请确认用 2D 扁平风还是 3D 轻拟物风;没指定我会默认用 2D。
```
用户选择后,把风格名写入图片清单的 `风格` 字段或 manifest 的 `style` 字段。
+23 -5
View File
@@ -176,18 +176,21 @@ MAOMOMO 是偏实操的出海经验平台。公开站点标语是:“打破信
- 核心结论可以放在引用块里。
- 结尾提醒政策变化风险,例如“直至另行通知”“随时可能取消”。
### 6. 小红书发布版 / 4 图看完
### 6. 小红书卡片模式 / 多图发布
用户说“小红书”“发小红书”“4图看完”“超短文字”“20字内标题”时,进入小红书模式。
用户说“小红书”“卡片”“多图”“发小红书”“4图看完”“3:4”“9:16”“超短文字”“20字内标题”时,进入小红书卡片模式。
小红书卡片模式是独立交付模式,不默认走完整文章 + Markdown + ZIP 流程。除非用户明确要求文章或打包,否则重点交付多张统一风格的独立 PNG,以及可复制的小红书标题、正文和话题标签。
交付物:
- 20 字内标题。
- 超短正文,适合直接复制发布。
- 3-6 个话题标签。
- 4 张 9:16 竖版 PNG 图,不复用文章横版图。
- 多张 3:4 或 9:16 竖版 PNG 图,默认 4 张;不复用文章横版图。
- 每张图加入 MAOMOMO logo / 猫咪水印。
- 如果用户要求 email,按用户要求打包或多附件发送。
- `final_manifest.json`,只列通过 QA 且进入 `assets/` 的最终图片。
- GitHub 分批交付链接;Telegram / 聊天只通知进度和链接,不承载大 ZIP 或大图包。
文字规则:
@@ -205,12 +208,27 @@ MAOMOMO 是偏实操的出海经验平台。公开站点标语是:“打破信
视觉规则:
- 纵向 9:16,手机端可读,大字少字。
- 出图前必须先确认比例:`3:4` 或 `9:16`。
- 出图前必须先确认视觉方向:`2D 扁平风` 或 `3D 轻拟物风`。
- 用户没指定时,默认推荐 `2D 扁平风`:清爽、信息卡片、适合教程 / 规则说明,中文文字更稳。
- `3D 轻拟物风` 更适合封面、活动感、金融产品展示;一旦确认,整组不能和 2D 混用。
- 纵向原生构图,手机端可读,大字少字。
- 每张图独立,不要拼图。
- 每张图有 MAOMOMO 标识。
- 文章横图不能直接当小红书图;需要重新设计。
- 禁止把横版设计硬塞进 3:4 或 9:16;prompt 必须包含 `native portrait composition`、`no squeezed elements`、`no stretched card / logo / text`、`vertical layout redesigned for Xiaohongshu`。
- 如果用户提供卡片、截图或 Logo 参考,只做原创示意,不复制敏感信息,不伪造真实 App 页面。
最终回复固定包含:
- GitHub 链接。
- 图片数量。
- 风格:2D / 3D。
- 比例:3:4 / 9:16。
- 批次数量。
- QA 是否完成。
- 已知限制。
### 5. 避坑经验
用于“不要浪费时间试了”、DCC、支付失败、转账姓名顺序问题、线下网点提醒等。
+36 -6
View File
@@ -92,13 +92,20 @@ MAOMOMO 暖橙金融教程风,画出一张手绘便签风仪表盘图。
如果用户没有指定视觉方向,生成图片前先读 `references/recommended-styles.md`,给 2-3 个可选风格,并推荐一个。确认后,整篇文章的配图保持同一套视觉身份:稳定的配色、猫咪造型、标题区、图标语言和信息密度;不同图片可以根据用途变化构图。
小红书卡片模式先确认两件事:
- 比例:`3:4` 或 `9:16`。
- 视觉方向:`2D 扁平风` 或 `3D 轻拟物风`。用户没指定时,推荐 `2D 扁平风`,因为信息卡片更清爽、教程 / 规则说明更稳,也更不容易出现中文文字翻车;`3D 轻拟物风` 更适合封面、活动感和金融产品展示。
小红书卡片一旦确认 `2D` 或 `3D`,整组图片必须继承同一个 `visual_direction`,不得中途混用。
默认推荐逻辑:
- 活动 / 返现 / 港卡攻略:优先 `warm-fintech-guide`。
- 规则、门槛、费用、返现计算和产品对比:优先 `data-card-dashboard`。
- SEO 长文、经验整理、品牌感更强的文章:优先 `clean-editorial`。
- 保姆式教程、避坑经验和轻量操作步骤:优先 `handdrawn-note`。
- 小红书 / 4 图看完:必须用 `xiaohongshu-vertical`,并生成 9:16 竖图。
- 小红书 / 4 图看完 / 多图卡片:必须用 `xiaohongshu-vertical`,并按用户确认生成 3:4 或 9:16 竖图。
可选风格:
@@ -114,7 +121,7 @@ MAOMOMO 暖橙金融教程风,画出一张手绘便签风仪表盘图。
| `e-ink-editorial` | 深度解释、观点长文 | 纸感、黑白灰、少量强调色、元信息条 |
| `scientific-defense` | 条款核对、规则证据链 | 严谨浅色版式、来源卡片、条件树 |
| `mckinsey-brief` | 多方案对比、路径选择 | 结论先行、矩阵、取舍图、商业简报感 |
| `xiaohongshu-vertical` | 小红书发布版、4 图看完 | 9:16 竖版、大字少字、强钩子、系列化版式 |
| `xiaohongshu-vertical` | 小红书发布版、4 图看完、多图卡片 | 3:4 或 9:16 竖版、大字少字、强钩子、系列化版式 |
示例确认话术:
@@ -143,7 +150,7 @@ C. handdrawn-note:便签和手绘箭头更明显,适合避坑经验和保姆
## 图片清单格式
生成图片前先规划清单,并同步写入 `prompts/{article_slug}_XX.json` 或图片 manifest。每个 prompt 文件至少包含:文件名、类型、放置位置、核心文案、可见文字白名单、alt text、风格、依赖素材、输出路径和完整 prompt。涉及信用卡、支付卡、支付网络或机构 Logo 时,还要包含参考素材、卡组织 / 支付网络、`allowed_brand_marks`、`brand_mark_sources` 和核对依据。
生成图片前先规划清单,并同步写入 `prompts/{article_slug}_XX.json` 或图片 manifest。每个 prompt 文件至少包含:文件名、类型、放置位置、核心文案、可见文字白名单、alt text、风格、依赖素材、输出路径和完整 prompt。小红书卡片还必须包含 `aspect_ratio`、`visual_direction`、`portrait_composition_rules` 和分批交付批次。涉及信用卡、支付卡、支付网络或机构 Logo 时,还要包含参考素材、卡组织 / 支付网络、`allowed_brand_marks`、`brand_mark_sources` 和核对依据。
```markdown
| 文件名 | 类型 | 放置位置 | 核心文案 | alt text | 风格 | 依赖素材 |
@@ -168,6 +175,10 @@ C. handdrawn-note:便签和手绘箭头更明显,适合避坑经验和保姆
"visible_text_allowed": ["先报名,再看门槛和封顶", "MAOMOMO"],
"alt_text": "MAOMOMO 汇丰 Mastercard 支付宝返现活动封面图",
"style": "warm-fintech-guide",
"aspect_ratio": "16:9",
"visual_direction": "2D 扁平风",
"delivery_batch": "batch-01-cover",
"portrait_composition_rules": [],
"required_assets": [],
"reference_assets": [],
"brand_mark_sources": [],
@@ -179,6 +190,17 @@ C. handdrawn-note:便签和手绘箭头更明显,适合避坑经验和保姆
}
```
小红书卡片 prompt JSON 中,`portrait_composition_rules` 必须包含:
```json
[
"native portrait composition",
"no squeezed elements",
"no stretched card / logo / text",
"vertical layout redesigned for Xiaohongshu"
]
```
## 文件命名
图片文件名必须 SEO 友好,并包含主题前缀:
@@ -259,13 +281,17 @@ assets/
## 小红书图
用户说“小红书”“4 图看完”“发小红书”时:
用户说“小红书”“卡片”“多图”“4 图看完”“发小红书”“3:4”“9:16”时:
- 生成 4 张 9:16 竖版 PNG,不复用文章横版图。
- 进入小红书卡片模式,不默认生成完整文章、Markdown 或 ZIP。
- 生成多张 3:4 或 9:16 竖版 PNG,默认 4 张;不复用文章横版图。
- 出图前先确认 `2D 扁平风` / `3D 轻拟物风`;默认推荐 `2D 扁平风`。
- 每张图有 MAOMOMO 标识或猫咪水印。
- 手机端可读,大字少字。
- 默认结构:封面、核心拆解、操作流程、避坑总结。
- 风格固定为 `xiaohongshu-vertical`,不直接复用横版文章图。
- 风格固定为 `xiaohongshu-vertical`,同组保持同一 `visual_direction`,不直接复用横版文章图。
- prompt 必须包含 `native portrait composition`、`no squeezed elements`、`no stretched card / logo / text`、`vertical layout redesigned for Xiaohongshu`。
- 通过 QA 后写入 `final_manifest.json`;最终交付只读取 final manifest 或状态文件中的 final assets。
## 图片 QA
@@ -273,6 +299,8 @@ assets/
- 样张已被用户确认,后续图片没有切换生图后端或视觉风格。
- 文件真实存在,格式为 PNG。
- 小红书卡片比例为已确认的 `3:4` 或 `9:16`,不是横版图压缩或拉伸后的结果。
- 小红书卡片是原生竖版重构,元素没有压扁,卡片、Logo 和文字没有拉伸。
- `origin_image/` 原始最终图和 `assets/` 发布图对应。
- Markdown 路径能打开对应文件。
- 图片文字清楚,无乱码、错字、截断和多余文案。
@@ -287,6 +315,8 @@ assets/
- 没有把示意图伪装成真实截图、账单、订单、App 页面或官方页面。
- 每张图独立主题明确,不是同一画面的机械变体。
- 单张 QA 通过后,才用 `scripts/maomomo_job_state.py result` 记录结果并同步到 `assets/`;不得只生成到 `origin_image/` 后声称完成。
- 单张 QA 通过后,状态文件必须显示 `qa_status=passed`、`entered_assets=true`;GitHub 推送后必须记录 `github_pushed=true` 或对应 batch 记录。
- 最终交付前必须生成 `final_manifest.json`,且只包含通过 QA 并进入 `assets/` 的最终文件。
- `article.md` 已插入对应章节,且用脚本检查 Markdown 中所有图片路径真实存在。
- `slide_jobs.json` / `slide_run_state.json` 中没有未处理的 `pending`、`dispatched` 或 `blocked` job;如有,不能声称完整交付完成。