Stop defaulting to dashboards.
1 skill. 8 UI patterns. 9 AI coding tools.
Installation · The Problem · The 8 Patterns · Supported Tools · How It Works · License
Every AI coding tool defaults to dashboards. Ask for an "analytics view" — you get a dashboard. Ask for an "admin panel" — dashboard. "Monitoring page" — dashboard with gauges.
Dashboards dominate training data. They're correct about 20% of the time. The other 80%, there's a better pattern.
undash forces pattern selection before any design happens.
| Pattern | When To Use | Instead Of |
|---|---|---|
| Ephemeral / Generative | Ad-hoc reports, data exploration | Dashboard + charts |
| Conversational | Support tools, multi-intent queries | Dashboard + chat sidebar |
| Task-Based / Wizard | Onboarding, CRUD admin, configuration | Dashboard + tables |
| Decision Engine | Ops tools, approve/reject workflows | Dashboard + action buttons |
| Narrative / Storytelling | Briefings, analytics, executive views | Dashboard + metric cards |
| Launchpad / Debugging | Monitoring, incident response, QA | Dashboard + gauges |
| Agentic | Complex automation, delegated workflows | Dashboard + AI panel |
| Invisible / Ambient | Contextual info in existing tools | Dashboard in a new tab |
undash has three entry paths depending on how it's invoked:
When invoked without a specific request, undash scans your existing project and offers two options:
- Option 1: Dashboard Cleanup — keep your dashboard structure, fix the AI slop (visual hierarchy, inline actions, meaningful colors)
- Option 2: Full Pattern Replacement — run a deep diagnostic to determine if a dashboard is even the right pattern
When given a design request (e.g., "build me a monitoring dashboard"), undash runs the full 7-step diagnostic:
- Pause — don't start designing
- Diagnose — run a 7-question diagnostic to identify the user's actual need
- Select — choose the pattern with the highest signal
- Declare — tell the user what pattern and why, before any design work
- Generate — build the interface using the selected pattern
When a specific pattern is named (e.g., "use narrative pattern"), undash skips straight to generation.
The diagnostic asks questions like:
- What does the user DO after seeing this information?
- Is the layout the same every time?
- How many distinct things need to be shown simultaneously?
- Would a well-written Slack message make this unnecessary?
Windows users: Use
xcopyorcopyinstead ofcp, or run the commands in Git Bash / WSL.
# Add the marketplace, then install
/plugin marketplace add xnnnc/undash
/plugin install undashOr install directly by cloning:
git clone https://github.com/xnnnc/undash.git
claude --plugin-dir ./undashOr copy manually:
# macOS / Linux
cp -r .claude/skills/undash your-project/.claude/skills/
# Windows (CMD)
xcopy .claude\skills\undash your-project\.claude\skills\undash /E /I# macOS / Linux
cp integrations/codex-cli/AGENTS.md your-project/AGENTS.md
# Windows (CMD)
copy integrations\codex-cli\AGENTS.md your-project\AGENTS.md# macOS / Linux
cp integrations/gemini-cli/GEMINI.md your-project/GEMINI.md
# Windows (CMD)
copy integrations\gemini-cli\GEMINI.md your-project\GEMINI.md# macOS / Linux
cp -r integrations/cursor/.cursor your-project/
# Windows (CMD)
xcopy integrations\cursor\.cursor your-project\.cursor /E /I# macOS / Linux
cp integrations/antigravity/AGENTS.md your-project/AGENTS.md
# Windows (CMD)
copy integrations\antigravity\AGENTS.md your-project\AGENTS.md# macOS / Linux
cp integrations/pi/undash.md your-project/.pi/skills/undash.md
# Windows (CMD)
copy integrations\pi\undash.md your-project\.pi\skills\undash.md# macOS / Linux
cp integrations/opencode/AGENTS.md your-project/AGENTS.md
# Windows (CMD)
copy integrations\opencode\AGENTS.md your-project\AGENTS.md# macOS / Linux
cp integrations/augment/AGENTS.md your-project/AGENTS.md
# Windows (CMD)
copy integrations\augment\AGENTS.md your-project\AGENTS.md# macOS / Linux
cp integrations/t3-code/AGENTS.md your-project/AGENTS.md
# Windows (CMD)
copy integrations\t3-code\AGENTS.md your-project\AGENTS.mdNote: Tools that use AGENTS.md (Codex, Augment, Antigravity, OpenCode, T3 Code) all read the same file. If you use multiple, you only need one AGENTS.md. If you already have an AGENTS.md, append the undash content as a new section.
| Tool | Type | Config File |
|---|---|---|
| Claude Code | CLI | .claude/skills/undash/SKILL.md |
| Codex CLI | CLI | AGENTS.md |
| Gemini CLI | CLI | GEMINI.md |
| Cursor | IDE | .cursor/rules/undash.mdc |
| Google Antigravity | IDE | AGENTS.md |
| Pi | CLI | .pi/skills/undash.md |
| OpenCode / Crush | CLI | AGENTS.md |
| Augment (Auggie) | CLI + IDE | AGENTS.md |
| T3 Code | GUI | AGENTS.md |
When you hear... don't build a dashboard. Build this instead:
| User Says | Use Instead |
|---|---|
| "Analytics dashboard" | Narrative — lead with insights, not metric grids |
| "Admin panel" | Wizard — guide users through CRUD tasks |
| "Monitoring dashboard" | Launchpad — detect and investigate problems |
| "Reporting interface" | Ephemeral — generate reports on demand |
| "Settings page" | Wizard — group settings, validate as you go |
| "Data exploration tool" | Ephemeral or Conversational |
| "AI chat interface" | Conversational + Agentic |
| "Content moderation" | Decision Engine — approve/reject queue |
| "Notification center" | Ambient — deliver in context |
Dashboards are correct when all five are true:
- User checks the same 3-5 metrics regularly
- The layout is stable — same widgets every time
- Metrics are independent (spatial arrangement matters)
- The user scans, not reads
- No immediate action is required
When building a legitimate dashboard: 5-widget maximum, one hero metric, contextual comparisons.
When you choose Option 1 (Dashboard Cleanup), undash audits against these 7 items:
| # | Problem | Fix |
|---|---|---|
| 1 | Metric Museum — all cards have equal visual weight | Establish a hero metric, create 2-3 visual tiers |
| 2 | Passive Data — numbers without context | Add comparisons, trend indicators, annotations |
| 3 | Generic Stat Cards — identical icon+number+label | Differentiate by purpose, vary sizes |
| 4 | Cold Generic Palette — default dark/light theme | Apply brand colors, use color meaningfully |
| 5 | No Action Path — display-only data | Add inline actions, drill-down, quick-action buttons |
| 6 | Equal-Weight Layout — uniform grid | Break the grid, vary sizes, group related widgets |
| 7 | Decorative Charts — charts a number could replace | Remove, keep only where shape matters |
- Edit the core skill in
.claude/skills/undash/SKILL.mdandreferences/ - Update all integration files in
integrations/to stay in sync - Verify no design-tool-specific names appear in skill or integration files
- Verify each pattern in
references/pattern-catalog.mdhas three guidance sections: Code, Design, Real-World Examples
Apache 2.0. See LICENSE.
