Skill-first Xiaohongshu workflow for sports knowledge posts.
Default user-facing flow:
- Do topic ideation and maintain a reusable backlog:
- return
2-3topic / possible-angle candidates - pick one topic worth researching now
- save the other ideas back into the cross-post backlog
- return
- Once one topic is worth continuing, scaffold
demo_posts/<date>-<slug>/. - Build
research/fact_pack.mdas the main per-post research file:- what happened
- why now
- must-know facts
- key numbers
- source map
- visual and story raw material
- Turn the research into
research/story_spine.md:- one-sentence story
- governing question
- chosen angle
- core tension
- what to keep and what to park
- Turn
fact_pack + story_spineinto the publishable post withxhs-note-assembly:- default delivery is
publish-ready copy, not a research-sounding draft - commercial posts should usually open with
result / biggest number / shortest why - decide page
1-4duties inside the same step - if an inner page does not have its own task, scene, and new information, cut the page count
- default delivery is
- Run a fast cover check before image generation:
main character / action / tension / background symbol- stay in the default cover system when this is clear
- only expand into alternate cover exploration when the default cover system does not fit
- Only branch into
xhs-visual-asset-mixwhen the remaining pages are genuinely unclear:- real image vs official screenshot vs generated image
- or when inner pages still fail the minimum storyboard check
- Use
xhs-image-style-duoonly for the pages that truly need generated-image prompts:- one recommended web-ready final prompt by default
- only compare multiple prompt directions when explicitly requested
- After publishing, run publish review and sync durable learning back into
reviews/andhypo.md.
Core workflow skills:
xhs-topic-angle-shortlistUse for topic ideation, possible-angle generation, and backlog maintenance before one topic is chosen for deep research.xhs-fact-packUse as the main per-post research layer after one topic is chosen, before the final story line is locked.xhs-note-assemblyUse afterfact_pack + story_spineare ready and the team wants the publishable post, defaulting topublish-ready copy, a minimum page storyboard, and publish polish.xhs-cover-templateAlways do the quickcover checkmindset for the first card; only expand this skill into alternate cover exploration when the default cover system does not fit.
Optional skill branches:
xhs-visual-asset-mixOnly whenreal image vs screenshot vs generated imageis genuinely unclear, or when a multi-page post still cannot explain each page's task, scene, and new information.xhs-image-style-duoUse when a page needs a generated-image prompt; default to one web-ready final prompt, and switch to two prompts only when the user explicitly wants a comparison.xhs-publish-reviewOnly after publishing; use it to explain what changed, why it changed, and which existing skill rules should be tightened.
2026-04-03 update:
- A real publish review showed that
strong cover + short body + no weak inner pagesbeat a fuller but softer multi-image draft. xhs-note-assemblywas too good at assembling research and not strict enough about outputting platform-ready copy.xhs-cover-templatewas too exception-oriented; the first card still needs a default structural check even when we stay inside the account preset.xhs-visual-asset-mixneeded a harder rule: inner pages cannot be just cover-style copies with different numbers.- These changes were written back into existing skill docs instead of creating new process notes, to keep the workflow minimal.
Apply these rules across the whole XHS workflow:
- Prefer Chinese over unnecessary English. If a sports league, rule, or business term is important, explain it in Chinese the first time it appears. Do not assume the reader understands English abbreviations.
- Tell the story so a non-fan can follow it.
Every post should quickly answer three questions for a new reader:
- What is this?
- Why is it hot right now?
- Why should I care?
- Jargon must earn its place. If a term only makes sense to existing fans and does not help the story, cut it or translate it into a simpler idea.
- One post should tell one story. Before writing, decide the single question, conflict, or change the post will carry. Park the other valid angles in notes instead of letting them crowd the main draft.
skills/Current XHS workflow skills.notes/skills-audit.mdDurable audit table for the current skill system.demo_posts/<date>-<slug>/One folder per post being actively researched or drafted.demo_posts/<date>-<slug>/README.mdWorkspace metadata. Record whether the post isdraft,parked, orpublished, then add the public note URL after publishing.demo_posts/<date>-<slug>/research/fact_pack.mdThe main per-post research file: facts, numbers, source map, visual raw material, and open questions.demo_posts/<date>-<slug>/research/story_spine.mdThe story-line checkpoint that turns research into one chosen story: what question the post answers, what tension carries it, and which side angles get parked.demo_posts/<date>-<slug>/reviews/Local post workspace reviews and postmortems for that specific post.explorations/Cross-post exploration space for ideas that are not yet one concrete post.explorations/backlog/Cross-post topic backlog, possible-angle backlog, and importance tracking.explorations/series/Multi-post topic systems, recurring franchises, and longer-term content lanes.explorations/visuals/Cover systems, style tests, and reusable visual directions.explorations/workflows/Process experiments, prompt-method tests, and production workflow trials.reviews/Durable publish-review archive for cross-post learning and git-tracked summaries.reviews/published-history.mdRunning index of posts that were actually published, linked to the public note, workspace, and review file.notes/Durable implementation notes and operating rules that should be reusable across sessions and agents.scripts/generate_images_from_post.pyExport per-image prompt files andweb_prompts.mdfor direct use in ChatGPT / Gemini style web UIs. It does not call image APIs.scripts/overlay_cover_text.pyAdd cover text overlays to finished images.scripts/scaffold_post_folder.pyCreate a standard post workspace withresearch/,text/,prompts/,images/, andreviews/.skills/xhs-image-style-duo/scripts/generate_style_duo.pyExport one recommended final prompt by default, or two prompts in explicit compare mode, for direct use in ChatGPT / Gemini style web UIs. It does not call image APIs.hypo.mdShared hypothesis board for testing storytelling techniques across posts.
- The legacy CrewAI pipeline has been removed from this repo.
- This README is the top-level workflow source of truth for the repo.
- Individual skills should implement the steps and exception branches defined here rather than redefining a separate default flow.
xhs_content_generatoris the account-specific repo for the current sports Xiaohongshu account.- Local sibling repo
xhs_skills/is the upstream, more generic skill set. A rule should only be promoted back there after it proves reusable across accounts.
Use demo_posts/ when the work is already post-shaped:
- there is one topic worth actively researching
- the work now needs a fact pack or story line
- the work may become a publishable note soon
Use explorations/ when the work is still cross-post or pre-post:
- a topic or angle backlog entry
- a theme series that may spawn many posts
- a visual language or cover template
- a workflow or prompt experiment
- a creator benchmark or account-direction study
Explicit trigger examples:
- Send to
explorations/when the ask sounds like:- "帮我想一个系列"
- "先做主题规划"
- "探索一下这个视觉方向"
- "沉淀一个模板"
- "研究类似作者"
- "先别落成具体帖子"
- Send to
demo_posts/when the ask sounds like:- "帮我做这篇"
- "这个题今天想发"
- "给我这条的标题和正文"
- "围绕这个事件出一篇"
- "先做这个题的切角"
Rule of thumb:
demo_posts/= one post workspaceexplorations/= one idea can feed many posts