微信公众号草稿发布 Skill
使用项目 weixingongzhonghao-publisher 的 CLI 工具,将文章发布到微信公众号草稿箱。
前置检查
1. 查找项目目录
按以下优先级确定 weixingongzhonghao-publisher 的项目根目录(PROJECT_DIR):
- 当前工作目录:检查是否存在
package.json且name为weixingongzhonghao-publisher。 - 环境变量:如
process.env.WECHAT_PUBLISHER_DIR存在且包含有效的package.json。 - 用户主目录:检查
~/workspace/weixingongzhonghao或~/weixingongzhonghao是否存在有效的package.json。 - 以上都未找到:提示用户先执行以下命令之一:
# 方式 A:克隆仓库到当前目录 git clone https://github.com/lixinran2015/weixingongzhonghao.git cd weixingongzhonghao # 方式 B:设置环境变量(如果仓库在其他位置) export WECHAT_PUBLISHER_DIR=/path/to/weixingongzhonghao
一旦找到 PROJECT_DIR,后续所有 npm run 命令都必须在 PROJECT_DIR 下执行(通过 Bash 的 cwd 或在命令前加 cd PROJECT_DIR &&)。
2. 确认依赖已安装
在 PROJECT_DIR 下运行:
ls node_modules/.bin/playwright
如不存在,运行:
cd PROJECT_DIR && npm install && npx playwright install chromium
登录与 Cookie 管理
- 确定 Cookie 路径:
cd PROJECT_DIR && node -e "const p=require('path'); console.log(p.join(process.env.HOME||process.env.USERPROFILE,'.config','weixingongzhonghao','cookies.json'))" - 检查 Cookie 是否有效:
cd PROJECT_DIR && npm run check:login- 如果提示 Cookie 无效或为空,先执行
cd PROJECT_DIR && npm run login:这会打开浏览器等待用户扫码,登录成功后自动保存 Cookie。 - 如果用户拒绝扫码,停止执行。
- 如果提示 Cookie 无效或为空,先执行
解析用户意图与文章源
用户可能通过以下几种方式提供内容:
方式 A:提供 HTML/MD 文件路径
- 如果路径是相对路径,先基于当前工作目录解析为绝对路径。
- 然后直接在
PROJECT_DIR下使用--file模式:cd PROJECT_DIR && npm run publish -- --file <absolute-path> [--title "标题"] - 标题优先级:
--title参数 > HTML<title>标签 > 文件名
方式 B:只提供纯文本或 Markdown 内容
- 帮用户生成临时 HTML 文件到
PROJECT_DIR/articles/目录:- 读取
PROJECT_DIR/articles/下现有文件,确定可用文件名(如articles/untitled-1.html) - 将内容包装成基础 HTML 结构:
<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>用户提供的标题</title></head> <body>...用户内容...</body> </html> - 使用
Write写入PROJECT_DIR/articles/untitled-N.html - 然后以
--file方式调用发布
- 读取
方式 C:提供配置文件路径
- 如果用户明确要求使用某个 yaml 配置:
cd PROJECT_DIR && npm run publish -- --config <path>
发布执行流程
- 如果用户要求调试或首次运行,追加
--debug参数(显示浏览器窗口,slowMo 1000ms)。 - 运行发布命令,timeout 建议设为 300 秒(Playwright 操作较慢)。
- 不要静默执行:在打开浏览器扫码前,明确告知用户需要操作什么。
结果反馈
- 成功:返回草稿链接、耗时,并祝贺用户。
- 失败:
- 读取
PROJECT_DIR/logs/screenshots/下最新的错误截图(按修改时间排序) - 分析截图和终端输出,给出明确的错误原因和下一步建议
- 读取
安全与隐私原则
- 绝不读取或泄露 Cookie 内容。只验证文件是否存在、格式是否正确。
- 绝不把 Cookie 文件提交到 git。如发现
cookies/cookies.json被 git 跟踪,立即提醒用户取消跟踪。 - 用户扫码登录时,浏览器窗口由用户控制,Claude 不模拟任何登录操作。