Model or dataset
Raymondhou0917/speak-human-tw avatar
Raymondhou0917/speak-human-tw

speak-human-tw review: a Traditional Chinese de-AI rewriting skill for Claude Code, Codex and Cursor

「說人話」:繁體中文的去 AI 味改寫 skill。抓 38 種 AI 寫作痕跡,順手校正中國用語與半形標點,給 Claude Code / Codex / Cursor 用。

983 stars109 forksPythonMIT

At a glance

What is it?
speak-human-tw is an MIT-licensed skill that flags AI writing patterns in Traditional Chinese drafts and suggests rewrites. It audits rather than writes, and it stops before touching your file.
Who is it for?
Adopt speak-human-tw if you already write Traditional Chinese drafts yourself and want a second pass that names each AI pattern before changing anything; the two-round default means your original stays intact until you approve. Do not adopt it as a general writing skill, a Simplified-to-Traditional converter, or a source of opinions and stories it cannot have.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 19, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What speak-human-tw fixes, and what it refuses to do

The README opens with the complaint this project is built around: the facts are right, the sentences are grammatical, and the draft still does not read like a person talking. That gap is what the author calls AI 味, and the skill's job is to name it line by line in Traditional Chinese.

The scope is deliberately narrow. The repository targets five situations: social posts, newsletters, sales pages, customer service replies and office documents. The README states the rewrite strength differs by situation, with social posts kept light to preserve spoken rhythm and sales pages rewritten harder without weakening the call to action. Content creation, marketing copy and everyday office writing are the stated use cases.

The refusal is the more interesting half. The README says plainly that the skill does not create: you bring a draft you already wrote, and it returns suggestions. There is also a hard boundary in the humanize layer: the skill may not invent a story, a stance or a turning point the author never stated. Where human material is missing it leaves a 需作者補充 marker instead. The README's reasoning is that an invented "I used to be wrong" anecdote is worse than the empty sentence it replaced, because an empty sentence is merely dull while a fabricated story is a lie.

The six-step pipeline and the 35+ pattern taxonomy

The README describes a fixed six-step order: judge the situation, lock a protection list, judge scope, rewrite by category, read back for fidelity, then self-score before submitting. The protection list is the mechanism worth understanding. Prices, discount codes, proper nouns, links, real names, quoted speech and refund promises are circled first and left untouched for the whole rewrite. Long drafts of roughly 1000 characters or more are not allowed to shrink silently; the README says sentence-to-sentence correspondence is preferred, and if a whole sentence is empty filler it still enters the list as an item with an explanation of why deleting it loses no information.

The detection side is a taxonomy rather than a model. The README groups 35+ patterns into five families: content patterns (9), sentence and phrasing patterns (12), style and layout patterns (8), conversational residue (7) and tool traces (2). Concrete examples it gives include exaggerated significance markers, vague attribution, hallucinated citations, formulaic future-gazing paragraphs, stacked 不是 A 而是 B constructions, three-part parallelism, explanatory lead-ins, rhetorical advice-question endings, dash overuse, bold spam, emoji stacking and numbered paragraph fragmentation. The tool-trace family is the most literal: utm_source=chatgpt.com in a link and turn0search placeholders are both listed as detectable residue.

The matching strategy is stated as pattern-first with a word list as a fallback, and the Taiwan localization check runs in parallel. That layer is documented separately, with 60+ China-versus-Taiwan vocabulary pairs plus full-width punctuation and quotation mark rules. The README is explicit that this is not a Simplified-to-Traditional character conversion.

Installing speak-human-tw for Claude Code, Codex and Cursor

The README's 30-second section gives the Claude Code path as a git clone into the skills directory. The skill is then triggered by conversational phrasing rather than a slash command in this example.

bash
# Claude Code
git clone https://github.com/Raymondhou0917/speak-human-tw.git ~/.claude/skills/speak-human-tw

After that, the README says you trigger it by saying things like 幫這段去 AI 味 or 這段好 AI,說人話. The README also mentions /speak-human-tw as an invocation in its comparison section, and it points to an install/ directory in the repository plus a symlink approach for following updates; the README does not spell out the symlink command in the text available here, so read install/ before assuming a layout.

For a single Codex run, the README gives a one-shot command that reads SKILL.md and applies the rules immediately. Note that this bypasses the interactive approval round by design.

bash
# Codex, single use
git clone https://github.com/Raymondhou0917/speak-human-tw.git && cd speak-human-tw
codex exec -C . "讀取 ./SKILL.md,按規則改寫以下文字,這次直接套用不用先問我:(貼上你的文字)"

If you only want the problem list and no rewrite, the README says to add 先標問題不要改, which switches to annotation mode and lists between one and five problem points. Cursor installation is listed as covered in the README's install section, but the specific steps are not in the text available here.

The two-round default is the design decision that matters

Most rewriting tools write first and let you undo. This one does not. The README states the default behavior is two rounds: the first round produces a numbered list where each item names the line, the original sentence, the reason for the change with the matching AI pattern, and a suggested replacement. It then asks which items you want changed and stops. Only in the second round, after you reply with something like 都改 or 4 跟 8 不用,其他都改, does it edit, and only then does it write to your file.

The README justifies this directly: the dangerous failure for a rewriting tool is not missing a fix, it is overwriting your draft before you can see what it intends to do. Items you did not select are not changed as a side effect. You can opt out by saying 不用列清單,直接幫我改.

