Communitygithub.com

bompus/hr-stock-ui-audit

找出產品中未經選擇的樣板預設樣式(如紫色強調色、紫藍漸層、單一字型、表情符號圖示、發光與模糊效果),逐一評估並回報或修正。用於審查或移除既有 UI 中看似通用或 AI 生成的樣式,不設定視覺方向。

hr-stock-ui-audit 是什麼?

這個技能專為審查和移除 UI 中未經選擇的樣板預設樣式而設計。它透過靜態掃描器檢測常見的樣板特徵,如 Violet 色調、紫藍漸層、單一系統字型(Inter、Roboto 等)、表情符號圖示、霓虹發光及毛玻璃效果等,並根據規則對每個匹配項目進行嚴重性分級(高、中、低)。掃描後需手動對每個匹配進行分類:未經選擇的預設樣式(需修正)、刻意選擇(保留並附上證據)、誤報(說明原因)或無法確定(記錄待解決問題)。該技能支援 Review(僅報告)與 Cleanup(修正)兩種模式,並可指定掃描範圍(頁面、元件資料夾或整個應用程式)。它不會發明品牌,若產品尚無視覺方向,會要求先定義方向。適用於 Claude Code、Cursor、Codex 等平台,透過命令列腳本執行,輸出可整合至 CI 流程。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bompus/house-rules/tree/HEAD/skills/hr-stock-ui-audit

在你喜歡的 AI 中提問

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

說明文件

庫存 UI 審查

生成式與入門套件介面共享一種可辨識的外觀:靛藍或 Violet 強調色、紫藍色英雄區漸層、到處都是 Inter 字型、毛玻璃卡片、導覽列中出現表情符號。這些單獨來看都沒有錯,問題在於它們是來自樣板而非產品本身的選擇。這個技能透過靜態掃描器找出這些選擇,再透過判斷進行分類。掃描器產生候選項目,只有經過分類才能確定為發現結果。

這個技能會移除未經選擇的預設樣式,不會發明品牌。如果產品還沒有任何視覺方向,請明確說明並要求定義一個方向,而不是用一個預設樣式取代另一個。

掃描前

  1. 閱讀需求摘要、設計 Token 以及主題或元件庫設定檔。記錄產品要求的所有顏色、字型和元件。這些即使被掃描器標記也應保留。
  2. 根據請求決定模式:
    • Review:僅報告發現結果,不編輯任何內容。
    • Cleanup:修正已確認的發現結果,僅限於使用者指定的範圍(頁面、元件資料夾或整個應用程式)。對於範圍外注意到的任何問題,僅報告而不修正。
  3. 選擇掃描範圍:僅包含渲染 UI 的原始碼資料夾,而非整個儲存庫。

執行掃描器

bun <此技能目錄>/scripts/scan.mjs [--json] [--fail-on high|medium|low] <路徑>...

Node 22 或更新版本也可使用。它會走訪目錄,跳過依賴、建置和覆蓋率輸出以及最小化檔案,並讀取 .html .css .scss .js .ts .jsx .tsx .vue .svelte .astro。它會顯示掃描的檔案數量。結束代碼 0 表示沒有任何項目達到失敗嚴重性(預設為 high),1 表示有項目達到,2 表示用法錯誤或掃描了零個檔案。結束代碼 2 永遠不是乾淨的結果。當 Violet 強調色、單一字型或表情符號圖示應使掃描失敗時,請傳遞 --fail-on medium。除非被要求,否則不要將掃描器加入 CI 閘道。

規則嚴重性捕捉內容
purple-blue-gradienthigh漸層停止點均為冷色調且至少包含一個 Violet,無論是 CSS 還是 Tailwind 的 from-/to- 類別
violet-accentmedium任何計算後的色相落在靛藍到紫色範圍內的 hex、rgb、hsl、oklch 或裸 HSL Token,以及 Tailwind 的 indigo/violet/purple 類別
gradient-textmediumbackground-clip: text 和 bg-clip-text
single-stock-fontmedium在掃描集中,只有一個庫存無襯線字體(Inter、Roboto、Poppins 等)作為唯一的命名字型,出現在兩個或更多宣告中
emoji-iconmedium在標題、按鈕、連結、導覽項目或 icon/label/title 欄位中的表情符號
neon-glowmedium零偏移、大模糊半徑的飽和色陰影,以及 Tailwind 的彩色陰影
frosted-glasslowbackdrop-filter: blur() 和 backdrop-blur
library-default-tokenlow來自 Bootstrap、Material、MUI、Ant Design、Chakra、shadcn/ui 和 Vite 入門套件的未經修改的預設主要顏色
tracked-capslow大寫文字搭配較寬的字距

