Communitygithub.com

PingYang0717/frontend-design-skill

根據 UI/UX prototype 建立團隊標準的前端專案骨架(React 19 + Ant Design + TanStack Query + Zustand),並自動產生 README、AGENTS.md、ARCHITECTURE、GLOSSARY、API 契約草案、BDD 規格、任務單及畫面截圖,讓專案直接可交給 coding agent 實作。

frontend-design-skill 是什麼?

這個 AI 技能(Skill)專用於將 UI/UX prototype 轉換為符合團隊標準的前端專案初始狀態。它會建立一個可執行的專案骨架(基於 React 19、Ant Design、TanStack Query、Zustand 以及按層次劃分的目錄結構),並自動產生完整的開發文件,包括 README、AGENTS.md、架構文件、專有名詞表、API 介面草稿、BDD 規格(Gherkin)、任務清單。此外,它還會對 prototype 進行分析、擷取畫面截圖作為驗收標準,並執行 lint、typecheck、test、build 等驗證,確保專案在交給 `/implement` agent 開發業務功能前已準備就緒。支援 Claude Code、Cursor、Codex 等 agent,透過 AGENTS.md 或 CLAUDE.md 整合。此技能不適用於既有專案的修改,僅用於全新專案的啟動。

相容平台✓Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add PingYang0717/frontend-design-skill

在你喜歡的 AI 中提問

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

說明文件

前端專案啟動(Frontend Project Bootstrap)

將 UI/UX 交付的 prototype 轉換為「團隊標準的前端專案 + 已填寫的文件 + 可開工的任務清單」,確保後續不同人員或不同 coding agent 所撰寫的程式碼風格一致。

版本:請見 CHANGELOG.md 中最上方記錄。

核心原則

  1. prototype 是需求素材,不是要搬進專案的程式碼。 從中擷取畫面、資料、色票與互動邏輯,但不複製其實作方式;原始檔案與截圖應存放於 repo 中作為驗收標準。
  2. 團隊規範原樣複製,專案內容依據 prototype 填寫。 兩類檔案的處理方式不同(請見下方「檔案索引」)。
  3. 不確定就問,不要猜測。 問題應在停頓點分輪提出,每個問題附上建議答案;若使用者回答「是」即代表接受建議。
  4. 不實作業務功能。 此 Skill 僅建立骨架、空白頁面與文件;業務功能後續將由 /implement 根據任務清單開發。
  5. 驗證通過才算完成。 lint、typecheck、test、build 全部綠燈,無殘留 placeholder,每個畫面皆有截圖。

需要的輸入

  • prototype(單一 HTML、多頁 HTML、設計工具連結或截圖)及其版本/交付日期
  • 專案名稱與一句話說明
  • 新專案的資料夾位置(必須是空資料夾或全新的 repo;若已有內容則先停止並確認)

其餘資訊(部署環境、後端現狀、語言、深色模式等)將在步驟 1 中詢問;詳細說明請見 references/workflow-detail.md。

事前準備(每台機器僅需執行一次)

cd <skill> && npm ci && npx playwright install chromium   # 用於 scripts/ 中的 Playwright 與 Prettier;不會納入專案骨架
# 若機器上已有 Chromium,可不下載,執行截圖腳本時改用環境變數 CHROMIUM_EXECUTABLE=<路徑>

流程

建立任務清單追蹤以下五個步驟,每完成一個步驟即標記為完成。

步驟 1:收件

首先確認專案資料夾不存在或是空的(若已有內容則停止並詢問)。接著確認 prototype 檔案、版本與團隊共享的存放位置,並詢問 references/workflow-detail.md 步驟 1 表格中訊息裡尚未提供的項目。

步驟 2:分析 prototype 並擷取截圖

閱讀 references/prototype-analysis.md,依照其方法進行分析,產出 docs/_bootstrap/prototype-analysis.md(格式:templates/prototype-analysis.md)。若 prototype 是 HTML,則將原始檔案放入 docs/prototype/,填寫 docs/prototype/screens.json(格式:templates/prototype-screens.json),執行截圖腳本產生每個畫面的 PNG。

⏸ 停頓點: 依據 references/prototype-analysis.md 的「停頓點」分輪提問:待確認問題、缺漏狀態的預設處理方式、路由模式(history/hash)、後端現狀。收到回答後記入分析文件的第 11、12 節,再繼續進行。

步驟 3:建立骨架

複製 assets/skeleton/(排除 node_modules),執行 npm ci,然後依照 references/workflow-detail.md 步驟 3 修改名稱、色票、路由模式、路由與選單、空白頁面、權限程式碼。保留 Item 範例功能直到第一個真實功能開發完成。

步驟 4:產出文件

