agentleFS
tomlen045tomlen045/media-agent-skills/skills/wechat-article-publisher/SKILL.md

wechat-article-publisher

Skill0 starsChanged 30 days agoMITView on GitHub

微信公众号图文发布规格与微信编辑器样式存活规则:章节骨架、实测样式数值、抗样式剥离写法、热点快跟SOP、封面产线、数据复盘。

3 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. iamzifei/wechat-article-publisher-skill★ 157same name
    2. ZhaoYis/My-Skills★ 2same name
    3. shaoxueheng/wechat-article-publisher★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository5 other files it gives its agents.

The file

Files
SKILL.md

微信公众号图文发布规格

为公众号账号生成可直接粘贴进公众号后台的图文 HTML。爆款样本的逐层拆解深度(UI 实测数值/逐章结构/图片体系)见 references/爆款样本拆解.md,正文只保留 always-on 规则。

结构骨架(对标爆款图文格式)

  1. 头图深色卡:渐变底 + 栏目标签(13px 字距 3px)+ 双行大标题(24px bold)+ 一行副标(13px 灰)
  2. 开头钩子:热点数字(数字锚点)→ 冲突句 → 引出工具/主题
  3. 01/02/03/04 章节骨架:01 怎么装 / 02 装完得到什么 / 03 真实效果(证据图)/ 04 三分钟上手+避坑——每节一个可独立转发的知识点
  4. 文末顺序:金句总结暗卡 → 开源地址卡(阅读原文引导)→ 互动钩子(点菜式:点赞最高的需求下期做)→ 关注卡

