You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- For UI, visual polish, layout, motion, and design-token changes, read `DESIGN.md` first and follow it as the design source of truth.
8
9
9
10
### 🔴 Releases — Use `/electron-release` ONLY
10
11
@@ -127,45 +128,10 @@ project-local instead). The new skill is symlinked into every installed agent
127
128
immediately and is safe to delete in the same run. Use this in preference to
128
129
deleting an existing user skill.
129
130
130
-
## Design Context
131
-
132
-
### Users
133
-
Developers who use multiple AI coding agents (Claude Code, Cursor, Codex, etc.) and need to manage shared skills/plugins across them. They use this app to visualize symlink status, install skills from a marketplace, and keep their agent environments in sync. Context: quick glances during workflow, not prolonged sessions.
134
-
135
-
### Brand Personality
136
-
**Technical, Minimal, Sharp** — An engineering tool that respects the developer's intelligence. No hand-holding, no visual noise. Every pixel earns its place.
137
-
138
-
### Emotional Goals
139
-
-**Trust & confidence**: "My skills are properly linked, nothing is broken"
140
-
-**Control**: "I can see and manage every agent's state from one place"
141
-
142
-
### Aesthetic Direction
143
-
-**Visual tone**: Dark-first, high information density without clutter. Terminal-inspired clarity with native macOS polish
144
-
-**References**: Warp terminal, Linear, VS Code Dark+
-**Theme**: OKLCH color system with dual `--theme-hue` × `--theme-chroma` axes. 27 presets (17 color hues + 2 pure neutral + 8 tinted neutral, see `THEME_PRESETS` in `src/shared/constants.ts`) persist via `@laststance/redux-storage-middleware` (version-migrated v0→v1→v2). Dark mode is default, light supported
147
-
148
-
### Color System
149
-
- OKLCH-based; every shadcn token derives from `oklch(L calc(var(--theme-chroma) * K) var(--theme-hue))`, so a single preset table (`THEME_PRESETS` in `src/shared/constants.ts`) drives all surfaces
150
-
-`--theme-chroma`: `0` (neutral/shadcn grayscale) or `COLOR_PRESET_CHROMA = 0.16` (color preset) — same formula, two modes. `--theme-hue`: OKLCH angle (0–360), irrelevant when chroma is 0
151
-
- Status tokens: `--success` (fixed green, theme-invariant) = valid/linked, amber = broken, `--muted-foreground` = missing. `--success` stays green even in neutral presets so "linked" never collapses to mid-gray
152
-
- Skill type borders: `--success` = symlinked, emerald = local
153
-
- Low-chroma backgrounds, high-chroma accents — information through color, not decoration
154
-
155
-
### Typography
156
-
-**Sans**: Inter — neutral, highly legible at small sizes, tabular-nums for data
1.**Information density over decoration** — Show data, not chrome. Every visual element communicates state
168
-
2.**Status at a glance** — Color-coded symlink states (success green / amber / muted) should stay readable in peripheral vision regardless of chosen theme preset
169
-
3.**Native macOS feel** — Window glow effects, drag regions, system-level keyboard shortcuts. Feels like it belongs on macOS
170
-
4.**Progressive disclosure** — Default 3-column layout; Detail Inspector appears only when needed (Apple HIG Inspector pattern)
171
-
5.**Developer respect** — No tooltips explaining obvious things, no confirmation dialogs for safe actions, no marketing language in the UI
131
+
## Design Source
132
+
133
+
`DESIGN.md` owns the app's visual system: product context, color roles,
0 commit comments