Communitygithub.com

YZenKid/opencode-designer

獨立的 UI/UX、動態設計與視覺一致性工作流程,專為設計師打造。用於前端設計、設計系統、響應式佈局、參考複製、動態/減少動態審查、無障礙審查、視覺打磨、素材規劃以及瀏覽器驗證的 UI 品質。

opencode-designer 是什麼?

這項 OpenCode Designer 技能提供了一個全面的、以設計師為中心的獨立工作流程,用於在 AI 輔助開發環境(如 Claude Code 或 Cursor)中處理 UI/UX 方向、設計系統和視覺一致性。它執行嚴格的設計品質標準,強制要求提供設計解讀、工藝參數、元件系統、參考素材包、逐頁藍圖、動態設計和無障礙審查。該技能包含強制性檢查點,以阻止通用或無根據的設計模式,並強制進行模板來源發現,以防止未經許可複製第三方設計。它利用基於證據的工件(如 `.opencode/evidence/` 中的視覺品質合約和參考精華文件)來確保實施前視覺決策清晰且可審計。該技能支援多種工作模式,從原型設計的創意快速路徑到維護的穩定性模式,並包含一個精心策劃的素材庫錨點,以確保正確的授權歸屬。

相容平台~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/YZenKid/opencode-capybara/tree/HEAD/skills/opencode-designer

在你喜歡的 AI 中提問

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

說明文件

OpenCode Designer 技能

將其視為設計師自成一體的 UI/UX 手冊。將假設標記為假設,並將不確定的視覺決策保持明確。

車道位置

此車道負責 UI/UX 方向、藍圖繪製、參考一致性、動態策略和設計品質審查。它不是主要的生產螢幕編碼車道。

設計交接後:

  • 共享 token/基本元件/元件 API -> @designer with design-system skill
  • 網頁螢幕/頁面實作 -> @fixer with frontend skill
  • 行動裝置螢幕/原生實作 -> @fixer with mobile skill
  • 簡單的有邊界 UI 修復 -> @fixer

源自 Open Design:強大的 DESIGN.md 權威性、工件/來源套件紀律、基於螢幕截圖的證據以及可重複使用的設計語法。未採用:上游特定的外掛程式/匯出/執行時期假設,除非於此處明確安裝。

觸發 / 跳過

  • 觸發:UI/UX 方向、設計系統、響應式佈局、動態方向、無障礙審查、視覺一致性工作、設計藍圖繪製,以及任何重大的使用者面向視覺決策。
  • 觸發:當實作品質取決於明確的視覺、互動、素材或動態指導,而非通用的現有模式時。
  • 觸發:對於重大的 UI/參考工作,請建立/更新 .opencode/evidence/<task-id>/visual-quality-contract.md 和 .opencode/evidence/<task-id>/reference-essence.md。
  • 跳過:具有明確現有設計指導的微小可逆 UI 調整,或設計/交接已確定的純實作任務。
  • 跳過:最終符合性/風險簽核。此車道定義或審查設計品質;@quality-gate 擁有最後把關權。

有關規範工具政策和邊界,請參閱:

  • .opencode/docs/TOOL_USAGE.md
  • .opencode/docs/AGENT_TOOL_ACCESS.md

請參閱 .opencode/docs/SHARED_POLICIES.md 以了解以參考為優先的創意合約。

網際網路參考預設

  • 當儲存庫本地證據不足時,將基於網際網路的查詢(context7_*、websearch_*、上游來源、GitHub 範例、瀏覽器/參考擷取)視為重大視覺、設計系統、動態和版本敏感實作指導的預設方式。
  • 如果專案的 DESIGN.md / 本地設計文件已解決問題,請引用它們並跳過外部查詢。否則,當單一即時參考能夠顯著改善一致性或品質時,不要依賴記憶。

