본문으로 건너뛰기
cccskills
무료GitHub에 공개

skill-wechat-publisher

Turn a topic or reference document into an article for a WeChat Official Account. The workflow covers research, drafting, voice adjustments, formatting, and local writing checks before saving the approved article as a draft.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。

触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • Turning notes or documents into WeChat articles
  • Adapting article tone and formatting for an account
  • Checking repetitive wording before saving a draft
  • Preparing image card posts with short descriptions

포함된 파일(120)

  • SKILL.md11.4 KB
  • assets/image-styles/blue.json3.0 KB
  • assets/image-styles/data-chart.json2.4 KB
  • assets/image-styles/flat-editorial.json4.9 KB
  • assets/image-styles/hand-drawn-blue.json2.3 KB
  • assets/image-styles/illustrated-warm.json3.3 KB
  • assets/image-styles/infographic-blue.json5.2 KB
  • assets/image-styles/infographic-dark.json5.4 KB
  • assets/image-styles/infographic-mint.json5.2 KB
  • assets/image-styles/infographic-warm.json5.4 KB
  • assets/image-styles/knowledge-card.json2.3 KB
  • assets/image-styles/magazine-editorial.json2.3 KB
  • assets/image-styles/marker-coral.json6.4 KB
  • assets/image-styles/marker-lime.json6.6 KB
  • assets/image-styles/marker-pink.json6.4 KB
  • assets/image-styles/marker-sky.json6.4 KB
  • assets/image-styles/marker-violet.json6.4 KB
  • assets/image-styles/meme-illustration.json2.3 KB
  • assets/image-styles/mint.json3.1 KB
  • assets/image-styles/morandi.json3.4 KB
  • assets/image-styles/previews/blue.webp104.0 KB
  • assets/image-styles/previews/data-chart.webp16.4 KB
  • assets/image-styles/previews/flat-editorial.webp109.7 KB
  • assets/image-styles/previews/hand-drawn-blue.webp17.9 KB
  • assets/image-styles/previews/illustrated-warm.webp31.2 KB
  • assets/image-styles/previews/infographic-blue.webp160.4 KB
  • assets/image-styles/previews/infographic-dark.webp142.1 KB
  • assets/image-styles/previews/infographic-mint.webp150.2 KB
  • assets/image-styles/previews/infographic-warm.webp162.5 KB
  • assets/image-styles/previews/knowledge-card.webp22.4 KB
  • assets/image-styles/previews/magazine-editorial.webp14.0 KB
  • assets/image-styles/previews/marker-coral.webp41.2 KB
  • assets/image-styles/previews/marker-lime-template.webp34.3 KB
  • assets/image-styles/previews/marker-lime.webp39.3 KB
  • assets/image-styles/previews/marker-pink.webp37.5 KB
  • assets/image-styles/previews/marker-sky.webp47.9 KB
  • assets/image-styles/previews/marker-violet.webp42.8 KB
  • assets/image-styles/previews/meme-illustration.webp35.5 KB
  • assets/image-styles/previews/mint.webp95.7 KB
  • assets/image-styles/previews/morandi.webp82.0 KB
  • assets/image-styles/previews/slice-of-life.webp46.3 KB
  • assets/image-styles/previews/warm-handdrawn.webp79.0 KB
  • assets/image-styles/previews/xiaohongshu-colorful.webp24.3 KB
  • assets/image-styles/README.md29.5 KB
  • assets/image-styles/slice-of-life.json4.9 KB
  • assets/image-styles/warm-handdrawn.json4.4 KB
  • assets/image-styles/xiaohongshu-colorful.json2.3 KB
  • assets/theme-previews/academic-paper.html13.5 KB
  • assets/theme-previews/business-navy.html13.6 KB
  • assets/theme-previews/elegant-ink.html13.0 KB
  • assets/theme-previews/girly-pink.html13.2 KB
  • assets/theme-previews/index.html26.6 KB
  • assets/theme-previews/ink-wash.html13.5 KB
  • assets/theme-previews/magazine-grid.html13.0 KB
  • assets/theme-previews/minimal-bw.html13.6 KB
  • assets/theme-previews/minimal-mono.html12.7 KB
  • assets/theme-previews/mint-fresh.html14.0 KB
  • assets/theme-previews/news-bold.html13.3 KB
  • assets/theme-previews/README.md1.7 KB
  • assets/theme-previews/refined-blue.html15.1 KB
  • assets/theme-previews/sage-premium.html13.6 KB
  • assets/theme-previews/sample.md2.6 KB
  • assets/theme-previews/screenshots/ink-wash.webp27.8 KB
  • assets/theme-previews/screenshots/minimal-mono.webp34.8 KB
  • assets/theme-previews/screenshots/news-bold.webp32.5 KB
  • assets/theme-previews/screenshots/refined-blue.webp34.3 KB
  • assets/theme-previews/screenshots/theme-overview.webp229.8 KB
  • assets/theme-previews/sunset-coral.html14.8 KB
  • assets/theme-previews/warm-editorial.html12.8 KB
  • assets/theme-previews/warm-orange.html12.3 KB
  • assets/themes/academic-paper.json5.2 KB
  • assets/themes/business-navy.json5.2 KB
  • assets/themes/elegant-ink.json5.1 KB
  • assets/themes/girly-pink.json5.3 KB
  • assets/themes/ink-wash.json5.1 KB
  • assets/themes/magazine-grid.json5.1 KB
  • assets/themes/minimal-bw.json5.2 KB
  • assets/themes/minimal-mono.json5.0 KB
  • assets/themes/mint-fresh.json5.3 KB
  • assets/themes/news-bold.json5.1 KB
  • assets/themes/refined-blue.json5.6 KB
  • assets/themes/sage-premium.json5.3 KB
  • assets/themes/sunset-coral.json5.5 KB
  • assets/themes/warm-editorial.json4.9 KB
  • assets/themes/warm-orange.json5.0 KB
  • assets/typeset-card/template.html3.5 KB
  • brief.md.example2.3 KB
  • EASEL-META.md2.6 KB
  • references/anti-ai-checklist.md3.4 KB
  • references/api_reference.md3.2 KB
  • references/article-structures.md3.2 KB
  • references/errors.md1.1 KB
  • references/image-styles-guide.md3.5 KB
  • references/inline-markup.md1.7 KB
  • references/multi-platform-sync.md2.6 KB
  • references/newspic-mode.md5.7 KB
  • references/themes.md1.8 KB
  • references/typeset-card.md4.3 KB
  • scripts/ai_score.py15.2 KB
  • scripts/api.py13.3 KB
  • scripts/baoyu_image_gen_core.ts11.5 KB
  • scripts/baoyu_image_gen.ts5.5 KB
  • scripts/config.py11.7 KB
  • scripts/generate_image.py4.3 KB
  • scripts/html_converter.py23.3 KB
  • scripts/image_handler.py17.5 KB
  • scripts/multi_publish.py14.2 KB
  • scripts/newspic_build.py14.0 KB
  • scripts/publish.py35.7 KB
  • scripts/sync_pages.sh994 B
  • scripts/wechat_api.py6.0 KB
  • scripts/wechat_token.py5.1 KB
  • tests/__init__.py0 B
  • tests/conftest.py4.1 KB
  • tests/test_ai_score.py8.1 KB
  • tests/test_config_integration.py9.7 KB
  • tests/test_config.py7.4 KB
  • tests/test_draft_submission.py3.1 KB
  • tests/test_html_converter.py10.2 KB
  • wechat-publisher.yaml.example1.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

