@cliangdev/flux-plugin 0.2.0-dev.2b9c207 → 0.2.0-dev.359209a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/install.cjs CHANGED
@@ -21,6 +21,19 @@ if (args[0] === "serve") {
21
21
  process.exit(1);
22
22
  });
23
23
  child.on("close", (code) => process.exit(code || 0));
24
+ } else if (args[0] === "dashboard") {
25
+ const dashboardSrc = path.join(__dirname, "..", "src", "dashboard", "server.ts");
26
+ const bunPath = getBunPath();
27
+ if (!bunPath) {
28
+ console.error("Failed to start Flux Dashboard: Bun is required but not found");
29
+ process.exit(1);
30
+ }
31
+ const child = spawn(bunPath, ["run", dashboardSrc], { stdio: "inherit" });
32
+ child.on("error", (err) => {
33
+ console.error("Failed to start Flux Dashboard:", err.message);
34
+ process.exit(1);
35
+ });
36
+ child.on("close", (code) => process.exit(code || 0));
24
37
  } else {
25
38
  runInstaller();
26
39
  }
@@ -66,7 +79,12 @@ ${cyan} ███████╗██╗ ██╗ ██╗██╗
66
79
  console.log(banner);
67
80
 
68
81
  if (hasHelp) {
69
- console.log(` ${yellow}Usage:${reset} bunx @cliangdev/flux-plugin [options]
82
+ console.log(` ${yellow}Usage:${reset} bunx @cliangdev/flux-plugin [command] [options]
83
+
84
+ ${yellow}Commands:${reset}
85
+ ${cyan}(none)${reset} Run the installer (default)
86
+ ${cyan}serve${reset} Start the MCP server
87
+ ${cyan}dashboard${reset} Open the Flux Dashboard in browser
70
88
 
71
89
  ${yellow}Options:${reset}
72
90
  ${cyan}-g, --global${reset} Install globally (to ~/.claude)
@@ -83,6 +101,9 @@ ${cyan} ███████╗██╗ ██╗ ██╗██╗
83
101
  ${dim}# Install locally (current project only)${reset}
84
102
  bunx @cliangdev/flux-plugin --local
85
103
 
104
+ ${dim}# Open the dashboard${reset}
105
+ bunx @cliangdev/flux-plugin dashboard
106
+
86
107
  ${yellow}Note:${reset} This plugin requires Bun. Install from https://bun.sh
87
108
  `);
88
109
  process.exit(0);
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: flux:dashboard
3
+ description: Open the Flux Dashboard to visualize PRDs, epics, and tasks
4
+ allowed-tools: Bash
5
+ ---
6
+
7
+ # Flux Dashboard
8
+
9
+ Launch the Flux Dashboard web interface to visualize project status.
10
+
11
+ ## Instructions
12
+
13
+ Run the dashboard server:
14
+
15
+ ```bash
16
+ bunx @cliangdev/flux-plugin dashboard
17
+ ```
18
+
19
+ This will:
20
+ 1. Start the dashboard server on port 3333 (or next available)
21
+ 2. Open the dashboard in the default browser
22
+
23
+ The dashboard shows:
24
+ - All PRDs with their epics and tasks
25
+ - Status indicators and progress
26
+ - Dependency graph visualization
27
+ - Detailed views for each entity
28
+
29
+ Tell the user the dashboard is starting and they can close it with Ctrl+C when done.
package/manifest.json CHANGED
@@ -7,7 +7,8 @@
7
7
  "agent-creator",
8
8
  "epic-template",
9
9
  "flux-orchestrator",
10
- "prd-writer"
10
+ "prd-writer",
11
+ "ux-ui-design"
11
12
  ],
12
13
  "agents": ["coder.md", "critic.md", "researcher.md", "verifier.md"],
13
14
  "hooks": []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cliangdev/flux-plugin",
3
- "version": "0.2.0-dev.2b9c207",
3
+ "version": "0.2.0-dev.359209a",
4
4
  "description": "Claude Code plugin for AI-first workflow orchestration with MCP server",
5
5
  "type": "module",
6
6
  "main": "./dist/server/index.js",
@@ -17,9 +17,11 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "dev": "bun run src/server/index.ts",
20
- "build": "bun build --compile --outfile bin/flux-server src/server/index.ts && bun build --compile --outfile bin/flux-status src/status-line/index.ts",
20
+ "build": "bun build --compile --outfile bin/flux-server src/server/index.ts && bun build --compile --outfile bin/flux-status src/status-line/index.ts && bun build --compile --outfile bin/flux-dashboard src/dashboard/server.ts",
21
21
  "build:server": "bun build --compile --outfile bin/flux-server src/server/index.ts",
22
22
  "build:status": "bun build --compile --outfile bin/flux-status src/status-line/index.ts",
23
+ "build:dashboard": "bun build --compile --outfile bin/flux-dashboard src/dashboard/server.ts",
24
+ "dev:dashboard": "bun run src/dashboard/server.ts",
23
25
  "validate": "node scripts/validate-structure.cjs",
24
26
  "test:integration": "bun test scripts/__tests__/integration.test.ts --timeout 120000",
25
27
  "prepublishOnly": "bun run validate && bun run test:integration",
@@ -0,0 +1,346 @@
1
+ ---
2
+ name: flux:ux-ui-design
3
+ description: Expert UX/UI design guidance for creating simple, user-focused experiences with clean, cohesive interfaces. Use when designing or reviewing UI components, layouts, navigation, forms, or any user-facing interface. Applies human-centered design principles and explicitly avoids AI slop patterns (generic, over-designed, feature-bloated interfaces). Triggers on UI implementation, design decisions, component creation, or layout work.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # UX/UI Design Skill
8
+
9
+ Design guidance for creating interfaces that are simple for users and visually clean—not generic AI slop.
10
+
11
+ ## Core Philosophy
12
+
13
+ **UX**: Remove friction. Every interaction should feel effortless.
14
+ **UI**: Less is more. Every element earns its place.
15
+
16
+ ---
17
+
18
+ ## UX Principles
19
+
20
+ ### 1. Reduce Cognitive Load
21
+
22
+ Users form opinions in 50ms. Simplify ruthlessly.
23
+
24
+ - **One primary action per screen** — Secondary actions stay subtle
25
+ - **Progressive disclosure** — Show basics upfront, reveal complexity on demand
26
+ - **Predictable patterns** — Consistency reduces learning curve
27
+
28
+ ```
29
+ ❌ Dashboard with 12 cards, 5 CTAs, sidebar, and floating action button
30
+ ✅ Dashboard with 3 key metrics, one primary action, minimal navigation
31
+ ```
32
+
33
+ ### 2. Design for Intent, Not Features
34
+
35
+ Start with user goals, not feature lists.
36
+
37
+ | User Intent | Good Design | Bad Design |
38
+ |-------------|-------------|------------|
39
+ | "Find a product" | Search bar prominent, filters accessible | Feature tour modal on load |
40
+ | "Complete checkout" | Linear flow, minimal fields | Upsells interrupting every step |
41
+ | "Check status" | Status visible immediately | Requires 3 clicks to find |
42
+
43
+ ### 3. Respect User Time
44
+
45
+ - **Minimize steps** — Combine related actions
46
+ - **Smart defaults** — Pre-fill what you can infer
47
+ - **Instant feedback** — Show loading states, confirm actions immediately
48
+ - **Remember state** — Don't make users repeat themselves
49
+
50
+ ### 4. Error Prevention Over Error Messages
51
+
52
+ Design to prevent errors, not just handle them.
53
+
54
+ ```
55
+ ❌ "Invalid email format" after submit
56
+ ✅ Real-time validation as user types
57
+
58
+ ❌ Delete button with no confirmation
59
+ ✅ Undo within 5 seconds, or confirmation for destructive actions
60
+ ```
61
+
62
+ ---
63
+
64
+ ## UI Principles
65
+
66
+ ### 1. Visual Hierarchy
67
+
68
+ Guide attention through deliberate contrast.
69
+
70
+ **Size**: Larger = more important
71
+ **Color**: Accent colors for actions, muted for secondary
72
+ **Space**: Whitespace groups related elements, separates sections
73
+ **Position**: Top-left starts the reading flow (LTR languages)
74
+
75
+ ```
76
+ Primary action: Bold, accent color, prominent size
77
+ Secondary action: Outlined or text-only, subdued
78
+ Tertiary action: Text link, smallest
79
+ ```
80
+
81
+ ### 2. Limited Color Palette
82
+
83
+ 95% of minimalist interfaces use a restricted palette.
84
+
85
+ **Core palette structure:**
86
+ - 1 neutral background (white, off-white, or dark mode equivalent)
87
+ - 1-2 accent colors (one primary, one optional secondary)
88
+ - Semantic colors: success (green), warning (amber), error (red), info (blue)
89
+ - Text: 2-3 shades (primary, secondary, disabled)
90
+
91
+ ```css
92
+ /* Example minimal palette */
93
+ --bg-primary: #FFFFFF;
94
+ --bg-secondary: #F8F9FA;
95
+ --text-primary: #1A1A1A;
96
+ --text-secondary: #6B7280;
97
+ --accent: #2563EB;
98
+ --accent-hover: #1D4ED8;
99
+ ```
100
+
101
+ ### 3. Typography
102
+
103
+ One typeface, multiple weights. Never more than two font families.
104
+
105
+ **Hierarchy through weight and size, not different fonts:**
106
+ - Headings: Semibold or bold, larger size
107
+ - Body: Regular weight, comfortable reading size (16px minimum)
108
+ - Captions: Regular or medium, smaller size, secondary color
109
+
110
+ **Line height**: 1.4-1.6 for body text, 1.2-1.3 for headings
111
+
112
+ ### 4. Spacing System
113
+
114
+ Use consistent spacing tokens—never arbitrary values.
115
+
116
+ ```
117
+ 4px (xs) — Tight spacing within components
118
+ 8px (sm) — Related elements
119
+ 16px (md) — Standard spacing
120
+ 24px (lg) — Section separation
121
+ 32px (xl) — Major sections
122
+ 48px (2xl) — Page-level spacing
123
+ ```
124
+
125
+ **Rule**: Space between elements = relationship strength. Closer = more related.
126
+
127
+ ### 5. Whitespace as Design Element
128
+
129
+ Empty space is not wasted space. It:
130
+ - Reduces cognitive load
131
+ - Creates visual breathing room
132
+ - Emphasizes important elements
133
+ - Communicates hierarchy
134
+
135
+ ```
136
+ ❌ Cramped form with no padding
137
+ ✅ Generous padding, grouped fields with clear sections
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Avoiding AI Slop
143
+
144
+ AI slop = generic, over-engineered, feature-bloated design that looks "designed" but lacks soul.
145
+
146
+ ### Red Flags (Don't Do This)
147
+
148
+ | Pattern | Problem | Fix |
149
+ |---------|---------|-----|
150
+ | Gradient everything | Looks like a template | Flat colors, subtle shadows only |
151
+ | Rounded corners on everything | Generic "modern" look | Consistent radius, not excessive |
152
+ | Unnecessary animations | Distracting, slow | Purposeful micro-interactions only |
153
+ | Stock illustrations everywhere | Feels corporate/hollow | Use sparingly or not at all |
154
+ | Feature overload | "Look how much it does!" | Ship less, ship focused |
155
+ | Symmetric grids always | Predictable, boring | Intentional asymmetry when appropriate |
156
+ | Drop shadows on everything | Cluttered, dated | Minimal elevation, purposeful depth |
157
+ | Glassmorphism/neumorphism by default | Trendy but often inaccessible | Use sparingly, ensure contrast |
158
+
159
+ ### AI Slop Content Patterns to Avoid
160
+
161
+ - Generic hero sections with vague taglines ("Empower your workflow")
162
+ - Cookie-cutter landing page layouts
163
+ - Feature grids with icons that could apply to anything
164
+ - Excessive use of buzzwords in UI copy
165
+ - Decorative elements that add no meaning
166
+
167
+ ### What Makes Design Feel Human
168
+
169
+ - **Personality in copywriting** — Real voice, not corporate speak
170
+ - **Intentional imperfection** — Hand-drawn elements, custom illustrations
171
+ - **Constraint** — Knowing what NOT to include
172
+ - **Context-awareness** — Design serves the specific use case, not generic patterns
173
+ - **Consistency over novelty** — Boring is often better
174
+
175
+ ---
176
+
177
+ ## Component Guidelines
178
+
179
+ ### Buttons
180
+
181
+ ```
182
+ Primary: Solid background, high contrast text, clear CTA
183
+ Secondary: Outlined or ghost, lower visual weight
184
+ Tertiary: Text-only, for less important actions
185
+ Disabled: 50% opacity, no pointer events
186
+
187
+ Sizing:
188
+ - Small: 32px height, compact UI
189
+ - Medium: 40px height, default
190
+ - Large: 48px height, touch targets, primary CTAs
191
+ ```
192
+
193
+ ### Forms
194
+
195
+ - Labels above inputs (not placeholder-as-label)
196
+ - Clear focus states (visible ring, color change)
197
+ - Inline validation, not just on submit
198
+ - Logical tab order
199
+ - Required field indicators (asterisk or text)
200
+ - Helpful hint text for complex fields
201
+
202
+ ```
203
+ ❌ Placeholder text as the only label
204
+ ❌ Error messages appearing somewhere else on screen
205
+ ❌ Submit button disabled with no explanation why
206
+
207
+ ✅ Clear labels, visible focus, inline errors, enabled submit with validation
208
+ ```
209
+
210
+ ### Cards
211
+
212
+ - Consistent padding (16-24px)
213
+ - Clear content hierarchy
214
+ - Single primary action if any
215
+ - Subtle shadow or border, not both
216
+ - Avoid nesting cards within cards
217
+
218
+ ### Navigation
219
+
220
+ - Primary nav: 5-7 items maximum
221
+ - Mobile: Hamburger menu or bottom nav (not both)
222
+ - Current state clearly indicated
223
+ - Breadcrumbs for deep hierarchies
224
+ - Search accessible on complex sites
225
+
226
+ ### Tables
227
+
228
+ - Left-align text, right-align numbers
229
+ - Zebra striping OR grid lines, not both
230
+ - Sticky headers for long tables
231
+ - Sort indicators when sortable
232
+ - Row actions: hover reveal or action column
233
+ - Pagination or infinite scroll, clear indication of more data
234
+
235
+ ### Modals/Dialogs
236
+
237
+ - Clear title describing the action
238
+ - Single primary action, cancel always available
239
+ - Focus trapped within modal
240
+ - Escape key closes (unless destructive action)
241
+ - Background overlay with click-to-close
242
+ - Don't nest modals
243
+
244
+ ---
245
+
246
+ ## Responsive Design
247
+
248
+ ### Breakpoints (Standard)
249
+
250
+ ```
251
+ sm: 640px — Small tablets, large phones landscape
252
+ md: 768px — Tablets portrait
253
+ lg: 1024px — Tablets landscape, small laptops
254
+ xl: 1280px — Desktops
255
+ 2xl: 1536px — Large desktops
256
+ ```
257
+
258
+ ### Mobile-First Patterns
259
+
260
+ - Stack columns on mobile, expand on desktop
261
+ - Touch targets: minimum 44x44px
262
+ - Thumb-friendly zones for critical actions
263
+ - Simplify navigation for mobile
264
+ - Reduce content density, not just shrink
265
+
266
+ ### What Changes on Mobile
267
+
268
+ | Desktop | Mobile |
269
+ |---------|--------|
270
+ | Horizontal nav | Hamburger or bottom nav |
271
+ | Multi-column grid | Single column or 2-col max |
272
+ | Hover states | Tap states (no hover on touch) |
273
+ | Side panels | Full-screen overlays |
274
+ | Data tables | Cards or simplified tables |
275
+
276
+ ---
277
+
278
+ ## Accessibility Checklist
279
+
280
+ Not optional. Design for everyone.
281
+
282
+ - [ ] Color contrast: 4.5:1 minimum for text
283
+ - [ ] Don't rely on color alone (add icons, text, patterns)
284
+ - [ ] Focus states visible and clear
285
+ - [ ] Keyboard navigation works
286
+ - [ ] Alt text on meaningful images
287
+ - [ ] Form labels associated with inputs
288
+ - [ ] Error messages clear and specific
289
+ - [ ] Touch targets 44x44px minimum
290
+ - [ ] Motion can be reduced (respects prefers-reduced-motion)
291
+ - [ ] Text resizable without breaking layout
292
+
293
+ ---
294
+
295
+ ## Implementation Checklist
296
+
297
+ Before shipping any interface:
298
+
299
+ ### UX Verification
300
+ - [ ] Primary action is immediately obvious
301
+ - [ ] User can accomplish goal in minimum steps
302
+ - [ ] Error states are helpful, not just red
303
+ - [ ] Loading states exist for async operations
304
+ - [ ] Empty states guide users to next action
305
+
306
+ ### UI Verification
307
+ - [ ] Spacing follows consistent scale
308
+ - [ ] Typography hierarchy is clear
309
+ - [ ] Color palette is limited and intentional
310
+ - [ ] Components are consistent throughout
311
+ - [ ] No orphan elements (everything aligned to grid)
312
+
313
+ ### Anti-Slop Check
314
+ - [ ] Could remove any element without losing function?
315
+ - [ ] Does every gradient/shadow/animation serve a purpose?
316
+ - [ ] Would a non-designer find it cluttered?
317
+ - [ ] Is the copywriting specific to this product?
318
+ - [ ] Does it look distinct from a template?
319
+
320
+ ---
321
+
322
+ ## Quick Reference
323
+
324
+ ### When Designing
325
+
326
+ 1. **Start with user intent** — What are they trying to do?
327
+ 2. **Minimize choices** — Each decision = cognitive load
328
+ 3. **Establish hierarchy** — What's most important?
329
+ 4. **Apply constraints** — Limited colors, spacing scale, one typeface
330
+ 5. **Remove until it breaks** — Then add back only what's needed
331
+
332
+ ### When Reviewing
333
+
334
+ Ask these questions:
335
+ - Can I remove anything?
336
+ - Is the primary action obvious?
337
+ - Does the spacing feel consistent?
338
+ - Is there unnecessary decoration?
339
+ - Would this work on mobile?
340
+
341
+ ---
342
+
343
+ ## References
344
+
345
+ For detailed design token specifications and component patterns, see:
346
+ - `references/design-tokens.md` — Spacing, color, typography scales