WeWrite is a workflow for creating and publishing WeChat public-account articles with an AI coding agent, covering topic selection, source gathering, drafting, review, optional illustrations, formatting, and draft delivery. It is for public-account writers who want to produce articles or adapt them for other platforms, and its catalogue entries provide the skills and plugin for running those workflow steps.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add imraywang/wewrite --skill wewrite-reviewgit clone --depth 1 https://github.com/imraywang/wewriteWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/imraywang/wewrite/wewrite-review)<a href="https://agentmods.dev/skills/imraywang/wewrite/wewrite-review"><img src="https://agentmods.dev/badge/skills/imraywang/wewrite/wewrite-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/imraywang/wewrite/wewrite-review"><img src="https://agentmods.dev/badge/skills/imraywang/wewrite/wewrite-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00062 | $0.01074 |
| Opus 5 | $0.00031 | $0.00537 |
| Sonnet 5 | $0.00012 | $0.00215 |
| Haiku 4.5 | $0.00006 | $0.00107 |
Grade A, and why
wewrite-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
wewrite-review — 编辑、改稿与成稿
前置
用户指定文章时检查该文件;否则运行 wewrite run show,优先读取 artifacts.draft,并读取
artifacts.brief、artifacts.claims 和 artifacts.sources。旧任务没有初稿产物时才回退
artifacts.article。管道内先运行 wewrite run step review in_progress。
完整读取:
读取: {skill_dir}/../wewrite-write/references/article-brief.md
读取: {skill_dir}/../wewrite-write/references/editorial-quality.md
读取: {skill_dir}/references/seo-rules.md
用户只说“检查一下”且给了外部文件时,只给报告;主流程、任务内初稿或用户明确说“优化”时, 必须直接完成必要修改。
审稿与改稿
1. 对齐任务
检查文章是否真的回答 audience.question,核心判断是否与 thesis 一致,每节是否推动指定
claim,结尾是否交付 goal.takeaway/action。无关段落删除,不用漂亮结构掩盖答非所问。
2. 核对事实与个人材料
运行 wewrite sources list --json,把正文中的具体数字、日期、引述、研究结论和时效性事实
逐项对到 claims.yaml 与原始来源。来源不支持时优先补查;查不到就删除、缩小或改成明确的
推断。不能用模型记忆补洞。
检查所有第一人称事件、朋友同事、采访、对话、时间地点和感官细节。它们必须来自本次任务 明确记录的用户材料;否则属于阻断问题,直接删除或改成非亲历论述。
3. 五项编辑判断
按“准确、观点、有用、合声、好读”各评 1-5 分,并列出阻断问题和最多 5 个主要问题:
pass:平均分至少 4、单项不低于 3、没有阻断问题。revise:能在现有材料内修正。直接修改后重新执行 1-3,不得只写建议。needs_input:仅限用户明确要求个人故事而材料不足且无法安全换框架。
最多两轮。第二轮仍有问题时,删掉不可靠内容、缩小承诺,生成能通过的可靠版本;不得给未
通过的文章贴上“可交付”。通过后把最终正文写入 artifacts.article。
4. 标题、摘要与工具提示
生成一个主标题、两个准确的备选标题、40 字内摘要和 3-5 个标签。关键词自然出现,不按密度 硬塞,也不为打开率虚构数字或承诺。审稿不调用配图。
运行 wewrite score {article_path} --json。该分数只帮助定位套话、句式过齐和段落节奏风险,
不设机械及格线,也不为提分反复重写。
保存编辑报告
先把编辑判断写为任务目录内临时 assessment.yaml:
decision: pass
pass_number: 1
dimensions:
accuracy: 4
viewpoint: 4
usefulness: 4
voice: 4
readability: 4
blockers: []
major_issues: []
notes: ""
再生成 artifacts.review_report:
wewrite content-eval --draft {draft_path} --final {article_path} \
--assessment {assessment_path} --output {review_report_path} --json
只有报告里的 publishable=true 才能完成审稿。更新任务并标记完成:
wewrite run update --patch '{"editorial":{"decision":"pass","pass_number":1,"publishable":true},"seo":{"title":"...","alt_titles":[],"digest":"...","tags":[],"quality_score":0},"provenance":{"verified_sources":0,"unverified_sources":0}}'
wewrite run step review completed
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 101 lines · 62 tokens per session scan A 3abddf765353
wewrite-review is a skill published in the GitHub repository imraywang/wewrite (3,264 stars, last pushed yesterday), licensed MIT. It adds 62 tokens to every session and 1,074 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…