微信公众号文章自动创作与发布

从素材输入到公众号草稿箱的完整自动化流程:用户只需提供话题或参考资料,skill 完成搜索调研、撰写、配图、排版、AI 味自检、发布。

不要调用 baoyu-post-to-wechat skill。 路由时同时看到两者,一律选本 skill(wechat-publisher),它带多账号 / 主题排版 / 反 AI 检测 gate。

⚠️ 环境依赖(部分可跑)

能力状态依赖
公众号发草稿(publish.py → 默认后台会话)✅ 可跑先扫码登录公众号后台(skills/shared/scripts/weixin_mp_stats.py login,或 Web 账号页「登录公众号后台」)。免 app_id/app_secret、免 IP 白名单,只创建草稿,不自动群发
公众号发草稿(publish.py --official-api → 官方 HTTP API,回退)✅ 可跑wechat-publisher.yaml 的 app_id/app_secret + 出口 IP 加进公众号 IP 白名单
反 AI 检测(ai_score.py)✅ 可跑纯本地,无外部依赖
MD→公众号排版(html_converter.py)✅ 可跑纯本地
生成配图(generate_image.py)❌ 当前不可用需图像 API key(OpenAI Images / Gemini 代理)
多平台同步(multi_publish.py,阶段七)❌ 当前不可用需浏览器 + Wechatsync Chrome 扩展

