Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
End-to-end 微信公众号 article writing and publishing — from topic ideation to published article, with quality gates.
End-to-end 微信公众号 article writing and publishing — from topic ideation to published article, with quality gates.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
从选题到发布的公众号一体化写作工作流 Multi-agent pipeline: Orchestrator delegates writing and reviewing to independent subagents. The orchestrator never writes or reviews — it routes, tracks versions, and enforces quality gates.
bash <skill-dir>/scripts/setup.sh <workspace-dir> Installs: bun runtime, bundled baoyu renderer deps, and a persistent preview server (wechat-preview.service, port 8898, auto-restart).
Handles: Topic research → Chinese-first writing → quality review → scrapbook illustrations → WeChat formatting → publishing to WeChat draft box (via Official Account API or CDP browser automation). Does NOT handle: Git/version control, non-WeChat platforms, post-publish analytics, WeChat messaging/customer service. Ends at: Article saved to WeChat draft box. User publishes manually.
Trigger any command below, or see skill.yml for the full trigger pattern list. CommandWhat it doesforge topic XResearch trending angles, propose 3 options with hooksforge write XFull pipeline: research → publish (9 steps)forge draft XWrite + format only, stop before illustrations/publish (steps 1-7)forge publish <slug>Publish an existing draft to WeChatforge preview <slug>Render preview, run format quality checksforge voice trainAnalyze past articles to extract voice profileforge statusShow pipeline status and pending drafts If no subject given, loads from session.json (set by forge topic). See references/data-layout.md.
State persists to pipeline-state.json — survives compaction. See references/pipeline-state.md. #StepWhoDetails1Research + PrepOrchestrator(a) web_search for topic angles + 5-8 sources. (b) Verify each source exists (fetch title/authors/venue). Save as sources.json. (c) Load voice profile. (d) Generate outline (6-8 sections), save outline.md.2WriteWriter subagentChinese-first draft. Writer MUST cite only from sources.json or mark [UNVERIFIED]. See references/writer-prompt.md3ReviewReviewer subagentBlind 8-dimension craft scoring. See references/reviewer-rubric.md4aRevise (auto)Writer subagentMax 2 automated cycles. Loop back to Step 3 if score < threshold.4bRevise (human)Human-in-the-loopIf still below threshold after 2 auto cycles, user provides direction. Pauses pipeline.5Fact-checkFact-Checker subagentVerify every claim via web search. Produces corrections + reference list. Max 2 fact-check cycles (corrections → re-verify). See references/fact-checker-prompt.md6FormatScriptbash scripts/format.sh <draft-dir> [draft-file] [theme] — baoyu renderer (default theme: classic WeChat style). Themes: default/grace/simple. If fact-check required >3 text changes, Orchestrator does a spot re-review (Reviewer scores only changed paragraphs, not full article).7PreviewHumanOpen http://<host>:8898/formatted.html (persistent preview server, systemd wechat-preview.service), await text approval8Illustrate + Embedarticle-illustrator + scriptGenerate scrapbook images (AFTER text approval). ~$0.06/article via Z.AI (preferred, ~$0.015/image) or ~$0.50 via OpenRouter.9PublishOrchestratorThree paths — check in order: (C) WeChat Official Account API via appid+appsecret (credentials at wechat_secrets_path in config.json) — preferred, most reliable; (A) OpenClaw browser tool with base64 chunking for macOS/Titan; or (B) direct CDP WebSocket for Linux/remote. Paths A+B use two-phase injection (text first, then images via clipboard blob paste). See references/browser-automation.md
Writer never self-reviews. Reviewer is blind — never sees outline or brief. Illustrations LAST. Most expensive step. Only after user approves text. article-illustrator is the ONLY image method. Must follow full scrapbook pipeline: read references/scrapbook-prompt.md → generate JSON plan with 300-500 char descriptions → call generate.py. Never bare prompts. Prefer Z.AI provider ($0.015/image, 97.9% Chinese text accuracy) over OpenRouter ($0.12/image). Two-phase image injection. Base64 images are stripped on save. Inject text-only HTML first, then insert each image at the correct position via clipboard blob paste (WeChat auto-uploads to CDN). Verify image count + positions after insertion. Browser tool vs direct CDP. On macOS/Titan where OpenClaw manages the browser, you MUST use the browser tool (Path A). Playwright isolates page contexts — external CDP connections see zero targets. On Linux with standalone Chrome, use direct CDP (Path B). See references/browser-automation.md. Base64 chunking for browser tool. Raw HTML in the browser tool's fn parameter breaks due to escaping conflicts. Always base64-encode HTML, store in chunks via window._b, then atob() and inject. Track chunks_stored in pipeline state for compaction recovery. Always save as draft. User publishes manually. Check for WeChat API credentials first. If wechat_secrets_path credentials file (see config.json) exists, use Path C (API) — no browser required, more reliable. Fall back to Path A/B only if no credentials. ensure_ascii=False is mandatory for WeChat API. requests(..., json=payload) escapes Chinese as \u5199\u4e66. Always use data=json.dumps(..., ensure_ascii=False).encode('utf-8'). Topic fidelity: Every revision preserves the article's 初心 (purpose statement in pipeline-state.json). Drift = FAIL.
TypeMinMax科普35教程36观点24资讯23
Reviewer scores 0-10 on craft-observable dimensions (not outcome predictions): DimensionWeightInsight Density (洞察密度)20%Originality (新鲜感)15%Emotional Resonance (情感共鸣)15%Completion Power (完读力)15%Voice (语感)10%Evidence (论据)10%Content Timeliness (内容时效性)10%Title (标题)5% Pass: weighted_total ≥ 9.0, no dimension below 7, Originality ≥ 8. Hard blockers (instant FAIL): 教材腔, 翻译腔, 鸡汤腔, 灌水, 模板化, 标题党. Full rubric with scoring criteria: references/reviewer-rubric.md
Orchestrator (Main Agent) — routes, tracks, enforces gates ├── Writer Subagent — drafts + revises (Opus model) ├── Reviewer Subagent — blind scoring (Sonnet model) ├── Fact-Checker Subagent — verifies claims via web search (Sonnet model) └── article-illustrator — scrapbook images (after text passes)
Configure via ~/.wechat-article-writer/config.json (generated by scripts/setup.sh): FieldDefaultDescriptiondefault_article_type"教程"Default article type (科普/教程/观点/资讯)wechat_secrets_path~/.wechat-article-writer/secrets.jsonPath to WeChat API credentialschrome_debug_port18800Chrome CDP port for browser automation (Path B)wechat_author—Author name shown in WeChat draftword_count_targetsSee defaultsMin/max word counts per article type See references/data-layout.md for full config schema.
FileWhen to loadreferences/writer-prompt.mdStep 2 (writing) and Step 4 (revision)references/reviewer-rubric.mdStep 3 (review) — full 8-dimension scoring criteriareferences/fact-checker-prompt.mdStep 5 — claim extraction, verification, correction protocolreferences/viral-article-traits.mdStep 2 — Writer self-check listreferences/pipeline-state.mdOn resume or compaction — state machine schema + protocolreferences/browser-automation.mdStep 9 — Two publishing paths: Path A (OpenClaw browser tool) and Path B (direct CDP). Includes base64 chunking, image insertion, save verification.references/LESSONS_LEARNED.mdHard-won lessons from production publishing sessions (escaping, selectors, mixed content, costs)references/data-layout.mdDirectory structure, slug generation, config/session schemasreferences/agent-config.mdSetup — Gateway, AGENTS.md, environment configreferences/quality-checks.mdSteps 3, 7 — content/format quality gatesreferences/figure-generation-guide.mdStep 8 — illustration placement heuristicsreferences/wechat-html-rules.mdStep 6 — what HTML/CSS works in WeChatreferences/templates.mdStep 1 — starting templates by article typereferences/voice-profile-schema.jsonStep 1 — voice profile field definitionsreferences/default-voice-profile.jsonStep 1 — fallback voice profile
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.