清除 AI 口水
AI 口水醜得很典型:它把所有可能的樣式與細節都堆砌上去,卻沒有明確的焦點。一個漸層、一個發光、一個吉祥物、emoji、一整面發光卡片,所有的預設選項同時開啟,直到每個產品看起來都像同一個俗豔的模板。它在縮圖裡看起來「有設計過」,但任何人細看就會發現破綻。你的工作是把它精簡回一個真正有人會選擇的模樣。
每次修復時必須堅守的原則:
- 先決定,再裝飾。 每個視覺選擇都必須有解釋。
- 一個重點色、一種語氣。
- 用尺寸與間距建立層級。 用顏色或字體來強調是偷懶的作法。
- 先減法。 擺脫醜陋的第一步是移除東西。
- 具體比響亮更重要 在文案中。
- 裝飾必須有意義 —— 圖示、徽章、引用框都是信號。
工作流程
請依序執行以下步驟。在使用者看到報告之前,請勿進行大量編輯。
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—— 無依賴的掃描器。