---
name: "xiaohongshu-material"
description: "Produce Xiaohongshu (RED) image-and-text assets: a 3:4 image carousel (1 cover + 5-8 content images), note title and body copy, and hashtags, and split a long WeChat Official Account article into one note. Use when the user asks to \"make a Xiaohongshu post\", \"turn this WeChat Official Account article into a Xiaohongshu note\", \"produce Xiaohongshu covers and images\", or \"write Xiaohongshu copy\". Publishing uses xiaohongshu-upload."
---

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

# Xiaohongshu (RED) asset production

## Scope

Produces the two-piece set: **image carousel + copy**. Publishing is not here; uploads go through `xiaohongshu-upload` (`sau xiaohongshu upload-note`).
**Never rewrite the original facts**: numbers, names and dates must match the sources; opinions can be rewritten, facts cannot.

## Inputs

0. **Account positioning card (required reading; if missing, ask first)**: for the default account read `<WORKSPACE>/<platform>/account-positioning.md`.
   **Three Xiaohongshu accounts exist on this machine; their cards and SOPs are independent and must never be mixed up** (hard rule):
   - A `<ACCOUNT>` (drama commentary) → `<WORKSPACE>/<platform>/<ACCOUNT>/drama-commentary_SOP.md`, palette off-white + wine red;
   - B `<ACCOUNT>` (AI beauty dance) → `<WORKSPACE>/<platform>/<ACCOUNT>/ai-dance_SOP.md`, blue-purple stage light, video format, red line on AI labelling;
   - C `<ACCOUNT>` (creative how-tos) → `<WORKSPACE>/<platform>/<ACCOUNT>/material_SOP.md`, three pink palettes, three-piece reproduction.
   The master sheet is `<WORKSPACE>/<platform>/account-master.md`. Confirm which account this run is for before starting — using the wrong card is worse than not doing the work. Without this card you may not start; if an item is not spelled out in the card, ask the user first and do not fill it in yourself.
1. `brief.md` + `copy/*.md` (splitting a long WeChat Official Account article into notes, the most common case).
2. A topic the user hands you directly, plus asset images.

If there is no source, ask before starting; do not invent details.
**A WeChat Official Account topic is only a candidate pool**: run it past the positioning card first, and if it does not match, change the topic or change the angle instead of forcing a split.

**Processing external-site assets** (added in a later revision): when the assets come from external sites such as X / YouTube / Douyin / Kuaishou / Weibo, follow the processing tiers in the project SOP — L1 translate and reword = reposting, do not publish; L2 restructure + rebuild the cover text layer = the floor; L3 re-run it yourself and add evidence; L4 add your own trade-offs and pitfalls. Below L3 you must state "source: platform @account, date" in the body and mark it "not personally tested". When the original image serves as the base, wipe the original account ID, watermark and outbound links. Reference implementation: `<WORKSPACE>/<platform>/<ACCOUNT>/material_SOP.md` section 2.4.

