tribunal-kit 5.8.3 โ†’ 5.8.5

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 (121) hide show
  1. package/.agent/ARCHITECTURE.md +5 -5
  2. package/.agent/history/integrity_manifest.json +1026 -0
  3. package/.agent/history/memory/.memory.idx +1217 -1
  4. package/.agent/history/memory/MEMORY.md +81 -1
  5. package/.agent/rules/GEMINI.md +1 -1
  6. package/.agent/scripts/_utils.js +28 -7
  7. package/.agent/scripts/case_law_manager.js +3 -15
  8. package/.agent/scripts/context_broker.js +3 -20
  9. package/.agent/scripts/guardrail_engine.js +643 -0
  10. package/.agent/scripts/integrity_manifest.js +492 -0
  11. package/.agent/scripts/marathon_harness.js +10 -1
  12. package/.agent/scripts/signal_detector.js +1 -1
  13. package/.agent/scripts/skill_evolution.js +39 -36
  14. package/.agent/scripts/skill_integrator.js +2 -12
  15. package/.agent/scripts/swarm_dispatcher.js +54 -5
  16. package/.agent/skills/12-principles-of-animation/SKILL.md +69 -0
  17. package/.agent/skills/60fps-animation/SKILL.md +78 -0
  18. package/.agent/skills/accessible-animation/SKILL.md +86 -0
  19. package/.agent/skills/adapt/SKILL.md +75 -0
  20. package/.agent/skills/animation-on-scroll/SKILL.md +110 -0
  21. package/.agent/skills/animation-systems/SKILL.md +69 -0
  22. package/.agent/skills/antfu-conventions/SKILL.md +74 -0
  23. package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
  24. package/.agent/skills/apple-design/SKILL.md +108 -0
  25. package/.agent/skills/audit-and-fix/SKILL.md +83 -0
  26. package/.agent/skills/baseline-ui/SKILL.md +74 -0
  27. package/.agent/skills/better-colors/SKILL.md +132 -0
  28. package/.agent/skills/better-typography/SKILL.md +111 -0
  29. package/.agent/skills/better-ui/SKILL.md +102 -0
  30. package/.agent/skills/bolder/SKILL.md +68 -0
  31. package/.agent/skills/build-primitive/SKILL.md +70 -0
  32. package/.agent/skills/clarify/SKILL.md +75 -0
  33. package/.agent/skills/cobejs/SKILL.md +96 -0
  34. package/.agent/skills/codebase-design/SKILL.md +84 -0
  35. package/.agent/skills/colorize/SKILL.md +77 -0
  36. package/.agent/skills/compact-landing/SKILL.md +70 -0
  37. package/.agent/skills/company-logos/SKILL.md +73 -0
  38. package/.agent/skills/create-design-md/SKILL.md +104 -0
  39. package/.agent/skills/critique/SKILL.md +95 -0
  40. package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
  41. package/.agent/skills/delight/SKILL.md +65 -0
  42. package/.agent/skills/design-lab/SKILL.md +59 -0
  43. package/.agent/skills/diagnosing-bugs/SKILL.md +190 -0
  44. package/.agent/skills/distill/SKILL.md +65 -0
  45. package/.agent/skills/domain-modeling/SKILL.md +78 -0
  46. package/.agent/skills/fixing-accessibility/SKILL.md +100 -0
  47. package/.agent/skills/fixing-metadata/SKILL.md +97 -0
  48. package/.agent/skills/fixing-motion-performance/SKILL.md +96 -0
  49. package/.agent/skills/frontend-design/SKILL.md +80 -81
  50. package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
  51. package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
  52. package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
  53. package/.agent/skills/gpt-taste/SKILL.md +68 -0
  54. package/.agent/skills/harden/SKILL.md +74 -0
  55. package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
  56. package/.agent/skills/impeccable/SKILL.md +74 -0
  57. package/.agent/skills/improve-codebase-architecture/SKILL.md +67 -0
  58. package/.agent/skills/improve-ui/SKILL.md +83 -0
  59. package/.agent/skills/landing-page/SKILL.md +88 -0
  60. package/.agent/skills/lint-and-validate/SKILL.md +0 -1
  61. package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
  62. package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
  63. package/.agent/skills/local-first-architecture/SKILL.md +66 -0
  64. package/.agent/skills/lottie-animation/SKILL.md +82 -0
  65. package/.agent/skills/marquee-loop/SKILL.md +96 -0
  66. package/.agent/skills/masked-reveal/SKILL.md +88 -0
  67. package/.agent/skills/micro-interaction/SKILL.md +100 -0
  68. package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
  69. package/.agent/skills/morphing-icons/SKILL.md +85 -0
  70. package/.agent/skills/motion-engineering/SKILL.md +66 -164
  71. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
  72. package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
  73. package/.agent/skills/page-transition-animation/SKILL.md +108 -0
  74. package/.agent/skills/parallel-agents/SKILL.md +5 -5
  75. package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
  76. package/.agent/skills/polish/SKILL.md +63 -0
  77. package/.agent/skills/pricing-page/SKILL.md +68 -0
  78. package/.agent/skills/progressive-blur/SKILL.md +100 -0
  79. package/.agent/skills/quieter/SKILL.md +68 -0
  80. package/.agent/skills/react-doctor/SKILL.md +70 -0
  81. package/.agent/skills/redesign-skill/SKILL.md +65 -0
  82. package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
  83. package/.agent/skills/shape/SKILL.md +73 -0
  84. package/.agent/skills/soft-skill/SKILL.md +72 -0
  85. package/.agent/skills/sounds-on-the-web/SKILL.md +100 -0
  86. package/.agent/skills/svg-animation/SKILL.md +91 -0
  87. package/.agent/skills/swiss-design/SKILL.md +64 -0
  88. package/.agent/skills/taste-skill/SKILL.md +71 -0
  89. package/.agent/skills/tdd-workflow/SKILL.md +36 -165
  90. package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  91. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +82 -0
  92. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +66 -0
  93. package/.agent/skills/transitions-dev/SKILL.md +101 -0
  94. package/.agent/skills/typeset/SKILL.md +76 -0
  95. package/.agent/skills/ui-skills-root/SKILL.md +85 -0
  96. package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  97. package/.agent/skills/web-quality-audit/SKILL.md +67 -0
  98. package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
  99. package/.agent/workflows/generate.md +1 -1
  100. package/.agent/workflows/tribunal-full.md +2 -2
  101. package/.agent/workflows/tribunal-speed.md +2 -2
  102. package/CONTRIBUTING.md +1 -1
  103. package/README.md +349 -239
  104. package/bin/mcp-server.js +45 -45
  105. package/bin/tribunal-kit.js +62 -1482
  106. package/bin/wrapper.js +50 -25
  107. package/dist/cli.js +43 -0
  108. package/dist/commands/align.js +1 -1
  109. package/dist/commands/compile.js +1 -1
  110. package/dist/commands/guardrail.js +275 -0
  111. package/dist/commands/init.js +35 -10
  112. package/dist/commands/native.js +228 -0
  113. package/dist/commands/optimize.js +318 -0
  114. package/dist/commands/validate.js +67 -0
  115. package/dist/mcp/server.js +4 -138
  116. package/dist/utils/version.js +1 -1
  117. package/package.json +13 -10
  118. package/scripts/benchmark.js +42 -0
  119. package/scripts/fix-vbc.js +98 -0
  120. package/scripts/fix-vbc.ps1 +119 -0
  121. package/scripts/sync-version.js +129 -76
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: fixing-metadata
3
+ description: Audit and fix page metadata including page titles, meta descriptions, Open Graph, Twitter cards, canonical URLs, and JSON-LD structured data.
4
+ version: 1.0.0
5
+ last-updated: 2026-07-22
6
+ applies-to-model: gemini-3-6-flash, claude-3-7-sonnet
7
+ routing:
8
+ domain: Technical SEO & Metadata Optimization
9
+ tier: pro
10
+ co-requires: [seo-fundamentals, web-quality-audit]
11
+ trigger-signals:
12
+ strong: [fixing-metadata, Open Graph tags, Twitter card metadata, canonical URL, JSON-LD structured data, meta description fix]
13
+ weak: [fix metadata, SEO tags]
14
+ ---
15
+
16
+ # Fixing Metadata โ€” Technical SEO & Open Graph Tags
17
+
18
+ Audit, generate, and fix page metadata for rich social previews, search engine indexing, and structured data.
19
+
20
+ ---
21
+
22
+ ## 4 Metadata Standard Requirements
23
+
24
+ ### 1. Title & Meta Description Length & Formatting
25
+ - **Title Tag**: 50โ€“60 characters max (*"Product Title | Brand Name"*).
26
+ - **Meta Description**: 140โ€“155 characters max. Must contain active call to value without truncating on search result cards.
27
+
28
+ ### 2. Open Graph & Twitter Card Matrix
29
+ ```html
30
+ <!-- Open Graph / Facebook / LinkedIn -->
31
+ <meta property="og:type" content="website" />
32
+ <meta property="og:title" content="UI Skills for Design Engineers" />
33
+ <meta property="og:description" content="A curated collection of design-engineering skills for accessibility, motion, and frontend craft." />
34
+ <meta property="og:image" content="https://example.com/og-image.jpg" />
35
+ <meta property="og:image:width" content="1200" />
36
+ <meta property="og:image:height" content="630" />
37
+
38
+ <!-- Twitter / X -->
39
+ <meta name="twitter:card" content="summary_large_image" />
40
+ <meta name="twitter:title" content="UI Skills for Design Engineers" />
41
+ <meta name="twitter:description" content="A curated collection of design-engineering skills for accessibility, motion, and frontend craft." />
42
+ <meta name="twitter:image" content="https://example.com/twitter-image.jpg" />
43
+ ```
44
+
45
+ ### 3. Canonical Tag Verification
46
+ ```html
47
+ <link rel="canonical" href="https://example.com/current-page-path" />
48
+ ```
49
+
50
+ ### 4. Next.js App Router Metadata Export Example
51
+ ```typescript
52
+ import type { Metadata } from "next";
53
+
54
+ export const metadata: Metadata = {
55
+ title: "UI Skills for Design Engineers",
56
+ description: "Curated design-engineering skills for accessibility, motion, and frontend craft.",
57
+ openGraph: {
58
+ title: "UI Skills for Design Engineers",
59
+ description: "Curated design-engineering skills for accessibility, motion, and frontend craft.",
60
+ url: "https://example.com",
61
+ images: [{ url: "https://example.com/og.jpg", width: 1200, height: 630 }],
62
+ },
63
+ twitter: {
64
+ card: "summary_large_image",
65
+ title: "UI Skills for Design Engineers",
66
+ images: ["https://example.com/twitter.jpg"],
67
+ },
68
+ };
69
+ ```
70
+
71
+ ---
72
+
73
+ ## ๐Ÿค– LLM-Specific Traps
74
+
75
+ 1. **Relative Image URLs in OG Metadata**: Using `<meta property="og:image" content="/og.jpg">` instead of full absolute HTTPS URLs (`https://domain.com/og.jpg`).
76
+ 2. **Missing `summary_large_image`**: Forgetting `twitter:card` type, causing Twitter/X to render a tiny square thumbnail instead of a prominent banner preview.
77
+
78
+ ---
79
+
80
+ ## ๐Ÿ›๏ธ Tribunal Integration (Anti-Hallucination)
81
+
82
+ **Active reviewers: `seo-specialist` ยท `frontend-reviewer`**
83
+
84
+ ### โœ… Pre-Flight Self-Audit
85
+
86
+ ```
87
+ โœ… Are OpenGraph and Twitter card image URLs absolute HTTPS links?
88
+ โœ… Is title length between 50 and 60 characters?
89
+ โœ… Is canonical URL explicitly defined?
90
+ ```
91
+
92
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
93
+
94
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
95
+
96
+ - โŒ **Forbidden:** Declaring a task complete because the output "looks correct."
97
+ - โœ… **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: fixing-motion-performance
3
+ description: Audit and fix animation performance issues including layout thrashing, compositor properties, scroll-linked motion, and blur effects. Use when animations stutter, transitions jank, or reviewing CSS/JS animation performance.
4
+ version: 1.0.0
5
+ last-updated: 2026-07-22
6
+ applies-to-model: gemini-3-6-flash, claude-3-7-sonnet
7
+ routing:
8
+ domain: UI Motion & Performance
9
+ tier: pro
10
+ co-requires: [60fps-animation, gsap-performance]
11
+ trigger-signals:
12
+ strong: [fixing-motion-performance, layout thrashing, compositor properties, scroll jank, animation stutter, GPU acceleration, will-change]
13
+ weak: [jank, slow animation, stutter]
14
+ ---
15
+
16
+ # Fixing Motion Performance โ€” 60/120fps Jank-Free Animation
17
+
18
+ Guidelines for auditing and resolving web animation jank, layout thrashing, and GPU rendering bottlenecks.
19
+
20
+ ---
21
+
22
+ ## 1. Browser Rendering Pipeline & Compositor Rules
23
+
24
+ Animations trigger one of 3 rendering costs:
25
+ 1. **Layout (Expensive)**: Animating `width`, `height`, `margin`, `padding`, `top`, `left`, `flex`, `grid`. Forces full geometry recalculation across the page.
26
+ 2. **Paint (Moderate)**: Animating `color`, `background-color`, `border-color`, `box-shadow`, `filter`. Forces pixel repaint.
27
+ 3. **Composite (GPU Fast)**: Animating **`transform`** (`translate`, `scale`, `rotate`) and **`opacity`**. Offloaded entirely to GPU compositor thread!
28
+
29
+ $$\text{Rule: } \text{Animate ONLY } \mathbf{transform} \text{ and } \mathbf{opacity}$$
30
+
31
+ ---
32
+
33
+ ## 2. Layout Thrashing (Read/Write Interleaving)
34
+
35
+ NEVER interleave DOM layout measurements (`offsetHeight`, `getBoundingClientRect()`) with DOM mutations (`style.height = ...`) in the same event loop or frame loop!
36
+
37
+ ```javascript
38
+ // โŒ WRONG โ€” Triggers Layout Thrashing (Multiple Recalculations)
39
+ elements.forEach(el => {
40
+ const h = el.offsetHeight; // READ (Forces Layout Calculation)
41
+ el.style.height = `${h + 10}px`; // WRITE (Invalidates Layout)
42
+ });
43
+
44
+ // โœ… CORRECT โ€” Batch Reads First, Then Batch Writes
45
+ const heights = elements.map(el => el.offsetHeight); // BATCH READS
46
+ elements.forEach((el, i) => {
47
+ el.style.height = `${heights[i] + 10}px`; // BATCH WRITES
48
+ });
49
+ ```
50
+
51
+ ---
52
+
53
+ ## 3. GPU Hinting (`will-change`)
54
+
55
+ - Use `will-change: transform, opacity` ONLY on actively animated elements right before interaction begins.
56
+ - Remove `will-change` when animation ends to free GPU memory. NEVER place `will-change: transform` globally on hundreds of DOM nodes.
57
+
58
+ ```css
59
+ /* Apply hardware acceleration hint to GPU */
60
+ .animated-card {
61
+ will-change: transform, opacity;
62
+ }
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Anti-Slop Table
68
+
69
+ | Performance Issue | Motion Performance Fix | FPS Gain |
70
+ | --- | --- | --- |
71
+ | Animating `height: 0` to `auto` | FLIP technique or `scaleY` transform animation | 15fps โ†’ 60fps |
72
+ | Scroll listener mutating inline CSS | `CSS scroll-timeline` or `IntersectionObserver` | Prevents main-thread scroll jank |
73
+ | `transition: all 0.3s` | `transition: transform 200ms cubic-bezier(0.16,1,0.3,1), opacity 200ms ease` | Eliminates accidental layout/color recalculations |
74
+
75
+ ---
76
+
77
+ ## ๐Ÿค– LLM-Specific Traps
78
+
79
+ 1. **`transition: all`**: Using `all` causes layout recalculation and repaint on every hover.
80
+ 2. **`requestAnimationFrame` Memory Leaks**: Launching continuous `rAF` loops without cancellation logic (`cancelAnimationFrame`).
81
+
82
+ ---
83
+
84
+ ## ๐Ÿ›๏ธ Tribunal Integration (Anti-Hallucination)
85
+
86
+ ### โœ… Pre-Flight Self-Audit
87
+
88
+ ```
89
+ โœ… Are all continuous animations restricted strictly to transform and opacity?
90
+ โœ… Are DOM reads and writes batched to eliminate layout thrashing?
91
+ โœ… Is will-change used sparingly on active animated elements only?
92
+ ```
93
+
94
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
95
+
96
+ Inspect Chrome Performance tab rendering profile in live preview to verify 60/120fps motion without frame drops.
@@ -25,143 +25,142 @@ routing:
25
25
 
26
26
  ---
27
27
 
28
- ## 1. Color Theory (HSL over HEX)
28
+ ## 1. Modern Color Systems (OKLCH & HSL)
29
29
 
30
- Never use raw flat HEX colors. Use HSL to build cohesive scales.
30
+ Never use raw flat HEX colors. Use OKLCH (perceptually uniform) or HSL to build scalable, harmonic themes.
31
31
 
32
32
  ```css
