Communitygithub.com

ECdison6227/coding-agent-skills

一套自用的 AI 程式設計技能集:流程協作、程式碼審查、UI 審查,讓 AI Agent 撰寫程式碼時減少隨機性。

coding-agent-skills 是什麼?

這個技能集專為 AI Agent(如 Claude Code、Cursor 等)設計,提供結構化的 UI 審查、程式碼審查與流程協作能力。其核心是「UI 審核」模組,包含一套嚴格的極簡主義設計哲學、自動化掃描腳本(scan-ui.sh)以及詳細的檢查清單,涵蓋文字符號、圖示系統、動畫、i18n、CSS 一致性、死代碼、狀態處理、導航流程、響應式與無障礙等九大面向。使用者需先通過「UI 基線檢查」(導航、狀態處理、認證),再依序執行四階段工作流:自動化掃描、手動驗證、修復、回歸驗證。此技能可與 polish-loop-v2(通用程式碼審查)並行執行,且 UI 審核的修復優先級更高。它支援開發者在進行程式碼生成時,自動化建立高品質、一致且注重使用者體驗的前端介面。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add ECdison6227/coding-agent-skills

在你喜歡的 AI 中提問

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

說明文件

UI Audit — 介面與互動審查

設計標準:極簡主義 + 動畫敘事 + 最少文字。

核心原則:能用視覺解決就不用文字,能用動畫替代提示就用動畫,必須用文字時用最少的字。

配套腳本

  • scripts/scan-ui.sh [DIRECTORY]:唯讀自動化掃描文字符號、模糊按鈕文字、硬編碼中文、靜態 Loading、未定義 CSS 類等常見 UI 問題。

第 0 步:UI 基線檢查(必須在任何審查之前執行)

導航基線

□ 使用者能從任何頁面回到主頁/首頁
□ 使用者能從詳情頁返回列表頁
□ 使用者能從列表頁進入建立/新增流程
□ 頁面重新整理後不丟失目前位置

狀態處理基線

□ 每個資料載入有 loading 狀態(skeleton/spinner)
□ 每個 API 呼叫有 error 狀態(使用者可見的錯誤提示)
□ 每個列表有空狀態(沒資料時的友好提示 + 行動引導)
□ 表單提交有 disabled 狀態(防止重複提交)

認證基線

□ 登入頁有「註冊」入口
□ 註冊頁有「登入」入口
□ 登入後跳轉到有意義的頁面(不是白屏)
□ 退出登入後清除狀態
□ Token 過期時自動跳轉登入頁

基線不通過時,先修基線,不做其他 UI 審查。


設計哲學

極簡主義

□ 每個頁面只有一個視覺焦點
□ 留白是設計的一部分
□ 顏色不超過 2 種主色 + 1 個強調色
□ 字體不超過 1 種
□ 無陰影、無漸層、無圓角超過 4px
□ 間距用 8px/16px/24px/32px 的倍數

動畫敘事

□ 每個狀態變化都有過渡動畫(150-300ms)
□ 列表項進入有 stagger 動畫(間隔 30-50ms)
□ 按鈕點擊有按壓回饋(scale: 0.98)
□ 載入用 Skeleton,不是靜態 placeholder
□ 錯誤用抖動動畫或顏色變化,不是彈窗
□ 成功用短暫的高亮動畫,不是 toast

最少文字

□ 按鈕文字不超過 4 個字
□ 圖示按鈕無文字(用 tooltip 替代)
□ 無「確定」、「取消」等模糊文字(用「儲存」、「放棄」替代)
□ 錯誤訊息不超過 10 個字
□ 導航項不超過 2 個字 + 圖示

不許出現文字符號

□ 無 → ← ↑ ↓(用箭頭圖示)
□ 無 ×(用關閉圖示)
□ 無 + -(用新增/減號圖示)
□ 無 > <(用 Chevron 圖示)
□ 無 ✓ !(用 Check/Alert 圖示)
□ 無 ~(用視覺分隔線)
□ 無 %(用進度條或圓環)

審查清單

1. 文字符號檢查(最高優先順序)

執行 scripts/scan-ui.sh 自動掃描,然後手動確認每個匹配是否需要替換為圖示。

2. 圖示系統檢查

□ 常用操作圖示齊全:save / trash / edit / arrow-left / x (close)
□ 導航圖示齊全:search / plus / download / upload / external-link
□ 所有圖示統一風格(線框或實心,二選一)
□ 圖示大小統一(16px 操作、24px 導航、32px 空狀態)
□ 圖示來自同一圖示庫(如 Lucide / Heroicons / Phosphor),不混用

3. 動畫檢查

□ 頁面切換有過渡動畫(fade/slide)
□ 列表項進入有 stagger 動畫
□ 按鈕點擊有按壓回饋
□ 載入用 Skeleton 動畫
□ 模態框/下拉選單有展開動畫
□ 長時間操作有進度動畫

禁止:旋轉 spinner 超過 2 秒、閃爍標籤、無限循環動畫、影響效能的複雜動畫。

4. i18n 完整性

□ 所有使用者可見文字使用 t() 函數
□ 無硬編碼中文字串(除 translations 檔案外)
□ 錯誤訊息使用 i18n key
□ aria-label 使用 i18n

5. CSS 一致性

□ JSX 中引用的 CSS 類都有定義
□ 無未使用的 CSS 類
□ z-index 層級一致(modal: 200, drawer: 100, backdrop: 99, toast: 300)
□ 顏色使用 CSS 變數或主題色,無硬編碼 hex
□ 無 !important(除非有明確理由)

6. 死程式碼檢查

□ 所有元件檔案都被至少一個其他檔案 import
□ 無同名檔案(不同目錄下的重複元件)
□ 無未使用的 import

7. 狀態處理

□ 每個資料載入有 loading 狀態
□ 每個 API 呼叫有 error 狀態
□ 每個列表都有 empty 狀態
□ 表單提交有 disabled 狀態
□ 長時間操作有取消/中止支援

8. 導航流程

□ 所有路由都有對應的頁面元件
□ 受保護路由有 auth guard
□ 404 有友好的 fallback 頁面
□ 麵包屑/返回按鈕導航正確
□ 外部連結在新標籤頁開啟

9. 響應式與無障礙

□ 行動端佈局不溢出
□ 所有互動元素有 aria-label
□ 鍵盤可操作(Tab 導航、Escape 關閉、Enter 確認)
□ 模態框/面板有 focus trap
□ 顏色對比度符合 WCAG AA

工作流

Phase 1: 自動化掃描

執行 scripts/scan-ui.sh,收集結果。重點關注:文字符號、過長按鈕文字、缺少動畫、硬編碼中文、未定義 CSS 類。

Phase 2: 手動驗證

對照設計哲學和審查清單,逐個頁面驗證。用 Playwright 截圖每個頁面對照檢查。

Phase 3: 修復

按優先順序修復:

  1. 文字符號替換為圖示
  2. 文字簡化
  3. 動畫補全
  4. CSS 類補全
  5. i18n 補全
  6. 死程式碼刪除
  7. 狀態處理
  8. 導航流程

Phase 4: 回歸驗證

修復後重新執行自動化掃描,確認無新增問題。


與 polish-loop-v2 的關係

  • polish-loop-v2:通用程式碼審查(邏輯、安全、效能、執行期)
  • ui-audit:專注前端 UI 和使用者體驗

並行執行,基線檢查共用。ui-audit 的問題優先順序高於 polish-loop-v2。

相關技能