@minhduydev/mdpi 0.4.0 → 0.4.1
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/dist/index.js +1 -1
- package/dist/template/.pi/VERSION +1 -1
- package/dist/template/.pi/extensions/templates-injector.ts +1 -1
- package/dist/template/.pi/skills/INDEX.md +43 -12
- package/dist/template/.pi/skills/accessibility-audit/SKILL.md +8 -2
- package/dist/template/.pi/skills/baseline-ui/SKILL.md +211 -0
- package/dist/template/.pi/skills/design-taste-frontend/SKILL.md +53 -42
- package/dist/template/.pi/skills/fixing-accessibility/SKILL.md +509 -0
- package/dist/template/.pi/skills/frontend-design/SKILL.md +59 -46
- package/dist/template/.pi/skills/frontend-ui-engineering/SKILL.md +21 -27
- package/dist/template/.pi/skills/oklch-color-workflow/SKILL.md +426 -0
- package/dist/template/.pi/skills/production-hardening/SKILL.md +652 -0
- package/dist/template/.pi/skills/ui-craft-principles/SKILL.md +564 -0
- package/dist/template/.pi/skills/ui-quality-audit/SKILL.md +329 -0
- package/dist/template/.pi/templates/DESIGN.md +76 -0
- package/dist/template/.pi/workflows/INDEX.md +2 -1
- package/dist/template/.pi/workflows/frontend-feature-workflow.md +343 -0
- package/dist/template/.pi/workflows/quality-loop.md +1 -1
- package/package.json +1 -1
- /package/dist/template/.pi/templates/{design.md → feature-design.md} +0 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-quality-audit
|
|
3
|
+
description: 5-dimension UI quality scoring audit — accessibility, performance, theming, responsive, and anti-pattern detection with P0-P3 severity tags
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# UI Quality Audit
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Before merging UI changes to production
|
|
11
|
+
- When triaging a backlog of UI issues
|
|
12
|
+
- During design system reviews
|
|
13
|
+
- When retrofitting quality into existing components
|
|
14
|
+
- As a gate check before launching new features
|
|
15
|
+
|
|
16
|
+
## When NOT to Use
|
|
17
|
+
|
|
18
|
+
- Quick visual review (use `design-system-audit` instead)
|
|
19
|
+
- Non-UI code (backend, APIs, data processing)
|
|
20
|
+
- When the component is not yet implemented (audit after implementation)
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Severity Levels
|
|
25
|
+
|
|
26
|
+
| Level | Label | Action |
|
|
27
|
+
|-------|-------|--------|
|
|
28
|
+
| **P0** | Ship blocker | Do not deploy. Immediate fix required. |
|
|
29
|
+
| **P1** | Must fix this release | Fix before the next production release. |
|
|
30
|
+
| **P2** | Should fix | Fix when time permits. Not blocking. |
|
|
31
|
+
| **P3** | Nice to have | Polish improvement. Low priority. |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 5-Dimension Scoring Rubric
|
|
36
|
+
|
|
37
|
+
Each dimension is scored 0–4. A score of 0 means critical failures exist. A score of 4 means the dimension is flawless.
|
|
38
|
+
|
|
39
|
+
### 1. Accessibility (Weight: High)
|
|
40
|
+
|
|
41
|
+
**Focus:** Keyboard navigation, ARIA, color contrast, focus management, semantic HTML.
|
|
42
|
+
|
|
43
|
+
| Score | Description |
|
|
44
|
+
|-------|-------------|
|
|
45
|
+
| **4** | Perfect WCAG 2.1 AA compliance. No violations. Keyboard navigable, proper ARIA, 4.5:1+ contrast everywhere. |
|
|
46
|
+
| **3** | Minor issues (P2-P3 only). Most flows accessible. Some ARIA labels could be more descriptive. |
|
|
47
|
+
| **2** | Moderate issues (P1). Some interactive elements not keyboard-accessible. Contrast failures on non-critical text. |
|
|
48
|
+
| **1** | Major issues (P0-P1). Keyboard traps, missing alt text on critical images, form labels missing. |
|
|
49
|
+
| **0** | Critical failures. Page is not navigable by keyboard. No focus indicators. ARIA missing entirely. |
|
|
50
|
+
|
|
51
|
+
**P0 checks (ship blockers):**
|
|
52
|
+
|
|
53
|
+
- [ ] Keyboard trap exists — user cannot tab through all interactive elements
|
|
54
|
+
- [ ] `outline: none` without `:focus-visible` fallback
|
|
55
|
+
- [ ] Missing form labels on required inputs
|
|
56
|
+
- [ ] Color contrast < 3:1 on any text (P0 if body text, P1 if decorative)
|
|
57
|
+
|
|
58
|
+
**P1 checks (must fix this release):**
|
|
59
|
+
|
|
60
|
+
- [ ] Color contrast < 4.5:1 but ≥ 3:1
|
|
61
|
+
- [ ] Missing `alt` text on informative images
|
|
62
|
+
- [ ] Missing `aria-label` on icon-only buttons
|
|
63
|
+
- [ ] Skip-to-content link missing
|
|
64
|
+
- [ ] Heading hierarchy skipped (h1 → h3)
|
|
65
|
+
|
|
66
|
+
**P2 checks (should fix):**
|
|
67
|
+
|
|
68
|
+
- [ ] ARIA labels present but unhelpful (e.g., "button" as label)
|
|
69
|
+
- [ ] Focusable elements in illogical tab order
|
|
70
|
+
- [ ] Missing `lang` attribute on `<html>`
|
|
71
|
+
- [ ] Redundant ARIA on semantic HTML
|
|
72
|
+
|
|
73
|
+
**P3 checks (nice to have):**
|
|
74
|
+
|
|
75
|
+
- [ ] ARIA live regions missing for dynamic content
|
|
76
|
+
- [ ] Touch targets slightly below 44px (40px-43px)
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### 2. Performance (Weight: High)
|
|
81
|
+
|
|
82
|
+
**Focus:** Bundle size, render performance, animation performance, image optimization.
|
|
83
|
+
|
|
84
|
+
| Score | Description |
|
|
85
|
+
|-------|-------------|
|
|
86
|
+
| **4** | Lighthouse 90+ in all categories. Images optimized. Bundle < 200KB gzip. No layout shifts. |
|
|
87
|
+
| **3** | Lighthouse 80-89. Minor optimization opportunities. Bundle < 400KB. |
|
|
88
|
+
| **2** | Lighthouse 60-79. Moderate issues. Large images unoptimized. Render-blocking resources. |
|
|
89
|
+
| **1** | Lighthouse < 60. Major issues. Massive bundle. No lazy loading. Layout shifts present. |
|
|
90
|
+
| **0** | Critical failures. Bundle > 1MB. No code splitting. Unoptimized images everywhere. CLS > 0.25. |
|
|
91
|
+
|
|
92
|
+
**P0 checks:**
|
|
93
|
+
|
|
94
|
+
- [ ] Cumulative Layout Shift (CLS) > 0.25
|
|
95
|
+
- [ ] Largest Contentful Paint (LCP) > 4s
|
|
96
|
+
- [ ] No lazy loading on below-fold images
|
|
97
|
+
- [ ] Bundle size > 1MB (gzip)
|
|
98
|
+
|
|
99
|
+
**P1 checks:**
|
|
100
|
+
|
|
101
|
+
- [ ] CLS > 0.1
|
|
102
|
+
- [ ] LCP > 2.5s
|
|
103
|
+
- [ ] Images loaded without dimensions (causing reflow)
|
|
104
|
+
- [ ] No code splitting on route boundaries
|
|
105
|
+
- [ ] Unoptimized images (no WebP/AVIF, no responsive sizes)
|
|
106
|
+
|
|
107
|
+
**P2 checks:**
|
|
108
|
+
|
|
109
|
+
- [ ] Animations running on CPU (not GPU-composited)
|
|
110
|
+
- [ ] Font files > 200KB total
|
|
111
|
+
- [ ] Third-party scripts blocking main thread
|
|
112
|
+
- [ ] Missing `loading="lazy"` on below-fold images
|
|
113
|
+
|
|
114
|
+
**P3 checks:**
|
|
115
|
+
|
|
116
|
+
- [ ] `will-change` applied permanently
|
|
117
|
+
- [ ] No `preconnect` for critical origins
|
|
118
|
+
- [ ] No `font-display: swap` for web fonts
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### 3. Theming (Weight: Medium)
|
|
123
|
+
|
|
124
|
+
**Focus:** Token consistency, dark mode support, color contrast, typography scale.
|
|
125
|
+
|
|
126
|
+
| Score | Description |
|
|
127
|
+
|-------|-------------|
|
|
128
|
+
| **4** | Complete design token system. Full dark mode. Consistent spacing/typography/color. OKLCH colors. |
|
|
129
|
+
| **3** | Token system exists with gaps. Dark mode works but misses some surfaces. Mostly consistent. |
|
|
130
|
+
| **2** | Partial token usage. Hardcoded colors/spacing in some places. Dark mode partial or absent. |
|
|
131
|
+
| **1** | Minimal token system. Mostly hardcoded values. No dark mode. Typography scale inconsistent. |
|
|
132
|
+
| **0** | No design tokens. All hardcoded values. No theming system. Arbitrary colors and spacing. |
|
|
133
|
+
|
|
134
|
+
**P0 checks:**
|
|
135
|
+
|
|
136
|
+
- [ ] Hardcoded colors prevent dark mode entirely
|
|
137
|
+
- [ ] Missing contrast in dark mode — text invisible on dark backgrounds
|
|
138
|
+
|
|
139
|
+
**P1 checks:**
|
|
140
|
+
|
|
141
|
+
- [ ] Spacing doesn't follow 4pt or 8pt scale — arbitrary values used
|
|
142
|
+
- [ ] More than 1-2 accent colors fighting for attention
|
|
143
|
+
- [ ] Font size scale doesn't follow consistent ratio (1.25x or similar)
|
|
144
|
+
|
|
145
|
+
**P2 checks:**
|
|
146
|
+
|
|
147
|
+
- [ ] Token naming inconsistent (mix of `--color-primary` and `--blue-500`)
|
|
148
|
+
- [ ] Typography scale gaps — missing sizes for specific use cases
|
|
149
|
+
- [ ] Component uses hardcoded colors outside the token system
|
|
150
|
+
|
|
151
|
+
**P3 checks:**
|
|
152
|
+
|
|
153
|
+
- [ ] OKLCH not used where color gamut matters
|
|
154
|
+
- [ ] Missing transition on theme switch (`color-scheme` transition)
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### 4. Responsive (Weight: Medium)
|
|
159
|
+
|
|
160
|
+
**Focus:** Breakpoint coverage, touch targets, content reflow, viewport configuration.
|
|
161
|
+
|
|
162
|
+
| Score | Description |
|
|
163
|
+
|-------|-------------|
|
|
164
|
+
| **4** | Perfect at all breakpoints (320px-2560px). Touch targets 44px+. No horizontal scroll. Content reflows properly. |
|
|
165
|
+
| **3** | Minor issues at edge breakpoints (320px or 2560px). Most views work well. |
|
|
166
|
+
| **2** | Moderate issues. Some pages have horizontal scroll. Touch targets < 44px. Content overlaps at certain widths. |
|
|
167
|
+
| **1** | Major issues. Mobile layout broken. Content cut off. Interactive elements overlap. |
|
|
168
|
+
| **0** | Critical failures. Desktop-only layout. No responsive meta tag. Unusable on mobile. |
|
|
169
|
+
|
|
170
|
+
**P0 checks:**
|
|
171
|
+
|
|
172
|
+
- [ ] Page unusable at 375px width (content cut off, overlapping)
|
|
173
|
+
- [ ] Missing `<meta name="viewport" content="width=device-width, initial-scale=1">`
|
|
174
|
+
- [ ] Horizontal scroll on main content at standard breakpoints
|
|
175
|
+
|
|
176
|
+
**P1 checks:**
|
|
177
|
+
|
|
178
|
+
- [ ] Touch targets < 44px on interactive elements
|
|
179
|
+
- [ ] Content does not reflow at 400% zoom (WCAG failure)
|
|
180
|
+
- [ ] Tables not responsive (no horizontal scroll or card conversion)
|
|
181
|
+
|
|
182
|
+
**P2 checks:**
|
|
183
|
+
|
|
184
|
+
- [ ] Images don't scale down on small viewports
|
|
185
|
+
- [ ] Font sizes too small to read on mobile (< 16px for body)
|
|
186
|
+
- [ ] Gaps/whitespace not adjusted for small screens
|
|
187
|
+
|
|
188
|
+
**P3 checks:**
|
|
189
|
+
|
|
190
|
+
- [ ] `prefers-reduced-motion` media query missing
|
|
191
|
+
- [ ] `prefers-color-scheme` not respected for dark mode
|
|
192
|
+
- [ ] Print stylesheet missing
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### 5. Anti-Patterns (Weight: Medium)
|
|
197
|
+
|
|
198
|
+
**Focus:** AI fingerprints, dead code, over-engineering, inconsistent patterns.
|
|
199
|
+
|
|
200
|
+
| Score | Description |
|
|
201
|
+
|-------|-------------|
|
|
202
|
+
| **4** | No AI fingerprints. No dead code. Consistent component patterns. No over-engineering. |
|
|
203
|
+
| **3** | Minor anti-patterns. 1-2 instances of extraneous abstraction or inconsistent naming. |
|
|
204
|
+
| **2** | Moderate. Multiple AI fingerprint patterns. Dead code present. Inconsistent patterns across similar components. |
|
|
205
|
+
| **1** | Major. Pervasive AI-generated patterns. Significant dead code. Architecture is inconsistent. |
|
|
206
|
+
| **0** | Critical. Codebase reads as entirely AI-generated. No coherent patterns. Massive dead code. |
|
|
207
|
+
|
|
208
|
+
**P0 checks:**
|
|
209
|
+
|
|
210
|
+
- [ ] `div onClick` as button pattern without proper ARIA
|
|
211
|
+
- [ ] Purple/blue gradient hero sections (AI fingerprint)
|
|
212
|
+
- [ ] 3-column identical card pattern (AI fingerprint)
|
|
213
|
+
- [ ] Emojis used instead of icons or text
|
|
214
|
+
|
|
215
|
+
**P1 checks:**
|
|
216
|
+
|
|
217
|
+
- [ ] Glassmorphism applied without functional purpose
|
|
218
|
+
- [ ] Bounce/elastic easing on UI elements
|
|
219
|
+
- [ ] Inter/Roboto/Arial fonts specified
|
|
220
|
+
- [ ] Dead code or commented-out components in active files
|
|
221
|
+
|
|
222
|
+
**P2 checks:**
|
|
223
|
+
|
|
224
|
+
- [ ] Over-engineered abstractions (component with 15+ props when 5 would do)
|
|
225
|
+
- [ ] Inconsistent naming conventions (`user-card`, `UserCard`, `user_card`)
|
|
226
|
+
- [ ] Prop drilling through 5+ component levels without context
|
|
227
|
+
- [ ] Unnecessary `useMemo`/`useCallback` wrapping simple values
|
|
228
|
+
|
|
229
|
+
**P3 checks:**
|
|
230
|
+
|
|
231
|
+
- [ ] Generic placeholder content ("Lorem ipsum", "John Doe", "Acme Corp")
|
|
232
|
+
- [ ] Hardcoded English strings without i18n wrapper
|
|
233
|
+
- [ ] Missing `key` props or using index as key
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Audit Report Format
|
|
238
|
+
|
|
239
|
+
When producing an audit, use this format:
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
## UI Quality Audit: [Component/Page]
|
|
243
|
+
|
|
244
|
+
### Overall Score: [X]/20 (Average: [X.X]/4)
|
|
245
|
+
|
|
246
|
+
| Dimension | Score | P0 | P1 | P2 | P3 |
|
|
247
|
+
|-----------|-------|----|----|----|------|
|
|
248
|
+
| Accessibility | [0-4] | [#] | [#] | [#] | [#] |
|
|
249
|
+
| Performance | [0-4] | [#] | [#] | [#] | [#] |
|
|
250
|
+
| Theming | [0-4] | [#] | [#] | [#] | [#] |
|
|
251
|
+
| Responsive | [0-4] | [#] | [#] | [#] | [#] |
|
|
252
|
+
| Anti-patterns | [0-4] | [#] | [#] | [#] | [#] |
|
|
253
|
+
|
|
254
|
+
### Critical (P0)
|
|
255
|
+
1. **[Issue]** — [Component] — [Fix recommendation]
|
|
256
|
+
2. **[Issue]** — [Component] — [Fix recommendation]
|
|
257
|
+
|
|
258
|
+
### Must Fix (P1)
|
|
259
|
+
1. ...
|
|
260
|
+
|
|
261
|
+
### Should Fix (P2)
|
|
262
|
+
1. ...
|
|
263
|
+
|
|
264
|
+
### Nice to Have (P3)
|
|
265
|
+
1. ...
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Example filled report:
|
|
269
|
+
|
|
270
|
+
```markdown
|
|
271
|
+
## UI Quality Audit: UserProfilePage
|
|
272
|
+
|
|
273
|
+
### Overall Score: 12/20 (Average: 2.4/4)
|
|
274
|
+
|
|
275
|
+
| Dimension | Score | P0 | P1 | P2 | P3 |
|
|
276
|
+
|-----------|-------|----|----|----|------|
|
|
277
|
+
| Accessibility | 2 | 1 | 2 | 1 | 0 |
|
|
278
|
+
| Performance | 3 | 0 | 1 | 1 | 1 |
|
|
279
|
+
| Theming | 4 | 0 | 0 | 0 | 1 |
|
|
280
|
+
| Responsive | 2 | 1 | 1 | 1 | 0 |
|
|
281
|
+
| Anti-patterns | 1 | 1 | 2 | 0 | 1 |
|
|
282
|
+
|
|
283
|
+
### Critical (P0)
|
|
284
|
+
1. **[A11y]** Avatar button without label — keyboard users cannot access profile menu.
|
|
285
|
+
→ Add `aria-label="Open profile menu"` to button.
|
|
286
|
+
2. **[Responsive]** Profile table overflows at 375px — horizontal scroll on main content.
|
|
287
|
+
→ Convert table to stacked card layout on mobile.
|
|
288
|
+
|
|
289
|
+
### Must Fix (P1)
|
|
290
|
+
1. **[A11y]** Color contrast 3.8:1 on bio text (gray-500 on white).
|
|
291
|
+
→ Use gray-600 instead.
|
|
292
|
+
2. **[Perf]** Avatar image loaded at 800×800, displayed at 40×40.
|
|
293
|
+
→ Add `?w=80&q=75` to image URL or use proper responsive srcset.
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Audit Workflow
|
|
299
|
+
|
|
300
|
+
1. **Scan** — Run all automated checks (axe-core, Lighthouse, bundle analyzer)
|
|
301
|
+
2. **Score** — Fill each dimension using the rubric above
|
|
302
|
+
3. **Tag** — Categorize findings by severity (P0-P3)
|
|
303
|
+
4. **Fix P0** — Address all ship-blockers immediately
|
|
304
|
+
5. **Plan P1** — Schedule remaining must-fix items for this release
|
|
305
|
+
6. **Triage P2-P3** — Decide what to fix vs. backlog
|
|
306
|
+
|
|
307
|
+
## Don't
|
|
308
|
+
|
|
309
|
+
| Pattern | Replacement | Because |
|
|
310
|
+
|---------|-------------|---------|
|
|
311
|
+
| Keyboard trap — user cannot tab through all elements | Ensure logical tab order with proper focus management | Keyboard trap makes site unusable for non-mouse users |
|
|
312
|
+
| `outline: none` without `:focus-visible` alternative | Custom focus ring via `:focus-visible` | Removing focus breaks keyboard navigation |
|
|
313
|
+
| Color contrast < 3:1 on body text | Darken text to meet minimum 3:1 contrast | Below 3:1 is illegible for low-vision users |
|
|
314
|
+
| CLS > 0.25 (Cumulative Layout Shift) | Reserve space with aspect-ratio containers and fixed dimensions | High CLS degrades Core Web Vitals |
|
|
315
|
+
| No lazy loading on below-fold images | Add `loading="lazy"` to all images below the fold | Eager loading wastes bandwidth and slows page load |
|
|
316
|
+
| Page unusable at 375px width | Implement responsive layout that reflows at all breakpoints | Mobile users are the primary audience |
|
|
317
|
+
| `<div onClick>` as interactive button | Use `<button type="button">` with proper ARIA | div onClick has no keyboard/screen reader semantics |
|
|
318
|
+
| Purple/blue gradient hero sections | Single flat accent or subtle tonal gradient | Purple/blue gradient is the #1 AI generation fingerprint |
|
|
319
|
+
|
|
320
|
+
## Verification
|
|
321
|
+
|
|
322
|
+
- [ ] Accessibility scored and all P0 items identified
|
|
323
|
+
- [ ] Performance scored with Lighthouse evidence
|
|
324
|
+
- [ ] Theming scored with token audit evidence
|
|
325
|
+
- [ ] Responsive scored with screenshots at 375px, 768px, 1440px
|
|
326
|
+
- [ ] Anti-patterns scored with code review evidence
|
|
327
|
+
- [ ] Audit report generated with all 5 dimensions, severity tags, and fix recommendations
|
|
328
|
+
- [ ] P0 items resolved before merge
|
|
329
|
+
- [ ] P1 items have assigned fix tickets
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
purpose: Project visual identity — single source of truth for mood, color, typography, layout, elevation, shapes, components, and design constraints.
|
|
3
|
+
updated: 2026-06-19
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DESIGN.md — Project Visual Identity
|
|
7
|
+
|
|
8
|
+
> **Aesthetic Anchor:** [One evocative sentence referencing a specific era, artifact, or scene — not adjectives. Example: "A 1970s graduate lecture handout, mimeographed on off-white paper."]
|
|
9
|
+
|
|
10
|
+
## 1. Overview & Mood
|
|
11
|
+
|
|
12
|
+
- **Mood:** [2-3 words: e.g., "Architectural Minimalism", "Warm Editorial", "Brutalist Terminal"]
|
|
13
|
+
- **Specific Reference:** [A concrete scene, artifact, or era — not abstract adjectives]
|
|
14
|
+
- **Tone:** [Professional / Playful / Serious / Warm / Clinical]
|
|
15
|
+
- **Design Philosophy:** [1-2 sentences on guiding aesthetic principle]
|
|
16
|
+
|
|
17
|
+
## 2. Colors
|
|
18
|
+
|
|
19
|
+
- **Brand Palette:** `{colors.brand.primary}` `{colors.brand.secondary}` `{colors.brand.accent}`
|
|
20
|
+
- **Neutral Scale:** `{colors.neutral.50}` → `{colors.neutral.950}` (50/100/200/300/400/500/600/700/800/900/950)
|
|
21
|
+
- **Semantic Colors:** Success `{colors.semantic.success}`, Warning `{colors.semantic.warning}`, Error `{colors.semantic.error}`, Info `{colors.semantic.info}`
|
|
22
|
+
- **Contrast Floor:** WCAG 2.1 AA minimum (≥ 4.5:1 for body text)
|
|
23
|
+
- **No Pure Black:** Use `{colors.neutral.950}` instead of `#000`
|
|
24
|
+
|
|
25
|
+
## 3. Typography
|
|
26
|
+
|
|
27
|
+
- **Display Font:** `{typography.display.family}` — for H1, hero headings
|
|
28
|
+
- **Body Font:** `{typography.body.family}` — for paragraphs, UI labels
|
|
29
|
+
- **Mono Font:** `{typography.mono.family}` — for code, data, timestamps
|
|
30
|
+
- **Scale:** `{typography.scale}` (e.g., 12/14/16/18/20/24/30/36/48/60/72)
|
|
31
|
+
- **Weight Range:** `{typography.weights}` (e.g., 400/500/600/700)
|
|
32
|
+
- **Line Height:** 1.5 body, 1.2 headings
|
|
33
|
+
|
|
34
|
+
## 4. Layout & Spacing
|
|
35
|
+
|
|
36
|
+
- **Grid Base:** `{layout.grid}` (e.g., 4px or 8px)
|
|
37
|
+
- **Spacing Scale:** `{layout.spacing}` (e.g., 4/8/12/16/24/32/48/64/96)
|
|
38
|
+
- **Max Content Width:** `{layout.maxWidth}` (e.g., 1280px)
|
|
39
|
+
- **Column Count:** `{layout.columns}` (e.g., 12-column grid)
|
|
40
|
+
- **Gutter Width:** `{layout.gutter}` (e.g., 24px)
|
|
41
|
+
|
|
42
|
+
## 5. Elevation & Depth
|
|
43
|
+
|
|
44
|
+
- **Shadow Scale:** 5 levels (none / sm / md / lg / xl)
|
|
45
|
+
- **Depth Philosophy:** [Flat / Subtle depth / Heavy layering]
|
|
46
|
+
- **Z-Index Layers:** Base content → Overlays → Modals → Toasts → Tooltips
|
|
47
|
+
- **Border Usage:** When and where borders replace shadows
|
|
48
|
+
|
|
49
|
+
## 6. Shapes & Corners
|
|
50
|
+
|
|
51
|
+
- **Border Radius Scale:** `{shapes.borderRadius}` (e.g., 0/4/8/12/16/24/full)
|
|
52
|
+
- **Corner Philosophy:** [Sharp / Soft / Rounded / Pill]
|
|
53
|
+
- **Icon Style:** [Filled / Outline / Duotone / Custom]
|
|
54
|
+
- **Stroke Width:** `{shapes.strokeWidth}` (e.g., 1px or 1.5px)
|
|
55
|
+
|
|
56
|
+
## 7. Components
|
|
57
|
+
|
|
58
|
+
- **Button Hierarchy:** Primary `{components.button.primary}` / Secondary `{components.button.secondary}` / Ghost `{components.button.ghost}` / Danger `{components.button.danger}`
|
|
59
|
+
- **Input Style:** [Outlined / Filled / Underlined] with `{components.input.height}` height
|
|
60
|
+
- **Card Style:** [Elevated / Bordered / Flat] with `{components.card.padding}` padding
|
|
61
|
+
- **Modal Style:** [Centered / Slide-up / Fullscreen] with backdrop `{components.modal.backdrop}`
|
|
62
|
+
- **Navigation:** [Top bar / Sidebar / Bottom tabs] with `{components.nav.height}`
|
|
63
|
+
|
|
64
|
+
## 8. Do's and Don'ts
|
|
65
|
+
|
|
66
|
+
### Do's
|
|
67
|
+
|
|
68
|
+
- [Key principle 1 — with reasoning]
|
|
69
|
+
- [Key principle 2 — with reasoning]
|
|
70
|
+
- [Key principle 3 — with reasoning]
|
|
71
|
+
|
|
72
|
+
### Don'ts
|
|
73
|
+
|
|
74
|
+
- **Pattern:** [Anti-pattern] — **Replacement:** [Correct approach] — **Because:** [Why this matters]
|
|
75
|
+
- **Pattern:** [Anti-pattern] — **Replacement:** [Correct approach] — **Because:** [Why this matters]
|
|
76
|
+
- **Pattern:** [Anti-pattern] — **Replacement:** [Correct approach] — **Because:** [Why this matters]
|
|
@@ -4,7 +4,7 @@ purpose: Index of DAG workflows with trigger, phases, and invoking command
|
|
|
4
4
|
|
|
5
5
|
# Workflows Index
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
7 DAG workflows. All have `description` frontmatter (for `run_workflow` discovery) and use a consistent Phase format: `Agent`, `Concurrency`, `Depends on`, `Prompt`.
|
|
8
8
|
|
|
9
9
|
## Invocation
|
|
10
10
|
|
|
@@ -24,6 +24,7 @@ Workflows may compose recursively (e.g., `development-lifecycle-workflow` Phase
|
|
|
24
24
|
| `batch-implement` | 3 + merge | ≥5 independent tasks, no file conflicts | `/ship` Phase 3, `development-lifecycle-workflow` Phase 4 | One subagent per task in parallel, review, merge |
|
|
25
25
|
| `deep-research` | 2 + synthesis | Complex/multi-angle topic | `/research` (complex mode) | Fan out web searches per angle, cross-check, cited report |
|
|
26
26
|
| `development-lifecycle-workflow` | 5 | Explicit full-lifecycle multi-agent run | Manual / future `/lifecycle` | research → validate → plan → implement → verify (composes batch-implement) |
|
|
27
|
+
| `frontend-feature-workflow` | 7 | Frontend feature build (mockup or spec) | `run_workflow({ name: "frontend-feature-workflow", args: { feature: "..." } })` | design analysis → deslop → architecture → craft → implement → harden → audit |
|
|
27
28
|
| `garbage-collection` | 5 | Manual `/gc` or scheduled cadence | `/gc` | Fallow scan → grade → prioritize → optional cleanup PRs |
|
|
28
29
|
| `quality-loop` | 7 (looped) | High-risk feature, explicit quality gating | `/ship` Phase 5 (Iterative Quality Loop) | Score-gated review loop until 5/5 or escalation |
|
|
29
30
|
|