Communitygithub.com

hasaneks/web-craft-init

啟動一個新的 React 網頁專案或大型網頁介面,或將現有專案導入書面標準:產品需求收集、選擇渲染模型與框架(Next.js App Router 或 React with Vite)、UI 套件(shadcn/ui、Ant Design、Material UI 或現有系統)、樣式方案(Tailwind、CSS Modules 或套件主題)、從第二語言開始的完整國際化(next-intl 或 i18next)、動畫基礎(含減少動畫偏好)、主題等。

web-craft-init 是什麼?

「web-craft-init」是一個專為開發者設計的 AI 助手技能,用於標準化 React 網頁專案的啟動流程。它從產品需求收集開始,根據產品特性、SEO 需求、語言方向等條件,引導使用者從框架(Next.js App Router 或 React + Vite)、UI 套件(shadcn/ui、Ant Design、Material UI)、樣式方案(Tailwind、CSS Modules)、國際化引擎、動畫庫等面向做出結構化決策,並生成對應的 `STACK.md` 與 `DESIGN.md` 文件。此技能支援 Claude Code、Cursor 等 AI 編碼代理,其核心價值在於強制在建立多個畫面之前先確立技術方向,並透過一個「端到端骨架驗證」流程(包含語言切換、主題、表單驗證、對話框動畫、載入與錯誤狀態)確保基礎功能正確。技能內建對減少動畫偏好、鍵盤無障礙、無控制台或水合錯誤等最佳實務的檢查,並要求從官方來源驗證每個選用套件的穩定版本,避免記憶中的過時版本號。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hasaneks/web-craft/tree/HEAD/skills/web-craft-init

在你喜歡的 AI 中提問

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

說明文件

啟動一個 React 網頁專案

請先閱讀 web-craft;其規則同樣適用於此。專案中已有的決定優先於以下所有預設值。

1. 需求收集

讀取已給定的內容:產品描述、現有儲存庫、頁面、設計系統、STACK.md、DESIGN.md、API 合約。然後使用 references/intake.md 補足空白項目:介面類型(登陸頁、編輯型、目錄型、消費者應用、管理後台、客戶入口或混合型)、主要使用者與操作、內容或操作密度、裝置、SEO 需求、當前與未來的語言、從右至左書寫支援、認證方式、後端(Node.js、第三方 API、CMS、模擬或靜態)。

僅詢問會改變產品或架構決策的問題。其餘皆陳述為假設。

2. 決定技術設定檔

每項決定附上一行理由。在方向確定之前,不要生成任何畫面。

決策項目預設值與決策依據文件
框架與渲染公開、SEO 或 CMS 為主、多語言 → Next.js App Router。需登入且高度互動 → React + Vite 或現有的 Next.js。簡單靜態介面 → 最簡單可行的方案。references/framework-choice.md
UI 套件有獨特風格的品牌產品 → shadcn/ui。表格/表單繁重的管理後台 → Ant Design。Material 風格產品或已使用 MUI → Material UI。現有系統 → 保留原樣。每個應用介面只使用一個主要套件。references/kit-choice.md
樣式跟隨套件:shadcn → Tailwind(shadcn 要求);Ant Design 或 MUI → 套件的主題,加上自定義部分的 CSS Modules;自定義或編輯型 → CSS Modules。切勿在同一個介面上混合使用 Tailwind 與 CSS Modules 作為同等系統。references/styling-choice.md
國際化Next.js → next-intl;Vite → i18next + react-i18next。語言環境註冊表、後備語言、URL 策略與目錄載入方式均在第一天決定。references/i18n-setup.md
動畫簡單狀態使用 CSS 過渡;當需要元件掛載/卸載、佈局或編排動畫時使用 Motion for React。持續時間與緩動標記;減少動畫偏好在一處處理。references/motion-setup.md
表單與資料react-hook-form + Zod;TanStack Query 或框架的資料模型;保留現有方案。
主題互動性產品提供淺色/深色/系統主題;品牌行銷網站可僅使用單一主題作為產品決策。
測試型別檢查、Lint(使用 eslint-plugin-web-craft 和 eslint-plugin-jsx-a11y)、在行為邏輯處撰寫單元/元件測試、關鍵流程使用 Playwright。
語言與工具嚴格 TypeScript,每個專案固定使用 Yarn,單一 lockfile。

從官方來源驗證每個所選套件的當前穩定版本,鎖定可共同運作的版本,並將其記錄在 STACK.md 中。切勿從記憶或此技能中複製版本號。

3. 撰寫專案文件

  • STACK.md:框架、渲染、套件、樣式、國際化引擎、資料與表單工具、版本、環境、腳本。 範本:references/stack-template.md。
  • DESIGN.md:產品特性、取自參考資料的原則、版面、標記(顏色、字體、間距、圓角、層級、動畫)、文案規則、動畫矩陣、國際化注意事項。範本:references/design-template.md。
  • 語言環境列表與型別來自程式碼配置。文件僅描述它們,並非第二個真相來源。
  • 不要為每個小改動創建四個新文件。

4. 佈局專案

採用基於功能(feature-based)的結構,伺服器/客戶端邊界清晰,單一 API 層,單一位置存放標記與 Provider: references/structure.md。

5. 驗證骨架

在構建更多畫面之前,必須先讓一個小型流程完整運作:

  1. 語言環境在首次渲染時正確解析(無語言閃爍),切換時保持路由。
  2. 主題遵循使用者選擇與系統設定,載入時無閃爍。
  3. 表單在失焦時驗證,提交時滾動至第一個錯誤,將伺服器錯誤對應到對應欄位。
  4. 對話框有進出動畫、焦點侷限並在關閉時歸還焦點;減少動畫偏好移除大幅移動。
  5. 列表或圖表顯示骨架屏、空白狀態與含重試功能的錯誤狀態。
  6. 純鍵盤操作正常;無控制台或水合錯誤。

然後構建一個代表性的垂直切片(包含真實內容、第二語言、載入與錯誤狀態),在瀏覽器中以行動裝置與桌面兩種寬度檢查,然後再擴展到其他畫面。

6. 腳本

dev、build、start(Next.js)、typecheck、lint、test、test:e2e。當打包大小預算重要時,新增 analyze。

來源

這些預設值所使用的官方連結,以及審查日期:references/sources.md。請在安裝對應版本時重新檢查它們。

Individual skills in this repo

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

相關技能