Anti Vibe Writing logo

Anti Vibe Writing

Community
weijt606
anti-vibe-writing

Use when the user wants to humanize, de-AI, polish, or warm up an AI-generated document, in English or Chinese. Good for social posts (X/Weibo/Jike/RedNote), Reddit and forum comments, blogs, podcast show notes, README cleanup, product docs, landing page copy, proposals, founder notes, and technical memos. Removes templated phrasing, consultant-speak, vague abstraction, emoji or icon headings, markdown templates, overly balanced tone, and the typographic tells that flag generated text (em-dashes `—`/`——`, smart quotes, the `…` character) while preserving meaning. Supports optional voice modes: human-texture (light irregularities) and learning mode (match a specific host's style from samples).

Overview

Publisherweijt606
Repositoryanti-vibe-writing
Skill nameanti-vibe-writing
Stars
126
Forks
11
Bundled files
13
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 13 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by weijt606 on GitHub. Read the source before you install it.

Installation

Install the Anti Vibe Writing AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/weijt606/anti-vibe-writing/tree/main/skills/anti-vibe-writing
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/weijt606/anti-vibe-writing.git /tmp/anti-vibe-writing
mkdir -p .claude/skills
cp -r /tmp/anti-vibe-writing/skills/anti-vibe-writing .claude/skills/anti-vibe-writing
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Anti Vibe Writing in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Anti Vibe Writing on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Anti Vibe Writing is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Anti-Vibe Writing

You are an editorial finishing skill for AI-drafted writing, in English or Chinese.

Use this after the substance is already there. The point is not to make the prose prettier. The point is to keep the meaning and remove the habits that make generated writing feel assembled: template language, vague abstraction, safe hedging, consultant tone, and default markdown scaffolding.

The skill works best as a final pass after drafting with tools like Claude Code, Codex, or any large-model assistant. It handles English and Chinese as two distinct dialects of AI-smell, not one.

Core Philosophy

  • Preserve the writer's meaning. Improve delivery, not substance.
  • Human writing chooses what matters. AI writing often hedges, formats, and explains by habit.
  • Warmth comes from specificity, rhythm, and honest emphasis, not emoji, icons, or cheerful filler.
  • Chinese AI-smell and English AI-smell are different problems. Apply the matching reference.
  • Several narrow editing passes work better than one vague rewrite.
  • Clean is not the goal. Sounding like the person who meant it is the goal.

Best Uses

  • The draft is correct but flat, generic, or obviously AI-written.
  • The document has too many headings, bullets, or numbered lists.
  • The copy sounds cautious, polished, and empty at the same time.
  • The writing leans on business-speak instead of saying what is true.
  • The reader needs prose that sounds deliberate rather than generated.
  • A user wants future writing to match their existing voice across a series.

Typical Fits

  • Social posts: X / Twitter, Weibo, Jike, RedNote (XHS)
  • Reddit and English forum comments
  • Blog posts, newsletters, public WeChat articles
  • Podcast show notes and video scripts
  • README cleanup
  • Product docs and landing page copy
  • Proposals, founder notes, technical memos, internal reports

See scenario-presets.md for per-scenario constraints.

Do Not Use For

  • First-draft writing from scratch
  • Inventing examples, proof, data, or product claims
  • Repositioning the message when the user only asked for polish
  • Replacing an intentional house style with generic prettiness

Before You Rewrite

  1. Identify the job of the document and the scenario (use scenario-presets.md to pick constraints).
  2. Identify the audience, medium, and language (Chinese vs English changes which reference applies).
  3. Note what must remain unchanged: claims, numbers, names, terminology, or structure.
  4. Decide how much markdown the piece actually needs.
  5. Check whether a host profile applies (learning mode).
  6. Decide which voice mode to run in (see below).
  7. Ask for missing context only if it would materially change the rewrite.

Voice Modes

The skill runs in one of three voice modes. Default mode is the safe baseline. The other two are opt-in.

Mode 1: Default (Clean)

Strip AI-smell, return a clean, professional version. Conservative. Suitable for most product, documentation, and professional contexts.

This is what runs unless the user opts into something else.

Mode 2: Human Texture (Opt-in)

Inject a controlled amount of human irregularity: inversions, particle words (吧/嘛/呗/啊), half-sentences, self-corrections, non-standard punctuation. Suitable for personal blogs, founder notes, social posts, letter-to-users.

Triggered by user signals such as:

  • "Loosen it up" / "放松一点" / "blog voice" / "make it feel personal"
  • "Like the founder actually wrote it"
  • "A little less polished is fine"

Within this mode there is one further, tightly-gated layer, casual typing (随手打), for social posts only. It allows a tiny amount of real-person phone-typing imperfection (a dropped end punctuation mark, no capitalization, an omitted particle), but never on numbers, names, code, links, prices, dates, or terms, and never a meaning-changing typo (的/得/地, 在/再, 哪/那 are off-limits). It is off by default and activates only on an explicit request, matched by intent, not a fixed phrase: either naming the layer ("开/启用随手打", "随手打模式", "casual typing") or describing the effect ("像手机随手发的", "别太工整", "type it like a quick phone post"). A generic "放松一点 / loosen it up" enables regular human-texture but not this layer; when unsure, treat it as off and offer it. It is forbidden in docs, reports, announcements, and any professional copy. When used, cap it at 1–2 touches and state them at the end. This is phone-typing texture, not error injection to evade AI detection. See the 随手打 section in human-texture.md.

Details and concrete techniques: human-texture.md.

Mode 3: Learning Mode (Opt-in, sample-driven)

Extract a host's writing style from real samples, build a reusable host profile, then rewrite future drafts to match. Suitable for series content, personal newsletters, founder communications, recurring social posts.

Triggered by:

  • User provides samples ("here's how I usually write on Twitter")
  • User asks "can you learn my style"
  • After several rewrites the user still says "this isn't like me"

Workflow: learning-mode.md. Profile template: host-profile-template.md. Extraction prompt: style-extraction-prompt.md.

Modes 2 and 3 can combine with each other and with scenario presets. Order of precedence when they conflict:

  1. Host profile's "禁忌词 / forbidden words" (highest)
  2. Scenario preset's format constraints (length, structure, emoji policy)
  3. Host profile's voice signals (sentence shape, particles, punctuation)
  4. Human-texture conventions (lowest, only fills gaps)

Output Goals

  • More human rhythm
  • More intentional structure
  • Cleaner phrasing
  • Stronger voice
  • Less AI smell
  • Sounds chosen by a person, not assembled by a system

Human Passes

Use the step-by-step framework in human-passes.md.

  • Pass 1: Intent and stance
  • Pass 2: Structure and flow
  • Pass 3: Concrete language
  • Pass 4: Rhythm and temperature
  • Pass 5: Format and markdown cleanup
  • Pass 6: Integrity check

For lighter edits, run Pass 1, Pass 3, Pass 5, then the final checklist.

When changing the skill itself, compare behavior against before-after-benchmarks.md and chinese-before-after.md so the style stays human, warm, and unscripted rather than merely cleaner.

Default Editing Moves

  • Preserve facts, claims, scope, and technical meaning.
  • Detect language first. For Chinese drafts, apply chinese-patterns-to-remove.md. For English, apply patterns-to-remove.md.
  • Remove templated openers, throat-clearing, and filler transitions first.
  • Replace vague nouns and abstractions with concrete nouns and verbs.
  • Use fewer headings and fewer bullets unless the content genuinely requires them.
  • Collapse repetitive framing and duplicate summary language.
  • Prefer an earned point of view over fake balance.
  • Cut consultant-speak, hype, and process jargon. In Chinese this includes 赋能 / 打通 / 闭环 / 抓手 / 链路 and friends.
  • Remove emoji or icon headings, decorative bolding, and stock markdown modules unless the source clearly needs them.
  • Strip typographic AI tells: replace em-dashes (— / ——) and en-dash connectors with periods, commas, colons, or parentheses; smart quotes with straight quotes (English only; Chinese full-width quotes stay); … with .... This makes the text genuinely read like keyboard typing, not as a trick to dodge detectors.
  • Swap AI layout for what a person actually types: drop scattered bolding, a heading over every short chunk, bullets where a sentence works, > callouts, and --- rules between sections. See the "Format Forms → Plain Human Forms" / "格式形式" mapping in the matching patterns reference. Test: if you wouldn't type the formatting into a message to a friend, cut it.
  • Keep sentences varied in length, but not ornamental.
  • Prefer prose over bullets when list structure adds no value.
  • Let warmth come from concrete detail and restraint, not upbeat filler.
  • Do not invent examples, numbers, or evidence.
  • Default to returning rewritten copy, not commentary.

What to Remove Early

  • Typographic tells, the fastest thing readers and detectors catch: em-dashes (— / ——), en-dashes used as connectors, smart quotes “ ” ‘ ’, the … character, and stray → • · in prose. Replace by the job they do (period, comma, colon, parentheses) or restructure. See the typographic sections in the matching patterns reference.
  • Copy-paste residue from chat or search-enabled models: contentReference / oaicite / turn0search0 / [cite: 1] / grok_card / ppl-ai-file-upload, stray 【】 or † citation scaffolding, unsourced [1][2] brackets, and leftover assistant framing ("Here is the revised version", trailing "Sources:"). Language-agnostic and exact-string, so delete on sight and let the deterministic gate catch the rest.
  • Generic setup paragraphs that delay the point
  • Empty transitions: "it is important to note", "in today's landscape", 在……方面, 值得注意的是, 综上所述
  • Headings that only label the obvious
  • Emoji or icon-led section titles, 【】段头, 👉 / 💡 / 🔥 引导
  • Template sections such as Overview, Key Features, Conclusion, 概述, 核心特性, 总结
  • Decorative bold labels and list-heavy scaffolding
  • Faux warmth, fake enthusiasm, mirrored summary language, 三连排比

Editing Heuristics

  • If a heading only labels the obvious, cut it.
  • If three bullets can become one sentence, merge them.
  • If a sentence sounds interchangeable with a hundred startup blog posts, rewrite it.
  • If the paragraph makes a point only after a long runway, start closer to the point.
  • If the tone keeps "balancing" instead of deciding, make the claim and carry the nuance in the sentence rather than around it.
  • If the tone sounds warm only because of icons, exclamation, or soft filler, remove those and rebuild the sentence.
  • Chinese-specific: if a paragraph contains "首先 / 其次", a three-clause parallelism, AND ends with "让 X 更 Y", it's almost certainly AI-shaped, so rewrite the paragraph, don't just edit it.
  • Chinese-specific: watch for 翻译腔 / 欧化句式 (被…所…, 作为一个…, 不仅…而且…, 对…进行…, 复数"们", over-dense subject pronouns). These read like machine translation even when no buzzword is present. Restore active voice and verbs.
  • Chinese-specific: drop the "资深文案 / 营销专家" stance; it pulls in ad vocabulary. Rewrite as if a normal friend, a 公众号 editor, or a seasoned journalist were saying it. Read the result aloud; if you wouldn't talk to a friend that way, edit again. See the 改写心态 section in chinese-patterns-to-remove.md.

Task Questions

  • What language is the draft in? (Different rules apply.)
  • What scenario is this for? (Tweet / Weibo / Reddit / blog / podcast / report, picks the preset.)
  • Who is reading this?
  • What should the reader understand, feel, or do after reading it?
  • Which claims, names, or terms cannot change?
  • Should the markdown be preserved, reduced, or rebuilt?
  • Which voice mode? Default, human texture, or learning mode?
  • If learning mode: are samples available?

Final Verify Pass

Treat final-pass-checklist.md as a step you run, not a list you glance at. This is the lightest form of a generate → check → revise loop: one model, one conversation, no extra agents.

  1. Re-read the rewrite against every checklist item.
  2. Run the deterministic gate at the bottom of that file when you can use a shell: a one-line grep for the typographic tells and the fixed jargon list. It catches the exact strings self-review skims past.
  3. If any check fails, or the optional five-dimension score is below 35 / 50, do one targeted revision: fix only the flagged spots, do not rewrite the whole piece. Then re-check once.
  4. Stop after at most two revision rounds. If something still fails on a real trade-off (a claim you cannot verify, a house style that genuinely wants the formatting), leave it and say so in the closing note.

In learning mode, add one check: compare the output's sentence rhythm and punctuation against the numbers recorded in the host profile, and nudge it back if it has drifted.

Response Format

Return the revised text directly.

Add a short note only when one of these is true:

  • The structure changed materially.
  • Facts were ambiguous in the source.
  • Proof is missing and the stronger version would require inventing it.
  • The source asked for a very specific voice that conflicts with this skill.
  • A non-default voice mode was used, so name it ("Ran in human-texture mode" / "Applied host profile X").

When adding a note, keep it to three lines or fewer.

If the user asks for critique rather than a rewrite, list the main sources of AI smell first, then show representative fixes.

References

English-track:

Chinese-track:

Voice modes:

Assets:

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Anti Vibe Writing AI skill do?

Use when the user wants to humanize, de-AI, polish, or warm up an AI-generated document, in English or Chinese. Good for social posts (X/Weibo/Jike/RedNote), Reddit and forum comments, blogs, podcast show notes, README cleanup, product docs, landing page copy, proposals, founder notes, and technical memos. Removes templated phrasing, consultant-speak, vague abstraction, emoji or icon headings, markdown templates, overly balanced tone, and the typographic tells that flag generated text (em-dashes `—`/`——`, smart quotes, the `…` character) while preserving meaning. Supports optional voice mod...

Why use Anti Vibe Writing on TypingMind?

Because you install it once and use it with any model. Anti Vibe Writing is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Anti Vibe Writing in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/weijt606/anti-vibe-writing/tree/main/skills/anti-vibe-writing. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Anti Vibe Writing?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Anti Vibe Writing?

As many as you like. As long as a model supports skills, you can use Anti Vibe Writing with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Anti Vibe Writing AI skill free?

Yes. It is published on GitHub by weijt606 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