tribunal-kit 3.0.0 → 3.1.0

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 (226) hide show
  1. package/.agent/ARCHITECTURE.md +99 -99
  2. package/.agent/GEMINI.md +52 -52
  3. package/.agent/agents/accessibility-reviewer.md +187 -220
  4. package/.agent/agents/ai-code-reviewer.md +199 -233
  5. package/.agent/agents/backend-specialist.md +215 -238
  6. package/.agent/agents/code-archaeologist.md +161 -181
  7. package/.agent/agents/database-architect.md +184 -207
  8. package/.agent/agents/debugger.md +191 -218
  9. package/.agent/agents/dependency-reviewer.md +103 -136
  10. package/.agent/agents/devops-engineer.md +218 -238
  11. package/.agent/agents/documentation-writer.md +201 -221
  12. package/.agent/agents/explorer-agent.md +160 -180
  13. package/.agent/agents/frontend-reviewer.md +160 -194
  14. package/.agent/agents/frontend-specialist.md +248 -237
  15. package/.agent/agents/game-developer.md +48 -52
  16. package/.agent/agents/logic-reviewer.md +116 -149
  17. package/.agent/agents/mobile-developer.md +200 -223
  18. package/.agent/agents/mobile-reviewer.md +162 -195
  19. package/.agent/agents/orchestrator.md +181 -211
  20. package/.agent/agents/penetration-tester.md +157 -174
  21. package/.agent/agents/performance-optimizer.md +183 -203
  22. package/.agent/agents/performance-reviewer.md +178 -211
  23. package/.agent/agents/product-manager.md +142 -162
  24. package/.agent/agents/product-owner.md +6 -25
  25. package/.agent/agents/project-planner.md +142 -162
  26. package/.agent/agents/qa-automation-engineer.md +225 -242
  27. package/.agent/agents/security-auditor.md +174 -194
  28. package/.agent/agents/seo-specialist.md +193 -213
  29. package/.agent/agents/sql-reviewer.md +161 -194
  30. package/.agent/agents/supervisor-agent.md +184 -203
  31. package/.agent/agents/swarm-worker-contracts.md +17 -17
  32. package/.agent/agents/swarm-worker-registry.md +46 -46
  33. package/.agent/agents/test-coverage-reviewer.md +160 -193
  34. package/.agent/agents/test-engineer.md +0 -21
  35. package/.agent/agents/type-safety-reviewer.md +175 -208
  36. package/.agent/patterns/generator.md +9 -9
  37. package/.agent/patterns/inversion.md +12 -12
  38. package/.agent/patterns/pipeline.md +9 -9
  39. package/.agent/patterns/reviewer.md +13 -13
  40. package/.agent/patterns/tool-wrapper.md +9 -9
  41. package/.agent/rules/GEMINI.md +63 -63
  42. package/.agent/scripts/compress_skills.py +167 -0
  43. package/.agent/scripts/consolidate_skills.py +173 -0
  44. package/.agent/scripts/deep_compress.py +202 -0
  45. package/.agent/scripts/minify_context.py +80 -0
  46. package/.agent/scripts/security_scan.py +1 -1
  47. package/.agent/scripts/strip_tribunal.py +41 -0
  48. package/.agent/skills/agent-organizer/SKILL.md +92 -126
  49. package/.agent/skills/agentic-patterns/SKILL.md +0 -70
  50. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +126 -160
  51. package/.agent/skills/api-patterns/SKILL.md +123 -215
  52. package/.agent/skills/api-security-auditor/SKILL.md +143 -177
  53. package/.agent/skills/app-builder/SKILL.md +326 -50
  54. package/.agent/skills/app-builder/templates/SKILL.md +13 -15
  55. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
  56. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
  57. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
  58. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
  59. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
  60. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
  61. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
  62. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
  63. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
  64. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
  65. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
  66. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
  67. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
  68. package/.agent/skills/appflow-wireframe/SKILL.md +87 -121
  69. package/.agent/skills/architecture/SKILL.md +82 -252
  70. package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
  71. package/.agent/skills/bash-linux/SKILL.md +120 -154
  72. package/.agent/skills/behavioral-modes/SKILL.md +8 -69
  73. package/.agent/skills/brainstorming/SKILL.md +428 -104
  74. package/.agent/skills/building-native-ui/SKILL.md +143 -174
  75. package/.agent/skills/clean-code/SKILL.md +323 -360
  76. package/.agent/skills/code-review-checklist/SKILL.md +0 -62
  77. package/.agent/skills/config-validator/SKILL.md +107 -141
  78. package/.agent/skills/csharp-developer/SKILL.md +468 -528
  79. package/.agent/skills/database-design/SKILL.md +104 -369
  80. package/.agent/skills/deployment-procedures/SKILL.md +111 -145
  81. package/.agent/skills/devops-engineer/SKILL.md +295 -332
  82. package/.agent/skills/devops-incident-responder/SKILL.md +79 -113
  83. package/.agent/skills/doc.md +5 -5
  84. package/.agent/skills/documentation-templates/SKILL.md +19 -63
  85. package/.agent/skills/edge-computing/SKILL.md +123 -157
  86. package/.agent/skills/extract-design-system/SKILL.md +100 -134
  87. package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
  88. package/.agent/skills/frontend-design/SKILL.md +151 -499
  89. package/.agent/skills/game-design-expert/SKILL.md +71 -105
  90. package/.agent/skills/game-engineering-expert/SKILL.md +88 -122
  91. package/.agent/skills/geo-fundamentals/SKILL.md +89 -124
  92. package/.agent/skills/github-operations/SKILL.md +279 -314
  93. package/.agent/skills/gsap-expert/SKILL.md +119 -826
  94. package/.agent/skills/i18n-localization/SKILL.md +104 -138
  95. package/.agent/skills/intelligent-routing/SKILL.md +159 -127
  96. package/.agent/skills/lint-and-validate/SKILL.md +8 -52
  97. package/.agent/skills/llm-engineering/SKILL.md +344 -357
  98. package/.agent/skills/local-first/SKILL.md +120 -154
  99. package/.agent/skills/mcp-builder/SKILL.md +84 -118
  100. package/.agent/skills/mobile-design/SKILL.md +213 -219
  101. package/.agent/skills/motion-engineering/SKILL.md +184 -0
  102. package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
  103. package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
  104. package/.agent/skills/observability/SKILL.md +293 -330
  105. package/.agent/skills/parallel-agents/SKILL.md +88 -122
  106. package/.agent/skills/performance-profiling/SKILL.md +217 -254
  107. package/.agent/skills/plan-writing/SKILL.md +84 -118
  108. package/.agent/skills/platform-engineer/SKILL.md +89 -123
  109. package/.agent/skills/playwright-best-practices/SKILL.md +128 -162
  110. package/.agent/skills/powershell-windows/SKILL.md +112 -146
  111. package/.agent/skills/python-patterns/SKILL.md +7 -35
  112. package/.agent/skills/python-pro/SKILL.md +148 -754
  113. package/.agent/skills/react-specialist/SKILL.md +123 -827
  114. package/.agent/skills/readme-builder/SKILL.md +15 -85
  115. package/.agent/skills/realtime-patterns/SKILL.md +269 -304
  116. package/.agent/skills/red-team-tactics/SKILL.md +10 -51
  117. package/.agent/skills/rust-pro/SKILL.md +623 -701
  118. package/.agent/skills/seo-fundamentals/SKILL.md +120 -154
  119. package/.agent/skills/server-management/SKILL.md +156 -190
  120. package/.agent/skills/shadcn-ui-expert/SKILL.md +172 -206
  121. package/.agent/skills/skill-creator/SKILL.md +18 -58
  122. package/.agent/skills/sql-pro/SKILL.md +579 -633
  123. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
  124. package/.agent/skills/swiftui-expert/SKILL.md +142 -176
  125. package/.agent/skills/systematic-debugging/SKILL.md +84 -118
  126. package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
  127. package/.agent/skills/tdd-workflow/SKILL.md +103 -137
  128. package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
  129. package/.agent/skills/testing-patterns/SKILL.md +512 -573
  130. package/.agent/skills/trend-researcher/SKILL.md +30 -71
  131. package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
  132. package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
  133. package/.agent/skills/vue-expert/SKILL.md +127 -866
  134. package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
  135. package/.agent/skills/web-accessibility-auditor/SKILL.md +159 -193
  136. package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
  137. package/.agent/skills/webapp-testing/SKILL.md +111 -145
  138. package/.agent/skills/whimsy-injector/SKILL.md +58 -132
  139. package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
  140. package/.agent/workflows/api-tester.md +151 -151
  141. package/.agent/workflows/audit.md +127 -138
  142. package/.agent/workflows/brainstorm.md +110 -110
  143. package/.agent/workflows/changelog.md +112 -112
  144. package/.agent/workflows/create.md +124 -124
  145. package/.agent/workflows/debug.md +165 -189
  146. package/.agent/workflows/deploy.md +180 -189
  147. package/.agent/workflows/enhance.md +128 -151
  148. package/.agent/workflows/fix.md +114 -135
  149. package/.agent/workflows/generate.md +12 -4
  150. package/.agent/workflows/migrate.md +160 -160
  151. package/.agent/workflows/orchestrate.md +168 -168
  152. package/.agent/workflows/performance-benchmarker.md +114 -123
  153. package/.agent/workflows/plan.md +173 -173
  154. package/.agent/workflows/preview.md +80 -80
  155. package/.agent/workflows/refactor.md +161 -183
  156. package/.agent/workflows/review-ai.md +101 -129
  157. package/.agent/workflows/review.md +116 -116
  158. package/.agent/workflows/session.md +94 -94
  159. package/.agent/workflows/status.md +79 -79
  160. package/.agent/workflows/strengthen-skills.md +138 -139
  161. package/.agent/workflows/swarm.md +179 -179
  162. package/.agent/workflows/test.md +189 -211
  163. package/.agent/workflows/tribunal-backend.md +93 -113
  164. package/.agent/workflows/tribunal-database.md +94 -115
  165. package/.agent/workflows/tribunal-frontend.md +95 -118
  166. package/.agent/workflows/tribunal-full.md +92 -133
  167. package/.agent/workflows/tribunal-mobile.md +94 -119
  168. package/.agent/workflows/tribunal-performance.md +109 -133
  169. package/.agent/workflows/ui-ux-pro-max.md +122 -143
  170. package/package.json +1 -1
  171. package/.agent/skills/api-patterns/api-style.md +0 -42
  172. package/.agent/skills/api-patterns/auth.md +0 -24
  173. package/.agent/skills/api-patterns/documentation.md +0 -26
  174. package/.agent/skills/api-patterns/graphql.md +0 -41
  175. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  176. package/.agent/skills/api-patterns/response.md +0 -37
  177. package/.agent/skills/api-patterns/rest.md +0 -40
  178. package/.agent/skills/api-patterns/security-testing.md +0 -122
  179. package/.agent/skills/api-patterns/trpc.md +0 -41
  180. package/.agent/skills/api-patterns/versioning.md +0 -22
  181. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  182. package/.agent/skills/app-builder/feature-building.md +0 -53
  183. package/.agent/skills/app-builder/project-detection.md +0 -34
  184. package/.agent/skills/app-builder/scaffolding.md +0 -118
  185. package/.agent/skills/app-builder/tech-stack.md +0 -40
  186. package/.agent/skills/architecture/context-discovery.md +0 -43
  187. package/.agent/skills/architecture/examples.md +0 -94
  188. package/.agent/skills/architecture/pattern-selection.md +0 -68
  189. package/.agent/skills/architecture/patterns-reference.md +0 -50
  190. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  191. package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
  192. package/.agent/skills/database-design/database-selection.md +0 -43
  193. package/.agent/skills/database-design/indexing.md +0 -39
  194. package/.agent/skills/database-design/migrations.md +0 -48
  195. package/.agent/skills/database-design/optimization.md +0 -36
  196. package/.agent/skills/database-design/orm-selection.md +0 -30
  197. package/.agent/skills/database-design/schema-design.md +0 -56
  198. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  199. package/.agent/skills/frontend-design/color-system.md +0 -329
  200. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  201. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  202. package/.agent/skills/frontend-design/typography-system.md +0 -363
  203. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  204. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  205. package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
  206. package/.agent/skills/mobile-design/decision-trees.md +0 -516
  207. package/.agent/skills/mobile-design/mobile-backend.md +0 -491
  208. package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
  209. package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
  210. package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
  211. package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
  212. package/.agent/skills/mobile-design/mobile-performance.md +0 -767
  213. package/.agent/skills/mobile-design/mobile-testing.md +0 -356
  214. package/.agent/skills/mobile-design/mobile-typography.md +0 -433
  215. package/.agent/skills/mobile-design/platform-android.md +0 -666
  216. package/.agent/skills/mobile-design/platform-ios.md +0 -561
  217. package/.agent/skills/mobile-design/touch-psychology.md +0 -537
  218. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
  219. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
  220. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
  221. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
  222. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
  223. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
  224. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
  225. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
  226. package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