先完成再提問 + 問題批次處理

  • 請參閱 .opencode/docs/EXECUTION_CONDUCT.md 以了解事實來源合約。簡短版本:
    • 如果仍存在一些歧義,但仍能產生安全且有邊界的設計方向,請繼續交接,並將殘留項目標記為 deferred_question(延後問題)/ follow_up(後續追蹤)。
    • 不要為了內部設計機制或車道順序選擇而反覆停頓。將殘留的使用者決策分組到一個最終的 question_batch(問題批次)中。

設計深度強制執行

硬性失敗指標 — 設計規格必須滿足這些最低要求,否則自動拒絕為 needs-polish(需打磨)/ blocked(受阻):

指標最低要求
設計解讀聲明重大工作需要
記錄的工藝參數DESIGN_VARIANCE(設計變異數)、MOTION_INTENSITY(動態強度)、VISUAL_DENSITY(視覺密度)
參考包至少 3 個參考螢幕截圖/URL,或基於第一原理的明確理由
逐頁 UX 藍圖至少 3 頁,包含完整細節
區段層級視覺規格每頁至少 5 個區段,包含版面/層級結構/間距/排版/色彩/互動/動態/響應式
元件系統計劃至少 20 個元件,包含變體/狀態/無障礙/響應式/動態
視覺系統調色盤角色、排版比例、間距比例、圓角半徑、邊框、陰影、圖示樣式、圖片樣式、網格、中斷點、焦點狀態
素材/圖片決策每個視覺區域:產生 / 使用者提供 / 已授權 / 無需產生,並附上理由
動態系統目的、API/函式庫選擇、每頁動態地圖、互動動態、減少動態的備援方案
互動/狀態設計預設/懸停/焦點/啟用/禁用/載入中/空狀態/錯誤/成功/權限/未驗證/離線/部分/骨架/驗證
響應式計劃行動裝置/平板/桌面的版面規則、導覽變更、CTA 放置、黏性行為、資料顯示適應
無障礙關卡語意化標題、鍵盤支援、可見焦點、表單標籤、對比度、螢幕閱讀器、觸控目標、減少動態
驗證證據依視口和關鍵狀態的螢幕截圖、互動檢查、動態/減少動態檢查、無障礙說明

自動拒絕規則:

  • 缺少設計解讀 = blocked
  • 缺少工藝參數 = needs-polish
  • 缺少參考包(3 個以上參考或第一原理理由)= blocked
  • 缺少逐頁藍圖(3 頁以上)= blocked
  • 缺少區段層級規格(每頁 5 個以上區段)= needs-polish
  • 缺少元件系統(20 個以上元件)= needs-polish
  • 缺少視覺系統 = needs-polish
  • 缺少素材/圖片決策 = blocked
  • 缺少動態系統 = needs-polish
  • 缺少互動/狀態設計 = needs-polish
  • 缺少響應式計劃 = needs-polish
  • 缺少無障礙關卡 = needs-polish
  • 缺少驗證證據 = blocked

強制執行機制: 在將設計標記為 ready(就緒)之前,請驗證是否滿足所有最低要求。如果任何最低要求失敗,請標記為 needs-polish 或 blocked,並指定哪些最低要求失敗。

範本/來源發現硬性關卡

當使用者提及「範本」、「pakai templates」、「ikutin website X」、「移植」、「1:1 複製」、「複製此設計」時,或者當專案具有 templates/ 目錄且被 AGENTS.md 或 .opencode/AGENTS.md 中的強制性要求引用時,此車道必須在進行任何實作之前執行一個硬性發現步驟。

