實戰手冊 · Field Manual 2026 夏季號
github.com/weijt606/anti-vibe-writing · 86 ★
第 01 期 · Agent 寫作 / 編輯技能

拿掉生成感,
把稿子改回
你會說的話

anti-vibe-writing 是一套給 AI agent 用的 Markdown 寫作規則,不是外掛程式,也不綁定任何平台。核心作法是抓出破折號、消費者顧問腔、過度分層的大綱這些機器寫作的痕跡,英文與中文分兩條規則各自處理,在不改原意的前提下把稿子改回一個人會打出來的樣子。這份手冊帶你安裝、看懂三種聲音模式與六種場景預設,並走一次真實的改寫實例。

86
GitHub Stars
3
聲音模式
6
場景預設
MIT
授權條款
01
這到底是什麼

不是潤飾外掛,
是給 agent 的編輯規則

用 Claude Code、Codex 這類 agent 起草的文字,常常有一種認得出來的「生成感」:模板開頭、消費者顧問腔、過度分層的大綱、看起來很平衡實則什麼都沒判斷的收尾,還有破折號、彎引號、刪節號這些排版痕跡。anti-vibe-writing 就是專門處理這件事的最後一道工序——不改稿子的意思,只去掉讓它讀起來像被系統組裝出來的習慣。

它本質上是一套 SKILL.md 加上 references/assets/ 目錄的 Markdown 規則,不綁定特定 agent。Claude Code、Codex、Kimi,只要能讀檔案或接受一段指令,都能套用。規則把英文與中文的「AI 味」當成兩種不同問題處理:英文套 patterns-to-remove.md,中文套 chinese-patterns-to-remove.md,因為翻譯腔、四字成語堆砌、「賦能/打通/閉環」這類顧問黑話,是中文獨有的痕跡,英文規則抓不到。

改寫本身分六道工序執行,一次只做一件事,而不是一次性的模糊重寫——這也是規則裡明講的立場:幾次窄範圍的編輯,比一次含糊的重寫更有效

Human Passes · 六道改寫工序
意圖與立場 結構與流暢 具體語言 節奏與溫度 格式清理 完整性檢查
目標只有一個:讓 AI 說話,倍兒地道。
— anti-vibe-writing README
02
安裝

不用裝任何東西,
丟給 agent 一段連結就好。

整套規則就是 Markdown 檔案,沒有任何程式要編譯、沒有依賴套件。README 列了三種上手方式,從「完全不用先做任何事」到「長期讓 agent 照這套規則走」。

# 不用先 clone,把倉庫連結貼給任何能上網或跑 git 的 agenthttps://github.com/weijt606/anti-vibe-writing 發給 agent, 讓它自己讀 SKILL.mdreferences/,照著配置改寫你的稿子。

長期照這套規則走:裝進 Claude Code

如果你想讓 /anti-vibe-writing 變成常駐指令,clone 倉庫或只複製 skills/anti-vibe-writing/ 這個目錄,放進 Claude Code 的技能資料夾:

git clone https://github.com/weijt606/anti-vibe-writing.git mkdir -p ~/.claude/skills && cp -r anti-vibe-writing/skills/anti-vibe-writing ~/.claude/skills/

只想用一次:複製現成的提示詞區塊

不想裝也不想 clone,打開 skills/anti-vibe-writing/assets/rewrite-prompt-template.md——裡面有英文的 Full Rewrite / Light Cleanup 區塊,以及中文的「中文改寫(帶負向約束)」區塊,複製對應語言那段連同草稿一起發給任何 agent。

Codex 等沒有 skills 目錄的 agent 一樣能用。SKILL.md 和對應語言的 *patterns-to-remove.md 寫進 AGENTS.md、system prompt,或任何 agent 會讀取的知識庫位置即可,規則本身不綁定任何平台。
03
模組總覽

每份參考檔案
都對應一個判斷