Non-interactive contexts get a different path. In codex exec, CI or scheduled runs, the README says the skill detects that no one can answer the question, applies the changes, and then prints a post-hoc summary of original sentence, reason and result so you can trace it with git diff. That is a reasonable compromise, but it means the safety property depends on the harness correctly identifying that it is running unattended. If you wire this into a pipeline that can still accept input, verify which branch it takes.

Where the project draws its own limits

The README spends unusual effort arguing against its own misuse. It says the skill is proofreading, not creation, and warns that it is easily mistaken for a universal writing skill. The stated correct flow is: write your own first draft in your own voice, run it through the skill to catch AI patterns, then judge the suggestions yourself and add back your experience and tone.

The reasoning is that AI-assisted writing splits into two columns. Architecture, first drafts, data organization and outlines can be delegated. Stance, tone, metaphors and quotable lines cannot. The README's claim is that AI drafts hand you both columns at once, and this skill only scrapes off the right column. If you never supplied the right column, the output is clean and still hollow, because there is no viewpoint or story inside it. The README also notes that sterile, opinion-free, always-correct text is just as recognizable as raw AI output.

Two practical limits follow. First, the skill cannot know your preferences; the README says that requires your own content writing skill trained on your vocabulary and habits. Second, false positives are a real risk in any pattern-based checker, which is why the benchmark includes a dedicated negative set. A draft that legitimately uses parallel structure with supporting facts, or a quoted term that happens to be on the AI-pattern list, is exactly the case where a checker can do damage.

The 42-case benchmark and the SNF guard

The evaluation set is documented at evals/benchmark.md and the README summarizes its shape: 42 cases, split into 27 SF cases that must be caught and 15 SNF cases that must not be flagged. SF and SNF are the project's own labels for should-fix and should-not-fix.

The SNF set is the part to read before trusting the tool on your own writing. The README lists what it protects: parallelism that is backed by facts, figures that carry a source, standard payment-flow boilerplate, rhythm sentences in long pieces, AI-pattern words that are being discussed rather than used, and 用 A 或用 B constructions that come with real selection criteria. Each of those is a plausible false positive for a rule-based checker, and each one is a case where a rewrite would remove something the author meant to keep.

The scoring also includes what the README calls a 不換湯 rule, meaning a change must not swap one phrasing for an equivalent one without improving anything. The text available here cuts off mid-sentence at that point, so read evals/benchmark.md for the exact scoring definition. Separately, the README states the core rules come from more than three years of real editing records, specifically the AI habits that human editors repeatedly flagged, and that those went into both the rules and the evaluation set.

Alternatives, licensing and what to check first

The nearest alternatives are general-purpose rewriting prompts and the Wikipedia-style AI cleanup guidance the project itself cites. The README names its knowledge sources: the Chinese Wikipedia page on characteristics of AI-generated text, maintained by the WikiProject AI Cleanup community, and a sentence-pattern analysis of AI 腔 by 朱宥勳. The difference in approach is scope. Wikipedia cleanup guidance targets encyclopedic articles and neutrality; speak-human-tw targets newsletters, social posts, sales pages, customer service replies and office documents, and it layers a Taiwan vocabulary and punctuation check on top that the Wikipedia material does not cover. If your text is reference material rather than marketing or correspondence, the Wikipedia guidance is the closer fit.

On licensing, the repository is MIT. That permits commercial use and modification, and it requires the licence and copyright notice to be preserved in copies or substantial portions. This article is not legal advice; check LICENSE and CONTRIBUTING.md yourself, particularly if you plan to fork the pattern lists into a product.

On maintenance, the last push to the default branch was on 2026-09-17, and the repository is not archived. The most recent release listed is v1.4.0 from 2026-07-10, described as a public release covering stance, openings and human feel. The repository layout includes a scripts/ directory, install/ directory and a CHANGELOG.md, so upgrades are traceable through the changelog rather than guesswork. The README does not document a rollback procedure for a rewrite that goes wrong, which is the strongest argument for keeping the work in git before you run it.

Editorial conclusion

Adopt speak-human-tw if you already write Traditional Chinese drafts yourself and want a second pass that names each AI pattern before changing anything; the two-round default means your original stays intact until you approve. Do not adopt it as a general writing skill, a Simplified-to-Traditional converter, or a source of opinions and stories it cannot have. Before trusting it, check evals/benchmark.md for the 15 SNF cases that guard against false positives, and read references/patterns.md to see whether the 35+ pattern list matches the tics you actually want caught.

Frequently asked questions

How do I install speak-human-tw in Claude Code?

The README gives a git clone into the Claude Code skills directory, after which saying something like 幫這段去 AI 味 triggers it. The repository also has an install/ directory and mentions a symlink approach for following updates, though the exact symlink command is not in the README text.

Does speak-human-tw rewrite my file immediately?

No. The default is two rounds: the first round returns a numbered list of problems and suggested fixes and then stops, and only after you approve does it edit and write to your file. You can skip the list by saying 不用列清單,直接幫我改.

Is speak-human-tw a Simplified to Traditional Chinese converter?

No. The README states the skill was calibrated for Traditional Chinese and Taiwan usage from the start, with a built-in check for China-origin vocabulary, and that it is not a simple Simplified-to-Traditional conversion. The localization reference lists 60+ vocabulary pairs plus full-width punctuation and quotation mark rules.

Official sources

  1. Issues
  2. License: MIT
  3. Raymondhou0917/speak-human-tw on GitHub
  4. README
  5. Releases
Community notes

Community notes