agentleFS
chrolinechroline/oliver/skills/dashboard-ui/SKILL.md

dashboard-ui

Skill0 starsChanged 3 months agoMITView on GitHub

Build or refine functional dashboards with compact shadcn UI, useful charts, tables, and reliable navigation. Use for analytics, monitoring, operations, resource management, or record-oriented dashboards, including email-style list-and-detail workspaces. Adapt the layout to the domain rather than assuming experiments or a fixed set of metrics.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 9 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈9

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use the user's preferred shadcn preset b7BFgTmLK: Nova/Mist, Geist, Lucide, neutral surfaces, subtle/translucent menus.

    line 28
  2. Distinctive:

    Use generated shadcn primitives for controls, navigation, tables, tabs, sheets, tooltips, and charts.

    line 29
  3. Distinctive:

    Keep the interface functional: useful labels and section titles, no hero, marketing copy, oversized page heading, decorative slogans, or …

    line 30
  4. Distinctive:

    Use compact, aligned controls, restrained borders, quiet status badges, tabular numbers, and consistent spacing.

    line 31
  5. Distinctive:

    Treat widths and heights as deliberate layout decisions.

    line 32
  6. Distinctive:

    Use theme tokens throughout.

    line 33
  7. Distinctive:

    Read shadcn implementation before installing primitives or applying the preset.

    line 35
  8. Distinctive:

    Read data and charts when building metrics, comparisons, or visualizations.

    line 53
  9. Distinctive:

    When a local preview needs to remain available, use the environment's persistent process mechanism, record its URL and logs, and verify …

    line 61
  10. Distinctive:

    Keep documentation with the behavior it describes.

    line 63

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Dashboard UI

Build a working dashboard that helps the user inspect data, understand changes, and take the next relevant action. This skill captures a preference for compact, utilitarian shadcn interfaces. It is a design and implementation workflow, not a particular application's schema or backend.

Choose the structure from the task

Identify the main question, the objects being inspected, the useful level of detail, and the actions the user needs. Infer these from the request and existing application before asking questions. Distinguish a working integration from a fixture-backed prototype; label fixture data and do not present unimplemented controls as functional.

Choose the smallest useful structure:

Primary taskStarting layout
Browse records and inspect one in depthPersistent list on the left, selected record in the main pane; use the sidebar-09 email-list pattern.
Monitor aggregate health or trendsOverview with shared scope/time controls, a small set of meaningful metrics, charts, and drill-down tables.
Compare entities, periods, or configurationsExplicit comparison selectors, aligned measures, deltas, and access to underlying rows.
Review and act on many itemsDense filterable table or queue with selection and the domain's real actions.
Work across several distinct areasMinimal navigation around the appropriate views above.

Combine these when the workflow needs it. Do not force a record sidebar onto an aggregate dashboard, add an icon rail for nonexistent sections, or invent comparison and review workflows. Read layout patterns when deciding composition or implementing navigation.

Visual defaults

  • Use the user's preferred shadcn preset b7BFgTmLK: Nova/Mist, Geist, Lucide, neutral surfaces, subtle/translucent menus. This is the starting preference for a new dashboard, not authorization to replace an established application's design system. Explicit user choices take precedence.
  • Use generated shadcn primitives for controls, navigation, tables, tabs, sheets, tooltips, and charts. Compose semantic HTML around them. Do not approximate a Select with a native select or restyle a homemade component until it merely resembles shadcn.
  • Keep the interface functional: useful labels and section titles, no hero, marketing copy, oversized page heading, decorative slogans, or redundant introductions. Do not remove labels people need to understand controls.
  • Use compact, aligned controls, restrained borders, quiet status badges, tabular numbers, and consistent spacing. Prefer small table section headings; avoid padding-heavy cards around every fragment of data.
  • Treat widths and heights as deliberate layout decisions. Inputs should fit their jobs; selectors need a constrained trigger and a menu wide enough to read options. Long names and identifiers must not push the page sideways.
  • Use theme tokens throughout. Check light and dark modes, including portaled menus, focus rings, chart axes, and selected rows. Use semantic emphasis rather than coloring every metric.

Read shadcn implementation before installing primitives or applying the preset. Preserve the requested preset across every added component and its supporting CSS; do not mix styles from unrelated snippets.

Build the behavior with the view

Keep data loading and routing separate from presentational views so realistic states can be rendered without production access. Reuse the project's framework, router, data client, and test conventions. This skill does not require Vite, Next.js, a particular database, a local server, or any storage provider.

For record workspaces, use real addressable links, a visible selected row, and independent pane scrolling. Keep list filters and selection in a stable owner outside a mobile Sheet's mounted content. A new response or newly discovered record must not steal the current selection. Resolve direct URLs before choosing a default record, and preserve browser back/forward behavior.

Make the distinction between initial loading, background refresh, no records, no filter matches, missing measurements, and failed requests visible. Preserve useful loaded data during refresh when appropriate. Use cancellation and stale-response guards so a slow request cannot overwrite a newer selection. Only describe data as live if the actual source refreshes; distinguish a remote snapshot from continuous updates.

Keep controls connected to real behavior. Scope filters should affect the charts and tables they claim to affect. Preserve normal modified-click/open-in-new-tab behavior for links. Use accessible names, keyboard interaction, focus states, and a workable narrow-screen navigation path. Authorized edits and writes belong to the requested workflow; a dashboard task does not by itself authorize deployment, publishing, messaging, or production mutations.

Make charts explain something

Choose a chart because it answers a concrete question that a table or badge does not answer as clearly. Avoid decorative graphs and charts that only repeat a nearby status count. Do not require charts on every tab.

Use shadcn chart containers and tooltips with the project's chart library. Label units, scope, aggregation, and time window where they affect interpretation. Keep exact values and supporting records available through a table, detail view, or accessible equivalent. Preserve legitimate zero and negative values; missing data is not zero. Never invent trend history or telemetry to fill space.

Read data and charts when building metrics, comparisons, or visualizations. Keep all domain formulas and thresholds specific to the current application.

Verify the finished interface

Render the actual views, not just isolated primitives. Use Storybook when available; otherwise use the application's preview and appropriate fixtures. Inspect the states affected by the change: representative data, loading, empty/filter-empty, failure, incomplete measurements, long labels, selected records, dark mode, and narrow widths. Exercise menus, filtering, navigation, scrolling, and refresh behavior where relevant.

Test meaningful behavior and data transformations: filter consistency, selection stability, request races, aggregation, missing values, or comparison compatibility. Do not add tests that merely restate a class name or mirror a trivial visual edit. Run the project's relevant type-check/build/tests and any required documentation checks. Fix observed defects, then stop expanding validation when the requested behavior is verified.

When a local preview needs to remain available, use the environment's persistent process mechanism, record its URL and logs, and verify both the page and data endpoint. Do not claim a temporary process will stay up indefinitely.

Keep documentation with the behavior it describes. Write Markdown prose as one source line per paragraph or list item, with structural line breaks for headings, lists, tables, and code. Finish with the implemented behavior, where to see it, and concise validation evidence.

Optional starting asset

For a list-and-detail dashboard, DashboardWorkspace.tsx supplies a domain-neutral shadcn shell with a persistent desktop sidebar, mobile drawer, independent content scrolling, and a navigation-close callback. Adapt it to the project's aliases, layout ownership, router, and component APIs. It contains no record schema, API calls, metrics, or domain labels. For overview dashboards, use the layout guidance instead of copying this shell unnecessarily.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.