SKILL.md 本身只是入口,實際規則分散在 references/assets/ 底下十幾份檔案。下表依「判斷 → 模式 → 改寫 → 把關」四個階段分組。多數情況只需要知道:先分英文/中文,再挑一個聲音模式,改完跑一次最終清單。

判斷 · 01
語言分軌
英文 / 中文雙軌
中文 AI 味與英文 AI 味是兩種不同問題,分別套用 patterns-to-remove.md 或 chinese-patterns-to-remove.md。
判斷 · 02
scenario-presets.md
場景硬約束
推特、微博/小紅書、部落格/公眾號、播客、專業報告、Reddit 六種場景,各自的長度、結構、emoji 政策寫死在這份文件裡。
模式 · 03
預設(乾淨模式)
安全基線
不用使用者聲明就會執行,去掉 AI 味、還原成專業保守的版本,適合多數產品與文件情境。
模式 · 04
人味兒質感模式
個人語氣
選擇性注入倒裝、語氣詞、殘句、非標準標點,靠「放鬆一點 / 像本人寫的」這類訊號觸發。
模式 · 05
隨手打子檔
手機手感
人味兒模式底下再鎖一層,只在使用者明確要求時開啟,絕不碰數字、名稱、連結,也不做會改義的錯字。
模式 · 06
學習模式
Host Profile
從使用者提供的真實樣本萃取一份可重複使用的風格檔案,讓之後的稿子讀起來像「那個人寫的」。
判斷 · 07
優先順序規則
衝突仲裁
Host profile 的禁忌詞 > 場景預設的格式約束 > Host profile 的聲音訊號 > 人味兒慣例,四層衝突時照這個順序決定。
改寫 · 08
human-passes.md
六道工序
意圖與立場、結構與流暢、具體語言、節奏與溫度、格式清理、完整性檢查——六個 pass 依序跑過一遍。
改寫 · 09
排版形式對照表
格式降噪
把滿屏加粗、每小段一個標題、提示框、分隔線這些 AI 排版習慣,換成一個人真的會打進訊息裡的樣子。
把關 · 10
final-pass-checklist.md
最後把關
改寫後逐條核對,並用一行 grep 指令抓破折號、刪節號、固定黑話這些完全確定的痕跡,最多修兩輪。
把關 · 11
標點痕跡清單
排版訊號
破折號(— ——)、英文彎引號、刪節號、句中的箭頭符號全部列入必查清單,Reddit 等論壇的 automod 已經把破折號密度當 AI 訊號。

不同任務,該用哪個組合?

你在寫什麼 建議模式 對應場景預設
公司文件、產品文案、技術備忘 預設(乾淨模式) 專業報告場景預設
創辦人筆記、個人部落格 人味兒質感模式 部落格 / 公眾號場景預設
系列社群貼文,聲音要一致 學習模式 + 場景預設疊加 依平台選對應場景預設
中文推特短貼,需要隨手感 人味兒質感模式 + 隨手打子檔 推特場景預設
04
借鑑來源 · 官方致謝

每條規則,
寫明從哪來。

anti-vibe-writing 的 README 有一段罕見的坦白:哪些 pattern 不是原創,而是研究了幾個開源 de-AI / humanizer 專案跟一篇文章後,改寫進自己結構裡的。原始分析與措辭歸原作者所有。這比大多數 skill 倉庫更誠實,也讓人能追到每條規則的第一手來源。

01

英文句子級痕跡,借自 30 條規則的 humanizer

回避系動詞、否定式排比、同義詞循環、假範圍、結構預告——這五個英文層的判斷依據,啟發自 blader/humanizer 這個 MIT 授權的 skill,原作收錄了 30 條 pattern。

來源 · README 參考與致謝 · blader/humanizer(MIT)
02

五維打分,借自 stop-slop 的檢測邏輯

final-pass-checklist.md 裡那套可選的五維打分(直接、節奏、信任、真人感、密度),來自 hardikpandya/stop-slop 這個 AI slop 檢測 skill。

