webcraft-skills 0.1.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 (29) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/CHANGELOG_zh_CN.md +67 -0
  3. package/LICENSE +21 -0
  4. package/README.md +148 -0
  5. package/README_zh_CN.md +148 -0
  6. package/commands/ui-audit.md +21 -0
  7. package/commands/ui-build.md +21 -0
  8. package/commands/ui-fix.md +21 -0
  9. package/commands/ui-polish.md +21 -0
  10. package/commands/ui-preset.md +15 -0
  11. package/commands/ui-review.md +21 -0
  12. package/package.json +36 -0
  13. package/scripts/install.mjs +101 -0
  14. package/skills/webcraft-skills/SKILL.md +45 -0
  15. package/skills/webcraft-skills/agents/openai.yaml +4 -0
  16. package/skills/webcraft-skills/references/checklists/ui-audit.md +621 -0
  17. package/skills/webcraft-skills/references/checklists/ui-audit.zh.md +675 -0
  18. package/skills/webcraft-skills/references/presets/cinematic-minimal.md +48 -0
  19. package/skills/webcraft-skills/references/presets/cinematic-minimal.zh.md +53 -0
  20. package/skills/webcraft-skills/references/workflows/audit-ui.md +272 -0
  21. package/skills/webcraft-skills/references/workflows/audit-ui.zh.md +299 -0
  22. package/skills/webcraft-skills/references/workflows/build-ui.md +12 -0
  23. package/skills/webcraft-skills/references/workflows/build-ui.zh.md +385 -0
  24. package/skills/webcraft-skills/references/workflows/fix-ui.md +261 -0
  25. package/skills/webcraft-skills/references/workflows/fix-ui.zh.md +261 -0
  26. package/skills/webcraft-skills/references/workflows/polish-ui.md +12 -0
  27. package/skills/webcraft-skills/references/workflows/polish-ui.zh.md +246 -0
  28. package/skills/webcraft-skills/references/workflows/review-ui.md +12 -0
  29. package/skills/webcraft-skills/references/workflows/review-ui.zh.md +207 -0
