Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/doublej/consult-user-mcp/build-uigit clone --depth 1 https://github.com/doublej/consult-user-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/doublej/consult-user-mcp/build-ui)<a href="https://agentmods.dev/commands/doublej/consult-user-mcp/build-ui"><img src="https://agentmods.dev/badge/commands/doublej/consult-user-mcp/build-ui.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00026 | $0.03836 |
| Opus 5 | $0.00013 | $0.01918 |
| Sonnet 5 | $0.00005 | $0.00767 |
| Haiku 4.5 | $0.00003 | $0.00384 |
Grade A, and why
build-ui scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 247 lines — stays where its author put it; the contents beside it link to each section on GitHub.
<visual_direction> $ARGUMENTS </visual_direction>
If <visual_direction> is empty, stop and ask for it in one sentence. Do not invent one.
If it names a file or a design-handoff archive, unpack it to your scratchpad and read it before anything else. A handoff usually contains two kinds of document and they are not equal:
- A decision sheet ("pick one from each row") is a menu of options that may never have been answered. It is not the direction.
- A resolved system ("locked system: …", a logo-construction page, exported assets) carries the picks that were actually made. That is the direction. Where the two disagree, the resolved system wins.
Read the exported assets too — an .svg mark tells you the final geometry and which element owns the accent.
A handoff may quote values from the current Theme.swift. Those are the appearance you are blind to. Take the
system (which hue, which ground, which face, which element carries the accent) and discard any literal value
it attributes to today's build.
<why_this_replaces_build_skin>
The previous attempt used /build-skin, which scoped the work to the skin seam and told the agent that the
container's furniture — report control, project badge, note pane — was "palette only", and that the shipped
prose renderer had to be reused. Those components are most of the pixels on a body-heavy surface. The result
was a careful palette swap on somebody else's layout, and it was correctly rejected.
UI-RENDERING-BOUNDARY.md is the correction. Read it in full before writing anything. It moves the seam,
lists exactly what you keep and what you write, and carries the behaviour embedded in each component you are
replacing. Everything below assumes you have read it.
</why_this_replaces_build_skin>
Treat the blindfold as a rule, not just a wall:
- Do not read, search, reconstruct, or ask about the current appearance. If a tool call is denied, that is the system working. Move on — never route around it with a different tool, a shell command, or git history.
- The deny-list is not airtight and you must not lean on it.
Theme/,Components/,Dialogs/and the existing skins hold the current appearance. If you find yourself about to open one, the answer is inUI-BEHAVIOUR-SPECIFICATION.mdor inUI-RENDERING-BOUNDARY.md§4 — go read that instead. Services/andModels/are not blocked and you will need them: the key router, the focus manager, the cooldown gate, the request and response models. Read those freely. They hold no pixels.- Never run a dialog without
DIALOG_SKINset to your own id. The default renders the current UI. - Screenshot only the window id returned by
test-cases/capture-dialog.swift, never the screen or another window. Do not open the built app's other windows, the docs site, or any image in the repo. - Build output quotes source from files you must not read. Filter it — print only error headlines from your own paths. Write the filter into a script rather than reading raw build logs.
If you catch yourself reasoning from "how it probably looks today", stop.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 247 lines · 26 tokens per session scan A eb0f4acfc9ad
build-ui is a command published in the GitHub repository doublej/consult-user-mcp (40 stars, last pushed 16d ago), licensed MIT. It adds 26 tokens to every session and 3,836 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
create-excalidraw-dataflow
description: "Create data flow diagram (Excalidraw) (Use any time you need a diagram)".
create-excalidraw-diagram
description: "Create system architecture or technical diagram (Excalidraw) (Use any time you need a diagram)".
bmad-correct-course
Assess the impact of a significant change during sprint execution across the PRD, epics, architecture, and UX documents, and produce a sprint change proposal. Use when the user says "correct course" or "propose sprint change".
animation-extract
Extract animation and transition patterns from prompt inference and image references for design system documentation.
imitate-auto
UI design workflow with direct code/image input for design token extraction and prototype generation.
workflow:ui-design:import-from-code
Import design system from code files (CSS/JS/HTML/SCSS) with automatic file discovery and parallel agent analysis.