Communitygithub.com

yetone/kill-ai-slop

找出並移除網頁專案中的「AI 口水」——那些通用、機械化的視覺與文案痕跡,讓產品不再像模板生成。

kill-ai-slop 是什麼?

此技能專門用於辨識並清除 AI 輔助生成內容常見的視覺與文案特徵(即「AI 口水」),例如 indigo 轉 violet 漸層、漸層遮罩標題、預設語義色板、單色狀態框、大氣漸層、襯線斜體強調、高亮關鍵字、AI 文案腔調(像是「不只是 X —— 它是 Y」)、到處都是 emoji、發光狀態點、搖晃載入動畫、彩色左邊框引用框、粉彩圖標磁磚、玻璃態、過度圓角、過大陰影、邊框在角落消失、徽章與標籤泛濫、AI 繪製 SVG 圖示、每個標題前的導言、扁平字級層級、虛構統計數字列、01/02/03 章節標記、卡片嵌套卡片以及預設的 Inter/Space Grotesk 字型等。它支援 HTML/CSS、React、Vue、Svelte、Astro、Tailwind、PHP 與 Markdown 文案。技能附帶無依賴的掃描工具腳本,可輸出分組報告,並提供修復指南。核心流程為:範圍確認 → 掃描 → 分類(區分 AI 口水與刻意設計)→ 報告(提供分組摘要與修復建議)→ 最小化修復。它強調尊重原創、只處理確認的冗贅,並可透過註解標記忽略特定項目。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yetone/kill-ai-slop/tree/HEAD/skill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

清除 AI 口水

AI 口水醜得很典型:它把所有可能的樣式與細節都堆砌上去,卻沒有明確的焦點。一個漸層、一個發光、一個吉祥物、emoji、一整面發光卡片,所有的預設選項同時開啟,直到每個產品看起來都像同一個俗豔的模板。它在縮圖裡看起來「有設計過」,但任何人細看就會發現破綻。你的工作是把它精簡回一個真正有人會選擇的模樣。

每次修復時必須堅守的原則:

  1. 先決定,再裝飾。 每個視覺選擇都必須有解釋。
  2. 一個重點色、一種語氣。
  3. 用尺寸與間距建立層級。 用顏色或字體來強調是偷懶的作法。
  4. 先減法。 擺脫醜陋的第一步是移除東西。
  5. 具體比響亮更重要 在文案中。
  6. 裝飾必須有意義 —— 圖示、徽章、引用框都是信號。

工作流程

請依序執行以下步驟。在使用者看到報告之前,請勿進行大量編輯。

1. 範圍確認

確認要掃描的範圍。預設掃描應用程式/網站原始碼(跳過 node_modules、dist、build、.git、vendor、鎖定檔、壓縮檔)。如果專案混合了多個應用程式,請詢問。

2. 掃描

執行內建的掃描器,它會在程式碼庫中搜尋每種 AI 口水的程式碼層級信號,並印出分組的 file:line 命中結果:

node scripts/scan.mjs <root>          # 人類可讀的報告
node scripts/scan.mjs <root> --json   # 機器可讀,方便分類

它是純 Node 腳本(無依賴)且絕不修改檔案。將其輸出作為起點地圖,而非金科玉律 —— 請透過閱讀程式碼來確認每個命中結果。

縮小掃描範圍:--only=01,06 / --skip=19 依 AI 口水 ID 過濾,--exclude=legacy 則排除路徑(對專案相對路徑進行子字串比對)。--rules=extra.mjs 可載入額外的專案或語言特定規則(scripts/rules.ru.mjs 是內建的俄文文案範例,也是您建立自訂規則的範本)。使用者確認是有意設計的命中結果,可以在原始碼中使用 deslop-ignore、deslop-ignore-next-line 06 或 deslop-ignore-file 註解來固定忽略 —— 建議使用 ID 限定形式,這樣新的 AI 口水仍然會被發現。

3. 分類

針對每個命中結果,開啟該檔案並判斷是口水還是刻意設計。這是此技能與 lint 規則不同的關鍵步驟。一個漸層、襯線字體或 emoji 可能是真實且有理由的選擇。保留使用者明確選擇的內容(品牌標記、標誌、刻意繪製的插圖)。只標記預設值。

請參閱 references/taxonomy.md 了解每種 AI 口水的定義及其為何看起來像機器生成的,以及 references/detection.md 了解確切的比對模式和常見的誤判。

4. 報告

在修改任何東西之前,向使用者提供一份分組摘要:每種 AI 口水、你確認的 file:line 命中結果、一句話說明原因以及建議的修復方式。比照以下格式:

slop  src/Hero.tsx:12   indigo 轉 violet 漸層        → 一種純色重點色
slop  src/Hero.tsx:31   漸層遮罩標題                 → 純色文字,放大尺寸
slop  src/Note.tsx:8    左邊框引用框 ×3              → 保留一個 aside,其餘改為正文
slop  copy.md:1         "不只是 X —— 它是 Y"         → 直接說出具體事物
→ 4 組,共 11 個命中結果。

然後詢問要應用哪些組,或是否全部處理。

5. 修復

進行最小幅度的修改,以移除 AI 口水的同時保留其意圖與功能。使用 references/fixes.md 查看每種 AI 口水的「修改前 → 修改後」模式。

  • 優先編輯共享的 token 或元件,而不是修改每個呼叫點。
  • 絕對不要發明新的品牌色;如果必須變更色板,請提議中性色加上專案現有的重點色,並讓使用者確認。
  • 保留文案的意義;讓它變得更具體,不要只是刪除它。
  • 修復後重新執行掃描器,確認計數下降,並記錄任何你刻意保留的命中結果(附上原因)。

護欄

  • 尊重著作權。 將不熟悉的檔案和刻意的修飾視為某人的選擇。如果不確定某樣東西是不是 AI 口水,請詢問 —— 不要直接移除。
  • 小型、可審查的 diff。 絕不重構不相關的程式碼。絕不執行 git add -A;只暫存明確指定的檔案,並且不要動別人進行中的工作。
  • 進行這項工作不需要引入新的依賴。
  • 盡可能進行視覺驗證。 如果開發伺服器存在,請比對修改前後的畫面;掃描通過不等於頁面變好了。

參考資料

  • references/taxonomy.md —— 35 種 AI 口水:每種是什麼、為何是口水、如何修復。
  • references/detection.md —— 具體的 ripgrep/正規表達式模式 + 誤判情況。
  • references/fixes.md —— 修改前後的修正模式。
  • scripts/scan.mjs —— 無依賴的掃描器。

相關技能