字型規則會在一次執行中檢查所有檔案,因此請將整個 UI 範圍一起掃描;一次掃描一個檔案會隱藏此規則。

分類每個匹配項目

打開每個被標記的行,閱讀足夠的上下文以了解該元素的目的。每個匹配項目只能有一個判定:

  • 未經選擇的預設樣式:需求摘要、Token 或歷史記錄中都沒有要求,且看起來像入門套件。這是發現結果。
  • 刻意選擇:需求摘要、Token 檔案、品牌指南或提交訊息顯示有人選擇了它。保留它並指出證據。
  • 誤報:匹配項目並非規則所假設的情況,例如語法高亮主題中的 Violet 色調、忙碌內容上模態背景的模糊效果,或用戶生成的範例資料中的表情符號。保留它並說明原因。
  • 無法確定:無法判斷是否有人選擇了它。這不是發現結果,也不做任何更改。報告缺失的資訊以及能夠解決問題的問題。

修正真正的問題

  • 修正原因,而非那一行。五個 Violet 十六進位碼通常意味著缺少一個強調色 Token;一次性定義產品的調色板和字型,並讓元件指向它們。
  • 選擇有助於內容的替代方案:持久的對比度、標記唯一重要操作的強調色、適合閱讀負荷的字型。
  • 永遠不要為了避開掃描器的範圍而微調數值,例如將色相偏移幾度,或將十六進位碼替換為等效的 oklch()。如果顏色錯誤,就更改它;如果顏色正確,就保留它並記錄原因。
  • 永遠不要更改品牌顏色、狀態顏色(成功、警告、錯誤)或焦點指示器以使掃描通過。這些具有意義,請將它們記錄為刻意選擇。
  • 用專案現有的圖示集取代表情符號圖示。僅在使用者同意後才新增新的圖示依賴項。

掃描器無法看到的內容

透過閱讀渲染後的頁面來檢查這些,因為沒有模式匹\n配能找到它們:

  • 每個部分都由相同的中置標題、副標題和兩個按鈕組成
  • 一個三卡片的特色網格,每張卡片都有一個圖示、標題和一行文字
  • 一個位於主標題上方的小徽章或藥丸形狀
  • 卡片用粗的彩色左邊框標記
  • 一個包含大數字(「10k+ 使用者」、「99.9% 正常運行時間」)的統計橫幅
  • 編號的「1、2、3」步驟區段
  • 強制啟用深色主題但沒有需求摘要要求的淺色選項
  • 每個表面都有相同的大圓角和柔和陰影
  • 忽略專案比例尺度的間距和字型大小
  • 可以描述任何產品的文案

驗證

  1. 在同一範圍內重新執行掃描器,確認每個剩餘的匹配項目都有記錄的判定。
  2. 在重要的尺寸(窄手機寬度和至少一個桌面寬度)下查看渲染後的 UI,以及產品提供的每個主題。
  3. 乾淨的掃描結果並不代表無障礙、佈局或整體品質。檢查您修改過的任何內容的對比度和焦點狀態。

如果您無法渲染 UI,請說明審查僅限於靜態分析。

報告

按以下順序撰寫報告:

  1. 掃描範圍、掃描的檔案數、模式以及掃描器的結束代碼。
  2. 已修正(或在 Review 模式下為建議的)發現結果,每個都包含 file:line、規則以及取代的內容。
  3. 保留為刻意選擇的匹配項目,每個都附上證據。
  4. 無法確定的匹配項目,每個都說明缺失的資訊以及能夠解決問題的問題。
  5. 誤報,每個都附上一行說明原因。
  6. 掃描器無法看到的問題(如果有的話)。
  7. 驗證方式:重新執行的結果、檢視的尺寸和主題,或「僅限靜態分析」。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相關技能