Product Design Workflow Bundle
XiaomiMiMo/MiMo-Code
Entry point to a bundle of product design workflows covering context, research, audits, ideation, URL or image to code, design QA and sharing a prototype.
Pushes an agent past generic defaults when designing dashboards, admin panels, SaaS apps and tools, with attention to structure, type, navigation and how data is shown.
$ npx skills add holaboss-ai/holaOS --skill interface-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install holaboss-ai/holaOS interface-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/holaboss-ai/holaOS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/runtime/harnesses/src/embedded-skills/interface-design .claude/skills/interface-design && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "interface-design" agent skill from https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-design into .claude/skills/interface-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add holaboss-ai/holaOS --skill interface-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install holaboss-ai/holaOS interface-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holaboss-ai/holaOS.git skills-src && mkdir -p .agents/skills && cp -r skills-src/runtime/harnesses/src/embedded-skills/interface-design .agents/skills/interface-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "interface-design" agent skill from https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-design into .agents/skills/interface-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add holaboss-ai/holaOS --skill interface-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install holaboss-ai/holaOS interface-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holaboss-ai/holaOS.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/runtime/harnesses/src/embedded-skills/interface-design .cursor/skills/interface-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "interface-design" agent skill from https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-design into .cursor/skills/interface-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/holaboss-ai/holaOS.git --path runtime/harnesses/src/embedded-skills/interface-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add holaboss-ai/holaOS --skill interface-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install holaboss-ai/holaOS interface-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holaboss-ai/holaOS.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/runtime/harnesses/src/embedded-skills/interface-design .gemini/skills/interface-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "interface-design" agent skill from https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-design into .gemini/skills/interface-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install holaboss-ai/holaOS interface-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add holaboss-ai/holaOS --skill interface-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/holaboss-ai/holaOS.git skills-src && mkdir -p .github/skills && cp -r skills-src/runtime/harnesses/src/embedded-skills/interface-design .github/skills/interface-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "interface-design" agent skill from https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-design into .github/skills/interface-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add holaboss-ai/holaOS --skill interface-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install holaboss-ai/holaOS interface-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/holaboss-ai/holaOS.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/runtime/harnesses/src/embedded-skills/interface-design .opencode/skills/interface-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "interface-design" agent skill from https://github.com/holaboss-ai/holaOS/tree/main/runtime/harnesses/src/embedded-skills/interface-design into .opencode/skills/interface-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
interface-designPushes an agent past generic defaults when designing dashboards, admin panels, SaaS apps and tools, with attention to structure, type, navigation and how data is shown.
The skill is for interface design of dashboards, admin panels, SaaS apps, tools, settings pages and data interfaces, and it sends landing pages and marketing sites to `/frontend-design`. It starts from a warning that the agent will otherwise produce generic output, because intent lives in prose while code generation pulls from familiar patterns, so following a process is not enough unless defaults are caught as they appear.
It names where defaults hide: typography treated as a container instead of the design itself, navigation treated as scaffolding, and data shown as bare numbers rather than something that explains what the number means and what the viewer will do with it. Reference files cover principles, critique, validation and an example. The excerpt is truncated, so the full process steps are not described.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4684714. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Interface Design for Dashboards and Apps loads about 6k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 47 tokens; SKILL.md has 3,397 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from holaboss-ai/holaOS at commit 4684714, republished under its MIT licence (© holaboss-ai). 3,397 words, ~6,006 tokens.
.claude/skills/interface-design/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Build interface design with craft and consistency.
Use for: Dashboards, admin panels, SaaS apps, tools, settings pages, data interfaces.
Not for: Landing pages, marketing sites, campaigns. Redirect those to /frontend-design.
You will generate generic output. Your training has seen thousands of dashboards. The patterns are strong.
You can follow the entire process below — explore the domain, name a signature, state your intent — and still produce a template. Warm colors on cold structures. Friendly fonts on generic layouts. "Kitchen feel" that looks like every other app.
This happens because intent lives in prose, but code generation pulls from patterns. The gap between them is where defaults win.
The process below helps. But process alone doesn't guarantee craft. You have to catch yourself.
Defaults don't announce themselves. They disguise themselves as infrastructure — the parts that feel like they just need to work, not be designed.
Typography feels like a container. Pick something readable, move on. But typography isn't holding your design — it IS your design. The weight of a headline, the personality of a label, the texture of a paragraph. These shape how the product feels before anyone reads a word. A bakery management tool and a trading terminal might both need "clean, readable type" — but the type that's warm and handmade is not the type that's cold and precise. If you're reaching for your usual font, you're not designing.
Navigation feels like scaffolding. Build the sidebar, add the links, get to the real work. But navigation isn't around your product — it IS your product. Where you are, where you can go, what matters most. A page floating in space is a component demo, not software. The navigation teaches people how to think about the space they're in.
Data feels like presentation. You have numbers, show numbers. But a number on screen is not design. The question is: what does this number mean to the person looking at it? What will they do with it? A progress ring and a stacked label both show "3 of 10" — one tells a story, one fills space. If you're reaching for number-on-label, you're not designing.
Token names feel like implementation detail. But your CSS variables are design decisions. --ink and --parchment evoke a world. --gray-700 and --surface-2 evoke a template. Someone reading only your tokens should be able to guess what product this is.
Spatial composition feels like consequence. You write the components top-to-bottom in the file, the JSX comes out top-to-bottom on screen. But spatial composition isn't what falls out of writing JSX — it IS the design. Where things live on the viewport, what sits next to what, what's above the fold, which information compresses into a horizontal strip vs which gets its own row — these are the load-bearing decisions, made BEFORE you write a single component. Single-column scroll is the failure mode of not having decided. Reaching for "stack the cards" is reaching for a default.
The trap is thinking some decisions are creative and others are structural. There are no structural decisions. Everything is design. The moment you stop asking "why this?" is the moment defaults take over.
This is the section that gets skipped because it feels like infrastructure. It isn't.
Before any visual treatment — before tokens, before color, before typography — answer these about the viewport:
How many distinct information regions does this screen have? Three. Five. Eight. Name them by content (not by visual): "open work counts split by relation", "trend over time", "the queue of items that need my attention right now". A region is a coherent answer to one user question. If you can't say what question a region answers, it isn't a region — it's filler.
Which regions belong side-by-side? Related questions sit together. If "current state" and "where it's heading" are both top-of-mind, put them in one row, not stacked. If "summary metrics" and "the actionable queue" answer different questions, give them spatial separation. Side-by-side is a statement that two things are peers. Stacking is a statement that the lower one is a continuation of the upper one. Pick on purpose.
What lives above the fold? At a 1280×800 viewport, what does the user see before scrolling? It should answer "what state is this in right now" in one glance. If the answer requires scrolling past three full-width hero cards to reach the actionable data, the layout is wrong. The fold is a hierarchy declaration whether you decide it or not.
Where does horizontal compression help?
3–6 items of similar shape — KPI counts, status pills, filter chips — belong in a horizontal strip in ONE row. One number per row is wasted vertical space when the items are comparable; it tells the user "these are separate concerns" when they're actually facets of the same thing. Reach for grid-cols-3 / grid-cols-4 / grid-cols-6 whenever the items are conceptually parallel.
Where does vertical separation matter? Distinct concepts get their own band. The metrics strip is one thing. The actionable queue is another. The settings panel is a third. Each gets its own vertical region with explicit space between. Don't compress sections that aren't peers just to save scrolling.
Where does the user's eye land first? Pick a landing point. Page title, primary metric, primary action. Make it visually heavier than its neighbors. From the landing point, the eye should naturally flow toward the one action the user is most likely to want — not bounce between equally-weighted regions wondering where to start.
These five questions cover dashboards, admin panels, settings, list views, detail views. If your answer to any of them is "I didn't decide", the default fired. Single-column top-to-bottom is the shape that emerges when none of these questions were asked.
Common shapes that emerge from honest answers:
None of these is right by default. Pick the one that answers THIS app's questions.
Before touching code, answer these. Not in your head — out loud, to yourself or the user.
Who is this human? Not "users." The actual person. Where are they when they open this? What's on their mind? What did they do 5 minutes ago, what will they do 5 minutes after? A teacher at 7am with coffee is not a developer debugging at midnight is not a founder between investor meetings. Their world shapes the interface.
What must they accomplish? Not "use the dashboard." The verb. Grade these submissions. Find the broken deployment. Approve the payment. The answer determines what leads, what follows, what hides.
What should this feel like? Say it in words that mean something. "Clean and modern" means nothing — every AI says that. Warm like a notebook? Cold like a terminal? Dense like a trading floor? Calm like a reading app? The answer shapes color, type, spacing, density — everything.
If you cannot answer these with specifics, stop. Ask the user. Do not guess. Do not default.
For every decision, you must be able to explain WHY.
If your answer is "it's common" or "it's clean" or "it works" — you haven't chosen. You've defaulted. Defaults are invisible. Invisible choices compound into generic output.
The test: If you swapped your choices for the most common alternatives and the design didn't feel meaningfully different, you never made real choices.
If another AI, given a similar prompt, would produce substantially the same output — you have failed.
This is not about being different for its own sake. It's about the interface emerging from the specific problem, the specific user, the specific context. When you design from intent, sameness becomes impossible because no two intents are identical.
When you design from defaults, everything looks the same because defaults are shared.
Saying "warm" and using cold colors is not following through. Intent is not a label — it's a constraint that shapes every decision.
If the intent is warm: surfaces, text, borders, accents, semantic colors, typography — all warm. If the intent is dense: spacing, type size, information architecture — all dense. If the intent is calm: motion, contrast, color saturation — all calm.
Check your output against your stated intent. Does every token reinforce it? Or did you state an intent and then default anyway?
This is where defaults get caught — or don't.
Generic output: Task type → Visual template → Theme Crafted output: Task type → Product domain → Signature → Structure + Expression
The difference: time in the product's world before any visual or structural thinking.
Do not propose any direction until you produce all four:
Domain: Concepts, metaphors, vocabulary from this product's world. Not features — territory. Minimum 5.
Color world: What colors exist naturally in this product's domain? Not "warm" or "cool" — go to the actual world. If this product were a physical space, what would you see? What colors belong there that don't belong elsewhere? List 5+.
Signature: One element — visual, structural, or interaction — that could only exist for THIS product. If you can't name one, keep exploring.
Defaults: 3 obvious choices for this interface type — visual AND structural. You can't avoid patterns you haven't named.
Your direction must explicitly reference:
The test: Read your proposal. Remove the product name. Could someone identify what this is for? If not, it's generic. Explore deeper.
Before showing the user, look at what you made.
Ask yourself: "If they said this lacks craft, what would they mean?"
That thing you just thought of — fix it first.
Your first output is probably generic. That's normal. The work is catching it before the user has to.
Run these against your output before presenting:
The swap test: If you swapped the typeface for your usual one, would anyone notice? If you swapped the layout for a standard dashboard template, would it feel different? The places where swapping wouldn't matter are the places you defaulted.
The squint test: Blur your eyes. Can you still perceive hierarchy? Is anything jumping out harshly? Craft whispers.
The signature test: Can you point to five specific elements where your signature appears? Not "the overall feel" — actual components. A signature you can't locate doesn't exist.
The token test: Read your CSS variables out loud. Do they sound like they belong to this product's world, or could they belong to any project?
If any check fails, iterate before showing.
This is the backbone of craft. Regardless of direction, product type, or visual style — this principle applies to everything. You should barely notice the system working. When you look at Vercel's dashboard, you don't think "nice borders." You just understand the structure. The craft is invisible — that's how you know it's working.
Surfaces stack. A dropdown sits above a card which sits above the page. Build a numbered system — base, then increasing elevation levels. In dark mode, higher elevation = slightly lighter. In light mode, higher elevation = slightly lighter or uses shadow.
Each jump should be only a few percentage points of lightness. You can barely see the difference in isolation. But when surfaces stack, the hierarchy emerges. Whisper-quiet shifts that you feel rather than see.
Key decisions:
Borders should disappear when you're not looking for them, but be findable when you need structure. Low opacity rgba blends with the background — it defines edges without demanding attention. Solid hex borders look harsh in comparison.
Build a progression — not all borders are equal. Standard borders, softer separation, emphasis borders, maximum emphasis for focus rings. Match intensity to the importance of the boundary.
The squint test: Blur your eyes at the interface. You should still perceive hierarchy — what's above what, where sections divide. But nothing should jump out. No harsh lines. No jarring color shifts. Just quiet structure.
This separates professional interfaces from amateur ones. Get this wrong and nothing else matters.
Every pattern has infinite expressions. No interface should look the same.
A metric display could be a hero number, inline stat, sparkline, gauge, progress bar, comparison delta, trend badge, or something new. A dashboard could emphasize density, whitespace, hierarchy, or flow in completely different ways. Even sidebar + cards has infinite variations in proportion, spacing, and emphasis.
Before building, ask:
NEVER produce identical output. Find the right shape for THIS data — same-shape metrics get a horizontal strip in one row, distinct sections get spatial separation, related items get a grid. Single-column-everything signals you skipped the spatial decision; identical sidebar widths and identical card grids across every dashboard signal a template.
The architecture and components should emerge from the task and data, executed in a way that feels fresh. Linear's cards don't look like Notion's. Vercel's metrics don't look like Stripe's. Same concepts, infinite expressions.
Every product exists in a world. That world has colors.
Before you reach for a palette, spend time in the product's world. What would you see if you walked into the physical version of this space? What materials? What light? What objects?
Your palette should feel like it came FROM somewhere — not like it was applied TO something.
Beyond Warm and Cold: Temperature is one axis. Is this quiet or loud? Dense or spacious? Serious or playful? Geometric or organic? A trading terminal and a meditation app are both "focused" — completely different kinds of focus. Find the specific quality, not the generic label.
Color Carries Meaning: Gray builds structure. Color communicates — status, action, emphasis, identity. Unmotivated color is noise. One accent color, used with intention, beats five colors used without thought.
Every time you write UI code — even small additions — state:
Intent: [who is this human, what must they do, how should it feel]
Palette: [colors from your exploration — and WHY they fit this product's world]
Depth: [borders / shadows / layered — and WHY this fits the intent]
Surfaces: [your elevation scale — and WHY this color temperature]
Typography: [your typeface — and WHY it fits the intent]
Spacing: [your base unit]This checkpoint is mandatory. It forces you to connect every technical choice back to intent.
If you can't explain WHY for each choice, you're defaulting. Stop and think.
Every color in your interface should trace back to a small set of primitives: foreground (text hierarchy), background (surface elevation), border (separation hierarchy), brand, and semantic (destructive, warning, success). No random hex values — everything maps to primitives.
Don't just have "text" and "gray text." Build four levels — primary, secondary, tertiary, muted. Each serves a different role: default text, supporting text, metadata, and disabled/placeholder. Use all four consistently. If you're only using two, your hierarchy is too flat.
Borders aren't binary. Build a scale that matches intensity to importance — standard separation, softer separation, emphasis, maximum emphasis. Not every boundary deserves the same weight.
Form controls have specific needs. Don't reuse surface tokens — create dedicated ones for control backgrounds, control borders, and focus states. This lets you tune interactive elements independently from layout surfaces.
Pick a base unit and stick to multiples. Build a scale for different contexts — micro spacing for icon gaps, component spacing within buttons and cards, section spacing between groups, major separation between distinct areas. Random values signal no system.
Keep it symmetrical. If one side has a value, others should match unless content naturally requires asymmetry.
Choose ONE approach and commit:
Don't mix approaches.
Sharper feels technical. Rounder feels friendly. Build a scale — small for inputs and buttons, medium for cards, large for modals. Don't mix sharp and soft randomly.
Build distinct levels distinguishable at a glance. Headlines need weight and tight tracking for presence. Body needs comfortable weight for readability. Labels need medium weight that works at smaller sizes. Data needs monospace with tabular number spacing for alignment. Don't rely on size alone — combine size, weight, and letter-spacing.
A metric card doesn't have to look like a plan card doesn't have to look like a settings card. Design each card's internal structure for its specific content — but keep the surface treatment consistent: same border weight, shadow depth, corner radius, padding scale.
Native <select> and <input type="date"> render OS-native elements that cannot be styled. Build custom components — trigger buttons with positioned dropdowns, calendar popovers, styled state management.
Icons clarify, not decorate — if removing an icon loses no meaning, remove it. Choose one icon set and stick with it. Give standalone icons presence with subtle background containers.
Fast micro-interactions, smooth easing. Larger transitions can be slightly longer. Use deceleration easing. Avoid spring/bounce in professional interfaces.
Every interactive element needs states: default, hover, active, focus, disabled. Data needs states too: loading, empty, error. Missing states feel broken.
Screens need grounding. A data table floating in space feels like a component demo, not a product. Include navigation showing where you are in the app, location indicators, and user context. When building sidebars, consider same background as main content with border separation rather than different colors.
Dark interfaces have different needs. Shadows are less visible on dark backgrounds — lean on borders for definition. Semantic colors (success, warning, error) often need slight desaturation. The hierarchy system still applies, just with inverted values.
Be invisible. Don't announce modes or narrate process.
Never say: "I'm in ESTABLISH MODE", "Let me check system.md..."
Instead: Jump into work. State suggestions with reasoning.
Lead with your exploration and recommendation, then confirm:
"Domain: [5+ concepts from the product's world]
Color world: [5+ colors that exist in this domain]
Signature: [one element unique to this product]
Rejecting: [default 1] → [alternative], [default 2] → [alternative], [default 3] → [alternative]
Direction: [approach that connects to the above]"
[Ask: "Does that direction feel right?"]Read .interface-design/system.md and apply. Decisions are made.
When you finish building something, always offer to save:
"Want me to save these patterns for future sessions?"If yes, write to .interface-design/system.md:
Add patterns when a component is used 2+ times, is reusable across the project, or has specific measurements worth remembering. Don't save one-off components, temporary experiments, or variations better handled with props.
If system.md defines values, check against them: spacing on the defined grid, depth using the declared strategy throughout, colors from the defined palette, documented patterns reused instead of reinvented.
This compounds — each save makes future work faster and more consistent.
For more detail on specific topics:
references/principles.md — Code examples, specific values, dark modereferences/validation.md — Memory management, when to update system.mdreferences/critique.md — Post-build craft critique protocol/interface-design:status — Current system state/interface-design:audit — Check code against system/interface-design:extract — Extract patterns from code/interface-design:critique — Critique your build for craft, then rebuild what defaulted© holaboss-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in runtime/harnesses/src/embedded-skills/interface-design of holaboss-ai/holaOS.
Open the folder on GitHubat commit 4684714
We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in holaboss-ai/holaOS, which our catalogue first saw on October 7, 2026.
Interface Design for Dashboards and Apps next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Interface Design for Dashboards and Apps this skillholaboss-ai/holaOS | 11k | 3 repos | ~6k | Automated safety check: Pass | MIT | |
| Product Design Workflow BundleXiaomiMiMo/MiMo-Code | 14k | — | ~721 | Automated safety check: Pass | MIT | |
| Design Reviewjezweb/claude-skills | 1.1k | — | ~2.1k | Automated safety check: Pass | MIT | |
| UI Reviewespennilsen/pi | 122 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Design Critiquemohitagw15856/pm-claude-skills | 1.4k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Steve Jobs Design Reviewwondelai/skills | 2.4k | — | ~4.5k | Automated safety check: Pass | MIT |
XiaomiMiMo/MiMo-Code
Entry point to a bundle of product design workflows covering context, research, audits, ideation, URL or image to code, design QA and sharing a prototype.
jezweb/claude-skills
Review a web app or page for visual design quality — layout, typography, spacing, colour, hierarchy, consistency, interaction patterns, and responsive behaviour.
espennilsen/pi
Review UI designs and implementations for accessibility, consistency, usability, and visual quality.
mohitagw15856/pm-claude-skills
Give structured, constructive feedback on any design using UX frameworks.
wondelai/skills
Review designs, products, and features with Steve Jobs' standards: ruthless simplicity, focus, and end-to-end excellence.
codeswithroh/tastemaker
Grounds AI-built interfaces in real reference images and a saved personal taste profile, so UI work avoids the generic defaults of typical generated apps.
holaboss-ai/holaOS
Edits an already-installed workspace capability's manifest to add an MCP server, a skill, an integration or agent guidance, then reinstalls it so the change takes effect on the next run.
holaboss-ai/holaOS
Builds the visual layer of a holaOS dashboard app with TanStack Start and @holaboss/ui, starting from a bundled reference instead of a blank page.
holaboss-ai/holaOS
Bundles one or more existing skills and the integrations they need into a single named, installable capability.
holaboss-ai/holaOS
Guidelines for driving a workspace's embedded browser with the fewest tool calls, smallest state reads and no needless screenshots or waits.
holaboss-ai/holaOS
Validates or debugs a workflow in the embedded browser with a reproducible, evidence-first loop that separates product failures from wait or locator problems.
holaboss-ai/holaOS
Adds, removes or updates MCP servers in a holaOS workspace by editing workspace.yaml in the mcp_registry format, with rules for headers, local servers and tool allowlists.
Categories
Pushes an agent past generic defaults when designing dashboards, admin panels, SaaS apps and tools, with attention to structure, type, navigation and how data is shown. The skill is for interface design of dashboards, admin panels, SaaS apps, tools, settings pages and data interfaces, and it sends landing pages and marketing sites to `/frontend-design`. It starts from a warning that the agent will otherwise produce generic output, because intent lives in prose while code generation pulls from familiar patterns, so following a process is not enough unless defaults are caught as they appear.
Interface Design for Dashboards and Apps fits situations like: designing a dashboard or admin panel; building a settings page or data-heavy interface; critiquing an app interface that looks generic.
Run `npx skills add holaboss-ai/holaOS --skill interface-design -a claude-code`. Or copy the skill folder (runtime/harnesses/src/embedded-skills/interface-design in holaboss-ai/holaOS) into .claude/skills/interface-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add holaboss-ai/holaOS --skill interface-design -a codex`. Or copy the skill folder (runtime/harnesses/src/embedded-skills/interface-design in holaboss-ai/holaOS) into .agents/skills/interface-design in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add holaboss-ai/holaOS --skill interface-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/interface-design, .gemini/skills/interface-design, .github/skills/interface-design and .opencode/skills/interface-design in your project.
SKILL.md names no scripts, command-line tools or credentials: Interface Design for Dashboards and Apps is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Interface Design for Dashboards and Apps is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Interface Design for Dashboards and Apps: Product Design Workflow Bundle (XiaomiMiMo/MiMo-Code, 14k stars), Design Review (jezweb/claude-skills, 1.1k stars), UI Review (espennilsen/pi, 122 stars) and Design Critique (mohitagw15856/pm-claude-skills, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
holaboss-ai (a GitHub organization) maintains it in holaboss-ai/holaOS, which has 11,449 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on August 21, 2026.
Source: holaboss-ai/holaOS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.