- name
SKILL.md
스킬 파일은 게시자의 저장소에 그대로 있습니다.
복사한 명령을 터미널에 붙여넣습니다. 이 SKILL.md가 해당 에이전트에 설치됩니다.
npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a cursor -y복사한 명령을 터미널에 붙여넣습니다. 이 SKILL.md가 해당 에이전트에 설치됩니다.
npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a claude-code -y복사한 명령을 터미널에 붙여넣습니다. 이 SKILL.md가 해당 에이전트에 설치됩니다.
npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a codex -y복사한 명령을 터미널에 붙여넣습니다. 이 SKILL.md가 해당 에이전트에 설치됩니다.
npx skills add plugin87/ux-ui-agent-skills --skill data-dashboard -a grok -y복사한 메시지를 Grok Bot 채팅에 보냅니다. Bot이 GitHub에서 이 SKILL.md를 가져와 모든 Bot이 공유하는 스킬에 추가합니다.
Install this skill: https://github.com/plugin87/ux-ui-agent-skills/tree/HEAD/.claude/skills/data-dashboard게시자 제공
This skill needs the full UX/UI Agent Skills kit: the gates, the references and
the design-system library. Install it with npx [email protected] init
or as the Claude Code plugin. npx [email protected] add copies the skill folder and
nothing else. Installed that way, this skill runs in guidance-only mode: no gate
runs, so it gives no verdict.
Step 0: is the kit here? Check once:
ls ${CLAUDE_SKILL_DIR}/../../../tokens >/dev/null 2>&1 && echo KIT_OK || echo KIT_MISSINGOnKIT_MISSING, open your reply with: "Guidance-only mode: the UX/UI Agent Skills kit is not installed here, so no gate ran and nothing below is measured." Then work from this file and general practice, under three rules. Do not guess or cite the contents of a kit file you could not open. State no measured number (no contrast ratio, no N/N, no "passes WCAG"): write "not verified" where one would go. End with a lineSkipped (kit not installed):that names every gate script this file tells you to run, then the install command above.
A dashboard is the hardest screen to keep honest: it is dense, it is mostly
non-text, and almost every default makes it worse. This is the recipe that
produced ${CLAUDE_SKILL_DIR}/../../../examples/showcase/ and ${CLAUDE_SKILL_DIR}/../../../examples/terminal/, both of which pass every
gate in both themes.
Answer these in one line each, or /grill-me them out of the user:
Four equal stat cards is the single loudest tell that nobody designed this. Compose in bands, each a different shape:
Use a 12-column grid with explicit spans (span 8 / span 4), collapsing to 6
then 1. Never repeat(auto-fit, …) for the primary bands - it produces exactly
the equal-card wall you are avoiding.
All of these are plain inline SVG with viewBox, sized by CSS, filled from
--color-chart-*. No chart library, no runtime dependency.
Generate the geometry, do not hand-place it. Write a small deterministic script (a seeded walk) that emits the SVG elements, then paste the output in. Hand-typed coordinates drift and cannot be regenerated.
Gates cannot catch a chart that is drawn beautifully and means nothing. Check by hand:
role="img" plus either aria-label or <title>+<desc>
referenced by aria-labelledby. Say what the chart shows, not that it is a
chart: "Range 182.06 to 200.10, closing at 187.84" beats "price chart".+ and an arrow; red with a
-. Up and down also carry a word in the table cell.<caption> (use .sr-only when the panel header already says it),
scope="col" / scope="row", and aria-sort only if clicking really sorts.verify_interactive.mjs clicks them and checks.Every one of these was found on a screen that looked finished. The first group a gate caught; the ones marked "no gate sees it" were caught by opening the screenshot and looking, which is why that step is not optional:
--color-chart-4
measured 2.65:1 in dark. Chart colours are tuned for large filled shapes.calc(var(--duration-fast) * 0.6 * n), never a
typed millisecond.align-content: start on the field and an
explicit block-size on the control. Measure the heights in the render - the
difference is obvious in a screenshot and invisible in the markup.grid-template-rows:auto minmax(0,1fr), and that child's own tracks go
minmax(<min>,1fr) so its rows grow too), or the rows share it out
(align-content:space-between), or the short column earns another panel.
Screenshot the row and look at the bottom edge of each panel; this never shows
up in the markup.auto-fit silently drops a column, and no gate sees it. Three gauges in a
panel about 340px wide with minmax(min(100%,7rem),1fr) resolved to two tracks
and orphaned the third beside an empty cell. When the count is fixed and
meaningful, write repeat(3,minmax(0,1fr)) and give narrow widths their own rule.aria-label is a row
of anonymous bars to everyone looking at it. Put the labels under the bars -
lay the plot out on an even pitch inside its viewBox so a matching grid of
labels lines up without a second coordinate system.node ${CLAUDE_SKILL_DIR}/../../../scripts/gate.mjs measure_render.mjs <file> && node ${CLAUDE_SKILL_DIR}/../../../scripts/gate.mjs measure_render.mjs --dark <file>
node ${CLAUDE_SKILL_DIR}/../../../scripts/gate.mjs verify_states.mjs <file> && node ${CLAUDE_SKILL_DIR}/../../../scripts/gate.mjs axe_audit.mjs --dark <file>
node ${CLAUDE_SKILL_DIR}/../../../scripts/gate.mjs verify_responsive.mjs <file> --scale=1.25
node ${CLAUDE_SKILL_DIR}/../../../scripts/gate.mjs verify_interactive.mjs <file>
DS_REQUIRE_BROWSER=1 node ${CLAUDE_SKILL_DIR}/../../../scripts/slop_tells.mjs --strict <file> && DS_REQUIRE_BROWSER=1 node ${CLAUDE_SKILL_DIR}/../../../scripts/taste_audit.mjs --strict <file>
Then screenshot it and look, in both themes, at 1600 and 390 wide. The gates will pass a chart that is drawn wrong. A correlation matrix that is not symmetric is 16/16 green and still embarrassing.
Worked references, both gate-verified: ${CLAUDE_SKILL_DIR}/../../../examples/showcase/index.html (revenue
console) and ${CLAUDE_SKILL_DIR}/../../../examples/terminal/index.html (trading desk, ten chart types).
Build a dense, data-heavy screen - an analytics console or a trading terminal - with real charts drawn from tokens: candlestick, volume, depth, stacked area, waterfall, scatter, correlation matrix, do
---name: data-dashboarddescription: Build a dense, data-heavy screen - an analytics console or a trading terminal - with real charts drawn from…---# .claude/skills/data-dashboard/SKILL.md개요
Build a dense, data-heavy screen - an analytics console or a trading terminal - with real charts drawn from tokens: candlestick, volume, depth, stacked area, waterfall, scatter, correlation matrix, donut, gauge, sparklines, heatmaps and order books. Use when the request is a dashboard, terminal, monitoring view, data console, or any screen whose job is to show many numbers at once. Covers the layout sequence, the SVG geometry, the accessibility contract per chart type, and the contrast traps that only appear in dark mode.
FAQ
게시자에게서 .claude/skills/data-dashboard/SKILL.md를 다운로드하거나 경로를 복사해 저장소를 엽니다. PlugMCP는 스킬을 목록에 올릴 뿐 파일을 호스팅하지 않습니다.
게시자가 https://github.com/plugin87/ux-ui-agent-skills에서 관리합니다.
Claude, Cursor, Codex, Grok Build는 게시자의 저장소에서 추가한 SKILL.md를 읽을 수 있습니다. Grok Bot은 채팅에서 스킬의 GitHub 폴더 링크를 보내면 설치합니다.
.sr-onlyprefers-reduced-motion. Give a radar sweep a wedge, not a 1px line..c4 as both a
four-column span and the fourth chart colour painted an entire panel pink.