research-to-wechat
Skill1 starsChanged 5 months agoMITView on GitHub
A native research-first pipeline that turns a topic, notes, article, URL, or transcript into a sourced article with an evidence ledger, polished Markdown, inline visuals, cover image, WeChat-ready HTML, browser/API-ready draft assets, and optional multi-platform distribution. Use when the user wants 深度研究、改写成公众号、写作、排版、配图、HTML 转换、公众号草稿生成、多平台分发.
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- Fei2-Labs/skill-genieedited, first seen Sep 24, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- Fei2-Labs/skill-genie★ 1252% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository24 other files it gives its agents.
- aegis-protocolSkill
- ai-csuiteSkill
- browser-driverSkill
- chinese-humanizerSkill
- close-loopSkill
- de-ai-englishSkill
- dev-inboxSkill
- foxcode-openclawSkill
- git-cryptSkill
- handoff-receiverSkill
- image-prompt-engineerSkill
- init-rulesSkill
- linuxdo-applicationSkill
- npm-publishSkill
- omnidebug-autopilotSkill
- psychology-masterSkill
- refactor-agents-mdSkill
- rtk-token-saverSkill
- session-handoffSkill
- shared-memorySkill
- stalwart-dokploy-resend-relaySkill
- web-compliance-builderSkill
- wechat-compliance-checkSkill
- wordpress-vps-installSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. About 0 are common, 21 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈21
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Use this skill as a native, research-first article system.
- Distinctive: line 16
Ask one question at a time.
- Distinctive: line 17
Ask only when the answer changes source interpretation, structure frame, style fidelity, or draft delivery behavior.
- Distinctive: line 18
Keep Markdown as the canonical article asset until the HTML handoff.
- Distinctive: line 21
Every major claim must be traceable to a source.
- Distinctive: line 22
Every article must end with a "## 参考链接" or "## References" section listing all sources.
- Distinctive: line 24
Every inline image must pass a two-tier evaluation: eliminate defects first, then verify content match.
- Distinctive: line 26
Never pretend the workflow did interviews, long field research, team debate, or hands-on testing when it did not.
- Distinctive: line 27
Prefer visible disclosure of AI assistance and source scope.
- Distinctive: line 28
Treat source capture as a runtime boundary: preserve title, author, description, body text, and image list before rewriting.
- Distinctive: line 62
prefer source figures over generated visuals when they support the claim
- Distinctive: line 67
if no full transcript is obtainable, ask for the transcript or subtitle file and wait
- Very specific: line 71
Create one workspace per article: research-to-wechat/YYYY-MM-DD-<slug>/
- Distinctive: line 136
Use the internal contract in capability-map.md.
- Very specific: line 154
When EXTEND.md is present with a cta section, the renderer appends a styled CTA block after the article body.
- Distinctive: line 164
Use the full style system in style-engine.md.
- Distinctive: line 173
Run the article through these phases:
- Very specific: line 200
If imgs/cdn-urls.json already exists from a previous upload, skip re-uploading unchanged images.
- Very specific: line 202
After upload, always merge new CDN URLs into the existing cdn-urls.json (not overwrite).
- Very specific: line 205
If manifest.json already contains a media_id, pass --media-id to save-draft to update the existing draft.
- Very specific: line 206
If a duplicate draft was accidentally created, delete it via API (draft/delete) immediately and keep only the original media_id.
- Very specific: line 233
After rendering with --upload-map, verify that zero src="imgs/" local paths remain.
- Distinctive: line 245
Use the execution contract in execution-contract.md.
- Distinctive: line 246
Use the platform copy specs in platform-copy.md for Phase 8.
- Distinctive: line 256
every visual adds narrative or explanatory value
- Distinctive: line 258
every image placeholder was evaluated against placement criteria before generation
- Distinctive: line 259
every generated or selected image passed the two-tier quality check
- Distinctive: line 266
if Phase 8 was triggered, platform copies follow platform-copy.md and manifest includes their output entries
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Research to WeChat
<!-- // TODO: split SKILL.md into smaller modules/components -->Use this skill as a native, research-first article system. It does not route execution to external skills.
Core Rules
- Match the user's language.
- Ask one question at a time.
- Ask only when the answer changes source interpretation, structure frame, style fidelity, or draft delivery behavior.
- Keep Markdown as the canonical article asset until the HTML handoff.
- Save a draft only. Never publish live.
- Separate verified fact, working inference, and open question.
- Every major claim must be traceable to a source.
- Every article must end with a "## 参考链接" or "## References" section listing all sources.
- Apply the full normalization checklist before HTML rendering.
- Every inline image must pass a two-tier evaluation: eliminate defects first, then verify content match.
- the renderer converts
[text](url)intotext (url)because WeChat forbids clickable links. - Never pretend the workflow did interviews, long field research, team debate, or hands-on testing when it did not.
- Prefer visible disclosure of AI assistance and source scope.
- Treat source capture as a runtime boundary: preserve title, author, description, body text, and image list before rewriting.
Operating Paths
Path A: research-first articleuse for: topic, keyword, question, notes, transcript, subtitle file goal: build the article from a research brief and evidence ledgerPath B: source-to-WeChat editionuse for: article text, markdown file, article URL, WeChat URL goal: preserve the useful source core, then rebuild it for WeChat reading and distribution
Default routing:
- procedural or tool-teaching material ->
tutorial - thesis, trend, strategy, critique, case material ->
deep-analysis - multi-topic roundup ->
newsletter
Accepted Inputs
- keyword, topic phrase, or question
- notes, outline, or raw material dump
- article text
- markdown file
- PDF paper, report, or whitepaper
- article URL
- WeChat article URL
- video URL
- full transcript
- subtitle file that can be expanded into a full transcript
PDF policy:
- extract all figures, charts, tables, and diagrams as image assets
- save extracted figures to
imgs/source-fig-*.png - record captions and page numbers in
source.md - prefer source figures over generated visuals when they support the claim
Video policy:
- a video source is valid only when the workflow can obtain the full spoken transcript
- first attempt transcript recovery from the page, captions, or subtitle assets
- if no full transcript is obtainable, ask for the transcript or subtitle file and wait
Output
Create one workspace per article:
research-to-wechat/YYYY-MM-DD-<slug>/
Required assets:
source.mdbrief.mdresearch.mdarticle.mdarticle-formatted.mdarticle.htmlmanifest.jsonimgs/cover.png- inline illustration files referenced by the markdown body
Required frontmatter in final markdown:
titleauthordescriptiondigestcoverImagestyleModesourceTypestructureFramedisclosure
manifest.json must capture:
pathModestyleModestructureFramesourceTypeconfidencedraftStatus- output paths
manifest.json.outputs.wechat must include:
markdownhtmlcover_imagetitleauthordigestimages
Script Directory
Determine this SKILL.md directory as SKILL_DIR, then use ${SKILL_DIR}/scripts/<name>.
| Script | Purpose |
scripts/fetch_wechat_article.py | WeChat article fetch (mobile UA) |
scripts/wechat_delivery.py | Native WeChat delivery entrypoint (check, design-catalog, render, upload-images, save-draft) |
scripts/install-openclaw.sh | OpenClaw skill installer |
Native Capability Contract
This skill executes every stage itself:
- source ingest via bundled fetch script, browser tools, and PDF inspection
- markdown polish via normalization rules in this skill
- inline visual planning and cover direction via native article analysis
- design catalog compile via
python3 "${SKILL_DIR}/scripts/wechat_delivery.py" design-catalog - WeChat HTML rendering via
python3 "${SKILL_DIR}/scripts/wechat_delivery.py" render - image upload via
python3 "${SKILL_DIR}/scripts/wechat_delivery.py" upload-images - draft save via
python3 "${SKILL_DIR}/scripts/wechat_delivery.py" save-draft - multi-platform distribution via native browser/API steps when Phase 8 is requested
Use the internal contract in capability-map.md.
Delivery Ladder
Resolve WeChat draft delivery in this order:
L0 official-http:WECHAT_APPIDandWECHAT_SECRETare ready, so bundled scripts call the official media and draft APIs directlyL1 assisted-browser: only use a browser when the account setup or draft inspection needs human helpL2 manual-handoff: stop with exact file paths and required API fields when official delivery cannot proceed
Author Config (EXTEND.md)
The renderer reads an optional EXTEND.md for author-specific CTA content and preferences. This keeps the skill generic — CTA text, QR codes, and blog URLs belong to the author, not the skill.
Lookup order: project dir → ~/.config/research-to-wechat/ → ~/.research-to-wechat/
See author-config.md for the full format and field reference.
When EXTEND.md is present with a cta section, the renderer appends a styled CTA block after the article body. When absent, no CTA is rendered.
Style Resolution
Resolve style in this order:
- explicit user instruction
- preset mode
- author mode
- custom brief
Use the full style system in style-engine.md.
Visual rendering is decided by:
styleModestructureFramelightordarkoutput mode
Execution
Run the article through these phases:
- intake and route selection
- source packet, brief, and strategic clarification
- research architecture with structured question lattice
- research merge and evidence ledger
- frame-routed master draft with normalization checklist, writing self-check, and machine-verified Chinese de-AI scan (Phase 5 must not proceed without running these):
# negation-contrast patterns (must be 0 hits) grep -n '不是.*而是\|不仅.*而且\|不只.*更\|不再.*而是\|已经不是' article-formatted.md # em-dash count (≤5 in body) grep -c '——' article-formatted.md # exclamation marks (must be 0) grep -c '!' article-formatted.md - 微信敏感词合规检查(⛔ 必须通过才能继续):用
wechat-compliance-check扫描article-formatted.md,有命中则改写后重新扫描,直到零违规。 refinement, visual strategy, and image evaluation
⛔ Pre-delivery compliance gate (BLOCKING — must execute before Phase 8): Long sessions cause attention decay on early-loaded rules. Before proceeding to HTML rendering and draft save, you MUST:
- Re-read the project's AGENTS file (
catthe file, do not rely on memory). For WeChat projects this is../AGENTS-wechat.mdor the path specified inAGENTS.md. - Walk every rule in the AGENTS file line by line and verify the current article/HTML against it. Check file location, typography, HTML constraints, CTA, image rules — every single one.
- Output a checklist to the terminal with ✅/❌ per rule. Any ❌ must be fixed before continuing. This step exists because context-window attention decay will cause you to forget rules loaded at session start. Do not skip it. Do not check from memory.
- Re-read the project's AGENTS file (
native WeChat HTML rendering via
wechat_delivery.py render, image upload, draft save, and manifest.Image upload rules:
- If
imgs/cdn-urls.jsonalready exists from a previous upload, skip re-uploading unchanged images. Only upload new or modified files (compare filename + file size/mtime). wechatqr.png(CTA QR code) must reuse the existing CDN URL from project-levelimages/wechatqr.pngor a previouscdn-urls.json. Never re-upload the same QR code per article.- After upload, always merge new CDN URLs into the existing
cdn-urls.json(not overwrite).
Draft save rules:
- If
manifest.jsonalready contains amedia_id, pass--media-idtosave-draftto update the existing draft. Never create a duplicate. - If a duplicate draft was accidentally created, delete it via API (
draft/delete) immediately and keep only the originalmedia_id. manifest.jsonis the single source of truth formedia_id.
Before draft save, run HTML compliance check (must all pass):
grep -c 'class=' article.html # must be 0 grep -c '<style' article.html # must be 0 grep -c '<a href' article.html # must be 0 # outermost <section> must have background python3 -c "import re;h=open('article.html').read();m=re.search(r'<section[^>]*>',h);print('OK' if m and 'background' in m.group() else 'FAIL')"Known issue:
rendercollapses newlines inside<code>blocks. The renderer converts markdown fenced code blocks into single-line<code>content, stripping all\ncharacters. Multi-line code will display as one long line. Detection:python3 -c "import re;h=open('article.html').read();codes=[c for c in re.findall(r'<code>(.*?)</code>',h,re.DOTALL) if len(c)>80 and '<br' not in c];print(f'{len(codes)} collapsed code blocks' if codes else 'OK')"Fix: extract code blocks from the source markdown (which preserves newlines), HTML-escape them, replace\nwith<br/>, and substitute back into the rendered HTML. WeChat ignores literal\nin HTML — only<br/>produces visible line breaks. When HTML-escaping code content, only escape&,<,>, and". Do NOT escape single quotes ('→') — WeChat renders the entity literally as'instead of'. This must run afterrenderand beforesave-draft.Known issue:
renderoutputs<thead>without dark background. In dark mode, table headers render with browser-default white/transparent background, making header text invisible. Fix: addbackground:#1E293B(or the design's surface color) to<tr>and<th>inside<thead>. Also ensure<td>has explicitbackgroundmatching the page background.Known issue:
renderduplicates ordered list numbering. Markdown1. 2. 3.becomes<ol><li>1. text</li>— the<ol>auto-numbers AND the literal1.prefix remains. Fix: strip the leadingN.from each<li>content.Known issue:
renderkeeps the H1/H2 title in the HTML body. WeChat article titles are set via the draft APItitlefield, not in the HTML body. The renderer copies the markdown# titleinto an<h2>. Per WeChat typography rules, this must be removed. Fix: delete the<section>containing the<h2>that matches the draft title.Known issue:
--upload-mapmay not replace all image paths. After rendering with--upload-map, verify that zerosrc="imgs/"local paths remain. If any survive, do a string replace pass in post-processing. Detection:grep -c 'src="imgs/' article.htmlmust be 0.Known issue: reference link section has oversized letter-spacing on mobile. The body
line-height:1.9andfont-size:15pxcause long URLs in the reference section to spread out on mobile. Fix: override the reference section<p>tags withfont-size:13px;line-height:1.6;word-break:break-all;text-align:left.File path rule: always follow the project's AGENTS file for output directory. This skill defaults to
research-to-wechat/YYYY-MM-DD-<slug>/. If the project AGENTS specifies a different convention (e.g.YYYY-MM-DD-<slug>/at project root), the project rule overrides this skill's default. Check the project AGENTS before creating the workspace directory.- If
- optional multi-platform content generation and distribution
Phase 9 only executes when the user explicitly requests it.
Use the execution contract in execution-contract.md. Use the platform copy specs in platform-copy.md for Phase 8.
Done Condition
The skill is complete only when all of these hold:
- the article reads as researched before it reads as polished
- the route choice and structure frame fit the source instead of forcing one house style
- the chosen style is visible without collapsing into imitation
- the writing framework self-check for the chosen frame has been applied
- the evidence ledger clearly separates fact from interpretation
- every visual adds narrative or explanatory value
- the normalization checklist has been applied: no citation artifacts, no LaTeX, no broken tables, no scraped UI remnants
- every image placeholder was evaluated against placement criteria before generation
- every generated or selected image passed the two-tier quality check
- markdown and HTML agree on title, summary, cover, and image paths
- HTML contains zero
class=attributes, zero<style>tags, zero<a href>links, and outermost<section>has explicitbackground manifest.jsonagrees with the actual output set and draft state- the article does not overclaim research effort or authorship
wechat-compliance-checkreturned zero violations on the final markdown- the workflow can stop safely at the highest-quality completed artifact if a later handoff fails
- if Phase 8 was triggered, platform copies follow platform-copy.md and manifest includes their output entries
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

