sketch
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSketch
Sketch
Use this skill when the user wants to see a design direction before committing to one — exploring a UI/UX idea as disposable HTML mockups. The point is to generate 2-3 interactive variants so the user can compare visual directions side-by-side, not to produce shippable code.
Load this when the user says things like "sketch this screen", "show me what X could look like", "compare layout A vs B", "give me 2-3 takes on this UI", "let me see some variants", "mockup this before I build".
当用户希望在确定最终方案前查看设计方向时使用此技能——将UI/UX想法转化为可丢弃的HTML原型。核心是生成2-3个可交互的变体,方便用户直观对比不同视觉方向,而非产出可上线的代码。
当用户说出以下类似需求时启用此技能:“快速制作这个页面的原型”、“展示X可能的样子”、“对比布局A和B”、“给我2-3种这个UI的方案”、“让我看看一些变体”、“在开发前先做个原型”。
When NOT to use this
不适用场景
- User wants a production component — use or build it properly
claude-design - User wants a polished one-off HTML artifact (landing page, deck) —
claude-design - User wants a diagram — ,
excalidrawarchitecture-diagram - The design is already locked — just build it
- 用户需要生产级组件——使用或按标准流程开发
claude-design - 用户需要精致的一次性HTML制品(着陆页、演示文档)——使用
claude-design - 用户需要图表——使用、
excalidrawarchitecture-diagram - 设计方案已确定——直接开发即可
If the user has the full GSD system installed
若用户已安装完整GSD系统
If shows up as a sibling skill (installed via ), prefer for the full workflow: persistent with MANIFEST, frontier mode analysis, consistency audits across past sketches, and integration with the rest of GSD. This skill is the lightweight standalone version — one-off sketching without the state machinery.
gsd-sketchnpx get-shit-done-cc --hermesgsd-sketch.planning/sketches/如果作为同级技能存在(通过安装),优先使用****完成全流程:它支持在目录下持久化存储并生成MANIFEST文件、前沿模式分析、跨历史原型的一致性审计,以及与GSD其他模块集成。本技能是轻量独立版本——无需状态机制的一次性原型制作工具。
gsd-sketchnpx get-shit-done-cc --hermesgsd-sketch.planning/sketches/Core method
核心流程
intake → variants → head-to-head → pick winner (or iterate)需求收集 → 生成变体 → 横向对比 → 选定方案(或迭代)1. Intake (skip if the user already gave you enough)
1. 需求收集(若用户已提供足够信息可跳过)
Before generating variants, get three things — one question at a time, not all at once:
- Feel. "What should this feel like? Adjectives, emotions, a vibe." — "calm, editorial, like Linear" tells you more than "minimal".
- References. "What apps, sites, or products capture the feel you're imagining?" — actual references beat abstract descriptions.
- Core action. "What's the single most important thing a user does on this screen?" — the variants should all serve this well; if they don't, they're just decoration.
Reflect each answer briefly before the next question. If the user already gave you all three upfront, skip straight to variants.
生成变体前,需依次获取以下三个信息,每次只提一个问题:
- 风格感受:“这个设计应该给人什么感觉?请用形容词、情绪或氛围描述。”——例如“平静、编辑风格、类似Linear”比“极简”更具参考性。
- 参考案例:“哪些应用、网站或产品符合你想象中的风格?”——实际案例比抽象描述更有效。
- 核心操作:“用户在这个页面上最重要的操作是什么?”——所有变体都应优先服务于该操作;否则只是无意义的装饰。
每个问题得到回答后简要确认,再提出下一个问题。若用户已一次性提供全部三个信息,可直接进入变体生成环节。
2. Variants (2-3, never 1, rarely 4+)
2. 生成变体(2-3个,绝不只1个,很少超过4个)
Produce 2-3 variants in one go. Each variant is a complete, standalone HTML file. Don't describe variants — build them. The point is comparison.
Each variant should take a different design stance, not different pixel values. Three good variant axes:
- Density: compact / airy / ultra-dense (pick two contrasting poles)
- Emphasis: content-first / action-first / tool-first
- Aesthetic: editorial / utilitarian / playful
- Layout: single-column / sidebar / split-pane
- Grounding: card-based / bare-content / document-style
Pick one axis and pull apart from it. Two variants that differ only in accent color are wasted effort — the user can't distinguish them.
Variant naming: describe the stance, not the number.
sketches/
├── 001-calm-editorial/
│ ├── index.html
│ └── README.md
├── 001-utilitarian-dense/
│ ├── index.html
│ └── README.md
└── 001-playful-split/
├── index.html
└── README.md一次性生成2-3个变体,每个变体都是完整独立的HTML文件。不要口头描述变体——直接制作出来,核心目标是方便对比。
每个变体应采取不同的设计立场,而非仅调整像素值。以下是几个有效的变体维度:
- 密度:紧凑/宽松/超密集(选择两个对立方向)
- 侧重点:内容优先/操作优先/工具优先
- 美学风格:编辑风/实用风/趣味风
- 布局:单栏/侧边栏/分栏
- 基础结构:卡片式/纯内容/文档式
选择一个维度展开设计。仅调整强调色的两个变体毫无意义——用户无法区分它们的核心差异。
变体命名:描述设计立场,而非仅用数字编号。
sketches/
├── 001-calm-editorial/
│ ├── index.html
│ └── README.md
├── 001-utilitarian-dense/
│ ├── index.html
│ └── README.md
└── 001-playful-split/
├── index.html
└── README.md3. Make them real HTML
3. 制作真实HTML文件
Each variant is a single self-contained HTML file:
- Inline — no build step, no external CSS
<style> - System fonts or one Google Font via
<link> - Tailwind via CDN () is fine
<script src="https://cdn.tailwindcss.com"></script> - Realistic fake content — actual sentences, actual names, not "Lorem ipsum"
- Interactive: links clickable, hovers real, at least one state transition (open/close, filter, toggle). A frozen static image is a worse spike than a sloppy animated one.
Open it in a browser. If it looks broken, fix it before showing the user.
Verify variants visually — use Hermes' browser tools. Don't just write HTML and hope it renders; load each variant and look at it:
browser_navigate(url="file:///absolute/path/to/sketches/001-calm-editorial/index.html")
browser_vision(question="Does this layout look clean and readable? Any visible bugs (overlapping text, unstyled elements, broken images)?")browser_visionDefault CSS reset + system font stack for fast starts:
html
<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>每个变体都是独立自包含的HTML文件:
- 使用内联——无需构建步骤,无需外部CSS
<style> - 使用系统字体或通过引入一款Google Font
<link> - 可通过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="Does this layout look clean and readable? Any visible bugs (overlapping text, unstyled elements, broken images)?")browser_vision快速启动的默认CSS重置+系统字体栈:
html
<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. Variant README
4. 变体README文档
Each variant's answers:
README.mdmarkdown
undefined每个变体的需包含以下内容:
README.mdmarkdown
undefinedVariant: {stance name}
变体:{立场名称}
Design stance
设计立场
One sentence on the principle driving this variant.
一句话描述驱动此变体的核心设计原则。
Key choices
关键选择
- Layout: ...
- Typography: ...
- Color: ...
- Interaction: ...
- 布局:...
- 排版:...
- 色彩:...
- 交互:...
Trade-offs
权衡取舍
- Strong at: ...
- Weak at: ...
- 优势:...
- 劣势:...
Best for
适用场景
- The kind of user or use case this variant actually serves
undefined- 此变体最适合的用户群体或使用场景
undefined5. Head-to-head
5. 横向对比
After all variants are built, present them as a comparison. Don't just list — opinionate:
markdown
undefined所有变体制作完成后,以对比形式呈现给用户。不要仅罗列——给出专业建议:
markdown
undefinedThree takes on the home screen
首页的三种设计方案
| Dimension | Calm editorial | Utilitarian dense | Playful split |
|---|---|---|---|
| Density | Low | High | Medium |
| Primary action visibility | Low | High | Medium |
| Scan-ability | High | Medium | Low |
| Feel | Calm, trusted | Sharp, tool-like | Inviting, energetic |
My take: Utilitarian dense for power users, calm editorial for content-forward audiences. Playful split is weakest — tries to do both and commits to neither.
Let the user pick a winner, or combine two into a hybrid, or ask for another round.| 维度 | 平静编辑风 | 实用紧凑风 | 趣味分栏风 |
|---|---|---|---|
| 密度 | 低 | 高 | 中等 |
| 核心操作可见性 | 低 | 高 | 中等 |
| 易读性 | 高 | 中等 | 低 |
| 整体感受 | 平静、可信 | 干练、工具化 | 亲切、有活力 |
专业建议:实用紧凑风适合高级用户,平静编辑风适合内容导向型受众。趣味分栏风表现最弱——试图兼顾两者却未能明确立场。
让用户选定最优方案,或结合两个变体生成混合方案,或要求进行下一轮迭代。Theming (when the project has a visual identity)
主题适配(当项目已有视觉标识时)
If the user has an existing theme (colors, fonts, tokens), put shared tokens in and them in each variant. Keep tokens minimal:
sketches/themes/tokens.css@importcss
/* 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;
}Don't over-tokenize a throwaway sketch — three colors and one font is usually enough.
若用户已有现成主题(色彩、字体、设计变量),可将共享变量存入,并在每个变体中通过引入。变量需保持精简:
sketches/themes/tokens.css@importcss
/* 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;
}不要为一次性原型过度设置变量——通常三种颜色+一种字体就足够。
Interactivity bar
交互性标准
A sketch is interactive enough when the user can:
- Click a primary action and something visible happens (state change, modal, toast, navigation feint)
- See one meaningful state transition (filter a list, toggle a mode, open/close a panel)
- Hover recognizable affordances (buttons, rows, tabs)
More than that is over-engineering a throwaway. Less than that is a screenshot.
一个原型的交互性达标需满足:
- 点击核心操作后有可见反馈(状态变化、弹窗、提示、模拟导航)
- 包含一个有意义的状态切换(筛选列表、切换模式、展开/收起面板)
- 可识别元素支持悬停(按钮、列表项、标签页)
超出以上标准属于过度设计,低于则只是静态截图。
Frontier mode (picking what to sketch next)
前沿模式(确定下一个原型方向)
If sketches already exist and the user says "what should I sketch next?":
- Consistency gaps — two winning variants from different sketches made independent choices that haven't been composed together yet
- Unsketched screens — referenced but never explored
- State coverage — happy path sketched, but not empty / loading / error / 1000-items
- Responsive gaps — validated at one viewport; does it hold at mobile / ultrawide?
- Interaction patterns — static layouts exist; transitions, drag, scroll behavior don't
Propose 2-4 named candidates. Let the user pick.
若已有原型,用户询问“接下来应该制作什么原型?”时,可从以下方向入手:
- 一致性缺口——不同原型中的最优方案存在未整合的独立设计选择
- 未制作的页面——已提及但未探索的页面
- 状态覆盖——已制作正常流程原型,但未覆盖空状态/加载中/错误/大量数据状态
- 响应式缺口——已在一种视口尺寸下验证,但未适配移动端/超宽屏
- 交互模式——已有静态布局,但未实现过渡动画、拖拽、滚动行为
提出2-4个命名候选方案,让用户选择。
Output
输出规范
- Create (or
sketches/if the user is using GSD conventions) in the repo root.planning/sketches/ - One subdir per variant: +
NNN-stance-name/index.htmlREADME.md - Tell the user how to open them: on macOS,
open sketches/001-calm-editorial/index.htmlon Linux,xdg-openon Windowsstart - Keep variants disposable — a sketch that you felt the need to preserve should be promoted into real project code, not curated as an asset
Typical tool sequence for one variant:
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="How does this look? Any obvious layout issues?")Repeat for each variant, then present the comparison table.
- 在仓库根目录创建(若用户遵循GSD规范则创建
sketches/).planning/sketches/ - 每个变体对应一个子目录:+
NNN-stance-name/index.htmlREADME.md - 告知用户打开方式:macOS使用,Linux使用
open sketches/001-calm-editorial/index.html,Windows使用xdg-openstart - 保持变体的可丢弃性——若你觉得需要保留某个原型,应将其升级为项目正式代码,而非作为资产留存
单个变体的典型工具操作流程:
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="How does this look? Any obvious layout issues?")重复以上流程制作每个变体,然后呈现对比表格。
Attribution
来源说明
Adapted from the GSD (Get Shit Done) project's workflow — MIT © 2025 Lex Christopherson (gsd-build/get-shit-done). The full GSD system ships persistent sketch state, theme/variant pattern references, and consistency-audit workflows; install with .
/gsd-sketchnpx get-shit-done-cc --hermes --global改编自GSD(Get Shit Done)项目的工作流——MIT协议 © 2025 Lex Christopherson(gsd-build/get-shit-done)。完整GSD系统支持原型状态持久化、主题/变体模式参考及一致性审计工作流;可通过安装。
/gsd-sketchnpx get-shit-done-cc --hermes --global