核心链路(写作→排版→反 AI 检测→发草稿)的 Markdown / HTML 入口默认复用已扫码的公众号后台会话,不要求 wechat-publisher.yaml 或 app_id/app_secret;仅显式选择 --official-api 时需要官方 API 凭证。配图缺 key 时改用外部生图或跳过,多平台同步默认不启用。

账号与人格

YAML 示例提供 2 个账号配置:main(刷屏AI / 飞哥 / refined-blue,热情北京口语,面向 AI 产品)与 tech(蒜是哪根葱 / 葱哥 / minimal-mono,冷幽默技术直男,面向工程实践)。官方 API 模式按 --account 或 YAML 的 default 选择账号。后台会话模式的实际发布账号以当前扫码登录的公众号为准,--account 不会切换浏览器登录态;没有 YAML 时,可用 --author / --theme 指定署名和主题,并优先使用当前 Easel Profile 的语气。

必须按当前账号的 voice 改写语气 —— 两个号写出明显风格差异,这本身就是反 AI 检测的关键(平台对每个号建历史文风基线)。

前置条件

以下命令均从 Easel 项目根目录运行。

默认:公众号后台会话(Markdown / HTML)

先检查已有登录态,不要因缺少 YAML 或官方 API 凭证而停止发布:

python3 skills/shared/scripts/weixin_mp_stats.py whoami
# 仅在确认未登录或会话过期时执行,也可在 Web 账号页扫码登录
python3 skills/shared/scripts/weixin_mp_stats.py login

loggedIn: true 时继续使用默认的 publish.py --input / --html 流程;检查报错时先排查具体异常,不把网络或浏览器错误当成缺少 API 凭证。会话模式无需创建 wechat-publisher.yaml、调用 wechat_api.py 验证 token 或配置 IP 白名单。

可选回退:官方 API(--official-api)

只有显式选择官方 API 发布时,才执行以下凭证配置与连接检查:

cp skills/builtin/skill-wechat-publisher/wechat-publisher.yaml.example skills/builtin/skill-wechat-publisher/wechat-publisher.yaml
# 编辑该文件,填写 app_id / app_secret / author / theme,并在公众号后台配置出口 IP 白名单
python3 skills/builtin/skill-wechat-publisher/scripts/wechat_api.py list-accounts
# 验证 API 连接,仅输出状态,不输出 token
(cd skills/builtin/skill-wechat-publisher/scripts && python3 -c "from wechat_api import get_access_token; get_access_token(); print('OK')")

官方 API 配置文件固定放 skill 根目录(config.py::_find_unified_yaml() 只查此处),所选账号必须有 app_id 和 app_secret。API 参数细节见 references/api_reference.md,错误码见 references/errors.md。这些要求不适用于默认的后台会话发布。

完整工作流程(7 阶段,第 7 为可选 opt-in)

阶段一:理解需求与收集素材

搞清用户要什么,同时采集真人味原料(具体人名/时间/金额/产品版本/踩过的坑 —— 反 AI 检测最重要原料)。识别目标账号(AI 产品→main,工程→tech),选定 article_structure + opening_hook。产出 outputs/主题名/brief.md。

阶段二:全网信息搜索与整理

既搜权威层(WebSearch:资讯/数据/案例/官方报告),也搜真人层(Reddit/HN/V2EX/即刻/X/小红书的原话作语料)。关键数据多源交叉。产出 research.md,每条标来源、分层。

