write
Strips AI writing patterns and rewrites prose to sound natural in Chinese or English. Only activates on explicit writing or editing requests. Not for code comments, commit messages, or inline docs.
Install
Use with your agent
Install the write skill, then use it as build context. Run: npx skills add https://github.com/tw93/waza --skill write. Then read the installed skill.md and follow its guidance to build or refactor my project.
Write: Cut the AI Taste
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.
Pre-flight
- Text present? If the user gave only an instruction with no actual prose to edit, ask for the text in one sentence. Do not proceed.
- Audience locked? If the intended audience is unclear and cannot be inferred from the text (blog reader vs RFC vs email), ask before editing. Junior engineer and senior architect prose should read completely different.
- Language detected from the text being edited, not the user's command:
- Contains Chinese characters + release notes or social post mode → load
references/write-zh-release-notes.md - Contains Chinese characters + bilingual or translation review → load
references/write-zh-bilingual.md - Contains Chinese characters (default prose) → load
references/write-zh-prose.md(quick rules); loadreferences/write-zh.mdfor the full AI-taste pattern catalog - Otherwise → load
references/write-en.md
- Contains Chinese characters + release notes or social post mode → load
Read the loaded reference file. Then edit. No summary, no commentary, no explanation of changes unless explicitly asked.
Hard Rules
- Meaning first, style second. If removing an AI pattern would change the author's intended meaning, keep the original.
- No silent restructuring. Do not reorganize headings, reorder paragraphs, or merge sections unless structural changes are explicitly requested. Edit in place.
- Stop after output. Deliver the rewritten text. Do not append a list of changes, a justification, or a closer.
Bilingual Review Mode
Activate when: mixed Chinese/English, "Chinese copywriting", "bilingual consistency", "release notes"
Chinese rules (from https://github.com/mzlogin/chinese-copywriting-guidelines):
- Space between Chinese and English characters (CN文字EN → CN 文字 EN)
- No mixing of punctuation (Chinese uses 、。?!;:, not commas/periods)
- Consistent terminology across all instances
English in Chinese documents: Flag unexplained English, suggest translation or add context.
Bilingual pairs: Confirm EN and CN versions convey the same meaning; mark translation loss.
Release Note Template Mode
Activate when: "release", "changelog", "version", "release notes"
Generate from commit messages:
- Breaking Changes
- New Features
- Fixes & Improvements
- Deprecations
Format: tw93/Mole style (numbered list, bold label, one sentence on user effect, bilingual).
Release Notes Pre-flight
Before drafting, gather style references:
- Read the target project's
CLAUDE.mdfor its Release Convention / Release Flow section. - Run
gh release view --json body -R <owner>/<repo>to read the most recent release as a style, length, and density reference. - If the user mentions comparing with a sibling project's release style, ask for the
owner/repoto fetch it:gh release view --json body -R <owner>/<sibling>. - Match the reference release's item count, sentence length, and tone. Do not invent a new format.
Document Review Mode
Activate when: PDF, document, white paper, "review this document", "check this document", "审稿"
Review checklist:
- Privacy scan: Detect PII (names, companies, employment dates, salary hints, location details). Hard stop if any text implies job seeking, competitor info, or personal data leakage.
- Tone consistency: Flag voice shifts, register mismatches, formulaic phrasing. Check for AI patterns using the loaded
write-zh.mdorwrite-en.mdrules. - Bilingual validation: For CN/EN pairs, confirm translation accuracy and terminology consistency. Apply Bilingual Review Mode rules.
- Rendering check: Placeholder text remaining (
Lorem ipsum,TODO,[TBD]), broken image links.
Output format: same as prose rewrite, but append privacy: clear / N issues found after the reviewed text.
Paragraph Coherence Mode
Activate when: "连贯性", "段落连贯", "可读性", "coherence", "flow check", "段落顺不顺"
Do not rewrite. Instead, work through each paragraph in sequence:
- Flag transitions that abruptly shift topic without a signal.
- Flag paragraphs where the opening sentence does not follow from the previous paragraph's close.
- Flag rhythm issues: monotone sentence length (all short or all long across a whole paragraph).
- Suggest the minimal fix for each: one word, one reordered clause, one bridging sentence.
Output: a numbered list of issues, each with the paragraph location and a one-line fix suggestion. Then ask if the user wants any applied.
Tweet / Social Post Mode
Activate when: "推特", "twitter", "X推文", "tweet", "social post", "折叠长度", "长文推特", "发文"
Apply the five announcement rules for Tang's projects (Pake, MiaoYan, Mole, Kaku, Waza):
- Lead with community: open with the social anchor (star count, user thanks, whose feedback drove the fix). Changes follow, not lead.
- Highlights over completeness: pick 2 to 4 of the most interesting changes. Dropping whole items is fine.
- UX framing: phrase each point as "你用它的时候..." or "有一种...的感觉", not "这个工具做了...".
- One stance: include at least one opinionated sentence revealing why decisions were made.
- Native Chinese rhythm: use idiomatic phrasing. Avoid translation-sounding terms.
Close casually with an invitation, not a CTA. End with one short sentence inviting readers to try, not "立即升级".
For non-Tang projects or English posts, apply the same structure (community lead, highlights, UX framing, one stance, casual close) adapted to the project's voice.
Gotchas
| What happened | Rule |
|---|---|
| Reorganized headings without being asked | Do not restructure; edit in place unless structure changes are explicitly requested |
| Appended a "changes made" list after the rewrite | Output is the edited text only. No changelog, no commentary. |
| 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 |
Output
Return only the edited prose. If the text was truncated or if multiple versions were possible, note that in one sentence after the body. Otherwise, no wrapper, no preamble, no postscript.