@minhduydev/mdpi 0.3.2 → 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.
Files changed (36) hide show
  1. package/README.md +2 -1
  2. package/dist/index.js +202 -4
  3. package/dist/template/.pi/README.md +29 -8
  4. package/dist/template/.pi/VERSION +1 -1
  5. package/dist/template/.pi/agents/general.md +1 -1
  6. package/dist/template/.pi/agents/review.md +1 -1
  7. package/dist/template/.pi/extensions/templates-injector.ts +1 -1
  8. package/dist/template/.pi/packages.json +13 -0
  9. package/dist/template/.pi/prompts/audit.md +4 -1
  10. package/dist/template/.pi/prompts/create.md +1 -0
  11. package/dist/template/.pi/prompts/fix.md +7 -1
  12. package/dist/template/.pi/prompts/gc.md +3 -0
  13. package/dist/template/.pi/prompts/init.md +3 -0
  14. package/dist/template/.pi/prompts/plan.md +5 -2
  15. package/dist/template/.pi/prompts/research.md +3 -0
  16. package/dist/template/.pi/prompts/ship.md +7 -1
  17. package/dist/template/.pi/prompts/verify.md +4 -1
  18. package/dist/template/.pi/skills/INDEX.md +49 -12
  19. package/dist/template/.pi/skills/accessibility-audit/SKILL.md +8 -2
  20. package/dist/template/.pi/skills/baseline-ui/SKILL.md +211 -0
  21. package/dist/template/.pi/skills/dcp-hygiene/SKILL.md +106 -0
  22. package/dist/template/.pi/skills/design-taste-frontend/SKILL.md +53 -42
  23. package/dist/template/.pi/skills/fixing-accessibility/SKILL.md +509 -0
  24. package/dist/template/.pi/skills/frontend-design/SKILL.md +59 -46
  25. package/dist/template/.pi/skills/frontend-ui-engineering/SKILL.md +21 -27
  26. package/dist/template/.pi/skills/memory-system/SKILL.md +118 -0
  27. package/dist/template/.pi/skills/oklch-color-workflow/SKILL.md +426 -0
  28. package/dist/template/.pi/skills/production-hardening/SKILL.md +652 -0
  29. package/dist/template/.pi/skills/ui-craft-principles/SKILL.md +564 -0
  30. package/dist/template/.pi/skills/ui-quality-audit/SKILL.md +329 -0
  31. package/dist/template/.pi/templates/DESIGN.md +76 -0
  32. package/dist/template/.pi/workflows/INDEX.md +2 -1
  33. package/dist/template/.pi/workflows/frontend-feature-workflow.md +343 -0
  34. package/dist/template/.pi/workflows/quality-loop.md +3 -1
  35. package/package.json +1 -1
  36. /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
- 6 DAG workflows. All have `description` frontmatter (for `run_workflow` discovery) and use a consistent Phase format: `Agent`, `Concurrency`, `Depends on`, `Prompt`.
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