样式数值(从爆文 HTML 实测提取,勿凭感觉)

  • 正文:17px、行高 2em、字距 0.034em、左右 padding 8px
  • 章节编号:橙红 rgb(255,104,39) + 32px + font-weight:700 + letter-spacing:1px,紧跟 20px bold 小节标题
  • 段落密度:全文 40-60 个短句段(句均 <20 字),禁止长段落
  • 证据图:每章节至少 1 张(终端实拍/运行画面/目录列表),配居中图注「▲ 说明」——图是证据不是装饰
  • 代码块:黑底 #0d1117 绿字 #3fb950 monospace,只放安装命令和地址,不堆代码;贴 markdown 进公众号必须验证 pre 换行没丢(命令挤成一行=读者照抄翻车)
  • 定版配色模板(实测验证过的深色系排版,新文章直接复用):头图渐变 linear-gradient(135deg,#0b0e1a,#1a0f2e)+栏目标签金 #f0b429、警示红 #cf222e/#f85149、次级灰 #57606a/#8b949e、黄提示卡 #fff8c5/字 #9a6700、绿CTA卡 #ddf4e4/字 #1a7f37/#116329、时间线/阶段数字用 #f0b429/#3fb950 区分;全文用色≤4族,品牌色只做结构元素
  • 图片尺寸 ≥1200px(图内字号 ≥20px——手机缩放后仍可读);终端实拍风格图(macOS 窗框+One Dark 配色)是经过验证的证据图形态,生成脚本见 templates/make_shots.py
  • PIL 渲染符号避坑:✅❌⏭⏸ 等 emoji 区字符在 Menlo/STHeiti 下都是豆腐块(Apple Color Emoji 是彩色位图字体 PIL 画不了、Apple Symbols.ttf 无 CJK)——勾/叉/双箭头用 d.line 自绘最稳;✔✘×→» 在 Menlo 有字形但在黑体里 ✔✘⏭ 会豆腐,混排行必须按 has_cjk() 路由字体(纯 ASCII 段用 Menlo,含中文段用黑体,符号单独用 Menlo 画在行首)

微信样式存活规则(核心——编辑器粘贴会随机剥内联样式)

微信编辑器对粘贴内容做富文本清洗,文字对齐、章节标题对齐、卡片宽度均被随机剥过。规则:

  1. 所有正文 <p> 和卡片 <section> 显式声明 text-align,禁止靠继承——被剥后默认左对齐,与全文不一致
  2. 色块卡片统一 width:87% + margin-left:auto + margin-right:auto + box-sizing:border-box。固定 87% 比 100% 抗剥:100% 被剥后卡片按内容缩成窄条;87% 被剥仍有 margin auto 居中兜底。图片同宽(width:87% + display:block)
  3. 禁止 ;; 双分号——微信样式解析在双分号处截断后续属性
  4. 兜底:某卡仍被压成窄条 → 该段做成单张图片塞回(微信不处理图片内容)

粘贴流程(保真度最高)

  1. Chrome 打开 HTML 渲染 → Cmd+A → Cmd+C
  2. 后台编辑器 Cmd+V(渲染后富文本粘贴,样式保留率远高于源码粘贴)
  3. 逐节滑查宽度/对齐;个别错乱用后台自带全宽按钮修
  4. 顽固错乱段 → 截图做成图片版

发布前自检(顺序执行,程序化扫描)

  1. 数据实时核实了吗:星数以 GitHub API 实时值为准(Trending 页快照滞后可达千级,宁缺毋错);时间戳注意时区(API 返回 UTC,直接换算会写出「凌晨」假话);命令/模板数/文件清单逐条对照 README 原文
  2. 公司内网信息脱敏了吗:真实网段/网关/服务器 IP/网桥 ID/内部地址池/拓扑一律不得出现;改用虚构但结构等价的示例段(如 172.28.x.x 仍在 Docker 默认池 172.17~172.31 内、私网池用 10.213.x.x),正文注明已脱敏;扫描要含空格/全角变体(敏感串中间插空格也要能命中)
  3. 读者转出去有用吗?(转给同事帮他省时间=合格;只是好看=不合格)
  4. 标题有数字锚点+增量价值吗?
  5. 在热点爆发期首发了吗?(上升期 3-6 小时内优先)
  6. 「阅读原文」链接填了吗?(转化闭环,忘了=白做)
  7. 标签配对/无双分号/卡片 87% 宽度/显式对齐——写个扫描脚本全查一遍再交付

外链与二维码规则(平台限制)

  • 正文禁止外链跳转(平台硬限制,链接会被过滤,含二维码+导流感话的组合会被发布时静默清除)
  • 工具入口 = 文末「阅读原文」(后台最下方填 GitHub 仓库地址)
  • 二维码只用于关注公众号(qrencode 生成,-s 14 -m 3);HTML 里 img 相对路径,粘贴后需手动补传图
  • 纯文字裸域名可存活,可作次要提示

选题与时效

  • 候选决策靠实时数据四项权衡:当日涨星、总星量级、受众契合度、社交货币浓度(内容能否当谈资在群里转述)。星数用 GitHub API(api.github.com/repos/owner/repo)核定后才能写进标题——Trending 页快照滞后可达千级;图文/视频多条产线共用这条口径
  • API 时间戳是 UTC,直接换算会写出「凌晨三点」类假话——正文用「发稿前几分钟还在更新」类相对表述
  • 命令/模板数/文件清单等事实逐条对照 README 原文(README 拉 raw 用 gcore.jsdelivr.net——2026-09 实测 cdn.jsdelivr.net 与 fastly.jsdelivr.net 已把 gh/ 全量 301 到 raw.githubusercontent.com,墙内超时;gcore/testingcf 域仍 200 直出),禁凭印象写数;目录计数含子目录时用「份档案」类量词,不写「个文件」
  • 时效:热榜上升期 3-6 小时内出文;发布卡 12-13 点或 20-22 点午晚高峰

双产线日更模式(可配置 cron 定时触发)

每天两条内容产线,与短视频产线错峰:

产线①:自研工具线(自由发挥造一个)

  1. 选题:与已有工具互补的缺口(「痛点反推」法),避免与自己已发布工具重复。每次触发必须产出全新工具(新名字+新职责+新仓库)——禁止把「已有工具已发布/已修 bug」当成本日产出。选题用「工具链咬合」定位:新工具补现有套件的上/下游环节(示例链条:任务监控 → 日志考古 → 缺陷立案 → 端口暴露检查),文末讲出这条链条=套件叙事
  2. 制作:SKILL/CLI 零依赖单文件 + 不变量体系 + 自测脚本全绿(铁律:声明可用前必须实跑验证);带网页界面的产品走「单文件架构骨架+端到端四步实测验证链」的微产品打法。检测/阈值类功能(突增检测/告警门限类)交付前必须再用真实偏态分布数据(异常占少数)跑一遍演示——合成均匀数据会让中位数/分位数基线被异常自身统治,自测全绿但实战检不出;工具要带 --baseline 类手动兜底参数
  3. 发布:Gitee API 建仓 + 推送 + 匿名读回验证;GitHub 推送 token 建议存钥匙串(security add-generic-password -s GH_TOKEN)。⚠️ Gitee 建仓默认 private 且空仓库禁止改公开(PATCH 报 422「空仓库不支持设置为公开仓库」)——顺序必须是先 push 内容、再 PATCH 置公开(改完 GET 复核 private 字段)。⚠️ Gitee token 实战口径:旧仓库 remote 里内嵌的 token 会过期(GET /api/v5/user 返回 401)——先把本地各仓库 .git/config 里的历史 token 逐个验活再用;POST /user/repos 用 JSON body 会 401「登录失效」(即便该 token GET /user 200),必须 form urlencode 且 access_token 放 body;PATCH 置公开必须带 name 字段否则 400「name is missing」。⚠️ security find-internet-password -w 读钥匙串会弹 GUI 授权框卡死无人值守(find-generic-password 读 GH_TOKEN 不受影响)。⚠️ push 用 token 内嵌 URL 时必须带用户名段 https://user:TOKEN@gitee.com/...——只写 https://TOKEN@... 会报 could not read Password(headless 无 tty 输密码);配 GIT_TERMINAL_PROMPT=0。⚠️ 工具自测 fixture 里的假凭据绝不能复用真实 token 的前 4 位等真实片段——交付敏感扫描会把仓内代码里的真实前缀串判为泄漏命中;fixture 一律用显眼合成串(如 a1b2c3d4e5f6a7b8a1b2c3d4e5f6a7b8)
  4. 公众号版:排版HTML存工具目录(.gitignore拦住不进仓)+ jsDelivr CDN图床嵌图(一律 https://gcore.jsdelivr.net/gh/<user>/<repo>@main/...——cdn.jsdelivr.net 主域已全量 301 到 raw 墙内打不开,嵌图会全挂;发稿前对每张图 HEAD 验 200+Content-Type:image/png)+ 封面PIL渲染英文文件名
  5. 敏感信息扫描(公司网段/门牌号/token)必须过一遍才能发

产线②:热点攻略线(舆情选题 + 教程型拆解)

  1. 选题:本地舆情监控服务确认可用后抓热度榜;降级链:GitHub Trending(web_extract,星数用 api.github.com 核实)
  2. 只选上升最猛的(stars today最高且非榜单文),爆发期 3-6 小时内出文
  3. 结构:谈资开头(跃迁框架+比喻+权威引用)→ 怎么装(多方式)→ 怎么用(实战图)→ 怎么避坑(缺陷披露+报错自救命令)→ 阅读原文闭环
  4. 素材零自产:官方物料搬运 + 真实原文排版证据卡
  5. 平替/迁移类选题单列:「XX最佳开源平替」是独立赛道——不抢首发时效吃真空期长尾;结构从"怎么装"升级为"怎么从旧方案无感搬家"(迁移三拆:代码/工具/数据 + 灰度策略 + 增量同步 + 回滚);核心武器是成本账(开源 vs 商业授权差价,如 S3 Table 数十万美金 vs 免费)——企业读者是高价值转发人群;必须列「不适合场景」(说"不"的勇气=可信度);信创/国产化适配是中文读者差异化刚需
  6. 引用命令必须实测:文内每条 curl/git/安装命令跑一遍(或标注"来源官方未实测")——爆款样本栽在自己给的安装脚本 403 上;MCP/子仓库要查星数尽调,别把 26 星项目当主卖点

通用铁律

  • 敏感信息(公司内网网段/内部编号、token、网桥ID)一律虚构化+扫描验证
  • 发布前自检四件套:标签配对/微信存活规则(;;、87%宽)/敏感信息/事实核对
  • 本地交付文件一律英文文件名(中文名在聊天面板与部分程序解析失败,两次踩坑)
  • 需求方要「发布清单/发到这里」时交付七要素表:标题 + 文件绝对路径 + 图片方式(CDN图床=粘贴后自动显示免补传 / 本地图=按▲图注逐张补传并列出文件名清单)+ 封面路径 + 阅读原文链接 + 发布窗口——图片方式是操作上最关键的区分,漏标会让发布者对着不显示的图懵掉
  • 双仓发布后必须匿名读回验证(API/网页 200)才算发布成功

热点文混合路线(两大爆款样本拆解后定稿)

热点文 = 教程型骨架(装/用/避坑闭环+视频位)+ 资讯型开头(概念叙事+权威引用)+ 国内避坑全套 + 阅读原文闭环。

  1. 开头 150 字:行业冲突句 → 一句话人话翻译(全文最值钱的一句放开头)→ 一个饭桌可复述的比喻 → 权威定义引用一条
  2. 中段 01/02/03:怎么装(多种装法并列+30 秒选择指引)→ 怎么用(核心命令+最值钱设计 2-3 个)→ 避坑章「这些坑,官方没细说」(每坑=现象+动作,给能跑的命令不是注意事项;国内网络/镜像/key 申请路径是差异武器)→ 缺陷披露(吹完泼冷水=信任最大来源)→「一句大实话」黄卡(DONE≠能交类,界定工具边界)
  3. 文末:金句暗卡 → 阅读原文绿卡 → 点菜式互动钩子 → 关注卡
  4. 素材零自产三层:①官方物料直搬(README图/官网截图/demo GIF/OG横幅——爆发期官方物料最全,搬运即发)②社区解读图背书(X网友图/第三方信息图)③自有转化位仅文末。快跟 3 小时的素材前提=根本不做图
  5. 动态双轨:≤15s 演示=GIF 嵌文内自动播放;长玩法=视频号卡片(导流+转发主力)
  6. AI 聊天引流卡:拟真微信聊天截图(读者问→AI 推项目+星数+参考文章+「内容由AI生成」合规标注+反问钩子)——把关注升级成「获得一个工具」,每条消息都是 SEO 弹药

自研工具故事文(A线:自家项目零星阶段)

自己的项目没有星数/官方物料可用,与热点文完全不同的素材策略:

  1. 素材全靠真机实拍:本地建演示仓库,跑通完整流程,用 templates/make_shots.py 把真实输出做成终端实拍图(内容 100% 真实,排版是唯一创作);禁止编造输出或用假数据摆拍
  2. 钩子形态:不用星数(0 星阶段晒不得),用「对话钩子」(AI说:应该修好了 / 我说:证据呢)或「三秒共鸣场景」(读者真实经历过的痛点瞬间 ×3)
  3. 狗粮环节是灵魂:开发/演示过程用项目自己的流程修出真 bug → 写进文章(「立案→取证→修复→结案,狗粮是甜的」)——这是读者对自研工具信任的最大来源,也顺手产出新版本号
  4. 交付形态:图×6(每步一张)+ GIF(全流程轮播,PIL 量化压到 <200KB,公众号友好)+ 视频号成片(配音+字幕,ffprobe 时长/volumedetect 响度双验)
  5. 版本纪律:文章提到新修复就 bump 版本号+更新 CHANGELOG 并推仓;排版 HTML 在 .gitignore 内绝不入仓
  6. 配图路径:img src 相对文件名,HTML 与图片必须在同一目录打包交付;粘贴后台后图片需逐张手动补传(按 ▲ 图注对应)

内容本身就是谈资时不走教程骨架,改瓜点结构:开头「你从没见过的 X」悬念 → 每个瓜一章节、独立可复述(比喻+反转句收尾)→ 偷师层(把瓜变成能带走的招,谈资+弹药双货币)→「一句大实话」界定边界(如逆向汇编≠官方版本)→ 点菜式互动(点赞最高下期逐段拆)。封面主钩子直接用围观人数/星数冲击。

封面产线

  • 规格 900×383(2.35:1 首图比例);布局:左金竖条锚+栏目标签(金)+双行大字钩子(白)+右侧数据区(金色星数大字+小字)+底部两行信息(重点行加黑衬底)
  • 生成:复制 templates/make_cover.py 改 LINES 文案坐标直接跑(ffmpeg-full 路径用 ls Cellar 确认;中文字体 STHeiti Medium.ttc);转义/滤镜炸了先查 references/ffmpeg-drawtext排雷.md,排不掉换 PIL 渲染
  • 出图必须 vision_analyze 验字(截断/重叠/超边/左右平衡),验过才算完成——drawtext 无自动换行,多段文字分段放坐标
  • 常见炸点:% 在 drawtext text 里需双反斜杠转义;fontfile 路径含空格要转义——排不掉就换 PIL 渲染(同规格无转义问题);自研工具/故事类封面用「对话钩子」形态(白句+金句反驳),且不晒星数(0星阶段),晒「三条铁律/自测全绿」类硬指标

数据复盘方法(xls 导出解析)

公众号后台导出的趋势 xls 是 OLE2 格式,用 xlrd 2.x 读(pip3 install xlrd)。三块数据列位不同:

  • 块1(阅读渠道):日期=列1、渠道=列2、阅读=列3
  • 块2(分享/原文/收藏):日期=列5、分享=列6、原文=列7、收藏=列8
  • 块3(内容×渠道):渠道=列11、日期=列12、标题=列13、阅读=列14;过滤掉「全部」渠道行看真实来源分布

先 dump 头行确认列位,再按上述列位写解析脚本。

关键指标:推荐占比(决定内容策略)、阅读原文数(转化断点检测)、逐段配音响度(视频类)。

交付排查:文章 HTML 打不开

用户报「打不开」先查三层再动文件:①文件本身完好性(大小/可读/HTML 标签平衡)——文件没坏就别改内容;②本机 Chrome 配置库锁死(点 HTML 无响应的典型症状,浏览器自动化报 profile SQLite 锁同源)——绕开不修它;③全中文长文件名的 file:// 兼容。动作:cp 一份英文名副本 + open -a Safari <path> 直接拉起,并提醒用户 Cmd+Q 真退出 Chrome 重开后中文名原文件即恢复。注意:HTMLParser 报 <br/> 「错配」是自闭合误报,HTML5 合法,不是文件坏了。

排版自检渲染(agent 侧 QA,交付前自己做):Chrome headless 截排版 HTML 时用 --headless=old——=new 对 file:// 页面会挂起不退出;外面套 perl -e 'alarm 60; exec @ARGV' … 兜底强杀。--window-size 的高度 ≠ 内容真实高度:裁「文末」区域前先用 PIL/numpy 扫「最后一行非白像素」定位内容真实底边再裁,否则 vision QA 看到的是整页空白、误判丢内容。用户 Chrome 配置库被占用(浏览器自动化报 profile SQLite 锁)不影响此流程——headless 用独立 user-data-dir,用户预览用 open -a Safari。

本技能由真实账号产线脱敏而来,方法论已验证,平台规则可能随改版失效,欢迎 issue 反馈。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.