| name | media-dopamine-package-and-wechat-workflow |
| description | Standardize media-dopamine content packages, manage multi-version drafting, generate Mermaid-based XHS image cards, and publish WeChat drafts with wewrite using a generated temporary cover. |
media-dopamine package + 微信草稿工作流
适用场景
当在 AaaS/media-dopamine/packages/ 下推进一篇内容,从多轮正文迭代、图卡生成,到微信公众号草稿箱发布与 package 整理时使用。
Boundary
This skill handles content production and publishing operations after a package direction is already clear.
It owns:
- multi-version drafting such as
final-vN.md
- Mermaid diagrams and XHS image-card generation
- WeChat cover generation and wewrite draft publishing
- post-publish archive and backfill inside the package
It does NOT own:
- top-level package taxonomy redesign or full-folder migrations
- Vault-wide state sync across
ToDo.md, Daily Reflections, or Direction/
- deciding whether a reflection belongs in internal notes vs publishable note packages
If the task is about package taxonomy or moving xhs-* packages into type-based directories, use media-dopamine-package-reclassification.
If the task is about syncing real progress into the Vault or turning reflection into publishable notes and dual-platform drafts, use vault-state-sync-and-note-publishing.
Current package path assumption
When this skill refers to a package, assume the current layout is:
AaaS/media-dopamine/packages/<type>/<slug>/
not the older platform-prefixed flat root.
core principles
- 正文版本不要覆盖旧稿。每一轮重要改稿都单独存成
final-vN.md。
- 正式资产与 demo 资产分离。demo 输入/输出进 archive,正式图卡和 Mermaid 源文件保留在
assets/。
- 微信公众号封面图默认先用 package 内脚本生成
assets/wechat-temp-cover.png,不要直接拿正文插图或 Mermaid 图充当封面。
- 推进多平台版本时,主视图只保留当前有效入口;旧稿和临时产物统一进 archive。
- 外部方法论参考(如 dbskill / khazix-skills)必须进入默认工作流:先诊断方向,再生产内容,再校正活人感。
标准文件结构(发布中后期)
final-v10.md 或当前主稿
publish.md
review.md
assets/wechat-final.md
assets/wechat-publish-kit.md
assets/wechat-temp-cover.png
assets/_gen_wechat_cover.py
assets/diagram-*.mmd/.svg/.png
assets/xhs-renderer-formal-*-card.json
assets/xhs-renderer-formal-*-card-output/
_archive/<date>-post-publish-cleanup/
版本管理规则
什么时候新建 final-vN.md
当发生以下任一情况时,不要覆盖旧稿,直接新建:
- 结构重写
- 平台适配明显改变
- 加入新图卡 / 新例子 / 新 hook
- 从“研究稿”进入“可发版”
什么时候归档旧稿
当某些版本只保留参考价值、不再参与当前发布时,移到:
- package 级:
_archive/<date>-post-publish-cleanup/
建议至少保留:
Mermaid 图卡工作流
用途
适合做:
- 系统总图
- 输入 → 判断 → 动作 极简例子图
- 最小闭环流程图
文件放置
在 package assets/ 下保留:
推荐生成方式
使用 npx @mermaid-js/mermaid-cli,不做全局重安装:
npx -y @mermaid-js/mermaid-cli -i diagram.mmd -o diagram.png -b transparent -c puppeteer-config.json -w 1600
puppeteer-config.json 示例:
{
"args": [
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-dev-shm-usage"
]
}
XHS 渲染器图片卡工作流
关键发现
当前主渲染器 xhs_renderer 已支持图片内容卡:
- 模板:
guanlan.content.image_editorial
- 字段:
image, image_caption, image_fit, image_position
正确做法
不要把 Mermaid 图“硬插”进正文 markdown。
而是:
- 先生成 PNG
- 写
xhs-renderer-formal-*-card.json
- 用
guanlan.content.image_editorial 渲染成正式图卡
渲染命令
必须在 .agent/source 目录执行,否则模板相对路径可能出错:
cd AaaS/media-dopamine/.agent/source
python 00_system/xhs_renderer/render_cards.py \
--input /absolute/path/to/assets/xhs-renderer-formal-example-card.json \
--output-dir /absolute/path/to/assets/xhs-renderer-formal-example-card-output \
--browser /usr/bin/chromium
微信公众号正文工作流
基本文件
assets/wechat-final.md
assets/wechat-publish-kit.md
适配原则
- 保留完整段落推进,不必像小红书那样切太碎
- 正文中如需插图,可直接用 markdown 引用本地 PNG
- 草稿箱发布时 wewrite 会自动上传本地图片并替换 URL
微信封面图工作流(必须遵守)
规则
以后公众号草稿箱封面默认先用 package 内脚本生成:
- 脚本:
assets/_gen_wechat_cover.py
- 输出:
assets/wechat-temp-cover.png
已验证事实
参考来源:
xhs-info-to-knowledge-system/assets/_gen_wechat_cover.py
- 输出统一为
assets/wechat-temp-cover.png
- 品牌文案可用:
公众号临时封面
不要做什么
- 不要直接拿 Mermaid 结构图当封面
- 不要直接拿正文插图当封面
- 不要因为还没最终封面就阻塞草稿创建
wewrite 发布到微信公众号草稿箱
Preview
先 preview 验证:
cd AaaS/media-dopamine/.agent/source/00_system/repos/wewrite/toolkit
../.venv/bin/python cli.py preview /absolute/path/to/assets/wechat-final.md --no-open -o /absolute/path/to/assets/wechat-final.preview.html
Publish
发布草稿箱:
cd AaaS/media-dopamine/.agent/source/00_system/repos/wewrite/toolkit
../.venv/bin/python cli.py publish /absolute/path/to/assets/wechat-final.md --cover /absolute/path/to/assets/wechat-temp-cover.png
重要经验
config.yaml 里需要已有 appid / secret
publish 会自动上传正文中的本地图片
- 成功后要回填:
draft media_id、thumb_media_id、正文图片微信 URL
- 如果失败报
40164 invalid ip not in whitelist,不是正文问题,而是微信后台接口白名单未放行当前公网 IP,需要去公众平台加白名单后再试
外部参考技能的默认接入方式
参考资产位置
统一放在:
AaaS/media-dopamine/.agent/source/02_reference/repos/dbskill
AaaS/media-dopamine/.agent/source/02_reference/repos/khazix-skills
dbskill 负责什么
默认用它来校正:
- 这条内容在解决什么问题
- 这个问题本身成立吗
- 里面有没有模糊词 / 错假设 / 错逻辑
- 这条内容最适合哪个平台、什么形式
一句话:
dbskill 防止方向错,防止内容建立在伪问题上。
khazix-skills 负责什么
默认用它来校正:
- 这段像不像人写的
- 有没有真实场景和真实卡点
- 判断是不是自然长出来的
- 有没有 AI 味和说明书腔
一句话:
khazix 防止写出来不像人,防止内容只有正确感没有活人感。
以后每次生成内容的默认顺序
- 先用 dbskill 思维做诊断
- 再决定平台和形式
- 再写内容
- 写完后用 khazix 思维校正活人感和表达质量
- 再做标题、图卡、发布包
一句话:
以后不是“先写,再修”,而是“先诊断,再写,再校正”。
package 整理规则
当前有效资产保留在根层
例如:
- 当前主稿
final-v10.md
wechat-final.md
wechat-publish-kit.md
- 正式 Mermaid 源文件和正式图卡输出
demo / 临时资产进 archive
例如:
- demo render json
- demo render 输出目录
- 临时配置文件
建议归档到:
assets/_archive/<date>-post-publish-cleanup/
_archive/<date>-post-publish-cleanup/
发布后回填
publish.md
至少更新:
- 当前平台状态
- 当前主稿引用
- 微信 draft media_id
- cover media_id
- 正文图片上传 URL
review.md
至少更新:
- 当前阶段说明
- 已完成的平台动作(例如“小红书已发布;公众号草稿已创建”)
- 下一步待回填事项
index.md
改成真实当前阶段,不要还停留在“立题中”。
一句话工作流
多轮正文用 final-vN.md 保留演进轨迹;Mermaid 图走 xhs_renderer 的 image-editorial 模板生成正式图卡;公众号正文走 wechat-final.md,封面先用 _gen_wechat_cover.py 生成 wechat-temp-cover.png,再用 wewrite 发布到草稿箱;做内容时默认先过 dbskill 的诊断逻辑,再过 khazix 的表达逻辑;发布后统一做 archive 和状态回填。