來源 · README 參考與致謝 · hardikpandya/stop-slop(MIT)
03

中文「回避是」與同義詞循環,借自中文版 humanizer

op7418/Humanizer-zh 本身是 blader/humanizer 的中文改編,24 條 pattern。啟發了中文軌裡「迴避系動詞『是』」與「同義詞循環」這兩條判斷規則。

來源 · README 參考與致謝 · op7418/Humanizer-zh(MIT)
04

翻譯腔層,借自一篇中文翻譯腔拆解文章

用身體動作詞寫抽象概念、形容詞加冒號替讀者下判斷、抽象名詞當主語——這些翻譯腔的辨識方式,啟發自 yage.ai 一篇專門拆解「AI 中文翻譯腔」的文章,寫進了 chinese-patterns-to-remove.md

來源 · README 參考與致謝 · yage.ai《AI 中文翻譯腔》
05

「改寫心態」一節,來自 X 上一則討論串

身分設定、負向約束這類去 AI 味的提示詞技巧,影響了規則裡「改寫時不當資深文案 / 營銷專家,換成朋友或公眾號編輯的口吻」這一節,以及中文改寫提示詞區塊。

來源 · README 參考與致謝 · X @dotey
05
使用實例

看 agent 怎麼
抓出一段生成感

以下是倉庫 examples/09-sentence-tells-en.md 裡的真實範例,場景是一段產品落地頁文案,模式是預設的乾淨模式。這個例子刻意示範的是 1.3.0 版才加入的「句子級」痕跡——把明顯的顧問黑話都拿掉之後,還會留下來的那種更難察覺的生成感。

~/projects/landing-page · claude code · anti-vibe-writing v1.6.0
You › 幫我改一下這段落地頁文案,乾淨版就好:
This isn't just another database. It's a rethink of how state lives in your app. Our engine serves as the source of truth. It boasts sub-millisecond reads and features automatic replication. The platform — the system — handles everything from caching to indexing to backups. We've now updated it to also support vector search. Let's dive into what that means.
[loaded ~/.claude/skills/anti-vibe-writing/SKILL.md] [detected language: en → patterns-to-remove.md] [scenario: 落地頁文案 · mode: 預設(乾淨模式)]
Claude › 跑 Pass 1、3、5 就夠了,這段不需要重組結構。
Our database is the source of truth for your app's state. Reads are sub-millisecond, and replication is automatic. It handles caching, indexing, and backups. It also does vector search: store embeddings next to your rows and query both in one call.
[final-pass-checklist.md — grep 破折號/刪節號/黑話 → 0 命中]
Claude › 改了什麼(一個痕跡對一個修法): · 否定式排比 ——「這不只是…而是…」的開頭整段刪掉,直接從論點起頭 · 回避系動詞 —— serves as / boasts / features 都換成 is / are / handles · 同義詞循環 —— engine / platform / system 統一叫「database」,只講一次 · 假範圍 —— "everything from caching to indexing to backups" 拆成平白列舉 · 破折號插入語 —— 「— the system —」整段拿掉 · 結構預告 —— "Let's dive into what that means" 刪掉,下一句直接講意思
Clean is not the goal.
Sounding like the person who meant it is the goal.
— anti-vibe-writing SKILL.md · Core Philosophy

這個例子為什麼值得看

改寫前的版本用四種說法稱呼同一個產品、迴避「is」三次、預告了一個從沒兌現的段落。改寫後的版本更短,反覆用同一個「database」也不覺得彆扭,把預告換成真正的解釋——把 embeddings 存在 row 旁邊,一次查詢兩者。去掉的不是文采,是拖延讀者理解的習慣動作。

06
先看清楚這些