@@ -0,0 +1,621 @@
1
+ # UI Audit Rubric
2
+
3
+ Use this rubric to inspect AI-generated web pages, landing pages, application screens, or whole sites. The goal is not to express taste preferences; it is to find issues that make the UI feel rough, unusable, untrustworthy, inconsistent, or unlike a mature product.
4
+
5
+ Report issues by `Critical`, `Major`, and `Minor`. Each issue should include location, evidence, impact, and fix direction.
6
+
7
+ ## Contents
8
+
9
+ - Usage
10
+ - Page Context
11
+ - Audit Boundaries
12
+ - Deduplication And Priority
13
+ - Do Not Report
14
+ - Device Matrix
15
+ - Evidence Standard
16
+ - Good Finding Examples
17
+ - Severity
18
+ - Scoring Model
19
+ - Page-Type Differences
20
+ - Layout
21
+ - Typography
22
+ - Color
23
+ - Border, Radius, Shadow
24
+ - Components And States
25
+ - Navigation
26
+ - Forms
27
+ - Modals And Overlays
28
+ - Responsive
29
+ - Motion
30
+ - Accessibility
31
+ - Content Stress Test
32
+ - AI Template Smell
33
+ - Fix Priority Reference
34
+
35
+ ## Usage
36
+
37
+ 1. Confirm whether the target is a page, component, screenshot, whole site, or codebase.
38
+ 2. Check usability and structure before visual consistency; check polish last.
39
+ 3. Do not reject an existing product direction based on personal taste.
40
+ 4. If no browser is available, audit statically from code and state which viewports/interactions were not verified.
41
+ 5. Lead with issues, then fix order. Avoid long summaries before findings.
42
+
43
+ ## Page Context
44
+
45
+ Before judging UI quality, understand the page context. Infer when necessary, but label the inference.
46
+
47
+ Identify:
48
+
49
+ - Page type: landing page, dashboard, app screen, portfolio, docs, form, checkout, admin, marketing site, etc.
50
+ - Core task: read, sign up, buy, search, filter, manage, create, contact, download, book, etc.
51
+ - Audience: general users, developers, enterprise buyers, creators, internal operators, managers, etc.
52
+ - Content density: low-density brand expression, medium-density product explanation, high-density data operation.
53
+ - Technical constraints: component library, Tailwind, shadcn, custom CSS, design tokens, breakpoints.
54
+ - Design tone: tool, content, product, brand, editorial, admin.
55
+
56
+ Do not audit every page with the same taste standard. A dashboard should not be treated like a cinematic marketing site; a portfolio should not be treated like enterprise SaaS; a form should not be treated like a poster.
57
+
58
+ ## Audit Boundaries
59
+
60
+ - Do not reject product positioning because of personal taste.
61
+ - Do not recommend turning every page into the same "premium" style.
62
+ - Do not suggest unrelated rewrites, framework changes, or component-library changes unless the current implementation blocks the fix.
63
+ - Do not fabricate browser verification.
64
+ - Do not state unverified issues as facts; use "code suggests", "likely at 375px", or "needs verification".
65
+ - Do not remove necessary business information for visual consistency.
66
+ - Do not force marketing-page standards onto admin tools, or admin-tool standards onto marketing pages.
67
+ - Do not give abstract advice without an executable fix direction.
68
+
69
+ ## Deduplication And Priority
70
+
71
+ - Report one root cause once, under the most explanatory category.
72
+ - If an issue affects both Layout and Responsive, prefer Responsive.
73
+ - If an issue affects both Components and Accessibility, prefer Accessibility unless the main issue is missing state feedback.
74
+ - If mixed tokens cause radius, border, and shadow inconsistency, report one systemic `Major`, not many `Minor` issues.
75
+ - Do not merge blocking `Critical` issues into broad systemic findings.
76
+ - Do not force a finding under every category.
77
+
78
+ ## Do Not Report
79
+
80
+ - Pure subjective preference without usability, clarity, consistency, or trust impact.
81
+ - Issues without location, evidence, reproduction path, or reasonable inference.
82
+ - "Could be better" comments without a concrete fix direction.
83
+ - Low-value Minor findings used only to pad the report.
84
+ - Brand, marketing, or copy strategy expansion unrelated to the user's goal.
85
+ - Product-decision questions unless marked as `Open Questions`.
86
+ - Differences that are intentional hierarchy rather than inconsistency.
87
+
88
+ ## Device Matrix
89
+
90
+ Default audit should check or infer:
91
+
92
+ - Mobile: 375px
93
+ - Tablet: 768px
94
+ - Desktop: 1280px
95
+
96
+ Deep audit adds:
97
+
98
+ - Small mobile: 360px
99
+ - Large mobile: 390px or 430px
100
+ - Tablet large: 834px
101
+ - Desktop large: 1440px
102
+ - Wide: 1920px
103
+
104
+ If the page cannot run, infer from CSS, layout code, and breakpoints, and state which viewports were not verified.
105
+
106
+ ## Evidence Standard
107
+
108
+ Evidence should include viewport, region, component, state, or code location.
109
+
110
+ Weak:
111
+
112
+ ```text
113
+ Mobile layout is bad.
114
+ ```
115
+
116
+ Better:
117
+
118
+ ```text
119
+ At 375px, the hero CTA group stays horizontal and the secondary button likely exceeds the container, making the touch target incomplete.
120
+ ```
121
+
122
+ Weak:
123
+
124
+ ```text
125
+ The color is not premium.
126
+ ```
127
+
128
+ Better:
129
+
130
+ ```text
131
+ Badges, the primary button, data highlights, and links all use the same saturated purple, so users cannot tell which element is the primary action.
132
+ ```
133
+
134
+ ## Good Finding Examples
135
+
136
+ ### Example 1: Responsive Critical
137
+
138
+ ```markdown
139
+ ### 1. Mobile hero CTA overflows
140
+ Location: `src/app/page.tsx` hero section
141
+ Evidence: At 375px, the CTA group remains horizontal and the secondary button extends about 24px beyond the container.
142
+ Impact: Mobile users cannot fully read or tap the secondary action in the primary conversion area.
143
+ Fix: Allow the CTA group to wrap or stack on small screens; set stable button min-height; check parent `overflow-x` and horizontal padding.
144
+ ```
145
+
146
+ ### Example 2: Major System Issue
147
+
148
+ ```markdown
149
+ ### 1. Radius system is inconsistent across core components
150
+ Location: `Button`, `Card`, `Input`, `Dialog`
151
+ Evidence: Primary buttons use 999px pill radius, cards use 24px, inputs use 4px, and dialogs use 16px in the same page.
152
+ Impact: The UI feels stitched together from different templates instead of one product system.
153
+ Fix: Define a compact radius scale, such as button/input 6px, card 8px, modal 10px; reserve pill radius for rare tags or special CTAs.
154
+ ```
155
+
156
+ ### Example 3: AI Template Smell
157
+
158
+ ```markdown
159
+ ### 1. Hero relies on generic AI-template decoration instead of product clarity
160
+ Location: homepage hero
161
+ Evidence: The first viewport has three badges, four stats, an abstract gradient background, and a large mockup, but does not explain who the product is for or what task it solves.
162
+ Impact: The page looks complete but is not decision-useful; users get atmosphere instead of product understanding.
163
+ Fix: Remove nonessential badges and stats; make the H1 specific; explain target user and core task; keep one primary CTA and one secondary CTA.
164
+ ```
165
+
166
+ ## Severity
167
+
168
+ ### Critical
169
+
170
+ Directly blocks use, makes core information unreadable, prevents a core action, or breaks a common viewport.
171
+
172
+ Typical cases:
173
+
174
+ - Horizontal scrolling, overflow, or clipped primary content on common mobile widths.
175
+ - Main CTA, navigation, form, or dialog is unclickable, unclosable, or unreadable.
176
+ - First-screen hierarchy is so unclear that users cannot identify the page subject or next action.
177
+ - Core text contrast is too low to read.
178
+ - Overlay, modal, sticky header, or bottom bar blocks content with no recovery path.
179
+
180
+ ### Major
181
+
182
+ Does not completely block use, but significantly reduces professionalism, trust, scanning efficiency, or responsive stability.
183
+
184
+ Typical cases:
185
+
186
+ - Missing key states such as hover, focus-visible, disabled, loading, or error.
187
+ - Spacing, type hierarchy, radius, borders, or color system is visibly inconsistent.
188
+ - Mobile or small desktop is usable but cramped, awkwardly wrapped, or hard to tap.
189
+ - Too many cards, bento grids, badges, or stats create template collage.
190
+ - The layout only works for ideal short copy and breaks under real content.
191
+
192
+ ### Minor
193
+
194
+ Does not meaningfully block use, but lowers refinement, rhythm, or finish.
195
+
196
+ Typical cases:
197
+
198
+ - Local alignment, spacing, border opacity, or shadow strength is slightly unstable.
199
+ - Copy is slightly vague; labels or icons are slightly excessive.
200
+ - Motion exists but lacks restraint.
201
+ - State feedback works but is not polished.
202
+
203
+ ## Scoring Model
204
+
205
+ Score each dimension from 0 to 5:
206
+
207
+ - `Usability`: whether the core task can be completed.
208
+ - `Clarity`: whether hierarchy, page subject, and next action are clear.
209
+ - `Consistency`: whether spacing, typography, color, radius, border, and components form a coherent system.
210
+ - `Responsiveness`: whether mobile, tablet, and desktop are stable.
211
+ - `Interaction States`: whether hover, active, focus-visible, disabled, loading, empty, error, and success are covered where relevant.
212
+ - `Visual Maturity`: whether the UI feels like a mature product rather than a rough demo.
213
+ - `AI Template Smell`: higher score means less AI-template smell.
214
+
215
+ `Overall` is not a simple average. Critical issues should heavily lower the total; if the core flow is unusable, overall should not exceed 2.5.
216
+
217
+ ## Page-Type Differences
218
+
219
+ ### Landing Page / Marketing Site
220
+
221
+ - Does the first viewport explain what it is, who it is for, what problem it solves, and what to do next within about 5 seconds?
222
+ - Are CTAs too many or poorly ranked?
223
+ - Do sections form a coherent story instead of stitched templates?
224
+ - Are social proof, metrics, and case studies credible rather than invented?
225
+ - Does decoration hide weak information?
226
+
227
+ ### SaaS / Product Page
228
+
229
+ - Are product capabilities specific rather than abstract value claims?
230
+ - Do screenshots, mockups, and feature cards help understanding?
231
+ - Do pricing, features, FAQ, and CTA order support trial or purchase decisions?
232
+ - Do key features match the target audience?
233
+
234
+ ### Dashboard / Admin
235
+
236
+ - Is density appropriate for repeated work rather than marketing-style display?
237
+ - Are table, filters, search, pagination, sorting, and bulk actions usable?
238
+ - Are loading, empty, error, permission, and offline states covered?
239
+ - Is data hierarchy clear, or do all metrics have equal weight?
240
+ - Is large-screen scanning efficient, and is small-screen degradation reasonable?
241
+
242
+ ### App Screen / Tool
243
+
244
+ - Is the main task path short and clear?
245
+ - Are toolbar, sidebar, panels, and status areas stable under content changes?
246
+ - Are quick actions and dangerous actions clearly separated?
247
+ - Is feedback timely, and can failures recover?
248
+
249
+ ### Form / Checkout / Onboarding
250
+
251
+ - Is each step goal clear, and does the user know progress?
252
+ - Do validation, errors, loading, and success form a complete loop?
253
+ - Do mobile keyboard, inputs, buttons, and errors avoid overlap?
254
+ - Are price, privacy, risk, and confirmation information clear?
255
+
256
+ ### Portfolio / Personal Site
257
+
258
+ - Are the person, work, capability, or viewpoint the main subject?
259
+ - Do project cards include real role, time, problem, contribution, and result?
260
+ - Does the visual style serve the personal positioning?
261
+ - Is contact clear but not overly salesy?
262
+
263
+ ### Docs / Content Site
264
+
265
+ - Are reading width, table of contents, anchors, code blocks, and search usable?
266
+ - Does heading hierarchy support scanning?
267
+ - Do code blocks and tables avoid mobile overflow?
268
+ - Are current location and next reading path clear?
269
+
270
+ ## Layout
271
+
272
+ ### Critical
273
+
274
+ - Horizontal scrolling on common 375px mobile width.
275
+ - Primary content, CTA, navigation, dialog, or table is clipped.
276
+ - Overlap makes text unreadable or controls unclickable.
277
+ - First viewport lacks clear priority because title, visual, background, and buttons all compete.
278
+
279
+ ### Major
280
+
281
+ - Section spacing jumps between cramped and empty.
282
+ - Max width is uncontrolled on large screens or side padding is too tight on small screens.
283
+ - Grid, flex, or cards shrink on mobile instead of collapsing appropriately.
284
+ - Excessive cards, nested cards, floating panels, or uncontrolled information density.
285
+
286
+ ### Minor
287
+
288
+ - Local alignment, card height, or baselines are slightly inconsistent.
289
+ - Section padding and gaps do not follow a stable rhythm.
290
+
291
+ ### Fix Strategy
292
+
293
+ - Fix overflow, clipping, overlap, and unclickable elements first.
294
+ - Then normalize container width, section spacing, and grid collapse rules.
295
+ - Remove unnecessary cards and floating panels.
296
+
297
+ ## Typography
298
+
299
+ ### Critical
300
+
301
+ - Core headings or body text are unreadable, clipped, or overflowing.
302
+ - Button, nav, or form labels wrap so badly that meaning is unclear.
303
+ - Font size, contrast, or line-height makes primary content hard to read.
304
+
305
+ ### Major
306
+
307
+ - H1/H2/H3/body/button/caption hierarchy is excessive or disordered.
308
+ - Long words, mixed-language text, dates, emails, filenames, or long labels lack a wrapping strategy.
309
+ - Line-height is tight, paragraphs are too wide or too narrow, or weights jump randomly.
310
+ - Oversized or ultra-bold type is used to fake premium quality.
311
+
312
+ ### Minor
313
+
314
+ - Labels, captions, or helper text are slightly too small or faint.
315
+ - Button text centering or heading/body spacing is slightly off.
316
+
317
+ ### Fix Strategy
318
+
319
+ - Use a small stable hierarchy: H1, H2, body, caption, button.
320
+ - Add natural wrapping and width constraints for long text and labels.
321
+ - Prefer line-height, max-width, and font-weight fixes before changing fonts.
322
+
323
+ ## Color
324
+
325
+ ### Critical
326
+
327
+ - Core text contrast is too low.
328
+ - Error, success, disabled, or current states are only expressed by color and are unclear.
329
+ - Background image, gradient, or texture overpowers text.
330
+
331
+ ### Major
332
+
333
+ - Accent color is overused and hierarchy collapses.
334
+ - The page is dominated by one hue family in a cheap or template-like way.
335
+ - Saturated blue-purple, neon, rainbow gradients, or fake tech colors hurt trust.
336
+ - Surfaces, borders, backgrounds, and text lack clear hierarchy.
337
+
338
+ ### Minor
339
+
340
+ - Secondary text is slightly faint, borders are slightly heavy/light, or hover color shifts are coarse.
341
+
342
+ ### Fix Strategy
343
+
344
+ - Ensure text contrast and state recognition first.
345
+ - Limit accent color to primary CTA, current state, key data, and small visual anchors.
346
+ - Use background, border, and text opacity for hierarchy instead of saturated blocks.
347
+
348
+ ## Border, Radius, Shadow
349
+
350
+ ### Critical
351
+
352
+ - Borders or shadows reduce readability or make interactive boundaries unclear.
353
+ - Dialogs, menus, or inputs lack clear boundaries.
354
+
355
+ ### Major
356
+
357
+ - Cards, buttons, inputs, and dialogs use conflicting radius systems.
358
+ - Border weight or color is inconsistent.
359
+ - Strong shadows make the page feel like stacked floating panels.
360
+ - Glassmorphism, heavy outlines, or glow effects feel cheap.
361
+
362
+ ### Minor
363
+
364
+ - Small radius differences or divider opacity inconsistencies.
365
+
366
+ ### Fix Strategy
367
+
368
+ - Define a compact radius scale.
369
+ - Use low-contrast borders for structure.
370
+ - Reserve shadows for true elevation such as popovers and modals.
371
+
372
+ ## Components And States
373
+
374
+ ### Critical
375
+
376
+ - Main buttons, navigation, forms, or menus lack usable interaction feedback.
377
+ - Form errors are invisible or do not explain recovery.
378
+ - Async actions lack loading/disabled feedback and can be double-submitted.
379
+ - Icon buttons lack labels, tooltips, or accessible names.
380
+
381
+ ### Major
382
+
383
+ - Missing key hover, active, focus-visible, disabled, loading, empty, error, or success states.
384
+ - Primary, secondary, and destructive actions are not clearly ranked.
385
+ - Lists, tables, and cards only handle fixed counts or short text.
386
+ - Components shift size on hover or content changes.
387
+
388
+ ### Minor
389
+
390
+ - State feedback exists but is too loud, too weak, or inconsistent.
391
+ - Loading skeletons, empty states, or icon sizing feel rough.
392
+
393
+ ### Fix Strategy
394
+
395
+ - Add focus-visible, disabled, loading, and error states first.
396
+ - Stabilize sizes, borders, radius, and state feedback.
397
+ - Hover and active states must not alter layout dimensions.
398
+
399
+ ## Navigation
400
+
401
+ ### Critical
402
+
403
+ - Mobile navigation disappears without an alternative path.
404
+ - Current page, section, or state cannot be identified.
405
+ - Sticky navigation hides content or conflicts with modal/toast layers.
406
+
407
+ ### Major
408
+
409
+ - Navigation has too many items or unclear priority.
410
+ - Logo, site name, or primary entry position is unstable.
411
+ - Mobile menu cannot close, lacks keyboard path, or has confused overlay behavior.
412
+
413
+ ### Minor
414
+
415
+ - Current-state feedback is weak.
416
+ - Hover/focus details are inconsistent.
417
+
418
+ ### Fix Strategy
419
+
420
+ - Ensure real navigation paths on desktop and mobile.
421
+ - Reduce item count and move secondary entries into menu or footer.
422
+ - Sticky nav needs enough background layer without becoming a heavy floating panel.
423
+
424
+ ## Forms
425
+
426
+ ### Critical
427
+
428
+ - Inputs lack labels or clear context.
429
+ - Error states are invisible or do not explain how to fix.
430
+ - Submit lacks loading, success, or error feedback.
431
+
432
+ ### Major
433
+
434
+ - Placeholder is used as the only label.
435
+ - Focus state is too weak for keyboard users.
436
+ - Help text, errors, disabled, and required states are inconsistent.
437
+ - Mobile inputs are too small or too close to screen edges.
438
+
439
+ ### Minor
440
+
441
+ - Form spacing is slightly loose or cramped.
442
+ - Error copy is vague.
443
+ - Input and button heights are slightly mismatched.
444
+
445
+ ### Fix Strategy
446
+
447
+ - Give every input a label or equivalent context.
448
+ - Error copy should explain the problem and recovery.
449
+ - Form states should form a loop: idle, focus, disabled, loading, error, success.
450
+
451
+ ## Modals And Overlays
452
+
453
+ ### Critical
454
+
455
+ - Dialog cannot be closed.
456
+ - Mobile dialog content overflows with no scrolling.
457
+ - Overlay blocks key content with no recovery path.
458
+ - Destructive action lacks confirmation or clear feedback.
459
+
460
+ ### Major
461
+
462
+ - Focus does not enter the dialog or return to the trigger.
463
+ - Dialog width, height, or padding is inappropriate on mobile.
464
+ - Overlay is too heavy/light and hierarchy is unclear.
465
+ - Dialog content behaves like stacked cards instead of one task.
466
+
467
+ ### Minor
468
+
469
+ - Close button position, footer spacing, or motion is slightly rough.
470
+
471
+ ### Fix Strategy
472
+
473
+ - Fix close, scroll, focus, and destructive confirmation first.
474
+ - Then refine mobile sizing and content hierarchy.
475
+ - A dialog should carry one main task.
476
+
477
+ ## Responsive
478
+
479
+ ### Critical
480
+
481
+ - 375px, 768px, or 1280px breaks a core flow.
482
+ - Images, mockups, tables, or code blocks cause horizontal scrolling.
483
+ - CTA, navigation, forms, or dialogs are inoperable on mobile.
484
+
485
+ ### Major
486
+
487
+ - Mobile is merely a shrunken desktop layout.
488
+ - Large screens are too wide or too sparse.
489
+ - Tablet breakpoint is ignored and creates awkward intermediate layouts.
490
+ - Fixed/sticky elements hide content.
491
+
492
+ ### Minor
493
+
494
+ - Mobile section spacing or image crop is slightly off.
495
+
496
+ ### Fix Strategy
497
+
498
+ - Check at least 375px, 768px, and 1280px.
499
+ - Fix horizontal scrolling and inoperable controls first.
500
+ - Use aspect-ratio, min/max width, and stable dimensions for fixed-format UI.
501
+
502
+ ## Motion
503
+
504
+ ### Critical
505
+
506
+ - Motion blocks reading, clicking, or state understanding.
507
+ - Frequent animation, autoplay, or scroll fly-ins prevent stable operation.
508
+
509
+ ### Major
510
+
511
+ - Hover changes size or position and shifts nearby layout.
512
+ - Multiple areas animate at once and compete for attention.
513
+ - Reduced motion is ignored.
514
+ - Loading motion feels frantic or cheap.
515
+
516
+ ### Minor
517
+
518
+ - Transition duration or easing is inconsistent.
519
+
520
+ ### Fix Strategy
521
+
522
+ - Motion should support feedback, hierarchy, or subtle atmosphere.
523
+ - Use color, border, or opacity changes for hover/active instead of size/position changes.
524
+ - Respect reduced motion.
525
+
526
+ ## Accessibility
527
+
528
+ ### Critical
529
+
530
+ - Keyboard cannot complete a core action.
531
+ - Focus-visible is missing.
532
+ - Important icon buttons lack accessible names.
533
+ - Important state is expressed only by color.
534
+
535
+ ### Major
536
+
537
+ - Heading order harms structure.
538
+ - Form labels, errors, and controls are not associated.
539
+ - Dialog focus management is weak.
540
+ - Interactive targets are too small.
541
+
542
+ ### Minor
543
+
544
+ - Aria-label copy is vague.
545
+ - Non-core semantics could be improved.
546
+
547
+ ### Fix Strategy
548
+
549
+ - Ensure keyboard path, focus-visible, and accessible names first.
550
+ - Then fix semantics and state expression.
551
+ - Do not rely on color as the only state cue.
552
+
553
+ ## Content Stress Test
554
+
555
+ AI-generated UI often only fits ideal short copy. Consider real content pressure:
556
+
557
+ - Long headings, long words, mixed language text.
558
+ - Numbers, dates, prices, emails, filenames.
559
+ - Button copy expanding from short to long.
560
+ - Cards with uneven content lengths.
561
+ - Lists with 0, 1, 3, 10, or 20 items.
562
+ - Long form error messages.
563
+ - Varied image ratios, missing avatars, different screenshot sizes.
564
+ - Very long user, organization, or project names.
565
+
566
+ ### Critical
567
+
568
+ - Real content hides a core action, makes it unclickable, or creates horizontal scrolling.
569
+
570
+ ### Major
571
+
572
+ - Real content makes card heights chaotic, titles wrap badly, buttons deform, or lists become hard to scan.
573
+
574
+ ### Minor
575
+
576
+ - Real content remains usable but local rhythm or alignment degrades.
577
+
578
+ ### Fix Strategy
579
+
580
+ - Set max-width, line-height, and wrapping rules.
581
+ - Use aspect-ratio, object-fit, min/max size for media.
582
+ - Give buttons and tags stable height and wrapping behavior.
583
+
584
+ ## AI Template Smell
585
+
586
+ This is not pure taste. It checks whether the page feels assembled from generic AI templates.
587
+
588
+ ### Critical
589
+
590
+ - The page has only a huge title, abstract background, and CTA, with no real information structure.
591
+ - Copy, data, or case studies are obviously fabricated or misleading.
592
+ - The first viewport feels like a poster rather than a usable site.
593
+
594
+ ### Major
595
+
596
+ - Too many badges, stats, bento grids, gradient glows, and decorative icons.
597
+ - Sections feel stitched together from unrelated templates.
598
+ - Card density, icon count, and effects hide missing information.
599
+ - Copy is full of vague claims such as "redefine", "next generation", or "unlock potential".
600
+
601
+ ### Minor
602
+
603
+ - Local decoration is slightly excessive.
604
+ - Some copy is generic or salesy.
605
+ - Icons or labels feel interchangeable.
606
+
607
+ ### Fix Strategy
608
+
609
+ - Remove meaningless decoration and keep elements that support information or action.
610
+ - Build trust with real content, clear structure, and stable component systems.
611
+ - Copy should answer what it is, who it is for, what problem it solves, and what to do next.
612
+
613
+ ## Fix Priority Reference
614
+
615
+ 1. Fix Critical: overflow, overlap, unclickable, unreadable, broken navigation/dialog/form.
616
+ 2. Fix Major: responsive degradation, hierarchy, component states, visual tokens, consistency.
617
+ 3. Fix Content Stress: long copy, real data, varied counts and ratios.
618
+ 4. Fix AI Template Smell: remove template noise and add real information structure.
619
+ 5. Fix Minor: alignment, details, motion, copy polish.
620
+
621
+ Do not start by rewriting the visual style. Good UI repair order is: usable first, clear second, consistent third, refined last.