From writing
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 帮我写/改稿/润色/去AI味/写一段/审稿/本地化文案/tweet/rewrite/proofread. Not for code comments, commit messages, or inline docs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/writing:coreWhen to use
帮我写, 改稿, 润色, 去AI味, 写一段, 审稿, 文档review, 本地化文案, 多语言文案, i18n copy, localization copy, check this document, 推特, twitter, X推文, tweet, social post, 连贯性, 段落连贯, draft, edit text, proofread, sound natural, polish, rewrite
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Prefix your first line with 🥷 inline, not as its own paragraph.
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.
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 (especially write-zh.md) are long because they accumulated examples over many sessions; 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.mdreferences/write-product-localization.md; also load references/write-zh-bilingual.md when Chinese copy is presentreferences/write-zh-prose.md (quick rules); load references/write-zh.md for the full AI-taste pattern catalogreferences/write-en.mdRead the loaded reference file. Then edit. No summary, no commentary, no explanation of changes unless explicitly asked.
See rules/durable-context.md for when to read durable context, the read-order budget, and the memory-type mapping.
For /write, voice and format constraints are decision, preference, and principle entries; editing checks are pattern and learning. The supplied text, audience, project docs, current release state, and source material 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.
—) or en-dash (U+2013 –) in Chinese or English output. Em-dash is the strongest AI-tone fingerprint in this style of writing. Use commas, periods, colons, semicolons, or parentheses to break clauses. Hyphen-minus (-) 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.Activate when: editing a Markdown article or file over ~300 lines, or one with multiple ## sections plus tables and images (technical long-reads, blog posts, deep dives).
In long-form, the dominant problem is usually structural: the same checklist repeated across sections, prose that re-reads a table sitting right above it, list bloat, whole redundant sections. Sentence-level AI taste is the smaller half. A single in-place polish pass cannot see or fix the structural half, which is why a plain /write on a long article feels like it changed wording but left the bloat. This mode therefore overrides two Hard Rules: structural cuts and merges are in-scope, and the output is change-points for review, not a rewritten blob.
Workflow:
## section, table, list, and image. Flag three structural problems: cross-section repetition (same checklist / judgment list / core claim in 2+ sections), table re-reading (a section whose prose walks the rows of the table above it), and whole redundant sections or paragraphs.references/write-zh.md 删段之前先确认信息量).references/write-zh.md.Do not single-pass rewrite a 40k-character article: it silently overwrites the author's hand-tuned phrasing and cannot be reviewed as a diff. See references/write-zh.md 结构级重复与表格复读(长文专项)for the matching content rules.
Activate when: mixed Chinese/English, "Chinese copywriting", "bilingual consistency", "release notes"
Chinese rules (from https://github.com/mzlogin/chinese-copywriting-guidelines):
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.
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. If Chinese is one of the locales, also load references/write-zh-bilingual.md.
Default workflow:
Activate when: "release", "changelog", "version", "release notes"
Generate from commit messages:
Format: target-project style by default. If no project style is available, use numbered items with bold labels, one sentence on user effect, and bilingual output only when the project already uses bilingual release notes.
Before drafting, gather style references:
CLAUDE.md for its Release Convention / Release Flow section.gh release view --json body -R <owner>/<repo> is the preferred way to read the most recent release when gh is available. If the project is not on GitHub, use the release source named by the project docs or user request.git log <last-tag>..HEAD rather than from memory. Read every feat: and fix: commit; do not omit small items just because they look minor in commit form (iOS wrapper support, Dock cleanup, AV-vendor protection boundary are not "minor" from a user point of view).CKDownloadQueue observer for App Store updates" is not a release note; "App Store updates now run inside the app instead of opening App Store" is.Activate when: "回复 issue", "reply to PR", "comment on #N", "回 issue", or the user asks for the text of a GitHub issue / PR comment.
Five hard rules for the reply body:
@<reporter> + one thanks line. Match the reporter's language (Chinese → "感谢反馈" / English → "thanks for the detailed report"). No exclamation mark. No emoji. No "🙏".main and going out in the next release, planned for v<X.Y.Z>, not planned (with one-line reason and an alternative path). Do not write "already shipped" without release evidence in the current turn.The reply is the final user-facing text, not an agent log. Do not write "刚才我判断错了", "前面回复有误", "I re-read it and changed the comment", or any meta narration about your own process. If editing an existing maintainer comment, replace it with the clean final wording as if it were the only comment the user will read.
Before posting, re-read the live issue / PR with gh issue view <num> or gh pr view <num>. Do not reply from memory; titles, states, and author languages change between sessions.
For paid / subscribed users, acknowledge the purchase relationship and the inconvenience in one phrase, then state the boundary. Do not over-explain. When the current product cannot support their setup, suggest the safest practical path (upgrade macOS, wait for the next release, provide logs, refund route) without arguing.
Closing rule: when closing as completed, the comment must independently explain what was fixed and the expected release. When closing as not planned, the comment must independently explain the current boundary and an alternative path. Do not rely on prior thread context as the explanation.
Activate when: PDF, document, white paper, "review this document", "check this document", "审稿"
Review checklist:
write-zh.md or write-en.md rules.Lorem ipsum, TODO, [TBD]), broken image links.Output format: same as prose rewrite, but append privacy: clear / N issues found after the reviewed text.
Activate when: "连贯性", "段落连贯", "可读性", "coherence", "flow check", "段落顺不顺"
Do not rewrite. Instead, work through each paragraph in sequence:
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.
Activate when: "推特", "twitter", "X推文", "tweet", "social post", "折叠长度", "长文推特", "发文"
Apply the five announcement rules for product-engineer projects when the project context or prior artifact shows this style:
Close casually with an invitation, not a CTA. End with one short sentence inviting readers to try, not "立即升级".
For other engineering projects or English posts, apply the same structure (community lead, highlights, UX framing, one stance, casual close) adapted to the project's voice.
| 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 |
| Polished the user's voice into generic launch copy | Preserve the author's cadence and stance. Use real product artifacts to sharpen facts, not to replace the voice. |
| Drafted release or social copy from memory or a handoff | Read the current release page, changelog, issue/PR, runnable artifact, product page, screenshot, or supplied source before making factual claims. |
| Wrote launch copy in one pass without checking the live screenshots | Iterate: draft, compare against the real product screenshot or page, tighten wording to match what ships, repeat until copy and artifact agree |
| Polished a review report until it sounded timeless | Keep snapshots labeled as snapshots, or distill them into stable rules. Do not make dated claims sound evergreen |
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.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub korenkrita/skills --plugin writing