不是寫作工具
知道邊界再上路。

  • 不是拿來從零起草的。官方明講「Do Not Use For」的第一條就是從零開始寫初稿。它是最後一道潤稿工序,前提是內容已經有了,只是讀起來像被系統組裝出來的。
  • 絕對不會替你發明例子、數據、產品主張。規則裡反覆強調保留原意,清理格式跟語氣,不是幫你把證據不足的地方補一個聽起來合理的數字。
  • 使用者只要求潤飾時,不該順便改立場。把「幫我改順一點」的請求擴大成重新框定整篇文章的論點,是規則明確禁止的行為。
  • 隨手打子檔的護欄很硬,不是裝飾。它預設關閉,只在使用者明確要求(說出「隨手打」或「像手機隨手發的」)時才開,絕對不碰數字、名稱、連結、價格、日期,也不做會改變句意的錯字(的/得/地、在/再、哪/那),而且被明文禁止用在文件、報告、任何專業文案上。
  • 目的是回到人話,不是騙過 AI 偵測器。README 對此寫得很直白:去掉破折號、彎引號這些排版痕跡,是讓文字真的回到手打的樣子,順帶不被誤判只是結果,不是拿它當閃避偵測的手段。
  • Reddit 場景預設本身在提醒你別造假。場景預設裡明寫:不披露利益關係地推銷自家產品、一天內在多個板重複同套自我介紹,這些是 sock-puppet 的形狀,基本會被社群識破——skill 教你把評論寫得像人,而不是教你怎麼繞過規則發廣告。
  • 它是純 Markdown 規則,行為完全取決於 agent 有沒有真的讀。沒有程式邏輯強制執行——如果你的 agent 沒把 SKILL.md 跟對應語言的 patterns-to-remove.md 都讀進去,規則就不會生效,結果會比預期鬆散。
  • 中英文規則不能互套。中文的翻譯腔、四字成語堆砌、「賦能/打通/閉環」這類黑話,英文版的 patterns-to-remove.md 完全沒有對應規則;反過來,英文的「回避系動詞」判斷方式套用到中文句子上也會失準。
07
進階路徑

把規則
改成你自己的聲音

整套規則就是 Markdown,沒有需要編譯的東西。你可以直接打開 references/ 底下任何一份檔案改動,或依 CONTRIBUTING.md 的規範提 PR。

進階玩法地圖

1. 用學習模式建自己的 host profile。貼幾段自己過去寫的東西,說「學我的風格」,agent 會依 learning-mode.mdstyle-extraction-prompt.md 萃取一份可重複使用的 host-profile-template.md,之後每次改寫都對照這份檔案的句子節奏跟標點習慣。

2. 補一個場景預設。目前只有六種:推特、微博/小紅書、部落格/公眾號、播客、專業報告、Reddit。缺 LinkedIn 或 Discord 這類場景時,依 scenario-presets.md 現有格式加一段硬約束就是新場景。

3. 追一條規則的演化史。CHANGELOG.md 記錄了每個版本新增了什麼:1.2.0 加中文軌,1.3.0 加英文句子級痕跡,1.4.0 加隨手打子檔,1.5.0 加標點痕跡層,1.6.0 把最終清單升級成「自檢 → 定點改」的必跑步驟。想懂某條規則為什麼存在,先查它是哪個版本加的。

4. 接進非 Claude Code 的 agent。Codex 用 AGENTS.md,其他 agent 通常有 system prompt 或自訂指令的位置,把 SKILL.md 跟對應語言的 pattern 檔案貼進去就行,規則本身不綁平台。

5. 往上游讀真正的原始分析。這個 skill 借鑑的幾個專案(blader/humanizer、hardikpandya/stop-slop、op7418/Humanizer-zh)本身也是開源的,想理解某條判斷背後更完整的推導,直接讀原始倉庫比讀二手改編更準。

最該讀的三份延伸閱讀

SKILL.md——完整核心哲學、六道改寫工序、優先順序規則。
references/scenario-presets.md——六種場景的具體硬約束與禁忌。
CHANGELOG.md——每個版本新增規則的完整記錄。

Several narrow editing passes work better than one vague rewrite.
— anti-vibe-writing SKILL.md · Core Philosophy