依據 references/workflow-detail.md 步驟 4 的對照表複製並填寫文件。所有 <!-- FILL: --> 標記應依照指示填寫完畢後刪除該註解,所有 {{PLACEHOLDER}} 應替換為實際內容。若不清楚則填入「待確認」,不得編造內容。

步驟 5:驗證、提交與回報

npm run lint && npm run typecheck && npm test && npm run build
node <skill>/scripts/check-placeholders.mjs <project>

四項檢查全部綠燈(lint 無 warning)、檢查腳本回報 0 個 ERROR 才算完成;接著進行第一次 commit。 回報格式請見 references/workflow-detail.md 步驟 5。

若使用者不在場時:對於有建議答案的項目,採用建議並標記「採用建議(暫定)」;沒有建議答案的項目則寫「待確認」,繼續進行流程;兩者都需列在回報中。唯一需要停止的情況是專案資料夾已有內容。

檔案索引

原樣複製(僅可替換名稱,不得改寫內容)

路徑複製到內容
assets/skeleton/專案根目錄可執行骨架:設定檔、api 層、資料 hook、DataBoundary、權限、i18n、theme、MSW、測試、CI(Azure DevOps)、PR 範本、Item 範例功能
references/standards/docs/conventions/18 份團隊開發規範 + 索引
references/adr-baseline/docs/adr/ADR 0001–0016 + 索引
templates/agents/docs/agents/mattpocock skills 的 tracker 與 domain docs 設定(local markdown、single-context)

依據 prototype 填寫

範本產出
templates/prototype-analysis.mddocs/_bootstrap/prototype-analysis.md
templates/prototype-screens.jsondocs/prototype/screens.json(截圖腳本輸入)
templates/README.md、AGENTS.md、ARCHITECTURE.md、GLOSSARY.md專案根目錄
templates/CLAUDE.md專案根目錄(Claude Code 的轉接檔:一行說明註解加上 @AGENTS.md,原樣複製)
templates/prototype-README.mddocs/prototype/README.md
templates/adr-router-mode.mddocs/adr/0017-router-mode.md
templates/api-interface-auth.md、api-interface.md、api-checklist.mddocs/api/
templates/feature-spec.mddocs/specs/<feature>.md
templates/task.md、tasks-README.md、task-remove-example.mddocs/tasks/
templates/adr.md、bug-report.md 等另存一份到 docs/templates/ 供後續使用

說明文件與工具

路徑使用時機
references/workflow-detail.md每一步的具體做法、指令與檔案對照
references/prototype-analysis.md步驟 2
scripts/screenshot-prototype.mjs步驟 2(prototype 改版時也需重新執行)
scripts/check-placeholders.mjs步驟 5

整合 mattpocock skills

此 Skill 的產出即為 mattpocock/skills 的輸入;專案不需要再執行 /setup-matt-pocock-skills(即使執行,也只會原地更新 AGENTS.md 的 ## Agent skills 與 docs/agents/,請勿讓它寫入 CLAUDE.md)。

該 skill對應到這裡
/grill-with-docs、grilling步驟 2 的停頓點即為同一種訪談;後續如需修改設計,可直接使用它,名詞定義記在 GLOSSARY.md、決策記錄在 docs/adr/0018+
domain-modeling讀寫 GLOSSARY.md(格式相同)與 docs/adr/(團隊格式,請見 docs/agents/domain.md)
/to-spec、/to-tickets無需使用。規格已存放在 docs/specs/(Gherkin 編號),任務已存放在 docs/tasks/(包含分層檔案路徑與可重用元件)
/implement第一版的實作方式:一次只處理一份 docs/tasks/<ID>-*.md,從 main 開分支進行;它會自動呼叫 tdd 與 code-review
tddseam(測試接縫)已寫在 AGENTS.md 的「測試 seam」段落,無需再討論
/implement-spec可使用但尚未測試過:每個 worktree 都需執行 npm ci(husky prepare),Azure DevOps 未支援 draft PR 整合

Agent 工具相容性

AGENTS.md 是唯一的規則來源。opencode 與 Kimi Code CLI 直接讀取專案根目錄的 AGENTS.md;Claude Code 則讀取 CLAUDE.md,因此骨架中附帶一個僅包含 @AGENTS.md 的轉接檔。請勿在轉接檔中另行撰寫規則。

更新此 Skill

若團隊規範需要修改,請直接更新此 Skill(standards、adr-baseline、skeleton 一併更新),並在 CHANGELOG.md 中記錄並升級版本;請勿僅在個別專案中修改。個別專案的偏離應撰寫為該專案的 ADR(從 0017 開始)。 修改 skeleton 後,務必在 assets/skeleton/ 目錄下執行 lint、typecheck、test、build;修改 Markdown 後請執行 npm run format。

相關技能