**Three-piece asset set** (same SOP, sections 2.5/2.6): S1 original post source + S2 your own reproduction process + S3 reproduction result; without S3 do not publish, without S2 you may only mark it "not personally tested". Image 1 is always the S3 result (not the process, not the original post's image); the asset format then decides carousel versus video — with no continuous screen recording of 30s or more, make a carousel.

## Spec table

| Item | Spec |
|---|---|
| Carousel size | 1080×1440 (3:4), portrait |
| Carousel count | 6–9 images; the cover must be image 1, the last image is the call to action |
| Note title | ≤20 characters (longer gets truncated) |
| Body copy | 300–600 characters; the first 2 lines must read fully in the feed |
| Hashtags | 3–5, placed at the end of the body |
| Body type size | At 1080 wide: title ≥96px, body ≥44px |
| Text per image | ≤60 characters, one information point per image |

## Splitting method (one long article → one note)

0. **Run the positioning card first**: does this topic match "publishable"? If not, change the topic; do not try to rescue it by rewording the title.
1. **Extract one conflict point**; do not carry over the whole article's conclusion. From a 1500-character article take only the most counter-intuitive layer.
2. Image 1 = hook (a contrast number / "stop doing…" / one assertion), image 2 = background, images 3–6 = point-by-point expansion, images 7–8 = what I do / the checklist, last image = call to action.
3. One idea per image; the text inside an image is a **conclusion**, not a complete sentence.
4. Rewrite the body copy; do not reuse WeChat Official Account paragraphs; keep 1–2 numbers from the original to add credibility.
5. End with one executable action (what to save, what to avoid); do not shout "like and follow".

## Visual rules

- Fonts: Source Han Sans / Alibaba PuHuiTi; **never render Chinese in a Western monospace font**.
- Palette follows the account system: deep blue-black `#111827`, signal orange `#F97316`, off-white `#F8F5EF`.
- Cover: big type + whitespace, readable at a glance; avoid piles of small type and full-screen gradients.
- Carousel uses a consistent corner marker (n of total) so paging stays coherent.

## Three-platform operating guidelines (confirmed by the user; outranks the defaults in this section)

- **Use only the three pink backgrounds**: sakura pink `#FAE0EB`, peach pink `#FCE2D6`, taro purple `#EEE4F8`; accent colours follow the palette, and off-white / deep blue-black are no longer used.
- **Subtitles ≥46px**; inner-page body ≥40px; no small footer type.
- **No automatic or semi-automatic publishing in any form**: not via sau, not via scripts, and **not by simulating clicks in a browser with computer use either**. The platform judges behaviour patterns (action rhythm, login environment, publishing hours); switching tools only confirms "AI hosting".
- Observed in a past run: two notes were locked to "visible only to me" for "using AI hosting to post and interact". During recovery, stop publishing for 3–7 days, then 2–3 notes per week, human-shot/human-written only, and watch for two weeks.
- Use fewer full-block AI illustrations and templated big type inside images; rotate the three cover palettes and do not let every image share the same structure.
- Rotate three cover types by topic: still photo with big type / solid-colour type poster / collage comparison (collages get a 22px pink border).
- Tools: `tools/xhs/cover.py` (`style=still|type|grid`, `palette=sakura|peach|lilac`).
- Full guidelines: `<WORKSPACE>/operations/three-platform-guidelines.md`.

## Image sourcing and compliance (relaxed by default, three hard limits)

Usable by default: public news images, official posters/stills, product screenshots, AI conceptual images and illustrations, free commercial stock libraries.

Three hard limits:

1. Never fake "on site"; generated images do not pass as photographs.
2. Never AI-composite a real face to pass as the person involved; never make derogatory edits.
3. Never take someone else's whole original image set as your own; a single image carries one line of source.

Two platform rules still apply: keep off-platform referral (WeChat, QR codes, contact details) out of the images or reach gets limited; finance content adds "not investment advice", medical and legal content adds "defer to the official wording".

## Asset review (veto; topic first, then images)

| Category | Any hit = stop |
|---|---|
| Disability | Disabled people as subject/joke, misery-selling, close-ups of disability traits |
| Religion | Religious figures, rituals, scriptures, religious sites, religious symbols mocked |
| Military | Serving personnel, uniforms and ranks, military vehicles and equipment, barracks, exercises, classified units |
| Politics | Politicians, party/state emblems, political slogans, sensitive maps, assemblies and protests, taking sides on policy |
| Incidental | Close-ups of minors, accident scenes, gore, private information |

Process: a topic hit → change the angle or drop the topic (no "blur it and use it"); before batch rendering, list the sources and check the subjects; before delivery write the review conclusion into `00-delivery-notes.md`; when unsure ask first and default to not doing it.

Xiaohongshu limits reach and bans accounts more readily for political, military and religious content; change the angle rather than test the boundary.

Boundary: livelihood policy is in scope, covering clauses and impact only, with no politicians, party/state emblems, political slogans or maps.

## Production flow

0. Read the positioning card → fix the topic (at most 1–2 notes per batch; do not match the WeChat Official Account article count).
1. Fix the hook line (≤12 characters), then the carousel structure.
2. Produce the cover + image 2 as two proofs, confirm the style, then batch.
3. Render all images → run QA → write `publish_copy.md`.
4. Write to `<WORKSPACE>/<platform>/<batch>/`, update `<platform>/INDEX.md`.

## QA gate

| Check | Pass criterion |
|---|---|
| Size | All 1080×1440, no exceptions |
| Count | 6–9 images, first image is the cover, last image has the call to action |
| Title | ≤20 characters, and contains none of "shocking / explosive / the whole internet" |
| Body | 300–600 characters; the first 2 lines stand alone as the hook |
| Text volume | ≤60 characters per image, no overflow, no edge crowding |
| Facts | Every number traces back to a source and matches the original |
| Positioning | Every note maps to the card's "publishable" list, and at least 1 note strengthens the persona |
| Naming | Matches `<8-digit date>_<topic>_<purpose>.ext` |

## Delivery layout

```
<WORKSPACE>/<platform>/
  <batch>/
    <YYYYMMDD>_<topic>_cover.png
    <YYYYMMDD>_<topic>_carousel02.png … _carousel08.png
    <YYYYMMDD>_<topic>_publish_copy.md   # title / body / hashtags / image order
    00-delivery-notes.md
  INDEX.md
```

`publish_copy.md` always has four blocks: 3 candidate titles (each ≤20 characters), body copy, hashtags, image-order notes.

**Path override** (added in a later revision): when the user has designated a project directory for an account (e.g. `<WORKSPACE>/<platform>/<ACCOUNT>/`), finished assets go to `<project dir>/output/<YYYYMMDD>_<topic>/` and the index goes to the project directory's `INDEX.md`, and nothing is written into the workspace `<platform>/` folder. The same set of files lives in exactly one place.

## Common failures

| Symptom | Handling |
|---|---|
| Chinese inside images turns into tofu boxes | The font lacks CJK coverage; switch to Source Han Sans / PuHuiTi |
| Lead image is overloaded | Cut to ≤12 characters and keep only the conflict point |
| Title over 20 characters | Move the qualifier into the first sentence of the body |
| Published but no traffic | Check for off-platform referral, homogeneous topics, and whether the lead image is readable |
| The whole batch reads like a split WeChat Official Account article | Go back to the positioning card and re-pick the topic; do not rescue it by rewording titles or swapping images |