阶段三:撰写骨架稿(第一轮)

按结构写初稿,允许有 AI 味(下一阶段专门人味化)。article_structure 8 种、opening_hook 7 种的完整选择规则与写法见 references/article-structures.md。骨架稿阶段就主动混用行内标色(见 references/inline-markup.md)。避免"首先/其次""值得一提的是""随着…的发展"等 AI 套话。

阶段 3.5:人味化改写 pass(反 AI 检测核心)

独立 pass,不与阶段三混。对骨架稿逐段过 9 条强制清单(Burstiness / 句式多样性 / AI 高频词黑名单 / 开头破冰 / 人称立场 / 事实密度 / 标点多样性 / 结构不完美 / 按账号 voice 过滤)。每条阈值、完整禁用词表、改写示例必须逐条对照 references/anti-ai-checklist.md。

阶段四:生成配图(当前环境需外部 key)

默认风格 hand-drawn-blue;有具体数字/对比→用 infographic-*,金句大字→用 marker-*;图内需一字不差的文字→改走排版卡 typeset-card(HTML/CSS → 无头 Chrome 2× 截图)。风格选择、共享视觉原则见 references/image-styles-guide.md;排版卡设计系统见 references/typeset-card.md。一篇 6-10 张,统一一种风格。生图入口 scripts/generate_image.py(需图像 API key),上传用 scripts/image_handler.py upload。

阶段五:格式转换与排版

python3 skills/builtin/skill-wechat-publisher/scripts/html_converter.py article.md --theme refined-blue -o article.html
python3 skills/builtin/skill-wechat-publisher/scripts/html_converter.py article.md --list-themes

主题一般由 publish.py --account 自动从 yaml 读。15 套主题的推荐表与视觉简介见 references/themes.md,行内标色系统见 references/inline-markup.md。主题预览:assets/theme-previews/index.html。

阶段 5.5:AI 味自检 gate(publish.py 内置强制拦截)

publish.py 发草稿前自动调 ai_score.check_ai_score(),分数 ≥ 阈值(默认 45)直接拦住。阈值:<35 🟢PASS / 35-45 🟡WARN / ≥45 🔴FAIL。手动看细节报告:

python3 skills/builtin/skill-wechat-publisher/scripts/ai_score.py outputs/主题名/article.md --threshold 45

命中时按脚本列出的 AI 套话/高频词逐句重写整个句式(不只换词),重跑到通过。可选双保险:朱雀 / GPTZero 第三方检测。

阶段六:发布到草稿箱(默认走后台会话,不自动群发)

python3 skills/builtin/skill-wechat-publisher/scripts/publish.py --account main \
  --input outputs/主题名/article.md \
  --cover .../cover.jpg --title "标题" --digest "120 字以内摘要" --exec

默认走公众号后台会话发布(免 app_secret、免 IP 白名单)——前提是已扫码登录后台 (skills/shared/scripts/weixin_mp_stats.py login,或 Web 账号页「登录公众号后台」);封面与正文内嵌图会自动传 mp CDN。 若后台未登录会报错提示先登录。加 --official-api 可回退到官方 HTTP API(需 app_secret + IP 白名单)。 先省略 --exec 预览账号、模式和输入;dry-run 只打印参数,不验证登录态、上传或建草稿,不能据此宣称发布成功。向用户展示标题/摘要并取得确认后再执行。成功后调用 skill-publish-log 记录草稿;再告知用户登录 mp.weixin.qq.com 查看/群发。

阶段七:多平台同步(可选,默认不启用,当前环境不可用)

一键同步到知乎/掘金/CSDN/头条(均存草稿)。基于 Wechatsync Chrome 扩展 + @wechatsync/cli,需浏览器。触发方式与失败处理见 references/multi-platform-sync.md。

贴图模式(newspic,与文章模式并列)

对标公众号"图片消息":5-10 张卡片墙 + 100-300 字短描述。4 步:brief.md → newspic_build.py 拆卡 → generate_image.py 批量生图 → publish.py --type newspic。短文本过精简版 AI 味 gate(ai_score.py --mode newspic)。字段说明、判据、限制见 references/newspic-mode.md。

