From harness
Use when the user says "/harness:design", "design the UI for", "how should this look", "plan the components", "UI for this feature", or wants to create component trees, layout descriptions, and interaction maps for a feature.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness:designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Design UI/UX for features in any codebase. Produce component trees, layout descriptions, data flow diagrams, and interaction maps. Adapts to the project's framework and component patterns via KB.
Design UI/UX for features in any codebase. Produce component trees, layout descriptions, data flow diagrams, and interaction maps. Adapts to the project's framework and component patterns via KB.
Check for .harness/kb/stack-profile.md. If missing, tell the user to run /harness:init first.
Based on the target app/section:
.harness/kb/stack-profile.md + .harness/kb/ui-patterns.md.harness/kb/data-layer.md.harness/kb/api-surface.mdDetermine:
ui-patterns.md to identify which app or section this targetsIf ambiguous, ask ONE question to clarify the target.
Read ui-patterns.md to understand:
Then check existing components in the target area before proposing new ones. Reference specific existing components by name.
Create these artifacts for the feature:
FeaturePage
├── FeatureHeader (title, actions)
├── FeatureContent
│ ├── FilterBar (uses existing filters pattern)
│ ├── DataView
│ │ ├── DataTable (follows existing table pattern)
│ │ └── EmptyState
│ └── DetailPanel
│ ├── DetailHeader
│ └── DetailBody
└── FeatureFooter (pagination, bulk actions)
Describe the visual layout in prose or ASCII wireframe. Reference the grid/layout system from ui-patterns.md.
Where data comes from, how it transforms, where it renders:
User actions and system responses:
| User Action | System Response | Component | Notes |
|---|---|---|---|
| Click filter | Re-fetch with params | FilterBar | Debounced |
| Select row | Open detail panel | DataTable | Slide-in |
| Need | Existing Component | Action |
|---|---|---|
| Data table | {existing table component} | Reuse with custom columns |
| Form | {existing form pattern} | Follow same pattern |
| Chart | None exists | Build new, follow {style} |
Present design artifacts. Iterate on:
After design artifacts are agreed upon, generate 3 standalone HTML mockups for visual comparison.
Compose a variant brief from the finalized design artifacts:
ui-patterns.md and the live codebase for color usage, spacing, and layout conventions to match the project's look and feelGenerate 3 HTML files, each differing in at least one meaningful UX dimension:
Each file must be:
.html file with <script src="https://cdn.tailwindcss.com">Save to {target_dir}/{topic}-variant-a.html, -variant-b.html, -variant-c.html.
Present to the user:
"I've generated 3 HTML mockups for visual comparison. Open these in your browser:
A) [approach name] — [1-line description]
B) [approach name] — [1-line description]
C) [approach name] — [1-line description]
Which direction do you prefer? (or 'skip' to proceed without variants)"
Record the chosen variant letter for inclusion in the design doc.
Save to {target_dir}/design-{slug}-{date}.md with frontmatter:
---
title: "{design title}"
type: design
date: {ISO date}
target-app: "{app name from ui-patterns.md}"
variants: completed | skipped
chosen-variant: "{letter}" # if variants completed
next-skill: prototype
---
If variants were completed, add a section to the design doc body:
## Visual Direction
Variant **[letter]** selected.
Approach: [approach name — e.g., "Dense sidebar layout"]
Key visual decisions:
- [differentiators from the chosen variant]
Also store via MCP: call harness_add_skillflow_step with skill_type: "design".
/harness:prototype to build this based on variant [letter]"/harness:ground to verify the data layer"/harness:ground insteadnpx claudepluginhub lukaleskovsek/makers-and-breakers-claude-marketplace --plugin harnessCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.