maomomo-article-writer/references/delivery-rules.md

213 lines
17 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# MAOMOMO 完整交付规则
本文件用于完整文章、配图、发布包、打包、一键下载、GitHub 分批推送和后续更新任务。只要用户没有明确说“只要文字”“不要图片”“不要打包”“先不要生成文件”“先只要大纲”默认按完整交付模式执行。用户提到“小红书”“卡片”“多图”“3:4”“9:16”时默认进入小红书卡片模式不默认生成完整文章、Markdown 或 ZIP。
完整交付模式指“最终交付物必须完整”,不代表可以跳过确认一次性全量生成。执行时必须遵守 `SKILL.md` 的阶段门禁:先读资料和事实表,再确认标题 / 口径 / 大纲 / 素材映射 / 配图风格 / 生图后端,随后写文章、整理 prompts、先出一张样张样张确认后再逐张生成剩余图片。
## 强制完整交付规则
当用户请求包含以下任一表达时,必须默认进入“完整交付模式”:
- “使用 skill 生成文章”
- “按 skill 生成”
- “配图也是按 skill”
- “配图也按 SKILL”
- “完整文章”
- “发布用 Markdown”
- “打包”
- “一键下载”
- “给我文件”
- “文章和配图一起”
- “生成文章 + 配图”
- “最终交付”
完整交付模式最终必须完成以下交付物,但必须分阶段推进:
1. 读取并核对用户提供的所有官方链接、PDF、参考文章和条款。
2. 在写最终稿前给用户确认标题、核心口径、`outline.md` 大纲、来源缺口、必选素材映射和配图风格。
3. 用户确认后输出发布用 Markdown 文件,而不是只在聊天框展示正文。
4. 出图前把全部图片 prompt 写入 `prompts/` 或 manifest 文件,让用户可直接编辑。
5. 先生成并确认一张样张,优先封面图;样张确认后再逐张生成剩余独立高清 PNG。
6. 将通过 QA 的图片同步到 `assets/` 目录,并以相对路径插入 Markdown例如 `![图片说明](assets/hsbc-mastercard-alipay-campaign-01-cover.png)`
7. 用脚本检查 Markdown 中所有本地图片路径真实存在。
8. 创建 ZIP 包,结构类似:
```text
article_package.zip
article.md
assets/
hsbc-mastercard-alipay-campaign-01-cover.png
hsbc-mastercard-alipay-campaign-02-overview.png
hsbc-mastercard-alipay-campaign-03-timeline.png
```
9. 最终回复只给路径和极简说明,同时说明图片数量、生图后端、状态记录和已知限制。
如果因为工具限制、图片生成失败、文件写入失败或资料缺失导致无法完成完整交付,必须明确说明失败点,并尽量交付已经完成的部分。不要只输出配图提示词代替图片文件,不要只输出文章正文代替 Markdown 文件。
## 多渠道交付策略
完整文章交付默认生成 Markdown、assets 和 ZIP小红书卡片和大图片交付默认生成 `assets/`、`final_manifest.json` 和 GitHub 分批链接。最终发送方式按渠道和用户要求调整。
- 本地 / 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`。本节只规定完整交付时的执行边界。
当用户要求“配图也按 Skill”“高清配图”“精美配图”“生成配图”“文章和配图一起”时
- 必须生成独立 PNG 图片文件,而不是只给提示词。
- 出图前必须先写入 prompt 文件,包含文件名、用途、放置位置、核心文案、完整 prompt、alt text、风格和依赖素材。
- 必须先生成一张样张,优先封面图;用户确认前不得生成剩余图片。
- 样张确认后,每张图按一个 job / 一次请求 / 一次 QA 推进;运行环境支持子 agent 时,可以一图一个子 agent 并发。
- 不要只生成一张大长图替代所有配图。
- 每张图必须有独立主题例如封面图、活动总览图、时间线图、重点规则图、交易法图、避坑图、FAQ 图。
- 银行、券商、支付品牌、卡组织或支付网络 Logo 只要已由官方材料、用户素材或用户明确口径核对正确,就可以作为辅助识别出现;用户未提供素材时,应主动尽力从官方活动页、条款 PDF、品牌资源页、官网 / App 截图等来源查找准确 Logo。无法核对时使用通用符号。
- 出现信用卡、支付卡、卡组织、支付网络或机构 Logo 时,必须按官方材料或用户素材核对,并在 prompt、manifest 或 `deck_spec.json` 记录参考素材、卡组织、`allowed_brand_marks` 和 `brand_mark_sources`;不得把银联 / UnionPay 画成 Mastercard、Visa 等其他卡组织。
- 第三方 Logo 必须尺寸克制、位置辅助,不能抢占、替代或压过 `MAOMOMO` 主标识。
- 不得伪造真实 App 截图。
- prompt 中的视觉风格只能写成后台画面描述,不要写容易被模型照抄的中文风格标签;可见文字只允许出现指定业务文案、`MAOMOMO` 和已核对允许出现的品牌 / 支付标识。
- 小红书 3:4 / 9:16 图片必须原生竖版重新构图不能把横版设计压进竖图prompt 必须包含防压扁和防拉伸英文约束。
- 生成图应明确是 MAOMOMO 示意图 / 信息图,不伪装成真实截图或官方页面。
- 生成后的原始最终图先保存到 `origin_image/`,通过 QA 后同步到 `assets/`,并插入 Markdown。
- 港币金额在发布稿、图片文案、prompt、manifest 和 `deck_spec.json` 中统一写 `HKD`,来源原文抽取文件除外。
- 图片文件名使用稳定英文小写命名,并包含主题前缀,例如 `hsbc-mastercard-alipay-campaign-01-cover.png`
- 不要使用中文文件名或缺少主题前缀的通用文件名作为最终 assets 文件名,避免站点路径兼容和多文章混淆问题。
- 不要用 Playwright、HTML/CSS、SVG、Pillow、canvas、本地拼贴或手工覆盖文字替代 GPT Image2 / 图片 API 生成最终配图。
## 图片生成偏差处理
- 每张图应独立生成高清 PNG不要主动生成一张拼图再裁切。
- 如果图片工具意外只返回一张拼图或长图,应视为不合格结果。
- 除非用户接受临时方案,否则应重新生成独立图片。
- 若临时裁切拼图,必须明确说明这是临时补救,并尽快补独立版本。
- 用户要求加入参考图元素时,应把参考图作为视觉元素来源,但不要复制真实卡号、个人信息或伪造 App 截图。
## 禁止半成品交付
以下都属于半成品,除非用户明确只要求这样做:
- 只输出文章正文,不给 `.md` 文件。
- 只输出配图提示词,不生成图片文件。
- 只生成图片,不插入 Markdown。
- 只生成一张总图,不生成多张独立配图。
- 完整文章模式只给 assets不打 ZIP。
- 小红书卡片只扫描目录交付,未生成 `final_manifest.json`,导致草稿、失败图、旧比例图混入最终包。
- Telegram 发送失败后仍反复传大 ZIP而不是改用 GitHub 分批链接。
- 只给一段新增内容,不输出更新后的完整文章。
- 只给旧文件链接,没有确认文件内容已更新。
- 修改了正文,但没有同步更新标题、摘要、配图清单、来源区和 ZIP 包。
- 用户要求“输出完整文章”时,只输出新增片段。
- 用户要求“打包给我”时,只给 Markdown 或只给图片。
当用户说“输出完整文章”“别只给一段”“打包给我”“文章和配图一起”时,必须交付完整文件,而不是片段。
## 改稿更新检查
用户在已有文章上连续修改时,执行最小变更并同步验证。
1. 先定位用户指定范围标题、TLDR、某节、某句、某几个字、图片、来源区或附件。
2. 只修改指定范围;不要因为用户说“删掉 X”就删除整条信息。
3. 若修改影响编号、目录、图片 alt、来源区或 ZIP才同步更新相关部分。
4. 修改完成后读取相关片段验证,而不是只凭替换命令结果回复。
5. 最终回复只说明改了什么,不要重复发送不必要附件。
## 更新任务规则
当用户在已有文章基础上提出修改,例如“删掉 One+”“增加 BOXX 交易法”“不要用 Week”“输出完整文章”“再打包”
1. 不要只输出修改片段,除非用户明确要求“只给新增段落”。
2. 默认更新完整 Markdown 文件。
3. 如果修改影响配图或配图清单,必须同步更新对应图片引用和 assets 文件名。
4. 如果用户要求文件或打包,必须重新生成 ZIP。
5. 最终回复给出最新 Markdown 和 ZIP 链接,避免继续给旧文件。
## 远程图片路径替换
当用户提供 WordPress / CDN 上传后的 `<img ... src="...">` 片段或远程图片 URL并要求替换文章图片路径时
1. 只替换 Markdown 中的图片 URL不改正文、alt text、图片顺序和本地 assets 文件。
2. 优先按文件名或 title 中的序号 / 语义匹配,例如 `01-cover` 对封面图,`04-rebate-card` 对到账截图卡片;不要按用户粘贴顺序机械替换,除非用户明确说按粘贴顺序。
3. 替换后用 `rg` 或等效检查确认没有残留本地 `assets/` / `origin_image/` 引用。
4. 若文章已全部改为远程图Markdown 本地图片路径检查可以跳过本地资产存在性要求,但仍要检查远程 URL 已写入正确位置。
5. 如果需要重新打包ZIP 至少包含最新 `article.md`;是否继续附本地 `assets/` 取决于用户要“发布稿”还是“完整归档包”,最终回复要说明包内内容。
## 最终交付前检查清单
交付前必须逐项确认:
- Markdown 文件已生成。
- `outline.md` 已按用户确认版本保存。
- `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 图片路径都能对应到真实图片文件。
- 图片是多张独立 PNG不是一张大图代替全部。
- 图片文件名包含文章主题前缀,未沿用旧文章文件名。
- 图片可见文字没有出现风格标签、prompt 描述、额外 slogan 或无关文案;除业务文案、`MAOMOMO` 和已核对允许出现的品牌 / 支付标识外,没有多余文字。
- 图片日期、金额、公式、卡组织 / 支付网络 / 机构 Logo 和禁用分支都已核对。
- 用户未提供 Logo / 卡面素材时,已尽力查找准确标识,并在 `sources/`、prompt、manifest 或 `deck_spec.json` 记录素材来源和核对结论;无法核对时没有凭记忆画真实 Logo。
- 第三方 Logo 没有抢占、替代或压过 `MAOMOMO` 主标识。
- 发布稿、图片文案、prompt、manifest、`deck_spec.json` 和 `speech.md` 中港币金额统一使用 `HKD`
- 文末来源区只包含实际使用的来源。
- 正文没有 `contentReference`、`oaicite`、调试标记或工具残留。
- 用户要求删除的分支,标题、正文、配图清单和来源区都已删除干净。
- 完整文章模式下 ZIP 包已创建;小红书卡片模式下 `final_manifest.json` 和 GitHub 批次记录已创建。
- 用户最后确认的标题是否已同步到 frontmatter 和 H1。
- 用户要求删除的词是否只删除指定词,未误删整条信息。
- 正文是否残留编辑指令或模型解释。
- 用户不喜欢的模糊词,例如“更像”“可能”“大致”,是否已按上下文清理。
- 用户提供的明确实测结论是否写成确定语气,未被改软成“可能 / 疑似 / 大概”。
- 用户提供的“以往惯例 / 过往尿性 / 过往经验”是否写成“大概率 / 按过往案例判断”的强概率语气,并保留合理边界。
- TLDR 是否过长,是否适合当前平台。
- 小红书图是否为用户确认的 3:4 或 9:16是否每张都有 MAOMOMO 标识,是否为原生竖版重构,是否没有压扁或拉伸。
- 小红书图是否全组保持同一 2D / 3D 视觉方向。
- 图片是否匹配最终文章口径,未残留旧规则、旧金额、旧标题。
- 邮件/聊天附件是否按用户要求选择 ZIP、多个独立附件或 GitHub 分批链接Telegram 是否只承载通知和链接。
- 若已发送过旧版本,最终回复要明确这是最后版本,避免重复发同一批图片。
- 完整文章最终回复包含 Markdown 下载链接和 ZIP 或 GitHub 链接;小红书卡片最终回复包含 GitHub 链接、图片数量、风格、比例、批次数量、QA 是否完成和已知限制。