文件组织约定

所有产物放项目内 outputs/主题名/:最终稿和封面在目录顶层,研究稿、调试 HTML、配图等中间文件放 assets/。不要把临时产物写到 Skill 根目录。

脚本说明

脚本用途
publish.py完整发布(一键,含 AI 味 gate),支持 --type news|newspic
generate_image.py统一生图入口(需图像 API key)
newspic_build.py贴图拆卡器(brief.md → card_plan.json)
wechat_api.pyfacade —— 重导出下述模块 + CLI
config.py(内部)yaml + 配图风格加载 / set_account / get_config
wechat_token.py(内部)get_access_token,本地缓存
api.py(内部)图片上传 / 草稿 / 发布
html_converter.pyMarkdown → 微信 HTML(多主题 + 行内标色)
image_handler.py图片下载 / 上传 / 替换
ai_score.py反 AI 检测自检(--mode news|newspic)
multi_publish.py多平台同步(阶段七,默认不启用,需浏览器)

Profile 感知

有 Easel Profile 时,用 Profile 的账号定位/受众/语气凝练覆盖账号 voice;无 Profile 时退到 yaml 内置 main/tech 双账号 voice。

注意事项

  • 文章始终发草稿箱,不自动群发;后台会话发布到当前扫码账号,官方 API 模式才用 --account 选择发布账号。
  • 默认 dry-run;没有用户对当前标题、摘要、账号和素材的明确确认,不得添加 --exec。
  • Markdown、HTML 与贴图三条入口都会在上传前扫描密钥、内部地址和路径,命中时必须改稿,不得绕过。
  • 两账号 voice/theme 差异是反 AI 检测策略的一部分,不要趋同。
  • 错误码(40164 IP 白名单 / 40001 token / 48001 未授权等)见 references/errors.md。

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Generate images from written descriptions, transform existing images with editing instructions, or create several variations. Choose image dimensions and quantity, then save the results using an OpenAI-compatible service or apimart with your own API key.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Generating an illustration from a written description
  • Changing an image's background using instructions
  • Creating several variations of an existing image
ZJU-REAL/Easel4천2026년 10월 23일 업데이트

ai-music

무료

Generate background music for short videos, vlogs, and social posts from descriptions of mood, style, and instruments. Download MP3 audio, optionally include sung lyrics, and use shared scripts to trim tracks, adjust loudness, or add music to videos.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Generating background music for a vlog intro
  • Creating instrumental music to match a social post
  • Generating a sung track from supplied lyrics
ZJU-REAL/Easel4천2026년 10월 23일 업데이트

Create new videos from written scene descriptions or still images using external AI services. Set the aspect ratio and duration, animate a character image, and request generated audio when the selected model supports it.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Generate a short video from a scene description
  • Animate a still image
  • Create character motion from a starting image
ZJU-REAL/Easel4천2026년 10월 23일 업데이트

Organize generated images, videos, and text in outputs/ by date, platform, and type. Add tags, search filenames and content, produce asset lists and reports, and preview archive moves before applying them to make past work easier to reuse.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Organizing generated assets by date, platform, and type
  • Finding past content through keywords and tags
  • Listing assets for a specific account or platform
ZJU-REAL/Easel4천2026년 10월 23일 업데이트

Reduce background noise in audio recordings or video soundtracks with three processing levels. Keep the original file, create a cleaned version, and receive a report of the settings used and file details before and after processing.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Reducing fan or air conditioner noise in recordings
  • Cleaning speech in podcasts and interviews
  • Reducing noise in a video's audio track
ZJU-REAL/Easel4천2026년 10월 23일 업데이트

Edit audio files by trimming sections, converting formats, matching loudness, or extracting sound from videos. You can also join recordings, add fades, and change playback speed while keeping the original pitch.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Trim a recording to the section you need
  • Convert audio formats and match loudness
  • Extract audio from a video
ZJU-REAL/Easel4천2026년 10월 23일 업데이트

ZJU-REAL의 스킬 모두 보기

이 스킬의 문제 신고