From tw93-claude-health
Produces distinctive production-grade UI for components, pages, or visual interfaces. Handles screenshot-driven iteration for visual complaints.
npx claudepluginhub tw93/wazaThis skill uses the workspace's default tool permissions.
Prefix your first line with 🥷 inline, not as its own paragraph.
Creates distinctive, non-generic UI designs with aesthetic direction and wireframes, or polishes existing UI code post-implementation. Use for UI design, layouts, wireframing, cleanup, or componentization.
Generates distinctive, production-grade frontend code for web components, pages, and apps with bold, creative UX designs in styles like brutalist or retro-futuristic, avoiding generic AI aesthetics.
Generates distinctive production-grade frontend UIs for web components, pages, and apps with bold creative designs avoiding generic AI aesthetics.
Share bugs, ideas, or general feedback.
Prefix your first line with 🥷 inline, not as its own paragraph.
If it could have been generated by a default prompt, it is not good enough.
Activate when the user sends a screenshot or image alongside a complaint ("这里很丑", "这个不对", "fix this", "looks wrong"). The existing product is the direction. Skip the five-question direction lock.
Flow:
Boundary: if the fix requires changing 3 or more components, or if it reveals a direction problem rather than a specific bug, pause and run the full direction lock before continuing.
Before writing any code, ask the user directly, using the environment's native question or approval mechanism if it has one:
Who uses this, and in what context? Analyst dashboard differs from landing page or onboarding flow. See "App shell exception" below if the answer is a sidebar + main workspace layout.
What is the aesthetic direction? Name it precisely: dense editorial, raw terminal, ink-on-paper, brutalist grid, warm analog. "Clean and modern" is not a direction. If the user names a reference site or product ("feels like Linear / Claude.ai / Vercel"), do not accept it as a direction -- extract 3 concrete properties from it: button radius philosophy, surface depth treatment (shadow vs background step vs border), and accent color family. Name those instead.
Shortcut when the reference is a well-known brand (Linear, Stripe, Claude, Vercel, Apple, Tesla, Notion, Figma, Airbnb, Spotify, and ~56 others catalogued in awesome-design-md -- see the brand preset section in references/design-reference.md): ask the user whether to pull the curated preset via npx getdesign@latest add <brand>. If they approve, run it, read the generated DESIGN.md at project root, then do the 3-property decomposition against that file rather than from memory. The preset is a starting point, not a direction -- the user still names the aesthetic precisely, and this skill's reflex-font blocklist and absolute bans still win on any conflict.
What is the one thing this leaves in memory? A typeface, color system, unexpected motion, asymmetric layout. Pick one and make it obvious.
What are the hard constraints? Framework, bundle size, contrast minimums, keyboard accessibility.
What is the signature micro-interaction? Scale on press, staggered reveal, or contextual icon animation. Pick one and know exactly how it's implemented.
Do not proceed until all five are answered.
When the user provides a repository URL or pastes source code of an existing product to recreate or extend: the file tree is a menu, not the meal. Do not reconstruct the UI from memory or training data. Instead, read the actual source:
theme.ts, colors.ts, tokens.css, _variables.scss, or equivalentLift exact values: hex codes, spacing scale entries, font stacks, border radii. A rough approximation is not pixel fidelity.
Only attach the target component folder or package. Exclude .git, node_modules, dist, and lock files. Dragging in an entire monorepo pollutes the context with irrelevant code and degrades output quality.
When the answer to question 1 is an app shell (Slack, Linear, Notion class):
active:scale-95references/design-reference.md)State the chosen direction in one sentence, then load references/design-reference.md and check the tech stack conflicts table. Name the single CSS strategy before writing the first component.
Summarize the direction as three lines before writing any code:
For production or multi-page UIs, expand the thesis into the 9-section DESIGN.md scaffold in references/design-reference.md (theme, palette, typography, components, layout, depth, do/don't, responsive, prompt guide). For a single component, the three lines are sufficient.
references/design-reference.md is already loaded during direction lock. It owns the full rules: typography, OKLCH color, motion timings, layout defaults, CSS-pattern bans, accessibility baseline, and complexity matching. Apply them. Do not restate them here.
After every third component or one complete page section (whichever comes first), stop and check:
Do not wait until handoff to run the AI Slop Test. Catching drift early costs one component; catching it at handoff costs the entire build.
Give at least 3 variations, spread across genuinely different dimensions:
| What happened | Rule |
|---|---|
| Used Inter as the display font | It communicates nothing. Pick something with a personality. |
| Three cards, identical shadows, identical padding -- a template | If swapping content doesn't require layout changes, redo it. |
| Claimed it looked right without opening a browser | Code correct in your head can look broken in the browser. Open it. |
| Chose glassmorphism, ignored the mobile constraint | backdrop-filter is expensive on low-power devices. Name the tradeoff. |
| Colors that "go with everything" go with nothing | Commit to a dominant color plus one sharp accent. |
| State transitions jittered because element sizes changed per state | All states must occupy the same layout footprint; use min-height or fixed dimensions. |
| Brand disappeared when the nav was hidden | Brand test: if the first viewport could belong to another brand after removing the nav, the branding is too weak. |
| Copy-heavy hero that nobody reads | If deleting 30% of the copy improves the page, keep deleting. Each section gets one job: explain, prove, deepen, or convert. |
| Dashboard built like a marketing page | App/dashboard surfaces need utility copy and a working surface first. No hero section by default. |
| Every project ended up with the same look | Vary light/dark, serif/sans, dense/spacious. If it could have been the last project, it is not designed for this one. |
Heavy border: 1px solid on every container, flat buttons, no depth | This is 2015 UI kit default. Replace with shadow-step depth, active:scale-95 on buttons, translucent borders (border/30). |
| Light-mode app: white panel on white background, visually indistinguishable | Adjacent nested surfaces must differ visually. Either background step (sidebar vs main ≥4% lightness difference) or shadow minimum 0 1px 3px rgba(0,0,0,0.10). |
| Added an extra section because it "felt incomplete" | Ask first. The user knows their audience; you do not. If you think more content would help, surface the suggestion as a question, do not ship it unilaterally. |
| Tried to generate a logo, app icon, or brand illustration | Icons, naming, and brand identity require human taste and judgment. Use a labeled placeholder and ask the user to supply the real asset. |
| Moved tab bar / sidebar to a new edge, neighbours overlapped or resized awkwardly | Repositioning a chrome element changes the bounding box of every neighbour. After the move, re-measure the safe area against window controls (traffic lights on macOS), title, and any floating overlays. Verify at narrowest supported width. |
Run these litmus checks before writing the handoff summary:
If any check fails, fix it first. Then revisit the common traps list from references/design-reference.md (already loaded during direction lock; do not re-read the file). Then ask the user to open the result in a browser and confirm it looks right at full width. Also check at 375px width: resize the browser or use DevTools device emulation. If the layout breaks, content overflows, or text is unreadable at mobile width, fix it before handing off. Do not hand off until both checks pass.
End with:
After handoff, stop. Do not iterate unless the user requests changes.
Activate when: resume, white paper, one-pager, PDF, print, spacing, typography, or styled HTML document
Lock three constraints first:
Then measure and suggest:
Output: specific CSS changes with before/after line counts.