本 README 提供中英文两个版本:English(本页,默认)和 中文。点上方徽章切换。 One goal: make AI sound genuinely idiomatic, 倍儿地道.
$ npx -y skills add weijt606/anti-vibe-writing --agent claude-code

本 README 提供中英文两个版本:English(本页,默认)和 中文。点上方徽章切换。
One goal: make AI sound genuinely idiomatic, 倍儿地道.
An agent writing skill that removes the AI-generated feel from documents. Works in English and Chinese, with optional modes for matching a specific author's voice.
It runs best as a final pass after drafting with Claude Code, Codex, or any LLM-backed agent. The goal is not to make the prose prettier. The goal is to keep the substance and remove the tells: templated phrasing, vague abstraction, consultant-speak, markdown-heavy formatting, over-structured outlines, the copy-paste residue chat and search models leave behind (oaicite / turn0search0 / [cite: 1] / stray 【】 markers), and the cautious over-balancing that makes writing feel assembled.
If the default "clean" mode is not enough, the skill also supports:
At its core this is just a set of markdown rules (SKILL.md + references/ + assets/), not tied to any one agent. Claude Code, Codex, Kimi, work-buddy, Hermes. If it can read files or take an instruction prompt, it can use this.
1. Get the rules
Clone the repo, or just copy the skills/anti-vibe-writing/ folder:
git clone https://github.com/weijt606/anti-vibe-writing.git
2. Feed it to your agent (pick whichever fits)
https://github.com/weijt606/anti-vibe-writing and let the agent read SKILL.md and references/ and configure itself. Works with any agent that can browse the web or run git.skills/anti-vibe-writing/assets/rewrite-prompt-template.md. It has ready-made instruction blocks: Full Rewrite / Light Cleanup in English, and "中文改写(带负向约束)" for Chinese. Copy the block for your language and send it with your draft.SKILL.md and the matching references/*patterns-to-remove.md wherever your agent loads context. Names differ by tool:
~/.claude/skills/anti-vibe-writing/, then call /anti-vibe-writingAGENTS.md): write or include the rules there3. (Optional) Name the scenario and mode
One line of context changes the result a lot:
When in doubt, say nothing. The default clean mode is right for most drafts.
Curated before/after snippets live in examples/ for anyone scanning the repo. The full regression set stays under references/.
The skill runs in one of three modes:
| Mode | When to use | Triggered by |
|---|---|---|
| Default (clean) | Most product, docs, and professional copy | Default, no opt-in needed |
| Human texture | Personal blogs, founder notes, social posts | "Loosen it up" / "blog voice" / "make it feel personal" |
| Learning mode | Series content, personal newsletters, voice-consistent comms | User provides samples, or asks "learn my style" |
Modes combine with scenario presets (tweet / Weibo / blog / podcast / report). Conflict resolution rules are documented in SKILL.md.
Human-texture mode also has a social-only "casual typing" (随手打) layer (off by default; turn it on by naming it, "casual typing" / "开随手打", or describing the effect, "like a quick phone post"; matched by intent, not a fixed phrase, and a plain "loosen it up" won't trigger it): a tiny amount of phone-typing texture on casual posts (dropped end punctuation, no capitalization, an omitted particle) that never touches numbers, names, or links and never makes meaning-changing typos. It's phone-typing texture, not error injection to dodge AI detectors.
The flagship case: Chinese posts on X. Chinese AI-smell is most obvious on X: 赋能 / 打通, 首先 / 其次, three-clause parallelism, and machine-translation syntax give it away at a glance. This skill is built for exactly that: take an "obviously AI-written" Chinese post and make it read like something a person actually typed. See examples/07-tweet-zh.md and examples/08-translationese-zh.md.
Other common cases:
agents/
README.md
anti-vibe-writing-dev.agent.md # local, gitignored
anti-vibe-writing-dev.agent.example.md
skills/
anti-vibe-writing/
SKILL.md
references/
patterns-to-remove.md # English AI-smell
chinese-patterns-to-remove.md # 中文 AI 味
before-after-benchmarks.md # English benchmarks
chinese-before-after.md # 中文基准
common-problems-and-fixes.md
human-passes.md
human-texture.md # Optional irregularity
learning-mode.md # Sample-driven style learning
scenario-presets.md # Per-scenario constraints
assets/
final-pass-checklist.md
rewrite-prompt-template.md
host-profile-template.md # Fillable host profile
style-extraction-prompt.md # One-shot extraction prompt
examples/
...
CHANGELOG.md
CONTRIBUTING.md
README.md # English (default)
README.zh.md # Chinese
LICENSE
Skill files are versioned. The developer agent file is local and gitignored by default, so contributors can adjust it without changing the public repository.
To create a local agent file, copy agents/anti-vibe-writing-dev.agent.example.md to agents/anti-vibe-writing-dev.agent.md.
If you want tool-specific auto-discovery, you may still need to mirror these files into the locations required by the target agent platform.
This skill stands on the shoulders of several open de-AI / humanizer projects and writeups. The patterns below were studied and adapted into this skill's own structure; the original analysis and wording belong to their authors. Thanks to:
English:
assets/final-pass-checklist.md.中文 / Chinese:
references/chinese-patterns-to-remove.md.These are independent projects with their own scope; this repo borrows ideas, not code. If you maintain one of them and want a credit adjusted, open an issue.
See CONTRIBUTING.md for how to add new patterns, benchmarks, or scenario presets.
This project is open source under the MIT License. See LICENSE.
1.7.0
contentReference / oaicite / turn0search0, [cite: 1] / [cite_start] / [span_1], grok_card, ppl-ai-file-upload, stray 【】/† citation scaffolding, unsourced [1][2] brackets, and leftover "Here is the revised version" / "Sources:" framing. Exact-string and language-agnostic, so it's added to both patterns references, the deterministic grep gate, the checklist, and the rewrite-prompt template1.6.0
final-pass-checklist.md, fix only the flagged spots, re-check, and stop after at most two rounds. It's the lightest form of a generate → check → revise loop. One model, one conversation, no extra agents, still just markdowngrep at the bottom of the checklist catches the exact tells self-review skims past (em-dash —, the … character, stray → • in prose, and a fast subset of the jargon list). Shared double curly quotes “ ” are left to human judgment by language, so Chinese full-width quotes aren't deleted by mistakeanti-vibe-writing is a Claude Code plugin with 1 hand-picked skill, indexed on Flowy in the Writing category. Install it with the command on its page. It includes anti-vibe-writing. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it