草圖
當使用者希望在確定設計方向之前,透過一次性 HTML 模型探索 UI/UX 想法時,請使用此技能。重點是生成 2-3 個互動式變體,以便使用者可以並排比較視覺方向,而不是產生可交付的程式碼。
當使用者說出「草繪這個畫面」、「向我展示 X 可能的樣子」、「比較版面 A 與 B」、「給我 2-3 個這種 UI 的版本」、「讓我看看一些變體」、「在我建構之前先製作模型」之類的話時,請載入此技能。
何時不使用此技能
- 使用者想要生產組件 — 請使用
claude-design或正確建構它 - 使用者想要精美的單次 HTML 成品(登陸頁面、簡報)—
claude-design - 使用者想要圖表 —
excalidraw、architecture-diagram - 設計已鎖定 — 直接建構它
如果使用者安裝了完整的 GSD 系統
如果 gsd-sketch 作為同級技能出現(透過 npx get-shit-done-cc --hermes 安裝),請優先選擇 gsd-sketch 以獲得完整的工作流程:帶有 MANIFEST 的持久 .planning/sketches/、前沿模式分析、跨過去草圖的一致性審核,以及與 GSD 其餘部分的整合。此技能是輕量級的獨立版本 — 不帶狀態機制的單次草圖繪製。
核心方法
攝取 → 變體 → 正面比較 → 選擇獲勝者(或迭代)
1. 攝取(如果使用者已提供足夠資訊,則跳過)
在生成變體之前,獲取三件事 — 每次一個問題,而不是一次全部:
- 感覺。「這應該是什麼感覺?形容詞、情感、氛圍。」— *「平靜、編輯風格、像 Linear」比「簡約」*提供更多資訊。
- 參考。「哪些應用程式、網站或產品捕捉到了您想像中的感覺?」— 實際參考勝過抽象描述。
- 核心動作。「使用者在此畫面上做的最重要的一件事是什麼?」— 所有變體都應該很好地服務於此;如果沒有,它們就只是裝飾。
在下一個問題之前簡要地反映每個答案。如果使用者已經一次性提供了所有三個答案,請直接跳到變體。
2. 變體(2-3 個,從不 1 個,很少 4 個以上)
一次性產生 2-3 個變體。每個變體都是一個完整、獨立的 HTML 檔案。不要描述變體 — 建立它們。重點是比較。
每個變體都應該採取不同的設計立場,而不是不同的像素值。三個好的變體軸:
- 密度: 緊湊 / 寬鬆 / 超密集(選擇兩個對比鮮明的極端)
- 強調: 內容優先 / 動作優先 / 工具優先
- 美學: 編輯風格 / 實用主義 / 俏皮
- 版面: 單欄 / 側邊欄 / 分割窗格
- 基礎: 卡片式 / 純內容 / 文件式
選擇一個軸並從中拉開。兩個僅在強調色上有所不同的變體是浪費精力 — 使用者無法區分它們。
變體命名: 描述立場,而不是數字。
sketches/
├── 001-calm-editorial/
│ ├── index.html
│ └── README.md
├── 001-utilitarian-dense/
│ ├── index.html
│ └── README.md
└── 001-playful-split/
├── index.html
└── README.md
3. 使它們成為真實的 HTML
每個變體都是一個單一的獨立 HTML 檔案:
- 內聯
<style>— 無建構步驟,無外部 CSS - 系統字體或透過
<link>引入一個 Google 字體 - 透過 CDN 的 Tailwind (
<script src="https://cdn.tailwindcss.com"></script>) 也可以 - 真實的假內容 — 實際的句子、實際的名稱,而不是「Lorem ipsum」
- 互動式:連結可點擊,懸停真實,至少一個狀態轉換(打開/關閉、過濾、切換)。一個凍結的靜態圖像比一個粗糙的動畫圖像更糟糕。
在瀏覽器中打開它。如果看起來有問題,請在向使用者展示之前修復它。
視覺驗證變體 — 使用 Hermes 的瀏覽器工具。 不要只是編寫 HTML 並希望它能渲染;載入每個變體並查看它:
browser_navigate(url="file:///absolute/path/to/sketches/001-calm-editorial/index.html")
browser_vision(question="這個版面看起來乾淨易讀嗎?是否有任何可見的錯誤(文字重疊、未樣式化的元素、損壞的圖像)?")
browser_vision 返回頁面上實際內容的 AI 描述以及螢幕截圖路徑 — 捕獲純粹的原始碼檢查會遺漏的版面錯誤(例如,字體導入靜默失敗,flex 容器崩潰)。修復並重新導航,直到每個變體看起來都正確。
預設 CSS 重置 + 系統字體堆疊 以快速啟動:
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, sans-serif;
-webkit-font-smoothing: antialiased;
color: #1a1a1a;
background: #fafafa;
line-height: 1.5;
}
</style>
4. 變體 README
每個變體的 README.md 回答:
## 變體:{立場名稱}
### 設計立場
一句話說明驅動此變體的原則。
### 關鍵選擇
- 版面:...
- 排版:...
- 顏色:...
- 互動:...
### 權衡
- 強項:...
- 弱項:...
### 最適合
- 此變體實際服務的使用者類型或用例
5. 正面比較
所有變體建構完成後,將它們作為比較呈現。不要只是列出 — 提出意見:
## 首頁的三種呈現方式
| 維度 | 平靜編輯風格 | 實用密集型 | 俏皮分割型 |
|-----------|----------------|-------------------|---------------|
| 密度 | 低 | 高 | 中 |
| 主要動作可見性 | 低 | 高 | 中 |
| 可掃描性 | 高 | 中 | 低 |
| 感覺 | 平靜、值得信賴 | 銳利、工具感 | 吸引人、充滿活力 |
**我的看法:** 實用密集型適合進階使用者,平靜編輯風格適合內容導向的受眾。俏皮分割型最弱 — 試圖兩者兼顧卻兩者皆不成功。
讓使用者選擇獲勝者,或將兩者組合成混合型,或要求進行下一輪。
主題化(當專案具有視覺識別時)
如果使用者有現有的主題(顏色、字體、標記),請將共享標記放在 sketches/themes/tokens.css 中,並在每個變體中 @import 它們。保持標記最少:
/* sketches/themes/tokens.css */
:root {
--color-bg: #fafafa;
--color-fg: #1a1a1a;
--color-accent: #0066ff;
--color-muted: #666;
--radius: 8px;
--font-display: "Inter", sans-serif;
--font-body: -apple-system, BlinkMacSystemFont, sans-serif;
}
不要過度標記一次性草圖 — 三種顏色和一種字體通常就足夠了。
互動性標準
當使用者可以執行以下操作時,草圖就足夠互動了:
- 點擊主要動作,並發生可見的變化(狀態改變、模態框、提示、導航假動作)
- 看到一個有意義的狀態轉換(過濾列表、切換模式、打開/關閉面板)
- 懸停可識別的提示(按鈕、行、標籤)
超出這些就是對一次性內容的過度設計。少於這些就是螢幕截圖。
前沿模式(選擇接下來要草繪的內容)
如果草圖已經存在,並且使用者說「我接下來應該草繪什麼?」:
- 一致性差距 — 兩個獲勝變體來自不同的草圖,它們做出了尚未組合在一起的獨立選擇
- 未草繪的畫面 — 被引用但從未探索過
- 狀態覆蓋 — 快樂路徑已草繪,但沒有空/載入/錯誤/1000 項
- 響應式差距 — 在一個視口下驗證;在行動裝置/超寬螢幕下是否保持?
- 互動模式 — 靜態版面存在;轉換、拖曳、滾動行為不存在
提出 2-4 個命名的候選方案。讓使用者選擇。
輸出
- 在儲存庫根目錄中建立
sketches/(如果使用者使用 GSD 約定,則為.planning/sketches/) - 每個變體一個子目錄:
NNN-stance-name/index.html+README.md - 告訴使用者如何打開它們:macOS 上為
open sketches/001-calm-editorial/index.html,Linux 上為xdg-open,Windows 上為start - 保持變體一次性 — 您覺得需要保留的草圖應該升級為真實的專案程式碼,而不是作為資產進行策劃
一個變體的典型工具序列:
terminal("mkdir -p sketches/001-calm-editorial")
write_file("sketches/001-calm-editorial/index.html", "<!doctype html>...")
write_file("sketches/001-calm-editorial/README.md", "## Variant: Calm editorial\n...")
browser_navigate(url="file://$(pwd)/sketches/001-calm-editorial/index.html")
browser_vision(question="這看起來怎麼樣?有沒有明顯的版面問題?")
對每個變體重複此操作,然後呈現比較表。
歸屬
改編自 GSD (Get Shit Done) 專案的 /gsd-sketch 工作流程 — MIT © 2025 Lex Christopherson (gsd-build/get-shit-done)。完整的 GSD 系統提供持久的草圖狀態、主題/變體模式參考和一致性審核工作流程;透過 npx get-shit-done-cc --hermes --global 安裝。