tribunal-kit 5.8.4 โ 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.
- package/.agent/ARCHITECTURE.md +3 -3
- package/.agent/history/integrity_manifest.json +75 -7
- package/.agent/history/memory/.memory.idx +1065 -1
- package/.agent/history/memory/MEMORY.md +71 -1
- package/.agent/rules/GEMINI.md +1 -1
- package/.agent/scripts/_utils.js +28 -7
- package/.agent/scripts/context_broker.js +0 -19
- package/.agent/scripts/guardrail_engine.js +1 -1
- package/.agent/scripts/integrity_manifest.js +10 -4
- package/.agent/scripts/marathon_harness.js +10 -1
- package/.agent/scripts/skill_evolution.js +36 -21
- package/.agent/scripts/swarm_dispatcher.js +65 -6
- package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
- package/.agent/skills/better-colors/SKILL.md +12 -4
- package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
- package/.agent/skills/fixing-accessibility/SKILL.md +6 -4
- package/.agent/skills/frontend-design/SKILL.md +80 -81
- package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
- package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
- package/.agent/skills/impeccable/SKILL.md +2 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
- package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
- package/.agent/skills/motion-engineering/SKILL.md +66 -164
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
- package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
- package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
- package/.agent/workflows/tribunal-full.md +5 -5
- package/CONTRIBUTING.md +1 -1
- package/README.md +4 -4
- package/bin/mcp-server.js +45 -45
- package/bin/wrapper.js +50 -25
- package/dist/cli.js +30 -0
- package/dist/commands/init.js +25 -1
- package/dist/commands/native.js +228 -0
- package/dist/commands/validate.js +67 -0
- package/dist/mcp/server.js +4 -138
- package/package.json +11 -10
- package/scripts/benchmark.js +42 -0
- package/scripts/sync-version.js +129 -76
|
@@ -25,143 +25,142 @@ routing:
|
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
|
-
## 1. Color
|
|
28
|
+
## 1. Modern Color Systems (OKLCH & HSL)
|
|
29
29
|
|
|
30
|
-
Never use raw flat HEX colors. Use HSL to build
|
|
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
|
-
/*
|
|
35
|
-
--
|
|
36
|
-
--
|
|
37
|
-
|
|
38
|
-
--bg-base:
|
|
39
|
-
--bg-surface:
|
|
40
|
-
|
|
41
|
-
--text-
|
|
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
|
|
49
|
-
|
|
50
|
-
:
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 2. Spatial Systems & Container Queries
|
|
60
55
|
|
|
61
|
-
Design relies on structural rhythm
|
|
56
|
+
Design relies on structural rhythm and component-level adaptability.
|
|
62
57
|
|
|
63
|
-
- **
|
|
64
|
-
- **
|
|
65
|
-
- **
|
|
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
|
-
/*
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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;
|
|
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 &
|
|
93
|
+
## 3. Interaction & Entry Motion (@starting-style)
|
|
85
94
|
|
|
86
|
-
A premium UI reacts to
|
|
95
|
+
A premium UI reacts to user actions instantly and provides smooth DOM mount transitions.
|
|
87
96
|
|
|
88
97
|
```css
|
|
89
|
-
/*
|
|
98
|
+
/* Physical press feedback */
|
|
90
99
|
.btn {
|
|
91
|
-
transition:
|
|
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
|
-
/*
|
|
100
|
-
.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
transition:
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
130
|
+
Avoid flat 1px borders and muddy single shadows. Use multi-layered elevation.
|
|
121
131
|
|
|
122
132
|
```css
|
|
123
|
-
|
|
124
|
-
.
|
|
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.
|
|
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.
|
|
136
|
-
|
|
137
|
-
Forms are where users drop off. They must be flawless.
|
|
147
|
+
## 5. Accessibility (WCAG 2.2 AA Standards)
|
|
138
148
|
|
|
139
|
-
|
|
140
|
-
- **
|
|
141
|
-
- **
|
|
142
|
-
-
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
outline:
|
|
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.
|
package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,11 +35,13 @@ The gold standard framework for crafting bespoke, world-class web applications t
|
|
|
35
35
|
- **Intentional Motion**: Animations exist ONLY to convey spatial continuity, provide press feedback, or indicate state changes.
|
|
36
36
|
- **Duration Constraints**: Micro-interactions $\le 160\text{ms}$; dropdowns/popovers $\le 220\text{ms}$; page transitions $\le 300\text{ms}$.
|
|
37
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.
|
|
38
39
|
|
|
39
40
|
### 4. Layout Mechanics & Spatial Math
|
|
40
41
|
- **8px Grid System**: Every margin, padding, gap, and height MUST derive from an 8px grid (or 4px micro-grid).
|
|
41
42
|
- **Asymmetrical Balance**: Avoid cookie-cutter centered layouts for SaaS apps. Use strong left-aligned structural axes with generous negative space.
|
|
42
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).
|
|
43
45
|
|
|
44
46
|
---
|
|
45
47
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -93,216 +93,118 @@ gsap.ticker.add((time) => lenis.raf(time * 1000));
|
|
|
93
93
|
gsap.ticker.lagSmoothing(0);
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
-
### 3. Page Transitions (View Transitions API)
|
|
96
|
+
### 3. Page Transitions (Native-First View Transitions API)
|
|
97
97
|
|
|
98
98
|
```css
|
|
99
|
-
/* CSS โ
|
|
99
|
+
/* CSS โ Browser-native page transition (Zero JS runtime cost) */
|
|
100
|
+
@view-transition {
|
|
101
|
+
navigation: auto;
|
|
102
|
+
}
|
|
103
|
+
|
|
100
104
|
.card-image {
|
|
101
|
-
view-transition-name: active-image;
|
|
102
|
-
}
|
|
105
|
+
view-transition-name: active-image; /* MUST BE UNIQUE IN DOM */
|
|
106
|
+
}
|
|
103
107
|
::view-transition-old(active-image) {
|
|
104
|
-
animation: fade-out 0.
|
|
108
|
+
animation: fade-out 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
105
109
|
}
|
|
106
110
|
::view-transition-new(active-image) {
|
|
107
|
-
animation: scale-in 0.
|
|
111
|
+
animation: scale-in 0.25s cubic-bezier(0, 0, 0.2, 1);
|
|
108
112
|
}
|
|
109
113
|
```
|
|
110
114
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
.skeleton {
|
|
118
|
-
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
|
119
|
-
background-size: 200% 100%;
|
|
120
|
-
animation: shimmer 1.5s infinite linear;
|
|
121
|
-
}
|
|
122
|
-
@keyframes shimmer {
|
|
123
|
-
100% {
|
|
124
|
-
background-position: -200% 0;
|
|
115
|
+
```tsx
|
|
116
|
+
// SPA Route Navigation Trigger with Fallback
|
|
117
|
+
function navigateWithTransition(url: string, navigate: (path: string) => void) {
|
|
118
|
+
if (!document.startViewTransition) {
|
|
119
|
+
navigate(url);
|
|
120
|
+
return;
|
|
125
121
|
}
|
|
122
|
+
document.startViewTransition(() => {
|
|
123
|
+
navigate(url);
|
|
124
|
+
});
|
|
126
125
|
}
|
|
127
126
|
```
|
|
128
127
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
## TIER 2: Narrative & Immersive (Medium Implementation)
|
|
132
|
-
|
|
133
|
-
_Used for brand storytelling, heroes, and engagement._
|
|
134
|
-
|
|
135
|
-
### 5. 3D & Immersive Animations
|
|
128
|
+
### 4. DOM Entry & Exit Animations (@starting-style)
|
|
136
129
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
<boxGeometry />
|
|
148
|
-
<meshStandardMaterial color="hotpink" />
|
|
149
|
-
</mesh>
|
|
150
|
-
);
|
|
130
|
+
```css
|
|
131
|
+
/* CSS @starting-style allows animating entry from display: none */
|
|
132
|
+
.modal {
|
|
133
|
+
display: none;
|
|
134
|
+
opacity: 0;
|
|
135
|
+
transform: scale(0.95);
|
|
136
|
+
transition:
|
|
137
|
+
opacity 0.2s ease,
|
|
138
|
+
transform 0.2s cubic-bezier(0.2, 0.8, 0.4, 1),
|
|
139
|
+
display 0.2s allow-discrete;
|
|
151
140
|
}
|
|
152
|
-
```
|
|
153
141
|
|
|
154
|
-
|
|
142
|
+
.modal[open] {
|
|
143
|
+
display: block;
|
|
144
|
+
opacity: 1;
|
|
145
|
+
transform: scale(1);
|
|
146
|
+
}
|
|
155
147
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
{words.map((w, i) => (
|
|
163
|
-
<motion.span key={i} variants={wordVariants}>
|
|
164
|
-
{w}{" "}
|
|
165
|
-
</motion.span>
|
|
166
|
-
))}
|
|
167
|
-
</motion.h1>;
|
|
148
|
+
@starting-style {
|
|
149
|
+
.modal[open] {
|
|
150
|
+
opacity: 0;
|
|
151
|
+
transform: scale(0.95);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
168
154
|
```
|
|
169
155
|
|
|
170
|
-
### 8. Background Animations & 9. Illustrations
|
|
171
|
-
|
|
172
|
-
- **Backgrounds:** Use CSS `@keyframes` on pseudo-elements with `filter: blur()` for ambient gradients, avoiding repaints.
|
|
173
|
-
- **Illustrations:** Use Rive for interactive state machines, or Lottie via `lottie-react` for simple timeline playback.
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## TIER 3: Advanced & Emerging (Concepts & Tools)
|
|
178
|
-
|
|
179
|
-
_Highly interactive components elevating standard UI._
|
|
180
|
-
|
|
181
|
-
- **6. Motion UI & State Transitions:** Use Framer Motion's `layout` prop. Morphing a list item into a modal requires `<motion.div layoutId="item-1">` on both states. Wrap the app in `<LayoutGroup>`.
|
|
182
|
-
- **10. Physics-based:** Animate like real-world objects. Instead of `duration`, define `mass`, `stiffness`, and `damping` in physics springs to simulate gravity and tension.
|
|
183
|
-
- **11. Morphing & Shape:** GSAP `MorphSVGPlugin`. Requires SVGs with comparable path points or GSAP will interpolate poorly. Alternatively, animate CSS `border-radius` for fluid blobs.
|
|
184
|
-
- **12. Glassmorphism:** Animate `backdrop-filter: blur(10px)` but beware of performance costs on mobile. Render shadows via `filter: drop-shadow()` combined with slight `translateY` on hover.
|
|
185
|
-
- **13. Cursor-based:** Modern standard is CSS variables bound to mouse position. Calculate `clientX` relative to the element bounding box and update `--mouse-x` to drive `radial-gradient` masks.
|
|
186
|
-
- **14. AI-driven Adaptive:** Motion that learns. If a user speeds through a form, UI transitions accelerate. If they linger, ambient motion plays. Controlled by tracking interaction deltas and mapping them to global spring configurations.
|
|
187
|
-
- **15. Gamified:** Progress bars that burst on completion, haptic-synchronized checkmarks. Combine SVGs with explicit, highly exaggerated elastic overshoot scales (`scale: [1, 1.2, 0.9, 1]`) on reward thresholds.
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## TIER 4: Specialized (Rules & Fallbacks)
|
|
192
|
-
|
|
193
|
-
_Niche requirements where performance or specific constraints dominate._
|
|
194
|
-
|
|
195
|
-
- **16. Video + Motion Hybrid:** Scrubbing `<video>` tags with scroll. Requires pre-encoding video rapidly with keyframes every 1 frame, drawing frames to a `<canvas>` element via `requestAnimationFrame` linked to scroll progress.
|
|
196
|
-
- **17. Experimental:** Glitch effects via overlapping CSS `clip-path` animations. High processing cost.
|
|
197
|
-
- **18. Navigation:** Mega-menus must use `<AnimatePresence>` to prevent DOM unmount before the exit animation resolves. Include exit delays so users don't trigger flickering by rapidly moving the mouse off the nav.
|
|
198
|
-
- **19. Data Visualization:** D3 handles math, React handles DOM, Framer/Spring handles interpolation between D3 datasets. Never let D3 mutate the DOM directly inside a React app.
|
|
199
|
-
- **20. Performance-first Subtle Motion:** Strictly `opacity`, `transform`, CSS-only. Use `@starting-style` for popovers and dialogs to avoid JS intervention.
|
|
200
|
-
|
|
201
156
|
---
|
|
202
157
|
|
|
203
158
|
## Accessibility & Performance Invariants (Global Rules)
|
|
204
159
|
|
|
205
160
|
1. **The WCAG 2.2 AA Motion Rule:**
|
|
161
|
+
Always respect `prefers-reduced-motion`. Fall back to instant opacity or no-op motion.
|
|
206
162
|
|
|
207
163
|
```tsx
|
|
208
|
-
import { useReducedMotion } from "
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
164
|
+
import { useReducedMotion } from "motion/react";
|
|
165
|
+
|
|
166
|
+
function AccessibleComponent() {
|
|
167
|
+
const shouldReduceMotion = useReducedMotion();
|
|
168
|
+
|
|
169
|
+
return (
|
|
170
|
+
<motion.div
|
|
171
|
+
animate={{
|
|
172
|
+
x: shouldReduceMotion ? 0 : 100,
|
|
173
|
+
opacity: 1
|
|
174
|
+
}}
|
|
175
|
+
transition={{ duration: shouldReduceMotion ? 0 : 0.3 }}
|
|
176
|
+
/>
|
|
177
|
+
);
|
|
178
|
+
}
|
|
213
179
|
```
|
|
214
180
|
|
|
215
181
|
2. **The 120fps GPU Rule:**
|
|
216
182
|
Never animate `width`, `height`, `left`, `top`, `margin`, or `padding`. This triggers layout recalculation algorithms. Use `transform: scale()` or `transform: translate()` instead.
|
|
217
183
|
|
|
218
|
-
3. **The Cleanup Rule:**
|
|
219
|
-
Any GSAP ScrollTrigger timeline must use `
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
|
|
224
|
-
|
|
225
|
-
1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
|
|
226
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
227
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
228
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
229
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
|
|
233
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
234
|
-
**Active reviewers: `logic-reviewer` ยท `security-auditor`**
|
|
235
|
-
|
|
236
|
-
### โ Forbidden AI Tropes
|
|
237
|
-
|
|
238
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
239
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
240
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
241
|
-
|
|
242
|
-
Review these questions before confirming output:
|
|
243
|
-
|
|
244
|
-
```
|
|
245
|
-
โ
Did I rely ONLY on real, verified tools and methods?
|
|
246
|
-
โ
Is this solution appropriately scoped to the user's constraints?
|
|
247
|
-
โ
Did I handle potential failure modes and edge cases?
|
|
248
|
-
โ
Have I avoided generic boilerplate that doesn't add value?
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
### ๐ Verification-Before-Completion (VBC) Protocol
|
|
252
|
-
|
|
253
|
-
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
254
|
-
|
|
255
|
-
- โ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
256
|
-
- โ
**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.
|
|
257
|
-
|
|
258
|
-
## Pre-Flight Checklist
|
|
259
|
-
|
|
260
|
-
- [ ] Have I reviewed the user's specific constraints and requests?
|
|
261
|
-
- [ ] Have I checked the environment for relevant existing implementations?
|
|
262
|
-
|
|
263
|
-
## VBC Protocol (Verification-Before-Completion)
|
|
264
|
-
|
|
265
|
-
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
|
|
184
|
+
3. **The GSAP Memory Cleanup Rule:**
|
|
185
|
+
Any GSAP ScrollTrigger timeline must use `@gsap/react` `useGSAP` or explicit `tl.kill()` cleanup to avoid memory leaks on SPA route changes.
|
|
266
186
|
|
|
267
187
|
---
|
|
268
188
|
|
|
269
189
|
## ๐ค LLM-Specific Traps
|
|
270
190
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
|
|
275
|
-
3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
|
|
276
|
-
4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
277
|
-
5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
|
|
191
|
+
1. **Over-animating Static UI:** Animating page titles and static text on simple forms.
|
|
192
|
+
2. **Missing `allow-discrete`:** Animating `display` or `popover` without `transition-behavior: allow-discrete`.
|
|
193
|
+
3. **GSAP Memory Leaks:** Forgetting to kill GSAP timelines on component unmount.
|
|
278
194
|
|
|
279
195
|
---
|
|
280
196
|
|
|
281
197
|
## ๐๏ธ Tribunal Integration (Anti-Hallucination)
|
|
282
198
|
|
|
283
|
-
**Slash command: `/review` or `/tribunal-full`**
|
|
284
|
-
**Active reviewers: `logic-reviewer` ยท `security-auditor`**
|
|
285
|
-
|
|
286
|
-
### โ Forbidden AI Tropes
|
|
287
|
-
|
|
288
|
-
1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
|
|
289
|
-
2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
|
|
290
|
-
3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
|
|
291
|
-
|
|
292
199
|
### โ
Pre-Flight Self-Audit
|
|
293
200
|
|
|
294
|
-
Review these questions before confirming output:
|
|
295
|
-
|
|
296
201
|
```
|
|
297
|
-
โ
|
|
298
|
-
โ
Is
|
|
299
|
-
โ
|
|
300
|
-
โ
Have I avoided generic boilerplate that doesn't add value?
|
|
202
|
+
โ
Are all animations constrained to GPU-friendly properties (transform, opacity)?
|
|
203
|
+
โ
Is prefers-reduced-motion handled natively or via hooks?
|
|
204
|
+
โ
Are view-transition-name attributes unique across the entire active DOM?
|
|
301
205
|
```
|
|
302
206
|
|
|
303
207
|
### ๐ Verification-Before-Completion (VBC) Protocol
|
|
304
208
|
|
|
305
|
-
|
|
209
|
+
Inspect motion frame performance in DevTools Rendering tab to verify 60/120fps compositor execution without layout thrashing.
|
|
306
210
|
|
|
307
|
-
- โ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
308
|
-
- โ
**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.
|
|
Binary file
|
|
Binary file
|
package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Runs ALL
|
|
2
|
+
description: Runs ALL 20 parallel reviewers simultaneously. Maximum hallucination coverage. Use before merging any AI-generated code, before production deployments, or when maximum confidence is required.
|
|
3
3
|
required-skills: all domain skills auto-loaded
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /tribunal-full โ Complete
|
|
6
|
+
# /tribunal-full โ Complete 20-Reviewer Audit
|
|
7
7
|
|
|
8
8
|
$ARGUMENTS
|
|
9
9
|
|
|
@@ -32,7 +32,7 @@ Read BEFORE full review:
|
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## 20 Reviewers โ All Active Simultaneously
|
|
36
36
|
|
|
37
37
|
```
|
|
38
38
|
Tier 1: Always active (universal concerns)
|
|
@@ -68,7 +68,7 @@ Tier 4: Performance Swarm (token-scoped specialists)
|
|
|
68
68
|
|
|
69
69
|
## Active Reviewers by Code Type
|
|
70
70
|
|
|
71
|
-
Not all
|
|
71
|
+
Not all 20 reviewers produce meaningful findings on all code types. Active reviewers detect their first finding immediately โ inactive reviewers auto-pass with "N/A for this code type."
|
|
72
72
|
|
|
73
73
|
| Code Under Review | Critical Reviewers |
|
|
74
74
|
| :------------------ | :---------------------------------------------------------------- |
|
|
@@ -86,7 +86,7 @@ Not all 19 reviewers produce meaningful findings on all code types. Active revie
|
|
|
86
86
|
## Verdict Aggregation
|
|
87
87
|
|
|
88
88
|
```
|
|
89
|
-
All
|
|
89
|
+
All 20 verdicts are collected. Aggregated result:
|
|
90
90
|
|
|
91
91
|
If ANY reviewer = โ REJECTED โ Global verdict: โ REJECTED (must fix before Human Gate)
|
|
92
92
|
If any reviewer = โ ๏ธ WARNING โ Global verdict: โ ๏ธ WARNINGS (proceed with attention)
|
package/CONTRIBUTING.md
CHANGED
|
@@ -42,7 +42,7 @@ tribunal-kit/
|
|
|
42
42
|
โ โโโ index.d.ts # TypeScript declarations
|
|
43
43
|
โโโ crates/core/ # Rust core engine (Tokio-based)
|
|
44
44
|
โโโ .agent/ # The intelligence payload (agents, skills, workflows)
|
|
45
|
-
โ โโโ agents/ #
|
|
45
|
+
โ โโโ agents/ # 44 specialist and reviewer agent definitions
|
|
46
46
|
โ โโโ skills/ # Reusable skill packs
|
|
47
47
|
โ โโโ workflows/ # 34 workflow definitions
|
|
48
48
|
โ โโโ scripts/ # Automation scripts
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<img src="https://img.shields.io/badge/License-MIT-1a1a1f?style=for-the-badge&color=2d2d30" alt="License" />
|
|
21
21
|
</a>
|
|
22
22
|
<a href="CHANGELOG.md">
|
|
23
|
-
<img src="https://img.shields.io/badge/Release-v5.8.
|
|
23
|
+
<img src="https://img.shields.io/badge/Release-v5.8.5-ccff00?style=for-the-badge&color=111111&logo=github&logoColor=ccff00" alt="Release Version" />
|
|
24
24
|
</a>
|
|
25
25
|
<a href="mcp_config.json">
|
|
26
26
|
<img src="https://img.shields.io/badge/MCP-Ready-00c2ff?style=for-the-badge&logo=openai&logoColor=111" alt="MCP Server" />
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<strong style="color: #ffffff; font-size: 1.1em;">AI GENERATES CODE. TRIBUNAL KIT GOVERNS IT.</strong>
|
|
41
41
|
</div>
|
|
42
42
|
<p style="color: #c9c9d1; font-size: 0.95em; line-height: 1.6; margin: 0;">
|
|
43
|
-
A zero-bloat <strong>.agent/</strong> intelligence payload and <strong>Model Context Protocol (MCP) server</strong> that upgrades your IDEs (<a href="#" style="color: #ccff00; text-decoration: none;">Cursor</a>, <a href="#" style="color: #ccff00; text-decoration: none;">VSCode</a>, <a href="#" style="color: #ccff00; text-decoration: none;">Windsurf</a>) and terminal AI coding assistants (<a href="#" style="color: #ccff00; text-decoration: none;">Claude Code</a>, <a href="#" style="color: #ccff00; text-decoration: none;">Aider</a>) with <strong>44 specialist agents</strong>, <strong>34 workflows</strong>, and a parallel <strong>
|
|
43
|
+
A zero-bloat <strong>.agent/</strong> intelligence payload and <strong>Model Context Protocol (MCP) server</strong> that upgrades your IDEs (<a href="#" style="color: #ccff00; text-decoration: none;">Cursor</a>, <a href="#" style="color: #ccff00; text-decoration: none;">VSCode</a>, <a href="#" style="color: #ccff00; text-decoration: none;">Windsurf</a>) and terminal AI coding assistants (<a href="#" style="color: #ccff00; text-decoration: none;">Claude Code</a>, <a href="#" style="color: #ccff00; text-decoration: none;">Aider</a>) with <strong>44 specialist agents</strong>, <strong>34 workflows</strong>, and a parallel <strong>19-reviewer Tribunal pipeline</strong>. Establishes absolute runtime correctness, optimizes context windows, and heavily mitigates AI code hallucinations.
|
|
44
44
|
</p>
|
|
45
45
|
</div>
|
|
46
46
|
|
|
@@ -210,7 +210,7 @@ npx tribunal-kit status
|
|
|
210
210
|
|
|
211
211
|
Code generation is solved. **Code correctness is the frontier.**
|
|
212
212
|
|
|
213
|
-
The Tribunal Pipeline intercepts raw agent generation and routes it through a parallel suite of **
|
|
213
|
+
The Tribunal Pipeline intercepts raw agent generation and routes it through a parallel suite of **19 domain-specific reviewers** before presenting changes to the developer:
|
|
214
214
|
|
|
215
215
|
```mermaid
|
|
216
216
|
graph TD
|
|
@@ -221,7 +221,7 @@ graph TD
|
|
|
221
221
|
C -.->|Failed| E[Maker Auto-Correction]
|
|
222
222
|
E -.-> C
|
|
223
223
|
|
|
224
|
-
D -->|
|
|
224
|
+
D -->|19 Domain Reviewers| F[Human Gate]
|
|
225
225
|
F -->|Approved| G((Committed to Disk))
|
|
226
226
|
|
|
227
227
|
classDef default fill:#1a1a1a,stroke:#333,stroke-width:2px,color:#fff;
|