此關卡觸發時機

  • 使用者提示詞包含以下任何一個:template、pakai templates、ikutin、mirip、clone、port、copy、replicate、porting、1:1、style seperti、seperti web、adapt dari。
  • 專案在專案根目錄或記錄的原始位置下具有 templates/ 目錄。
  • 專案的 .opencode/AGENTS.md 列出了任何命名了範本、範本目錄或與第三方範本相關的許可證/歸屬限制的強制性要求(N#)。

強制發現步驟

  1. 執行 python3 ~/.config/opencode/scripts/template-source-discovery.py --project-root . --json 並讀取發現報告。該腳本會清查 templates/ 下的每個資料夾,解析入口 HTML/CSS/JS/Pug/SCSS 和 package.json,並掃描 .opencode/AGENTS.md 以尋找匹配的限制條件。
  2. 如果腳本報告使用者意圖(「pakai templates」)與任何 N# 限制條件(例如 N19 封鎖 templates/landingpage/)之間存在衝突,請停止並要求使用者澄清。不要自行發明解決方案。
  3. 寫入 .opencode/evidence/<task-id>/template-source-discovery.json 並從計劃/證據/交接中引用它。不得無聲跳過。
  4. 僅在發現報告存在且使用者意圖明確後,此車道才能繼續進行。當 MCP 或腳本不可用時,必須明確記錄跳過原因。

為什麼此關卡是機械性的,而非品味問題

如果沒有此關卡,歷史失敗模式是:

  • 代理知道 templates/ 存在,但從不讀取入口檔案。
  • 代理預設採用通用的 SaaS 風格實作(居中漸層英雄區塊、虛假推薦 Maya R./Andre F./Nisa A.、虛假定價 $4/$12/mo、通用常見問題、Join thousands who reflect daily)。
  • 限制條件 N17(token 視覺識別與範本)和 N19(封鎖 Trafalgar Pug/Gulp/Bootstrap)被無聲覆蓋。
  • 未產生 template_extraction_trace,因此品質關卡無法檢測到偏差。

此關卡的存在是為了使失敗不可能無聲地交付。

快速澄清範本(需要時使用)

詢問使用者(或在使用者離線時在證據中提出):

  1. 哪個範本目錄是事實來源?(列出腳本報告的候選目錄)
  2. 忠實度等級:1:1 移植、視覺+版面適應、僅 token 來源、僅結構參考。
  3. 允許逐字重複使用的內容?結構、樣式 token、文案、素材、程式碼。
  4. 必須替換的內容?品牌識別、標誌、攝影、文案、推薦、定價、功能名稱。
  5. 是否有明確的許可證/權限允許重複使用,或者重複使用僅限於改編?

馬尾辮:此關卡將行為規則與機械助手(scripts/template-source-discovery.py)配對。僅提示詞的規則而無腳本只是一個願望;此部分提供了腳本並連接了 npm run check:template-source,使關卡可審計。

反通用登陸頁面關卡

硬性失敗規則 — 這些是機械性失敗,而非品味偏好:

失敗狀態
無產品/領域構成的居中漸層英雄區塊blocked
無來源支援的具體細節的通用「現代簡潔」blocked
虛假的儀表板指標(任意 KPI 數字、99%/24k/10x 聲稱)needs-polish
表情符號圖示或純數字服務圖示needs-polish
預留位置圖像或空白圖像框needs-polish
跨區段重複的卡片/網格結構(卡片垃圾郵件)needs-polish
抽象斑點、浮動 UI 卡片、CSS 玻璃面板作為英雄區塊blocked
模糊的霓虹斑點或預設的紫色/藍色光暈needs-polish
偵錯/內部文案、伺服器標籤、UI 中的連接埠號碼needs-polish
面向使用者 UI 中的 Lorem 文字或預留位置文案needs-polish
缺少英雄區塊構成(無有意義的產品/領域內容)blocked
缺少每個視覺區域的圖片策略blocked
缺少動態動機(無解釋非平凡動態的原因)needs-polish
缺少減少動態支援needs-polish

強制執行: 這些是機械性失敗,而非品味偏好。如果存在任何失敗,則返回 needs-polish 或 blocked。當這些失敗存在時,不要將重大 UI 標記為 ready。

策展素材庫錨點

對於圖示、插圖、庫存攝影和 3D 素材選擇,在引入新來源之前,務必查閱策展的開源清單 references/ASSET_LIBRARIES.md。該清單是以下項目的權威錨點:

  • 圖示系列選擇(Lucide、Phosphor、Heroicons、Tabler、Iconoir、Material Symbols、Remix Icon、Carbon Icons、Octicons、Bootstrap Icons 等)及其許可證
  • 插圖函式庫選擇(unDraw、Open Doodles、Storyset、Humaaans、Blush、Open Peeps 等)及其許可證
  • 庫存攝影立場(Unsplash、Pexels、Pixabay、Wikimedia Commons、NASA Image Gallery、Coverr)及各來源許可證
  • 3D 模型 + 執行時期立場(Poly Haven、Quaternius、Kenney、Sketchfab、Three.js、react-three-fiber、drei、model-viewer、Spline、Babylon.js)及各來源許可證

規則:

  • 在「元件樣式」(圖示/圖像)和「元件樣式 > 3D / 空間」(若適用)中記錄所選函式庫、版本、許可證和歸屬立場,然後在證據中鏡像相同的內容。
  • 將每個外部素材 URL 與法律關卡配對:python3 ~/.config/opencode/scripts/legal-source-check.py --source <upstream-url> --json(或 npm run check:legal-source)。
  • 不要熱連結禁止熱連結的 CDN 素材;下載並在專案素材路徑下提交副本,以使來源可重現。
  • 如果上游許可證立場不明確,請在證據中將素材標記為 unknown(未知)並在重複使用前詢問使用者;不要無聲地替換為產生的相似物。

智慧 UI 工件工作流程

  • 使用工件優先的設計工作流程,使代理行為類似於資深產品設計師,具備清晰的簡報、設計系統背景、工藝規則和驗證證據。
  • 對於重大的簡報,採用發現優先的工作方式:在設計方向之前,確認目標受眾、介面、目標、品牌、內容、限制、裝置優先順序、素材、動態、無障礙和成功標準。
  • 在全新應用加速器中,提供創意產品/UX 選項,並將設計就緒狀態標記為 MVP design enough(MVP 設計足夠)、needs-polish、reference-ready(參考就緒)或 blocked;除非參考/圖像密集,否則不要強制完整視覺一致性。
  • 在維護穩定性模式中,保留現有 UX,並專注於修復所需的最小設計決策。
  • 在創意快速路徑中,對於明確的草稿/原型/探索要求,您可以更快行動:產生更大膽的選項、更鬆散的線框或粗略的視覺方向,但將它們標記為 draft(草稿)、prototype(原型)或 exploration(探索),說明假設/信心,並避免聲稱一致性/最終就緒。
  • 對於微小、可逆的調整,您可以使用輕量假設繼續進行。

發現優先的設計初步了解

對於一個新的重大設計請求,當簡報留下材料選擇的開放空間時,不要從像素或程式碼開始。詢問或明確鎖定影響方向的遺漏細節:產品類型、目標使用者、主要任務、平台、品牌限制、內容可用性、參考意圖、素材可用性、動態期望、無障礙基線和驗收標準。

僅當遺漏的細節是可逆且低風險時,才使用假設優先的路徑。在交接中記錄假設,以便實作者和審查者知道決定了什麼。

重大工作所需的來源包

在確定重大 UI/設計方向之前,請收集並引用一個來源包:

  • 首先檢查目標專案的 DESIGN.md;專案自身的 DESIGN.md 是第一個設計權威。若專案本地設計指南遺失或過時,則回退到 design-system/DESIGN.md,並在發明新的視覺方向之前建議 /init-harness。
  • 專案 DESIGN.md / design-system/DESIGN.md / 儲存庫本地樣式指南、
  • 編輯現有產品時的當前 UI 螢幕截圖或當前狀態說明、
  • 當使用者指向靈感或一致性時的參考螢幕截圖/URL、
  • 元件/token 庫存和值得注意的可重複使用模式、
  • 素材可用性和圖像/法律限制。

如果某個來源類別相關但不可用,請記錄該說明。

相關技能