@@ -1,119 +1,94 @@
1
- ---
2
- description: Mobile-specific Tribunal. Runs Logic + Security + Mobile reviewers. Use for React Native, Expo, gesture handlers, animations, navigation, and any iOS/Android-targeted code.
3
- ---
4
-
5
- # /tribunal-mobile — Mobile Code Audit
6
-
7
- $ARGUMENTS
8
-
9
- ---
10
-
11
- ## When to Use /tribunal-mobile
12
-
13
- | Use `/tribunal-mobile` when... | Use something else when... |
14
- |:---|:---|
15
- | React Native components | Web-only components → `/tribunal-frontend` |
16
- | Expo Router navigation | API routes → `/tribunal-backend` |
17
- | Reanimated animations/gestures | Full audit → `/tribunal-full` |
18
- | FlashList / FlatList code | |
19
- | Platform-specific (ios/android) code | |
20
-
21
- ---
22
-
23
- ## 3 Active Reviewers (All Run Simultaneously)
24
-
25
- ### logic-reviewer
26
- - `runOnJS` called inside `onUpdate` instead of `onEnd` (runs every frame)
27
- - Missing `'worklet'` directive on functions called inside Reanimated
28
- - FlatList inside ScrollView (disables virtualization)
29
- - `useSharedValue` vs `useState` confusion (SharedValue on wrong thread)
30
-
31
- ### security-auditor
32
- - AsyncStorage storing sensitive data (tokens, PII) unencrypted
33
- - API keys in source code (should be in EAS Secrets)
34
- - cleartext HTTP traffic (should be HTTPS on all platforms)
35
- - Deep link not validated before processing URL scheme
36
-
37
- ### mobile-reviewer
38
- - `setState` inside Reanimated `onUpdate` (JS bridge crossing = jank)
39
- - Missing `'worklet'` on custom functions used in Reanimated
40
- - FlatList for large lists (use FlashList with `estimatedItemSize`)
41
- - Hardcoded pixel insets instead of `useSafeAreaInsets()`
42
- - `Platform.OS === 'ios'` inside StyleSheet.create (not evaluated correctly)
43
- - Missing `AppState` subscription cleanup (`subscription.remove()`)
44
- - `react-native Image` used instead of `expo-image` (poor caching)
45
-
46
- ---
47
-
48
- ## Verdict System
49
-
50
- ```
51
- If ANY reviewer → ❌ REJECTED: fix before Human Gate
52
- If any reviewer → ⚠️ WARNING: proceed with flagged items
53
- If all reviewers → ✅ APPROVED: Human Gate
54
- ```
55
-
56
- ---
57
-
58
- ## Output Format
59
-
60
- ```
61
- ━━━ Tribunal Mobile ━━━━━━━━━━━━━━━━━━━━━━
62
-
63
- logic-reviewer: ✅ APPROVED
64
- security-auditor: ⚠️ WARNING
65
- mobile-reviewer: REJECTED
66
-
67
- ━━━ VERDICT: ❌ REJECTED ━━━━━━━━━━━━━━━━━
68
-
69
- Blockers:
70
- - mobile-reviewer: [HIGH] setState inside onUpdate gesture handler — JS bridge crossing every frame
71
- Line: onUpdate: (e) => { setState(e.translationX); } // jank at scale
72
- Fix: const tx = useSharedValue(0);
73
- onUpdate: (e) => { tx.value = e.translationX; } // pure UI thread
74
-
75
- - mobile-reviewer: [HIGH] FlatList with 500+ items — use FlashList
76
- Line: <FlatList data={products} renderItem={renderItem} />
77
- Fix: <FlashList data={products} renderItem={renderItem} estimatedItemSize={72} />
78
-
79
- Warnings:
80
- - security-auditor: [MEDIUM] JWT token stored in AsyncStorage — use expo-secure-store
81
- ```
82
-
83
- ---
84
-
85
- ## Mobile-Specific Hallucination Traps (Common LLM Mistakes)
86
-
87
- ```tsx
88
- // ❌ Missing 'worklet' — animation function crashes silently
89
- const clamp = (val: number, min: number, max: number) => Math.min(Math.max(val, min), max);
90
- // Must have worklet directive
91
- const clamp = (val: number, min: number, max: number): number => {
92
- 'worklet';
93
- return Math.min(Math.max(val, min), max);
94
- };
95
-
96
- // ❌ Expo Router: navigate() was refactored in v4 — old API
97
- import { navigate } from 'expo-router'; // Named export doesn't exist
98
- // ✅ Current Expo Router v4
99
- import { router } from 'expo-router';
100
- router.push('/products/123');
101
-
102
- // ❌ React Native: StyleSheet.create doesn't eval functions
103
- const styles = StyleSheet.create({
104
- box: { paddingTop: Platform.OS === 'ios' ? 20 : 0 } // Doesn't work in all contexts
105
- });
106
- // ✅ Use Platform.select or dynamic style object
107
- const boxStyle = Platform.select({ ios: { paddingTop: 20 }, android: { paddingTop: 0 } });
108
- ```
109
-
110
- ---
111
-
112
- ## Usage Examples
113
-
114
- ```
115
- /tribunal-mobile the SwipeToDelete gesture implementation with Reanimated 3
116
- /tribunal-mobile the ProductList component using FlashList
117
- /tribunal-mobile the auth token storage and retrieval functions
118
- /tribunal-mobile the ProfileScreen with safe area insets
119
- ```
1
+ ---
2
+ description: Mobile-specific Tribunal. Runs Logic + Security + Mobile reviewers. Use for React Native, Expo, gesture handlers, animations, navigation, and any iOS/Android-targeted code.
3
+ ---
4
+
5
+ # /tribunal-mobile — Mobile Code Audit
6
+
7
+ $ARGUMENTS
8
+
9
+ ---
10
+
11
+ ## When to Use /tribunal-mobile
12
+
13
+ |Use `/tribunal-mobile` when...|Use something else when...|
14
+ |:---|:---|
15
+ |React Native components|Web-only components → `/tribunal-frontend`|
16
+ |Expo Router navigation|API routes → `/tribunal-backend`|
17
+ |Reanimated animations/gestures|Full audit → `/tribunal-full`|
18
+ |FlashList / FlatList code||
19
+ |Platform-specific (ios/android) code||
20
+
21
+ ---
22
+
23
+ ## 3 Active Reviewers (All Run Simultaneously)
24
+
25
+ ### logic-reviewer
26
+ - `runOnJS` called inside `onUpdate` instead of `onEnd` (runs every frame)
27
+ - Missing `'worklet'` directive on functions called inside Reanimated
28
+ - FlatList inside ScrollView (disables virtualization)
29
+ - `useSharedValue` vs `useState` confusion (SharedValue on wrong thread)
30
+
31
+ ### security-auditor
32
+ - AsyncStorage storing sensitive data (tokens, PII) unencrypted
33
+ - API keys in source code (should be in EAS Secrets)
34
+ - cleartext HTTP traffic (should be HTTPS on all platforms)
35
+ - Deep link not validated before processing URL scheme
36
+
37
+ ### mobile-reviewer
38
+ - `setState` inside Reanimated `onUpdate` (JS bridge crossing = jank)
39
+ - Missing `'worklet'` on custom functions used in Reanimated
40
+ - FlatList for large lists (use FlashList with `estimatedItemSize`)
41
+ - Hardcoded pixel insets instead of `useSafeAreaInsets()`
42
+ - `Platform.OS === 'ios'` inside StyleSheet.create (not evaluated correctly)
43
+ - Missing `AppState` subscription cleanup (`subscription.remove()`)
44
+ - `react-native Image` used instead of `expo-image` (poor caching)
45
+
46
+ ---
47
+
48
+ ## Verdict System
49
+
50
+ ```
51
+ If ANY reviewer → ❌ REJECTED: fix before Human Gate
52
+ If any reviewer → ⚠️ WARNING: proceed with flagged items
53
+ If all reviewers → ✅ APPROVED: Human Gate
54
+ ```
55
+
56
+ ---
57
+
58
+ ---
59
+
60
+ ## Mobile-Specific Hallucination Traps (Common LLM Mistakes)
61
+
62
+ ```tsx
63
+ // ❌ Missing 'worklet' — animation function crashes silently
64
+ const clamp = (val: number, min: number, max: number) => Math.min(Math.max(val, min), max);
65
+ // Must have worklet directive
66
+ const clamp = (val: number, min: number, max: number): number => {
67
+ 'worklet';
68
+ return Math.min(Math.max(val, min), max);
69
+ };
70
+
71
+ // ❌ Expo Router: navigate() was refactored in v4 old API
72
+ import { navigate } from 'expo-router'; // Named export doesn't exist
73
+ // Current Expo Router v4
74
+ import { router } from 'expo-router';
75
+ router.push('/products/123');
76
+
77
+ // ❌ React Native: StyleSheet.create doesn't eval functions
78
+ const styles = StyleSheet.create({
79
+ box: { paddingTop: Platform.OS === 'ios' ? 20 : 0 } // Doesn't work in all contexts
80
+ });
81
+ // ✅ Use Platform.select or dynamic style object
82
+ const boxStyle = Platform.select({ ios: { paddingTop: 20 }, android: { paddingTop: 0 } });
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Usage Examples
88
+
89
+ ```
90
+ /tribunal-mobile the SwipeToDelete gesture implementation with Reanimated 3
91
+ /tribunal-mobile the ProductList component using FlashList
92
+ /tribunal-mobile the auth token storage and retrieval functions
93
+ /tribunal-mobile the ProfileScreen with safe area insets
94
+ ```
@@ -1,133 +1,109 @@
1
- ---
2
- description: Performance-specific Tribunal. Runs Logic + Performance reviewers. Use when code is slow, for optimization tasks, bundle analysis, Core Web Vitals improvement, memory leak investigation, and before deploying performance-critical features.
3
- ---
4
-
5
- # /tribunal-performance — Performance Audit
6
-
7
- $ARGUMENTS
8
-
9
- ---
10
-
11
- ## When to Use /tribunal-performance
12
-
13
- | Use `/tribunal-performance` when... | Use something else when... |
14
- |:---|:---|
15
- | LCP, INP, or CLS is above threshold | General code review → `/tribunal-full` |
16
- | Bundle size is too large | Backend perf only → `/tribunal-backend` |
17
- | Memory usage grows unbounded | Database perf → `/tribunal-database` |
18
- | Node.js event loop is saturated | |
19
- | Optimizing rendering performance | |
20
-
21
- ---
22
-
23
- ## 2 Active Reviewers (Both Run Simultaneously)
24
-
25
- ### logic-reviewer
26
- - Expensive computation in render function (runs every render)
27
- - Missing memoization where React.memo/useMemo would help
28
- - Infinite re-render loop (effect updates a value that triggers the effect)
29
-
30
- ### performance-reviewer
31
- - INP: expensive synchronous work on user interaction (> 50ms blocking)
32
- - LCP: hero image without priority={true} or preload hint
33
- - CLS: missing width/height on images causing layout shift
34
- - Bundle: large library imported without tree-shaking or dynamic import
35
- - Memory: event listeners added without cleanup in useEffect
36
- - N+1: database queries in loop should be batched
37
- - Cache: expensive DB query without Redis/memory cache
38
-
39
- ---
40
-
41
- ## 2026 CWV Targets (Verdict Reference)
42
-
43
- | Metric | Good | Needs Work | Poor (REJECTED) |
44
- |:---|:---|:---|:---|
45
- | INP | < 200ms | 200–500ms | > 500ms |
46
- | LCP | < 2.5s | 2.5–4.0s | > 4.0s |
47
- | CLS | < 0.1 | 0.1–0.25 | > 0.25 |
48
-
49
- ---
50
-
51
- ## Verdict System
52
-
53
- ```
54
- If code contains patterns causing POOR rating → ❌ REJECTED
55
- If code contains patterns causing NEEDS WORK → ⚠️ WARNING
56
- If all patterns cause GOOD rating → ✅ APPROVED
57
- ```
58
-
59
- ---
60
-
61
- ## Output Format
62
-
63
- ```
64
- ━━━ Tribunal Performance ━━━━━━━━━━━━━━━━━━
65
-
66
- logic-reviewer: ✅ APPROVED
67
- performance-reviewer: REJECTED
68
-
69
- ━━━ VERDICT: ❌ REJECTED ━━━━━━━━━━━━━━━━━
70
-
71
- Blockers:
72
- - performance-reviewer: [HIGH — INP] Synchronous filterMillion() called in onClick handler
73
- Impact: Blocks main thread 200ms+ on each click — INP will be POOR
74
- Fix: Wrap in startTransition(() => setResults(filterMillion(items, q)))
75
-
76
- - performance-reviewer: [HIGH — LCP] Hero image missing priority
77
- Impact: Browser discovers image late — LCP will be POOR (> 4s)
78
- Fix: <Image src="/hero.webp" priority={true} ... />
79
-
80
- Warnings:
81
- - performance-reviewer: [MEDIUMBundle] lodash imported directly (+67kb unminified)
82
- Fix: Replace with native Array methods or specific lodash-es import
83
- ```
84
-
85
- ---
86
-
87
- ## Performance-Specific Hallucination Traps
88
-
89
- ```typescript
90
- // ❌ React.memo doesn't help when parent re-renders with new objects every time
91
- const MemoCard = React.memo(Card);
92
- <MemoCard style={{ margin: 8 }} /> // New object {} every render → memo has no effect
93
-
94
- // ✅ Memoize the object itself
95
- const cardStyle = useMemo(() => ({ margin: 8 }), []);
96
- <MemoCard style={cardStyle} />
97
-
98
- // ❌ useMemo with no deps array — runs every render (same as no memo)
99
- const sorted = useMemo(() => items.sort(...)); // Missing deps array!
100
-
101
- // ✅ Correct deps array
102
- const sorted = useMemo(() => [...items].sort(compareFn), [items]);
103
-
104
- // ❌ Non-measurement claim
105
- // "This is fast" never write this without a Lighthouse score to back it
106
- ```
107
-
108
- ---
109
-
110
- ## Measurement Protocol
111
-
112
- Performance optimization without measurement is guessing:
113
-
114
- ```
115
- Before optimizing:
116
- □ Run Lighthouse: record LCP, INP, CLS, bundle size
117
- □ Profile with Chrome DevTools: identify actual bottleneck
118
-
119
- After optimizing:
120
- □ Run Lighthouse again: confirm improvement
121
- □ Show before/after scores in audit output
122
- ```
123
-
124
- ---
125
-
126
- ## Usage Examples
127
-
128
- ```
129
- /tribunal-performance the product listing page with image grid
130
- /tribunal-performance the search component with real-time filtering
131
- /tribunal-performance the checkout flow for CWV compliance
132
- /tribunal-performance the API route with expensive DB query for caching
133
- ```
1
+ ---
2
+ description: Performance-specific Tribunal. Runs Logic + Performance reviewers. Use when code is slow, for optimization tasks, bundle analysis, Core Web Vitals improvement, memory leak investigation, and before deploying performance-critical features.
3
+ ---
4
+
5
+ # /tribunal-performance — Performance Audit
6
+
7
+ $ARGUMENTS
8
+
9
+ ---
10
+
11
+ ## When to Use /tribunal-performance
12
+
13
+ |Use `/tribunal-performance` when...|Use something else when...|
14
+ |:---|:---|
15
+ |LCP, INP, or CLS is above threshold|General code review → `/tribunal-full`|
16
+ |Bundle size is too large|Backend perf only → `/tribunal-backend`|
17
+ |Memory usage grows unbounded|Database perf → `/tribunal-database`|
18
+ |Node.js event loop is saturated||
19
+ |Optimizing rendering performance||
20
+
21
+ ---
22
+
23
+ ## 2 Active Reviewers (Both Run Simultaneously)
24
+
25
+ ### logic-reviewer
26
+ - Expensive computation in render function (runs every render)
27
+ - Missing memoization where React.memo/useMemo would help
28
+ - Infinite re-render loop (effect updates a value that triggers the effect)
29
+
30
+ ### performance-reviewer
31
+ - INP: expensive synchronous work on user interaction (> 50ms blocking)
32
+ - LCP: hero image without priority={true} or preload hint
33
+ - CLS: missing width/height on images causing layout shift
34
+ - Bundle: large library imported without tree-shaking or dynamic import
35
+ - Memory: event listeners added without cleanup in useEffect
36
+ - N+1: database queries in loop should be batched
37
+ - Cache: expensive DB query without Redis/memory cache
38
+
39
+ ---
40
+
41
+ ## 2026 CWV Targets (Verdict Reference)
42
+
43
+ |Metric|Good|Needs Work|Poor (REJECTED)|
44
+ |:---|:---|:---|:---|
45
+ |INP|< 200ms|200–500ms|> 500ms|
46
+ |LCP|< 2.5s|2.5–4.0s|> 4.0s|
47
+ |CLS|< 0.1|0.1–0.25|> 0.25|
48
+
49
+ ---
50
+
51
+ ## Verdict System
52
+
53
+ ```
54
+ If code contains patterns causing POOR rating → ❌ REJECTED
55
+ If code contains patterns causing NEEDS WORK → ⚠️ WARNING
56
+ If all patterns cause GOOD rating → ✅ APPROVED
57
+ ```
58
+
59
+ ---
60
+
61
+ ---
62
+
63
+ ## Performance-Specific Hallucination Traps
64
+
65
+ ```typescript
66
+ // ❌ React.memo doesn't help when parent re-renders with new objects every time
67
+ const MemoCard = React.memo(Card);
68
+ <MemoCard style={{ margin: 8 }} /> // New object {} every render → memo has no effect
69
+
70
+ // ✅ Memoize the object itself
71
+ const cardStyle = useMemo(() => ({ margin: 8 }), []);
72
+ <MemoCard style={cardStyle} />
73
+
74
+ // useMemo with no deps array — runs every render (same as no memo)
75
+ const sorted = useMemo(() => items.sort(...)); // Missing deps array!
76
+
77
+ // Correct deps array
78
+ const sorted = useMemo(() => [...items].sort(compareFn), [items]);
79
+
80
+ // ❌ Non-measurement claim
81
+ // "This is fast" never write this without a Lighthouse score to back it
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Measurement Protocol
87
+
88
+ Performance optimization without measurement is guessing:
89
+
90
+ ```
91
+ Before optimizing:
92
+ Run Lighthouse: record LCP, INP, CLS, bundle size
93
+ □ Profile with Chrome DevTools: identify actual bottleneck
94
+
95
+ After optimizing:
96
+ Run Lighthouse again: confirm improvement
97
+ □ Show before/after scores in audit output
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Usage Examples
103
+
104
+ ```
105
+ /tribunal-performance the product listing page with image grid
106
+ /tribunal-performance the search component with real-time filtering
107
+ /tribunal-performance the checkout flow for CWV compliance
108
+ /tribunal-performance the API route with expensive DB query for caching
109
+ ```