Rewrites and polishes prose in Chinese or English, removes AI-like wording, and reviews product localization copy while preserving intent for drafts, docs, release notes, launch copy, and social posts. Use when users ask in any language to draft, rewrite, proofread, localize, polish release notes, remove AI-like wording, or prepare launch and social copy. Not for code comments, commit messages, or inline docs.
72
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
The canonical home for this skill is write in tw93/Waza
Prefix your first line with 🥷 inline, not as its own paragraph.
Strip AI patterns from prose and rewrite it to sound human. Do not improve vocabulary; remove the performance of improvement.
See references/durable-context.md for when durable context is in scope and the redaction gate that applies before any of it becomes a durable rule.
For /write: the supplied text and current release state override memory. Durable preferences can set brevity, tone, and social-post shape; they do not override the hard rule to edit in place, keep meaning intact, and avoid change lists unless the user explicitly asks.
This skill is a catalog of smells, not a checklist to run top to bottom. Use it to recognize AI taste, then make judgment calls. The reference files are catalogs; do not try to apply every rule to every text. Applying more rules is not doing a better job.
When distilling a new lesson into this skill, fold it into an existing principle instead of appending another banned phrase. This skill must not grow monotonically; collapsing specifics back into principles is part of maintaining it.
references/write-zh-release-notes.mdreferences/write-zh-bilingual.md and the language references for both versionsreferences/write-product-localization.md; also load references/write-zh-bilingual.md when Chinese copy is presentreferences/write-zh.mdreferences/write-en.mdDefault is a line-level rewrite of the supplied text. Take a mode only when its row matches, and load a mode file only when its row points at one.
| Ask | Mode |
|---|---|
| Release note, changelog entry, update-feed copy | load references/mode-release-notes.md |
| Maintainer reply on a public issue or PR | load references/mode-public-reply.md |
| Long draft with several sections, tables, or images that needs structural work | load references/mode-long-form.md |
| EN/CN pair to check for drift | Bilingual Review |
| Product, site, or app copy across locales | Product Localization Review |
| Document, PDF, or white paper to review | Document Review |
| Paragraphs that read disconnected | Paragraph Coherence |
| Tweet, thread, or launch post | Tweet / Social Post |
Activate when: mixed Chinese/English, "Chinese copywriting", "bilingual consistency", "release notes"
Load references/write-zh-bilingual.md; it owns the judgment half that the Punctuation Gate script does not check.
Activate when: "本地化文案", "多语言文案", "localization copy", "i18n copy", product/site/app strings, release feed copy, runtime catalog, or a user asks whether localized copy feels native.
Load references/write-product-localization.md and follow its review procedure. If Chinese is one of the locales, also load references/write-zh-bilingual.md.
Activate when: PDF, document, white paper, "review this document", "check this document", "审稿"
Review checklist:
Lorem ipsum, TODO, [TBD]), broken image links.Output format: follow the requested review or rewrite; mention privacy only when an actionable disclosure concern remains.
Activate when: "连贯性", "段落连贯", "可读性", "coherence", "flow check", "段落顺不顺"
For review requests, report issues; for explicit rewrite or file-edit requests, apply the minimal authorized fixes. Check each paragraph for:
Output: for review, a numbered list with paragraph locations and minimal fix suggestions; for rewriting, the revised text or scoped file changes. Do not ask again to apply already-authorized edits.
Activate when: "推特", "twitter", "X推文", "tweet", "social post", "折叠长度", "长文推特", "发文"
Load references/write-zh-release-notes.md for the five announcement rules (community lead, highlights over completeness, UX framing, one stance, native rhythm) and the casual invitation close. For English posts or projects without that community voice, keep the same structure in the project's own voice.
references/mode-long-form.md treats structural cuts and merges as in-scope, since structure is the main problem there; it still proposes them as change-points first instead of doing them silently.)-) inside compound words is allowed; replace it with a space or a period when possible. When editing a draft that contains em-dashes, replace every one before returning the text.Before returning any produced text (a rewrite, or generated release / reply / social copy), resolve the checker across install layouts and run it:
GATE=""
for candidate in \
"<skill-base-dir>/scripts/check-punctuation.sh" \
"<skill-base-dir>/skills/write/scripts/check-punctuation.sh"; do
[ -f "$candidate" ] && GATE="$candidate" && break
done
[ -f "${GATE:-}" ] || { echo "punctuation gate not found under the installed skill base; reinstall Waza" >&2; exit 1; }
bash "$GATE" --lang <zh|en|ja|auto> <file> # or pipe text via stdinReplace <skill-base-dir> with the installed Write skill or Waza dispatcher directory. The first path covers direct/plugin installs; the second covers the inlined-root release ZIP.
It enforces character-level punctuation by locale (half/full-width marks, CJK/Latin spacing, em/en dashes) and skips code, inline code, URLs, and markdown link targets, so it never fires on code; the script header documents the exact rule set. Fix every finding while preserving meaning; --fix rewrites only the zero-ambiguity zh cases to stdout. --lang auto classifies the whole input by fixed priority: any kana routes to ja, else any CJK to zh, else any Hangul to ko (reserved, skipped), else en, so a mostly-Chinese text that merely quotes a Korean glyph still routes to zh; pass an explicit --lang for mixed-locale or predominantly-English text. The checker owns character-level punctuation only; quote direction and other judgment calls stay with you and the reference files.
| What happened | Rule |
|---|---|
| Used formal register for a blog draft | Match the target audience's register. Blog is conversational, not academic. |
| Applied Chinese/English spacing rules to a pure-English text | Bilingual spacing rules (半角/全角) only apply when the text mixes Chinese and English |
| User flagged one word as "not my voice"; only that instance was fixed | A flagged word marks a smell class, not a typo. Sweep the whole text for the same class (same register, same template shape) before returning |
Follow the Outcome Contract. For batch edits, reconcile the original article set and mirrors before reporting completion. State missing source or verification without treating it as a pass.
Canonical home
since Sep 10, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.