---
name: wechat-publish-workflow
description: "Execute WeChat Official Account publishing (a group of several articles plus several card-image sets): asset-readiness check, docx import, cover cropping, summary/originality/comments settings, card-image upload, mobile preview, scheduled publishing and post-publish backfill. Use when the user asks to 'publish these articles', 'prepare a WeChat Official Account release', 'check the assets before publishing', or 'how do I publish card images'. It does not produce assets (use wechat-material) and does not harvest topics automatically (use ai-trend-publish)."
---

> Original skill · commissioned by the user · English edition, 2026-11-12

# WeChat Official Account publishing workflow

## Boundaries

Only the segment **from the delivery folder to published**: check, paste, set, preview, schedule, backfill.
It does not produce assets, does not edit copy, and does not log in to the backend on the user's behalf (the login state and the QR scan must be done by the account holder).

## Before publishing: run the check first, do not open the backend first

```powershell
python scripts/check_publish_pack.py <batch directory>
```

Open the backend only on exit code 0. Fix FAIL items as prompted; judge WARN items yourself and note them in the delivery notes.
What it checks: whether each docx really has embedded images, cover ratios, body-image sizes, whether card-image numbering is continuous, whether the delivery notes are missing.

## Hard rules (violating them means rework)

1. **Multiple articles are one group, sent in a single mass send.** A subscription account can mass-send only once a day; splitting 6 articles into 6 sends shuts 5 of them out.
2. **Use "document import" for the body copy, do not copy-paste from WPS.** In the editor toolbar, "…" on the right → document import → choose the docx (≤15M). Import overwrites the draft and brings the heading hierarchy, bolded subheads and embedded images in together; after importing, delete the duplicated title in the first line of the body, since the title field is already filled. Select-all copy-paste from WPS turns into HTML source (`@font-face`, `mso-` styles); this was hit in a past run.
3. **After pasting, check whether the images came along.** If images are missing, use "Image → local upload" and put them back in place; do not redo the layout.
4. **Cover ratio is fixed**: lead article 2.35:1 (900×383), secondary article 1:1 (500×500); use "select from body" and then adjust the crop — do not just swap the image.
5. **The summary stays within 120 characters**; beyond that it gets truncated in the feed.
6. **Card images are "images", not "articles".** They do not enter the mass-send queue, do not consume a mass send, **turn off the mass-send notification**, and the first one is the cover.

## Article workflow

```text
Create a group (create all N at once, the first is a new article by default)
  → per article: paste title → paste body → check images → set cover → fill summary → originality/author/comments → save draft
  → verify the ordering of the cards on the left
  → mobile preview (QR scan)
  → schedule publish
```

Details and the item-by-item checklist are in [references/checklist.md](references/checklist.md); for the operations schedule sheet use [references/exec-sheet-template.md](references/exec-sheet-template.md).

## Card-image workflow

```text
New creation → Image (card image) → upload (first image = cover) → verify thumbnail order → fill title → fill description → save draft → preview → schedule publish
```

- If one is out of order, re-upload the whole group; drag-sorting easily misses one.
- Use the "publish title" from the publishing copy, not the working title (e.g. "DeepSeek | 5 card images").
- Keep blank lines in the description; add no QR codes, WeChat IDs or off-site links.

## Exception handling

| Symptom | Handling |
|---|---|
| Body images did not come over | upload locally from that article's folder and put them back in place; do not swap images |
| Text is cut off after cover cropping | reopen "edit cover" and adjust the position; do not just swap the image |
| The title is too long and gets truncated | compress to within 30 characters, keeping the number or the conflict from the first half |
| The publish button is greyed out | check whether the title, body, cover or summary is empty |
| The six articles are in the wrong order | drag the cards on the left to reorder; do not rebuild the group |
| Card images are in the wrong order | delete and re-upload |
| The scheduled time has already passed | move to the next available slot; never pick a past time |
| A mass-send conflict is reported | a mass send already happened that day, move to the next day; card images are unaffected |

## After publishing

Reply to the first 10 comments within 30 minutes; write the link, publish time and first-day data (reads / shares / follower gain; for card images record reads / likes) to the end of that batch's `00-delivery-notes.md`.

## Compliance red lines

- Finance keeps "not investment advice"; medical and legal keep "refer to official wording" — **in the body copy, not only in the delivery notes**.
- No QR codes, WeChat IDs or off-site links inside images.
- Backend button labels change with versions; go by these function names: "Article / Image / Cover / Summary / Originality / Comments / Schedule publish".
