对话笔记直发:8.5 公众号推送SOP与封面撑高bug修复。分类:效率实录。


date: 2026-08-05 tags: [对话笔记]

M.d 8.5 公众号推送SOP与封面撑高bug修复

目标与背景

把一篇 Markdown 文章排版后推送到微信公众号草稿箱,并沉淀成可复用流水线。 本次核心任务有两段:

  1. 修复”封面大卡片被微信撑高成 3:2”的 bug(本地打开是正常 1:2)。
  2. 用子代理做对抗式审查,把整条链路打磨成可复用、安全的版本。

前置:用 gzh-design skill(moyu-green 主题)把 Markdown 排版成公众号合规 HTML。 平台约束(不变):只认内联 style + <span leaf=""> 包文本;禁 <style>/<script>/<div>/class/id/float/grid/@media 等。

关键结论

  • 封面撑高的根因(第一性原理):微信公众号会把 HTML 标签之间的换行/空白渲染成约 28px 高的空行(继承根容器 line-height:1.75),层层叠加把卡片撑高。下方 4 张滑动卡因在 white-space:nowrap 内而免疫。
  • 修复点:不让”生成”产物变丑,而是让”负责跟微信打交道的推送步骤”保证传入内容无换行——push_gzh_draft.py 上传前自动 re.sub(r'>\s+<','><',html) + re.sub(r' {2,}',' ',html)。生成产物可保持可读,微信永远拿到干净版。不单独做”去空白脚本”(剃刀原则)。
  • 对抗审查 13 项发现,核心已修:
    • 严重①:封面图默认取正文首图,而本文首图是 AI 生成的”掀翻美国 AI 大佬”图,当信息流封面跑题+合规风险 → 已在 push 增加 COVER_URL 第 4 参数解耦(图由用户后续给)。
    • 严重②:validate_gzh_html.py 不查标签间空白,压实正则若被误删会无声复发 → 已在 validate 加 >\s*\n\s*< / >\s{2,}< 的 WARNING。
    • 中等③:push 硬编码 TITLE/DIGEST → 已改为参数化 push_gzh_draft.py <html> <标题> [摘要] [封面URL] [作者]。
    • 中等④:cleanup 误传 media_id 会删光同名草稿 → 已加”误传校验拒绝” + 必须 --yes 才真删(默认预览)。
    • 中等⑤:2 份早期错标题废稿(我实测了 DeepSeek V4 Flash…,缺”刚发布两天,“前缀)已精确删除。
    • 中等⑥:SOP/记忆与现状不符 → 已更新。
    • 轻微(暂留,可暂缓):缓存按文件名跨文章串图、img 正则只认 src 首个属性(已顺手修)、无 alt、box-shadow/linear-gradient 未警告(已加警告)、凭据明文、单行文件 git diff 失效。

执行记录

  • 修改并固化 3 个脚本到 .agents/skills/gzh-design/scripts/:
    • validate_gzh_html.py → 新增标签间空白 WARNING + box-shadow/linear-gradient WARNING。
    • push_gzh_draft.py → 参数化标题/摘要/封面/作者;封面支持 COVER_URL 解耦;img 正则改为 <img[^>]*\ssrc=...(避免漏图)。
    • cleanup_dup_drafts.py → 默认预览、需 --yes 才删;显式 media_id 不在匹配列表则拒绝。
  • 产出文件:000_Raw/00_plan/_产出/刚发布两天,我实测了 DeepSeek V4 Flash:这次是来掀桌子的!_排版_摸鱼绿(moyu-green).html(已压实,作者改为”小风”;占位符 {{作者名}} 已替换)。
  • 推送验证(新签名):python3 .agents/skills/gzh-design/scripts/push_gzh_draft.py "<html>" "刚发布两天…" "摘要" "" "小风" → 生成草稿 xLDq81K2O9Sk2x2EA_t7SdTV8MKgrug8nRUBgqOWL9i8SM_kjtI4SZLyI31cxmey,校验:标签间空白 0、span-leaf 215、占位符已替换、author=小风。
  • 清理:python3 .agents/skills/gzh-design/scripts/cleanup_dup_drafts.py --yes → 删旧留新,箱里该标题现仅 1 份。
  • 删除 2 份错标题废稿(指定 media_id 精确删除):xLDq81K2O9Sk2x2EA_t7SQGS6XFmnlk_hawsNLSlo7uYLJCSsebthX7B3lkJXmIi、...t7SVr69AsZ8f51odYFSiFjphr9LLaM38NHEKhZaX0uDYI1(errcode 0)。
  • 写 SOP:/mnt/d/Program/feng/公众号推送SOP.md(6 步链路 + 平台约束 + 命令 + 坑 + 换主题复用)。
  • 写记忆:/root/.codebuddy/projects/mnt-d-Program-feng/memory/reference_gzh_push.md + MEMORY.md 索引(流水线位置 + 微信 whitespace 关键坑)。
  • 凭据(写死在脚本):
  • 用到的 API:cgi-bin/token、media/uploadimg(内联图临时链)、material/add_material(封面永久素材)、draft/add、draft/get、draft/batchget、draft/delete。

状态与待办

  • ✅ 封面撑高 bug 已修(用户在草稿箱已确认正常)。
  • ✅ 对抗审查 6 项核心修复已全部落地并实跑验证。
  • ⏳ 待用户:提供一张专属封面图 URL,用第 4 参数重推,替换当前”掀翻美国 AI 大佬”的默认首图封面(合规/跑题风险)。
  • ⏳ 可暂缓项:凭据移入 .env、缓存按文章隔离、补 alt、保留 .pretty.html 副本以恢复 git diff。
  • 复用方式(换主题也一样):生成 → validate_gzh_html.py <html> → push_gzh_draft.py <html> <标题> [摘要] [封面URL] [作者] → cleanup_dup_drafts.py --yes。


相关: 00-索引-AI工程索引 8.3 AI工具链收口与自媒体内容生产—123阶段执行规划