33
33
  :root {
34
- /* HSL allows programmatic adjustment of lightness/saturation */
35
- --hue: 220;
36
- --sat: 80%;
37
-
38
- --bg-base: hsl(var(--hue), 15%, 98%);
39
- --bg-surface: hsl(var(--hue), 20%, 100%);
40
-
41
- --text-main: hsl(var(--hue), 40%, 10%);
42
- --text-muted: hsl(var(--hue), 20%, 40%);
43
-
44
- --primary: hsl(var(--hue), var(--sat), 50%);
45
- --primary-hover: hsl(var(--hue), var(--sat), 40%); /* Darken via L */
34
+ /* OKLCH perceptual uniformity: lightness (0-100%), chroma (0-0.37), hue (0-360) */
35
+ --brand-primary: oklch(62% 0.21 275);
36
+ --brand-hover: oklch(from var(--brand-primary) calc(l - 0.1) c h); /* Relative Color Syntax */
37
+
38
+ --bg-base: oklch(98% 0.005 240);
39
+ --bg-surface: oklch(100% 0 0);
40
+ --text-main: oklch(20% 0.02 240);
41
+ --text-muted: oklch(50% 0.02 240);
46
42
  }
47
43
 
48
- /* OLED Dark Mode */
49
- @media (prefers-color-scheme: dark) {
50
- :root {
51
- --bg-base: hsl(var(--hue), 10%, 2%);
52
- --bg-surface: hsl(var(--hue), 10%, 6%);
53
- --text-main: hsl(var(--hue), 20%, 95%);
54
- --text-muted: hsl(var(--hue), 10%, 60%);
55
- }
44
+ /* Light/Dark mode via native light-dark() function or OLED media query */
45
+ :root {
46
+ color-scheme: light dark;
47
+ --bg-surface: light-dark(oklch(100% 0 0), oklch(15% 0.01 240));
48
+ --text-main: light-dark(oklch(20% 0.02 240), oklch(95% 0.01 240));
56
49
  }
57
50
  ```
58
51
 
59
- ## 2. Spatial Systems & Grid Mathematics
52
+ ---
53
+
54
+ ## 2. Spatial Systems & Container Queries
60
55
 
61
- Design relies on structural rhythm. Use an **8px base system**.
56
+ Design relies on structural rhythm and component-level adaptability.
62
57
 
63
- - **Micro padding**: `4px`, `8px` (Tags, List items)
64
- - **Component padding**: `16px`, `24px` (Cards, Inputs, Modals)
65
- - **Section spacing**: `48px`, `64px`, `96px` (Page sections)
66
- - **Line height**: Body `1.5`, Headings `1.1` or `1.2`.
58
+ - **Base Spacing Grid (8px)**: Micro `4px`, `8px` | Component `16px`, `24px` | Section `48px`, `64px`, `96px`
59
+ - **Nested Border Radius Formula**: `outer_radius = inner_radius + padding`
60
+ - **Fluid Typography**: Use `clamp()` and `cqi` container units over macro media queries.
67
61
 
68
62
  ```css
69
- /* Fluid Typography (Clamp) */
70
- h1 {
71
- /* Min 2rem, fluidly scale between 480px-1200px, Max 4rem */
72
- font-size: clamp(2rem, 5vw, 4rem);
73
- letter-spacing: -0.02em; /* Tighten large text */
63
+ /* Container Queries for Portable Components */
64
+ .card-container {
65
+ container-type: inline-size;
66
+ container-name: card;
67
+ }
68
+
69
+ @container card (min-width: 400px) {
70
+ .card-body {
71
+ display: grid;
72
+ grid-template-columns: 1fr 2fr;
73
+ gap: 1.5cqi;
74
+ }
75
+ }
76
+
77
+ /* Typographic Balance */
78
+ h1, h2, h3 {
79
+ font-size: clamp(2rem, 4vw + 1rem, 4rem);
80
+ letter-spacing: -0.02em;
81
+ text-wrap: balance; /* Prevents awkward multiline headline breaks */
74
82
  }
75
83
 
76
84
  p {
77
85
  font-size: 1rem;
78
- max-width: 65ch; /* Optimal reading length */
86
+ max-width: 65ch;
87
+ text-wrap: pretty; /* Eliminates typographical orphans in body text */
79
88
  }
80
89
  ```
81
90
 
82
91
  ---
83
92
 
84
- ## 3. Interaction & "Juice" (Micro-interactions)
93
+ ## 3. Interaction & Entry Motion (@starting-style)
85
94
 
86
- A premium UI reacts to the user instantly and smoothly. Focus on state transitions.
95
+ A premium UI reacts to user actions instantly and provides smooth DOM mount transitions.
87
96
 
88
97
  ```css
89
- /* Smooth generic transition */
98
+ /* Physical press feedback */
90
99
  .btn {
91
- transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
100
+ transition: transform 0.15s cubic-bezier(0.2, 0.8, 0.4, 1), box-shadow 0.15s ease;
92
101
  }
93
-
94
- /* Active Depth - The physical button push */
95
102
  .btn:active {
96
103
  transform: scale(0.97);
97
104
  }
98
105
 
99
- /* Hardware-Accelerated Shadows */
100
- .card {
101
- box-shadow:
102
- 0 4px 6px -1px rgba(0, 0, 0, 0.1),
103
- 0 2px 4px -1px rgba(0, 0, 0, 0.06);
104
- transition:
105
- transform 0.3s ease,
106
- box-shadow 0.3s ease;
106
+ /* Entry/Exit Animations for DOM Elements (@starting-style) */
107
+ .toast {
108
+ display: none;
109
+ opacity: 0;
110
+ transform: translateY(8px);
111
+ transition: opacity 0.25s ease, transform 0.25s ease, display 0.25s allow-discrete;
112
+ }
113
+ .toast.is-open {
114
+ display: flex;
115
+ opacity: 1;
116
+ transform: translateY(0);
107
117
  }
108
- .card:hover {
109
- transform: translateY(-4px); /* Float effect */
110
- box-shadow:
111
- 0 20px 25px -5px rgba(0, 0, 0, 0.1),
112
- 0 10px 10px -5px rgba(0, 0, 0, 0.04);
118
+ @starting-style {
119
+ .toast.is-open {
120
+ opacity: 0;
121
+ transform: translateY(8px);
122
+ }
113
123
  }
114
124
  ```
115
125
 
116
126
  ---
117
127
 
118
- ## 4. Modern Glassmorphism & Depth
128
+ ## 4. Modern Glassmorphism & Multi-Layer Depth
119
129
 
120
- Flat design is dead. Modern UI uses depth, layering, and blur.
130
+ Avoid flat 1px borders and muddy single shadows. Use multi-layered elevation.
121
131
 
122
132
  ```css
123
- /* Frosted Glass */
124
- .glass {
125
- background: rgba(255, 255, 255, 0.7);
133
+ .card {
134
+ background: light-dark(rgba(255, 255, 255, 0.8), rgba(20, 20, 25, 0.8));
126
135
  backdrop-filter: blur(16px);
127
136
  -webkit-backdrop-filter: blur(16px);
128
- border: 1px solid rgba(255, 255, 255, 0.2);
137
+ border: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.12));
129
138
  border-radius: 16px;
139
+ box-shadow:
140
+ 0 1px 2px oklch(0% 0 0 / 0.05),
141
+ 0 4px 12px oklch(0% 0 0 / 0.08);
130
142
  }
131
143
  ```
132
144
 
133
145
  ---
134
146
 
135
- ## 5. Forms and High-Friction UI
136
-
137
- Forms are where users drop off. They must be flawless.
147
+ ## 5. Accessibility (WCAG 2.2 AA Standards)
138
148
 
139
- - **Auto-focus** the first input on modal open.
140
- - **Labels** must be visible outside the input (not just placeholders).
141
- - **Validation** happens `onBlur` (when leaving), NOT `onChange` (typing).
142
- - **Submit buttons** show loading spinners, disable inputs, and prevent double-clicks.
149
+ Design is broken if it excludes users.
150
+ - โœ… **SC 2.5.8 Target Size**: Interactive controls must be at least `24x24px` CSS pixels (min `44x44px` for touch targets).
151
+ - โœ… **SC 2.4.11 Focus Not Obscured**: Focused elements must never be completely hidden by sticky headers/footers.
152
+ - โœ… **SC 2.4.13 Focus Appearance**: Visible focus rings must achieve `3:1` contrast ratio with a minimum 2px perimeter offset.
153
+ - โœ… **Color Alone**: Never rely solely on color to convey state (pair error alerts with icons).
143
154
 
144
155
  ```css
145
- /* Focus-visible: Only show ring for keyboard nav, not mouse clicks */
146
- button:focus-visible {
147
- outline: 2px solid var(--primary);
148
- outline-offset: 2px;
156
+ button:focus-visible, a:focus-visible {
157
+ outline: 2px solid var(--brand-primary);
158
+ outline-offset: 3px;
149
159
  }
150
160
  ```
151
161
 
152
162
  ---
153
163
 
154
- ## 6. Accessibility (WCAG 2.2 AA)
155
-
156
- Design is fundamentally broken if it excludes users.
157
-
158
- - โœ… Interactive elements need `aria-label` if not visually labeled.
159
- - โœ… Custom dropdowns/selects must support Arrow Keys and Escape.
160
- - โœ… Color alone cannot convey state (Error text must have an icon too `โŒ Password invalid`).
161
- - โœ… Hide decorative SVG/icons from screen readers `aria-hidden="true"`.
162
-
163
- ---
164
-
165
164
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
166
165
 
167
166
  1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: gpt-taste
3
+ description: High-agency UX/UI skill with strict layout variance, typography, and GSAP motion engineering constraints for superior visual judgment.
4
+ version: 1.0.0
5
+ last-updated: 2026-07-22
6
+ applies-to-model: gemini-3-6-flash, claude-3-7-sonnet
7
+ routing:
8
+ domain: High-Agency Aesthetic Judgment
9
+ tier: pro
10
+ co-requires: [taste-skill, better-ui, frontend-design]
11
+ trigger-signals:
12
+ strong: [gpt-taste, high agency UI, visual refinement, layout variance, superior aesthetic judgment]
13
+ weak: [aesthetic UI, refined visual]
14
+ ---
15
+
16
+ # GPT Taste โ€” High-Agency Visual Refinement & Layout Variance
17
+
18
+ Inject high-agency visual judgment and layout variance into AI-generated interfaces.
19
+
20
+ ---
21
+
22
+ ## 4 High-Agency Visual Constraints
23
+
24
+ ### 1. Structural Layout Variance
25
+ Never use standard symmetrical layouts by default. Vary structural axes across sections:
26
+ - **Hero**: Asymmetric 60/40 split or left-aligned stacked text with offset app preview frame.
27
+ - **Features**: Alternating 2-column image/text rhythm or horizontal scroll cards.
28
+ - **CTA**: Single full-width card with progressive backdrop blur overlay.
29
+
30
+ ### 2. OKLCH Perceptual Palette Generation
31
+ Always generate color schemes in OKLCH:
32
+ - Background: `oklch(0.98 0.005 240)`
33
+ - Foreground: `oklch(0.18 0.01 240)`
34
+ - Accent: `oklch(0.62 0.22 250)`
35
+
36
+ ### 3. GSAP / Motion Engineering Integration
37
+ When animation is requested, use explicit GSAP timelines with custom easing curves (`power3.out`, `expo.out`), avoiding default linear transitions.
38
+
39
+ ### 4. Zero Output Truncation
40
+ Never output placeholder `// TODO: add remaining items` comments in UI code. Generate full, production-ready JSX/CSS markup.
41
+
42
+ ---
43
+
44
+ ## ๐Ÿค– LLM-Specific Traps
45
+
46
+ 1. **Truncated Code Outputs**: Outputting incomplete code snippets or placeholder comments.
47
+ 2. **Symmetrical Grid Boredom**: Using 3 identical square cards side-by-side without visual hierarchy differentiation.
48
+
49
+ ---
50
+
51
+ ## ๐Ÿ›๏ธ Tribunal Integration (Anti-Hallucination)
52
+
53
+ **Active reviewers: `frontend-reviewer` ยท `ui-ux-auditor`**
54
+
55
+ ### โœ… Pre-Flight Self-Audit
56
+
57
+ ```
58
+ โœ… Are code outputs 100% complete without placeholder TODOs?
59
+ โœ… Is structural layout varied across different page sections?
60
+ โœ… Are colors declared via OKLCH variables?
61
+ ```
62
+
63
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
64
+
65
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
66
+
67
+ - โŒ **Forbidden:** Declaring a task complete because the output "looks correct."
68
+ - โœ… **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: harden
3
+ description: Make interfaces production-resilient with robust empty states, error boundaries, loading skeletons, offline indicators, and internationalization (i18n) layout support.
4
+ version: 1.0.0
5
+ last-updated: 2026-07-22
6
+ applies-to-model: gemini-3-6-flash, claude-3-7-sonnet
7
+ routing:
8
+ domain: UI Resilience & Production Safety
9
+ tier: pro
10
+ co-requires: [error-resilience, polish, web-accessibility-auditor]
11
+ trigger-signals:
12
+ strong: [harden, ui resilience, error states, empty states, loading skeletons, offline support, i18n layout]
13
+ weak: [error handling ui, loading state]
14
+ ---
15
+
16
+ # Harden โ€” Production UI Resilience & Edge Case Protection
17
+
18
+ Ensure UI components gracefully handle network failures, missing data, slow connections, extreme text lengths, and internationalization.
19
+
20
+ ---
21
+
22
+ ## 5 Resilience Domains
23
+
24
+ ### 1. Zero-Data Empty States
25
+ - Never render empty blank slates or blank boxes.
26
+ - Always render a dedicated empty state component featuring:
27
+ - Contextual icon or subtle illustration
28
+ - Clear heading explaining the zero state (*"No active projects found"*)
29
+ - Secondary helper copy (*"Get started by creating your first project."*)
30
+ - Prominent primary action CTA button (*"Create Project"*)
31
+
32
+ ### 2. Error Boundary UI & Retry Hooks
33
+ - Wrap high-risk component trees in React/framework Error Boundaries.
34
+ - Display localized inline error callouts with explicit "Retry" action buttons rather than crashing the full page view.
35
+
36
+ ### 3. Cumulative Layout Shift (CLS) Loading Skeletons
37
+ - Match skeleton placeholder dimensions EXACTLY to incoming data elements.
38
+ - Use animated pulse keyframes (`@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }`).
39
+
40
+ ### 4. Extreme String Expansion (i18n)
41
+ - German, French, and Spanish strings are 30% - 50% longer than English.
42
+ - Avoid fixed button or container widths (`width: 120px`). Use `min-width` with flexible auto sizing and `flex-wrap: wrap` or text truncation.
43
+
44
+ ### 5. Offline & Network Disconnection Handling
45
+ - Detect `navigator.onLine` state and display subtle offline status banners.
46
+ - Disable mutation buttons during offline mode with explicit tooltip explanation.
47
+
48
+ ---
49
+
50
+ ## ๐Ÿค– LLM-Specific Traps
51
+
52
+ 1. **Swallowing Errors**: Catching API errors and displaying a blank container without informing the user.
53
+ 2. **Fixed Container Widths**: Using hardcoded `width: 200px` on containers with international text.
54
+
55
+ ---
56
+
57
+ ## ๐Ÿ›๏ธ Tribunal Integration (Anti-Hallucination)
58
+
59
+ **Active reviewers: `resilience-reviewer` ยท `frontend-reviewer`**
60
+
61
+ ### โœ… Pre-Flight Self-Audit
62
+
63
+ ```
64
+ โœ… Does every async data container have explicit loading, error, and empty states?
65
+ โœ… Are all containers built flexibly to accommodate 50% text expansion (i18n)?
66
+ โœ… Do error fallbacks include actionable retry buttons?
67
+ ```
68
+
69
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
70
+
71
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
72
+
73
+ - โŒ **Forbidden:** Declaring a task complete because the output "looks correct."
74
+ - โœ… **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: impeccable
3
+ description: Flagship design engineering skill for creating production-grade, anti-generic frontend interfaces with supreme craftsmanship, visual hierarchy, typography, spatial systems, and micro-interactions.
4
+ version: 1.0.0
5
+ last-updated: 2026-07-22
6
+ applies-to-model: gemini-3-6-flash, claude-3-7-sonnet
7
+ routing:
8
+ domain: Premium Frontend Craft
9
+ tier: flagship
10
+ co-requires: [frontend-design, better-ui, emil-design-eng]
11
+ trigger-signals:
12
+ strong: [impeccable, supreme craft, world-class ui, anti-generic design, production-grade interface]
13
+ weak: [beautiful ui, premium frontend]
14
+ ---
15
+
16
+ # Impeccable โ€” Production-Grade Frontend Craft
17
+
18
+ The gold standard framework for crafting bespoke, world-class web applications that feel custom-built by elite design engineers.
19
+
20
+ ---
21
+
22
+ ## Core Pillars of Impeccable UI
23
+
24
+ ### 1. Typography & Typographic Rhythm
25
+ - **Optical Sizing & Tracking**: Large display headings (32px+) require tight letter-spacing (`letter-spacing: -0.03em`). Small caption text (12px) requires positive tracking (`letter-spacing: +0.01em`).
26
+ - **Tabular Numbers**: Any numeric data that updates, increments, or displays in columns MUST use `font-variant-numeric: tabular-nums` or `font-feature-settings: "tnum"` to prevent visual jitter.
27
+ - **Text Wrapping & Balance**: Headings MUST use `text-wrap: balance` to prevent typographic orphans. Body paragraphs MUST use `text-wrap: pretty` (where supported) or max `65ch` width.
28
+
29
+ ### 2. Color Systems & Gamut Precision
30
+ - **OKLCH Color Space**: Prefer `oklch()` over `hsl()` or `hex` for smooth perceptual uniformity across hue and lightness shifts.
31
+ - **Subtle Surface Steps**: Define surface colors with small perceptual lightness steps ($L \pm 2\%$) to create hierarchy without harsh dividers.
32
+ - **Adaptive Contrast**: Text contrast MUST adapt automatically across light/dark themes with high legibility ratios ($\ge 7:1$ for primary, $\ge 4.5:1$ for secondary).
33
+
34
+ ### 3. Motion & Micro-Interactions
35
+ - **Intentional Motion**: Animations exist ONLY to convey spatial continuity, provide press feedback, or indicate state changes.
36
+ - **Duration Constraints**: Micro-interactions $\le 160\text{ms}$; dropdowns/popovers $\le 220\text{ms}$; page transitions $\le 300\text{ms}$.
37
+ - **Physically Grounded Entrances**: Elements scale in from `scale(0.96)` and opacity `0`, anchored to their trigger origin.
38
+ - **DOM Entry (@starting-style)**: Use `@starting-style` with `transition-behavior: allow-discrete` for smooth `display: none` to `display: block` entrance animations without JS overhead.
39
+
40
+ ### 4. Layout Mechanics & Spatial Math
41
+ - **8px Grid System**: Every margin, padding, gap, and height MUST derive from an 8px grid (or 4px micro-grid).
42
+ - **Asymmetrical Balance**: Avoid cookie-cutter centered layouts for SaaS apps. Use strong left-aligned structural axes with generous negative space.
43
+ - **Container Queries**: Components adjust layout based on container size (`@container`), not viewport size (`@media`), making them context-agnostic.
44
+ - **WCAG 2.2 AA Target Size (SC 2.5.8)**: All interactive targets MUST measure at least `24x24px` CSS pixels (min `44x44px` for touch).
45
+
46
+ ---
47
+
48
+ ## ๐Ÿค– LLM-Specific Traps
49
+
50
+ 1. **Generic AI Aesthetics**: Using purple-to-blue gradients, glow effects on every button, or heavy glassmorphism on white text.
51
+ 2. **Hardcoded Pixel Values**: Writing hardcoded `px` font sizes and dimensions instead of `rem` and fluid `clamp()` utilities.
52
+ 3. **Orphaned Text**: Failing to apply `text-wrap: balance` to multi-line headings.
53
+
54
+ ---
55
+
56
+ ## ๐Ÿ›๏ธ Tribunal Integration (Anti-Hallucination)
57
+
58
+ **Active reviewers: `frontend-reviewer` ยท `ui-ux-auditor` ยท `motion-reviewer`**
59
+
60
+ ### โœ… Pre-Flight Self-Audit
61
+
62
+ ```
63
+ โœ… Are tabular numbers enabled on all changing numeric values?
64
+ โœ… Is heading text wrapped using `text-wrap: balance`?
65
+ โœ… Is container query responsiveness utilized where components are reused?
66
+ โœ… Are transitions tuned with custom cubic-bezier curves under 300ms?
67
+ ```
68
+
69
+ ### ๐Ÿ›‘ Verification-Before-Completion (VBC) Protocol
70
+
71
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
72
+
73
+ - โŒ **Forbidden:** Declaring a task complete because the output "looks correct."
74
+ - โœ… **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.