tribunal-kit 2.4.6 → 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 (250) hide show
  1. package/.agent/ARCHITECTURE.md +99 -99
  2. package/.agent/GEMINI.md +52 -52
  3. package/.agent/agents/accessibility-reviewer.md +139 -86
  4. package/.agent/agents/ai-code-reviewer.md +160 -90
  5. package/.agent/agents/backend-specialist.md +164 -127
  6. package/.agent/agents/code-archaeologist.md +115 -73
  7. package/.agent/agents/database-architect.md +130 -110
  8. package/.agent/agents/debugger.md +137 -97
  9. package/.agent/agents/dependency-reviewer.md +78 -30
  10. package/.agent/agents/devops-engineer.md +161 -118
  11. package/.agent/agents/documentation-writer.md +151 -87
  12. package/.agent/agents/explorer-agent.md +117 -99
  13. package/.agent/agents/frontend-reviewer.md +127 -47
  14. package/.agent/agents/frontend-specialist.md +169 -109
  15. package/.agent/agents/game-developer.md +28 -164
  16. package/.agent/agents/logic-reviewer.md +87 -49
  17. package/.agent/agents/mobile-developer.md +151 -103
  18. package/.agent/agents/mobile-reviewer.md +133 -50
  19. package/.agent/agents/orchestrator.md +121 -110
  20. package/.agent/agents/penetration-tester.md +103 -77
  21. package/.agent/agents/performance-optimizer.md +136 -92
  22. package/.agent/agents/performance-reviewer.md +139 -69
  23. package/.agent/agents/product-manager.md +104 -70
  24. package/.agent/agents/product-owner.md +6 -25
  25. package/.agent/agents/project-planner.md +95 -95
  26. package/.agent/agents/qa-automation-engineer.md +174 -87
  27. package/.agent/agents/security-auditor.md +133 -129
  28. package/.agent/agents/seo-specialist.md +160 -99
  29. package/.agent/agents/sql-reviewer.md +132 -44
  30. package/.agent/agents/supervisor-agent.md +137 -109
  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 +132 -53
  34. package/.agent/agents/test-engineer.md +0 -21
  35. package/.agent/agents/type-safety-reviewer.md +143 -33
  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/__pycache__/auto_preview.cpython-311.pyc +0 -0
  43. package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
  44. package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
  45. package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
  46. package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  47. package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
  48. package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
  49. package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
  50. package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  51. package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
  52. package/.agent/scripts/compress_skills.py +167 -0
  53. package/.agent/scripts/consolidate_skills.py +173 -0
  54. package/.agent/scripts/deep_compress.py +202 -0
  55. package/.agent/scripts/minify_context.py +80 -0
  56. package/.agent/scripts/security_scan.py +1 -1
  57. package/.agent/scripts/strip_tribunal.py +41 -0
  58. package/.agent/skills/agent-organizer/SKILL.md +60 -100
  59. package/.agent/skills/agentic-patterns/SKILL.md +0 -70
  60. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +108 -53
  61. package/.agent/skills/api-patterns/SKILL.md +197 -257
  62. package/.agent/skills/api-security-auditor/SKILL.md +125 -57
  63. package/.agent/skills/app-builder/SKILL.md +326 -50
  64. package/.agent/skills/app-builder/templates/SKILL.md +13 -15
  65. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
  66. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
  67. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
  68. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
  69. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
  70. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
  71. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
  72. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
  73. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
  74. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
  75. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
  76. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
  77. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
  78. package/.agent/skills/appflow-wireframe/SKILL.md +71 -98
  79. package/.agent/skills/architecture/SKILL.md +161 -200
  80. package/.agent/skills/authentication-best-practices/SKILL.md +121 -54
  81. package/.agent/skills/bash-linux/SKILL.md +71 -166
  82. package/.agent/skills/behavioral-modes/SKILL.md +8 -69
  83. package/.agent/skills/brainstorming/SKILL.md +345 -127
  84. package/.agent/skills/building-native-ui/SKILL.md +125 -57
  85. package/.agent/skills/clean-code/SKILL.md +266 -149
  86. package/.agent/skills/code-review-checklist/SKILL.md +0 -62
  87. package/.agent/skills/config-validator/SKILL.md +73 -131
  88. package/.agent/skills/csharp-developer/SKILL.md +434 -73
  89. package/.agent/skills/database-design/SKILL.md +190 -275
  90. package/.agent/skills/deployment-procedures/SKILL.md +81 -158
  91. package/.agent/skills/devops-engineer/SKILL.md +255 -94
  92. package/.agent/skills/devops-incident-responder/SKILL.md +50 -69
  93. package/.agent/skills/doc.md +5 -5
  94. package/.agent/skills/documentation-templates/SKILL.md +19 -63
  95. package/.agent/skills/edge-computing/SKILL.md +75 -165
  96. package/.agent/skills/extract-design-system/SKILL.md +84 -58
  97. package/.agent/skills/framer-motion-expert/SKILL.md +195 -0
  98. package/.agent/skills/frontend-design/SKILL.md +151 -499
  99. package/.agent/skills/game-design-expert/SKILL.md +71 -0
  100. package/.agent/skills/game-engineering-expert/SKILL.md +88 -0
  101. package/.agent/skills/geo-fundamentals/SKILL.md +52 -178
  102. package/.agent/skills/github-operations/SKILL.md +197 -272
  103. package/.agent/skills/gsap-expert/SKILL.md +194 -0
  104. package/.agent/skills/i18n-localization/SKILL.md +60 -172
  105. package/.agent/skills/intelligent-routing/SKILL.md +123 -103
  106. package/.agent/skills/lint-and-validate/SKILL.md +8 -52
  107. package/.agent/skills/llm-engineering/SKILL.md +281 -195
  108. package/.agent/skills/local-first/SKILL.md +76 -159
  109. package/.agent/skills/mcp-builder/SKILL.md +48 -188
  110. package/.agent/skills/mobile-design/SKILL.md +213 -219
  111. package/.agent/skills/motion-engineering/SKILL.md +184 -0
  112. package/.agent/skills/nextjs-react-expert/SKILL.md +184 -203
  113. package/.agent/skills/nodejs-best-practices/SKILL.md +403 -185
  114. package/.agent/skills/observability/SKILL.md +211 -203
  115. package/.agent/skills/parallel-agents/SKILL.md +53 -146
  116. package/.agent/skills/performance-profiling/SKILL.md +171 -151
  117. package/.agent/skills/plan-writing/SKILL.md +49 -153
  118. package/.agent/skills/platform-engineer/SKILL.md +57 -103
  119. package/.agent/skills/playwright-best-practices/SKILL.md +110 -63
  120. package/.agent/skills/powershell-windows/SKILL.md +61 -179
  121. package/.agent/skills/python-patterns/SKILL.md +7 -35
  122. package/.agent/skills/python-pro/SKILL.md +273 -114
  123. package/.agent/skills/react-specialist/SKILL.md +227 -108
  124. package/.agent/skills/readme-builder/SKILL.md +15 -85
  125. package/.agent/skills/realtime-patterns/SKILL.md +216 -243
  126. package/.agent/skills/red-team-tactics/SKILL.md +10 -51
  127. package/.agent/skills/rust-pro/SKILL.md +525 -142
  128. package/.agent/skills/seo-fundamentals/SKILL.md +92 -153
  129. package/.agent/skills/server-management/SKILL.md +110 -166
  130. package/.agent/skills/shadcn-ui-expert/SKILL.md +154 -55
  131. package/.agent/skills/skill-creator/SKILL.md +18 -58
  132. package/.agent/skills/sql-pro/SKILL.md +543 -68
  133. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
  134. package/.agent/skills/swiftui-expert/SKILL.md +124 -57
  135. package/.agent/skills/systematic-debugging/SKILL.md +49 -151
  136. package/.agent/skills/tailwind-patterns/SKILL.md +433 -149
  137. package/.agent/skills/tdd-workflow/SKILL.md +63 -169
  138. package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
  139. package/.agent/skills/testing-patterns/SKILL.md +437 -130
  140. package/.agent/skills/trend-researcher/SKILL.md +30 -71
  141. package/.agent/skills/ui-ux-pro-max/SKILL.md +0 -41
  142. package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
  143. package/.agent/skills/vue-expert/SKILL.md +225 -119
  144. package/.agent/skills/vulnerability-scanner/SKILL.md +264 -226
  145. package/.agent/skills/web-accessibility-auditor/SKILL.md +141 -58
  146. package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
  147. package/.agent/skills/webapp-testing/SKILL.md +71 -196
  148. package/.agent/skills/whimsy-injector/SKILL.md +58 -132
  149. package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
  150. package/.agent/workflows/api-tester.md +96 -224
  151. package/.agent/workflows/audit.md +81 -122
  152. package/.agent/workflows/brainstorm.md +69 -105
  153. package/.agent/workflows/changelog.md +65 -97
  154. package/.agent/workflows/create.md +73 -88
  155. package/.agent/workflows/debug.md +80 -111
  156. package/.agent/workflows/deploy.md +119 -92
  157. package/.agent/workflows/enhance.md +80 -91
  158. package/.agent/workflows/fix.md +68 -97
  159. package/.agent/workflows/generate.md +165 -164
  160. package/.agent/workflows/migrate.md +106 -109
  161. package/.agent/workflows/orchestrate.md +103 -86
  162. package/.agent/workflows/performance-benchmarker.md +77 -268
  163. package/.agent/workflows/plan.md +120 -98
  164. package/.agent/workflows/preview.md +39 -96
  165. package/.agent/workflows/refactor.md +105 -97
  166. package/.agent/workflows/review-ai.md +63 -102
  167. package/.agent/workflows/review.md +71 -110
  168. package/.agent/workflows/session.md +53 -113
  169. package/.agent/workflows/status.md +42 -88
  170. package/.agent/workflows/strengthen-skills.md +90 -51
  171. package/.agent/workflows/swarm.md +114 -129
  172. package/.agent/workflows/test.md +125 -102
  173. package/.agent/workflows/tribunal-backend.md +60 -78
  174. package/.agent/workflows/tribunal-database.md +62 -100
  175. package/.agent/workflows/tribunal-frontend.md +62 -82
  176. package/.agent/workflows/tribunal-full.md +56 -100
  177. package/.agent/workflows/tribunal-mobile.md +65 -94
  178. package/.agent/workflows/tribunal-performance.md +62 -105
  179. package/.agent/workflows/ui-ux-pro-max.md +72 -121
  180. package/README.md +11 -15
  181. package/package.json +1 -1
  182. package/.agent/skills/api-patterns/api-style.md +0 -42
  183. package/.agent/skills/api-patterns/auth.md +0 -24
  184. package/.agent/skills/api-patterns/documentation.md +0 -26
  185. package/.agent/skills/api-patterns/graphql.md +0 -41
  186. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  187. package/.agent/skills/api-patterns/response.md +0 -37
  188. package/.agent/skills/api-patterns/rest.md +0 -40
  189. package/.agent/skills/api-patterns/security-testing.md +0 -122
  190. package/.agent/skills/api-patterns/trpc.md +0 -41
  191. package/.agent/skills/api-patterns/versioning.md +0 -22
  192. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  193. package/.agent/skills/app-builder/feature-building.md +0 -53
  194. package/.agent/skills/app-builder/project-detection.md +0 -34
  195. package/.agent/skills/app-builder/scaffolding.md +0 -118
  196. package/.agent/skills/app-builder/tech-stack.md +0 -40
  197. package/.agent/skills/architecture/context-discovery.md +0 -43
  198. package/.agent/skills/architecture/examples.md +0 -94
  199. package/.agent/skills/architecture/pattern-selection.md +0 -68
  200. package/.agent/skills/architecture/patterns-reference.md +0 -50
  201. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  202. package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
  203. package/.agent/skills/database-design/database-selection.md +0 -43
  204. package/.agent/skills/database-design/indexing.md +0 -39
  205. package/.agent/skills/database-design/migrations.md +0 -48
  206. package/.agent/skills/database-design/optimization.md +0 -36
  207. package/.agent/skills/database-design/orm-selection.md +0 -30
  208. package/.agent/skills/database-design/schema-design.md +0 -56
  209. package/.agent/skills/dotnet-core-expert/SKILL.md +0 -103
  210. package/.agent/skills/framer-motion-animations/SKILL.md +0 -74
  211. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  212. package/.agent/skills/frontend-design/color-system.md +0 -329
  213. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  214. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  215. package/.agent/skills/frontend-design/typography-system.md +0 -363
  216. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  217. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  218. package/.agent/skills/game-development/2d-games/SKILL.md +0 -119
  219. package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
  220. package/.agent/skills/game-development/SKILL.md +0 -236
  221. package/.agent/skills/game-development/game-art/SKILL.md +0 -185
  222. package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
  223. package/.agent/skills/game-development/game-design/SKILL.md +0 -129
  224. package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
  225. package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
  226. package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
  227. package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
  228. package/.agent/skills/game-development/web-games/SKILL.md +0 -150
  229. package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
  230. package/.agent/skills/mobile-design/decision-trees.md +0 -516
  231. package/.agent/skills/mobile-design/mobile-backend.md +0 -491
  232. package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
  233. package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
  234. package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
  235. package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
  236. package/.agent/skills/mobile-design/mobile-performance.md +0 -767
  237. package/.agent/skills/mobile-design/mobile-testing.md +0 -356
  238. package/.agent/skills/mobile-design/mobile-typography.md +0 -433
  239. package/.agent/skills/mobile-design/platform-android.md +0 -666
  240. package/.agent/skills/mobile-design/platform-ios.md +0 -561
  241. package/.agent/skills/mobile-design/touch-psychology.md +0 -537
  242. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
  243. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
  244. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
  245. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
  246. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
  247. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
  248. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
  249. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
  250. package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
@@ -1,115 +1,95 @@
1
1
  ---
2
- description: Frontend + React specific Tribunal. Runs Logic + Security + Frontend + Types. Use for React components, hooks, and UI code.
2
+ description: Frontend and React specific Tribunal. Runs Logic + Security + Frontend + Type Safety reviewers. Use for React components, hooks, UI code, Next.js pages, Server Components, and Client Components.
3
3
  ---
4
4
 
5
- # /tribunal-frontend — UI & React Audit
5
+ # /tribunal-frontend — Frontend Code Audit
6
6
 
7
7
  $ARGUMENTS
8
8
 
9
9
  ---
10
10
 
11
- Focused audit for React, Next.js, Vue, and frontend code. Four reviewers analyze it simultaneously for framework-specific issues that generic reviews miss.
11
+ ## When to Use /tribunal-frontend
12
12
 
13
- ---
13
+ |Use `/tribunal-frontend` when...|Use something else when...|
14
+ |:---|:---|
15
+ |React components (Server or Client)|Backend routes → `/tribunal-backend`|
16
+ |Custom hooks|Database queries → `/tribunal-database`|
17
+ |Next.js pages and layouts|Mobile (React Native) → `/tribunal-mobile`|
18
+ |UI state management|Maximum coverage → `/tribunal-full`|
19
+ |Form handling with Server Actions||
14
20
 
15
- ## When to Use This vs Other Tribunals
21
+ ---
16
22
 
17
- | Code type | Right tribunal |
18
- |---|---|
19
- | React components, hooks, JSX | `/tribunal-frontend` ← you are here |
20
- | API routes, auth, middleware | `/tribunal-backend` |
21
- | SQL queries, ORM | `/tribunal-database` |
22
- | React Native / mobile UI | `/tribunal-mobile` |
23
- | Unknown domain or cross-domain | `/tribunal-full` |
23
+ ## 4 Active Reviewers (All Run Simultaneously)
24
+
25
+ ### logic-reviewer
26
+ - Hallucinated React 19 hooks (non-existent hook names)
27
+ - useFormState called instead of useActionState (React 19 rename)
28
+ - useEffect missing dependencies (stale closure)
29
+ - Multiple setStates that should be batched (React 19 auto-batches in most cases)
30
+
31
+ ### security-auditor
32
+ - `dangerouslySetInnerHTML` with user-controlled content (XSS)
33
+ - eval/Function() calls in component code
34
+ - Exposing sensitive data in client-rendered output
35
+
36
+ ### frontend-reviewer
37
+ - useState/useReducer in Server Components (no client runtime!)
38
+ - 'use client' directive missing on components using hooks
39
+ - Missing 'use server' on Server Actions
40
+ - cookies()/headers()/params not awaited in Next.js 15
41
+ - useEffect not cleaned up (subscription leaks)
42
+ - Keys not unique in list rendering (using index as key)
43
+ - Direct DOM mutations (document.querySelector inside React)
44
+
45
+ ### type-safety-reviewer
46
+ - Props typed as `any`
47
+ - Event handlers typed as `any` (use `React.MouseEvent<HTMLButtonElement>`)
48
+ - Server Component async props typed without Promise<> (Next.js 15 params)
49
+ - No explicit return type on custom hooks
24
50
 
25
51
  ---
26
52
 
27
- ## Active Reviewers
53
+ ## Verdict System
28
54
 
29
55
  ```
30
- logic-reviewer Non-existent React APIs, impossible render conditions,
31
- stale closure patterns, state set during unmounted component
32
- security-auditor → XSS via dangerouslySetInnerHTML, exposed tokens or secrets
33
- in component state, unsanitized URL params
34
- frontend-reviewer → Hooks violations (rules of hooks), missing dep arrays,
35
- direct state mutation, infinite render loops
36
- type-safety-reviewer → Untyped props, any in hooks, unsafe DOM ref usage,
37
- missing generic type parameters
56
+ If ANY reviewer REJECTED: fix before Human Gate
57
+ If any reviewer ⚠️ WARNING: proceed with flagged items
58
+ If all reviewers APPROVED: Human Gate
38
59
  ```
39
60
 
40
61
  ---
41
62
 
42
- ## What Gets Flagged — Real Examples
43
-
44
- | Reviewer | Example Finding |
45
- |---|---|
46
- | logic | `useState.useAsync()` — not a real React API |
47
- | logic | Setting state during render without a guard → infinite loop |
48
- | security | `dangerouslySetInnerHTML={{ __html: userInput }}` — XSS |
49
- | security | `localStorage.setItem('token', jwt)` — accessible to XSS |
50
- | frontend | `useEffect(() => {...}, [])` with a prop used inside — stale closure |
51
- | frontend | `setCount(count + 1)` inside a stale closure — use functional updater |
52
- | frontend | Hook called inside a conditional `if (loggedIn) { useData() }` |
53
- | type-safety | `function Card(props: any)` — no defined prop interface |
54
- | type-safety | `ref.current.focus()` without null check |
55
-
56
63
  ---
57
64
 
58
- ## Report Format
59
-
60
- ```
61
- ━━━ Frontend Audit ━━━━━━━━━━━━━━━━━━━━━━
62
-
63
- logic-reviewer: ✅ APPROVED
64
- security-auditor: ✅ APPROVED
65
- frontend-reviewer: ❌ REJECTED
66
- type-safety: ⚠️ WARNING
67
-
68
- ━━━ Issues ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
65
+ ## Frontend-Specific Hallucination Traps (Common LLM Mistakes)
69
66
 
70
- frontend-reviewer:
71
- HIGH Line 18
72
- Missing dep: userId used inside useEffect but not in dep array
73
- Code: useEffect(() => fetchUser(userId), [])
74
- Fix: useEffect(() => fetchUser(userId), [userId])
67
+ ```typescript
68
+ // React 19: useFormState renamed to useActionState
69
+ import { useFormState } from 'react'; // useFormState no longer exists in React 19
70
+ import { useActionState } from 'react'; // Correct React 19 name
75
71
 
76
- HIGH Line 34
77
- Hook called conditionally: if (isAuth) { useDashboardData() }
78
- Fix: Move hook to top level, use enabled flag inside hook
72
+ // Next.js 15: params and searchParams must be awaited
73
+ const { id } = params; // WRONG — params is a Promise in Next.js 15
74
+ const { id } = await params; // CORRECT
79
75
 
80
- type-safety-reviewer:
81
- ⚠️ MEDIUM Line 3
82
- props: any define a typed interface for this component
83
- Fix: interface CardProps { title: string; content: React.ReactNode }
76
+ // ❌ Hook not valid in Server Component
77
+ export default async function Page() {
78
+ const [count, setCount] = useState(0); // Server Components cannot use hooks
79
+ }
84
80
 
85
- ━━━ Verdict: REJECTED fix before merging ━━━━━━
81
+ // Server Action missing 'use server'
82
+ async function saveData(formData: FormData) { // Without 'use server' — not a Server Action
83
+ 'use server'; // Must be FIRST line
86
84
  ```
87
85
 
88
86
  ---
89
87
 
90
- ## Hallucination Guard
91
-
92
- - Only real React/Vue/Next.js APIs are accepted — invented hooks get REJECTED
93
- - Hook violation findings cite the **specific hooks rule being broken**
94
- - XSS findings include the **specific input path** that creates the injection
95
-
96
- ---
97
-
98
- ## Cross-Workflow Navigation
99
-
100
- | Finding type | Next step |
101
- |---|---|
102
- | XSS finding | Contact security team + `/audit` for project-wide XSS scan |
103
- | Hooks violations everywhere | `/refactor` to extract to properly structured custom hooks |
104
- | All approved | Human Gate to write code to disk |
105
-
106
- ---
107
-
108
- ## Usage
88
+ ## Usage Examples
109
89
 
110
90
  ```
111
- /tribunal-frontend [paste component code]
112
- /tribunal-frontend [paste custom hook]
113
- /tribunal-frontend src/components/UserCard.tsx
114
- /tribunal-frontend the usePagination hook
91
+ /tribunal-frontend the ProductCard component with server-fetched data
92
+ /tribunal-frontend the useAuth custom hook implementation
93
+ /tribunal-frontend the checkout page with Server Action form
94
+ /tribunal-frontend the DashboardLayout with Suspense and loading states
115
95
  ```
@@ -1,136 +1,92 @@
1
1
  ---
2
- description: Run ALL 11 Tribunal reviewer agents simultaneously. Maximum hallucination coverage. Use before merging any AI-generated code.
2
+ description: Run ALL 11 Tribunal reviewer agents simultaneously. Maximum hallucination coverage. Use before merging any AI-generated code, before production deployments, or when maximum confidence is required.
3
3
  ---
4
4
 
5
- # /tribunal-full — Full Panel Review
5
+ # /tribunal-full — Complete 11-Reviewer Audit
6
6
 
7
7
  $ARGUMENTS
8
8
 
9
9
  ---
10
10
 
11
- Paste code. All 11 reviewers analyze it simultaneously. Maximum coverage, no domain gaps.
11
+ ## When to Use /tribunal-full
12
12
 
13
- Use this **before merging any AI-generated code**, or when you're not sure which domain a piece of code sits in.
13
+ |Use `/tribunal-full` when...|Use targeted tribunal when...|
14
+ |:---|:---|
15
+ |Before merging any AI-generated code|Backend only → `/tribunal-backend`|
16
+ |Before production deployment|Frontend only → `/tribunal-frontend`|
17
+ |Security-critical feature review|DB only → `/tribunal-database`|
18
+ |Code affects auth, payments, or PII||
19
+ |Maximum confidence required||
14
20
 
15
21
  ---
16
22
 
17
- ## When to Use /tribunal-full vs Targeted Tribunals
18
-
19
- | Use `/tribunal-full` when... | Use a targeted tribunal when... |
20
- |---|---|
21
- | Not sure which domain applies | You know it's backend-only → `/tribunal-backend` |
22
- | Cross-domain code (API + DB + UI) | Pure frontend → `/tribunal-frontend` |
23
- | AI-generated code, pre-merge | Pure database queries → `/tribunal-database` |
24
- | Security-critical code path | Mobile-specific → `/tribunal-mobile` |
25
- | "Final check" before shipping | Performance concern only → `/tribunal-performance` |
26
-
27
- ---
28
-
29
- ## Who Runs
23
+ ## 11 Reviewers All Active Simultaneously
30
24
 
31
25
  ```
32
- logic-reviewer → Hallucinated methods, impossible logic, undefined refs
33
- security-auditor OWASP Top 10, injection, secrets, auth bypass
34
- dependency-reviewer Imports not found in package.json
35
- type-safety-reviewer → any, unsafe casts, unguarded access
36
- sql-reviewer → Injection via interpolation, N+1, invented schema
37
- frontend-reviewer Hooks violations, missing dep arrays, state mutation
38
- performance-reviewer O(n²), blocking I/O, memory allocation anti-patterns
39
- test-coverage-reviewer Tautology tests, no-assertion specs, over-mocking
40
- mobile-reviewer → Touch targets, safe areas, keyboard avoidance, image memory
41
- ai-code-reviewer → Hallucinated model names, fake params, prompt injection, rate limits
42
- accessibility-reviewer WCAG violations, missing ARIA, contrast, keyboard navigation
26
+ Tier 1: Always active (universal concerns)
27
+ ├── logic-reviewer Hallucinated methods, impossible logic, undefined refs
28
+ └── security-auditor OWASP 2025, injection, JWT, SSRF, IDOR
29
+
30
+ Tier 2: Code quality
31
+ ├── dependency-reviewer Fabricated packages, supply chain, version compatibility
32
+ ├── type-safety-reviewer 'any' epidemic, Zod parse vs cast, unguarded access
33
+ └── sql-reviewer Injection, N+1, missing indexes, unscoped mutations
34
+
35
+ Tier 3: Domain-specific
36
+ ├── frontend-reviewer React 19 APIs, RSC violations, hook rules, hydration
37
+ ├── performance-reviewer → 2026 CWV targets, re-render cascades, memory leaks
38
+ ├── mobile-reviewer → Reanimated thread safety, FlashList, safe area insets
39
+ ├── ai-code-reviewer → Model name hallucinations, prompt injection, cost explosion
40
+ ├── test-coverage-reviewer → Happy path only, brittle selectors, missing edge cases
41
+ └── accessibility-reviewer → WCAG 2.2 AA, ARIA misuse, focus management, live regions
43
42
  ```
44
43
 
45
- All 11 run in parallel. You wait for all verdicts before seeing the result.
46
-
47
44
  ---
48
45
 
49
- ## Severity Levels
46
+ ## Active Reviewers by Code Type
50
47
 
51
- | Symbol | Severity | Meaning |
52
- |---|---|---|
53
- | `❌ CRITICAL` | Blocking | Must be fixed before code reaches the codebase |
54
- | `❌ HIGH` | Blocking | Likely to cause bugs or security issues in production |
55
- | `⚠️ MEDIUM` | Non-blocking | Should be addressed; review before approving |
56
- | `💬 LOW` | Advisory | Consider fixing; does not block merge |
48
+ Not all 11 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."
57
49
 
58
- **Policy:** Any `CRITICAL` or `HIGH` finding means the verdict is `REJECTED`. Code must be revised.
50
+ |Code Under Review|Critical Reviewers|
51
+ |:---|:---|
52
+ |REST API route|logic, security, dependency, type-safety, sql|
53
+ |React component|logic, frontend, accessibility, type-safety|
54
+ |Database query|logic, security, sql|
55
+ |AI LLM integration|logic, security, ai-code, dependency|
56
+ |Test file|test-coverage, logic|
57
+ |React Native / Expo|mobile, logic, security, performance|
58
+ |Next.js page|logic, frontend, performance, accessibility|
59
+ |Auth/JWT code|security, logic, type-safety|
59
60
 
60
61
  ---
61
62
 
62
- ## Report Format
63
+ ## Verdict Aggregation
63
64
 
64
65
  ```
65
- ━━━ Full Tribunal Audit ━━━━━━━━━━━━━━━━━━━━━
66
-
67
- logic-reviewer: APPROVED
68
- security-auditor: REJECTED
69
- dependency-reviewer: ✅ APPROVED
70
- type-safety-reviewer: ⚠️ WARNING
71
- sql-reviewer: ✅ APPROVED
72
- frontend-reviewer: ✅ APPROVED
73
- performance-reviewer: ✅ APPROVED
74
- test-coverage-reviewer: ❌ REJECTED
75
- mobile-reviewer: ✅ APPROVED (N/A — no mobile code)
76
- ai-code-reviewer: ✅ APPROVED (N/A — no LLM calls)
77
- accessibility-reviewer: ✅ APPROVED
78
-
79
- ━━━ Issues ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
80
-
81
- security-auditor:
82
- ❌ CRITICAL — Line 12
83
- SQL injection: db.query(`WHERE id = ${id}`)
84
- Fix: db.query('WHERE id = $1', [id])
85
-
86
- test-coverage-reviewer:
87
- ❌ HIGH — Line 45-60
88
- Tautology test: expect(fn(x)).toBe(fn(x)) — always passes regardless of fn's behavior
89
-
90
- type-safety-reviewer:
91
- ⚠️ MEDIUM — Line 7
92
- Implicit any in parameter: function (data) — add explicit type annotation
93
-
94
- ━━━ Verdict ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
95
-
96
- 2 REJECTED. Fix all CRITICAL and HIGH issues before this code reaches your codebase.
97
- 1 WARNING — review before approving.
98
- 8 APPROVED.
66
+ All 11 verdicts are collected. Aggregated result:
67
+
68
+ If ANY reviewer = ❌ REJECTED → Global verdict: ❌ REJECTED (must fix before Human Gate)
69
+ If any reviewer = ⚠️ WARNING → Global verdict: ⚠️ WARNINGS (proceed with attention)
70
+ If all reviewers = ✅ APPROVED → Global verdict: ✅ APPROVED (proceed to Human Gate)
99
71
  ```
100
72
 
101
73
  ---
102
74
 
75
+ ---
76
+
103
77
  ## Retry Protocol
104
78
 
105
- If code is rejected:
79
+ When code is rejected:
106
80
 
107
81
  ```
108
- Attempt 1 Fix issues from verdicts and resubmit
109
- Attempt 2 Stricter constraints + specific reviewer feedback
110
- Attempt 3 Maximum constraints + full context dump
111
- Attempt 4 → HALT. Escalate to human with full failure history.
82
+ Attempt 1: Maker revises with reviewer feedback
83
+ Attempt 2: Maker revises with stricter constraints + full reviewer context
84
+ Attempt 3: Maker revises with maximum constraints + full context dump
85
+
86
+ After 3 failed attempts:
87
+ → HALT
88
+ → Report to human with full failure history
89
+ → DO NOT retry silently
112
90
  ```
113
91
 
114
- Hard limit: **3 revisions**. After 3 rejections, the agent stops and reports.
115
-
116
92
  ---
117
-
118
- ## Cross-Workflow Navigation
119
-
120
- | After seeing findings... | Go to |
121
- |---|---|
122
- | Security findings need a targeted scan | `/audit` for full project-wide security sweep |
123
- | Performance issues found | `/tribunal-performance` for deeper profiling |
124
- | SQL injection pattern found | Check with `/tribunal-database` across all queries |
125
- | Stale or phantom deps found | `/audit` → dependency scan |
126
-
127
- ---
128
-
129
- ## Usage
130
-
131
- ```
132
- /tribunal-full [paste any code]
133
- /tribunal-full before merging
134
- /tribunal-full when you're unsure which domain applies
135
- /tribunal-full the entire auth service
136
- ```
@@ -1,123 +1,94 @@
1
1
  ---
2
- description: Mobile-specific Tribunal. Runs Logic + Security + Mobile reviewers. Use for React Native, Flutter, and responsive web code.
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
3
  ---
4
4
 
5
- # /tribunal-mobile — Mobile Code Tribunal
5
+ # /tribunal-mobile — Mobile Code Audit
6
6
 
7
7
  $ARGUMENTS
8
8
 
9
9
  ---
10
10
 
11
- This command activates the **Mobile Tribunal** — a focused panel of reviewers covering the specific failure modes of mobile and responsive application code.
11
+ ## When to Use /tribunal-mobile
12
12
 
13
- Use this instead of `/tribunal-full` when your code is specifically mobile-domain. It gives faster, more precise feedback than running all 11 reviewers.
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||
14
20
 
15
21
  ---
16
22
 
17
- ## When to Use This vs Other Tribunals
18
-
19
- | Code type | Right tribunal |
20
- |---|---|
21
- | React Native, Flutter, mobile UI | `/tribunal-mobile` ← you are here |
22
- | Pure React (web) components | `/tribunal-frontend` |
23
- | API routes, auth, middleware | `/tribunal-backend` |
24
- | Cross-domain or pre-merge audit | `/tribunal-full` |
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)
25
45
 
26
46
  ---
27
47
 
28
- ## Active Reviewers
29
-
30
- | Reviewer | What It Catches |
31
- |---|---|
32
- | `logic-reviewer` | Hallucinated RN/Flutter APIs, impossible logic, undefined refs |
33
- | `security-auditor` | Hardcoded secrets, insecure storage, OWASP Mobile Top 10 |
34
- | `mobile-reviewer` | Touch targets, safe areas, keyboard avoidance, gesture handling, image optimization |
35
-
36
- ---
37
-
38
- ## What Gets Flagged — Real Examples
39
-
40
- | Reviewer | Example Finding | Severity |
41
- |---|---|---|
42
- | logic | Calling a non-existent `Animated.stagger()` method | ❌ HIGH |
43
- | security | `AsyncStorage.setItem('token', jwt)` — use `expo-secure-store` instead | ⚠️ MEDIUM |
44
- | security | Deeplink handler with no validation of `url` param | ❌ HIGH |
45
- | security | Missing certificate pinning on sensitive API endpoints | ⚠️ MEDIUM |
46
- | mobile | Button `height: 20` — minimum touch target is 44pt (iOS) / 48dp (Android) | ❌ HIGH |
47
- | mobile | Missing `<SafeAreaView>` on root screen component | ❌ HIGH |
48
- | mobile | No `KeyboardAvoidingView` on screen with text inputs | ❌ HIGH |
49
- | mobile | `<Image source={uri}>` with no width/height bounds — memory risk | ⚠️ MEDIUM |
50
- | mobile | No `Platform.OS` guard on platform-specific code | ⚠️ MEDIUM |
51
-
52
- ---
53
-
54
- ## Mobile-Specific Anti-Hallucination Rules
48
+ ## Verdict System
55
49
 
56
50
  ```
57
- Never reference RN APIs not listed in the installed react-native version
58
- Never assume iOS and Android behave identically — always check Platform.OS when needed
59
- Never use AsyncStorage for sensitive data (tokens, passwords, biometrics)
60
- ❌ Never skip keyboard avoidance on screens with text inputs
61
- ❌ Never use hardcoded pixel values — use pt (iOS) or dp (Android) logical units
62
- ❌ Never claim an animation approach is "performant" without mentioning native driver usage
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
63
54
  ```
64
55
 
65
56
  ---
66
57
 
67
- ## Output Format
68
-
69
- ```
70
- ━━━ Tribunal: Mobile ━━━━━━━━━━━━━━━━━━━━━
71
-
72
- Active reviewers: logic · security · mobile
73
-
74
- [Your code under review]
75
-
76
- ━━━ Verdicts ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
77
-
78
- logic-reviewer: ✅ APPROVED
79
- security-auditor: ⚠️ WARNING
80
- mobile-reviewer: ❌ REJECTED
81
-
82
- ━━━ Issues ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
83
-
84
- security-auditor:
85
- ⚠️ MEDIUM — Line 8
86
- AsyncStorage used for auth token storage
87
- Fix: Use expo-secure-store or react-native-keychain for sensitive data
88
-
89
- mobile-reviewer:
90
- ❌ HIGH — Line 12
91
- Touch target: Button height is 20pt. Minimum is 44pt (iOS) / 48dp (Android)
92
- Fix: style={{ minHeight: 44 }}
93
-
94
- ❌ HIGH — Line 34
95
- Missing SafeAreaView wrapping the root view
96
- Fix: Wrap with <SafeAreaView style={{ flex: 1 }}>
97
-
98
- ━━━ Verdict: REJECTED ━━━━━━━━━━━━━━━━━━━━
99
-
100
- Address rejections? Y = fix and re-review | N = accept risk | R = revise manually
101
- ```
102
-
103
58
  ---
104
59
 
105
- ## Cross-Workflow Navigation
106
-
107
- | Finding type | Next step |
108
- |---|---|
109
- | Insecure storage CRITICAL | Replace storage library via `/enhance` |
110
- | All touch target issues | `/enhance` to normalize touch targets in shared components |
111
- | Cross-platform behavior gap | `/refactor` to extract Platform.OS guards into a utility |
112
- | All approved | Human Gate to write to disk |
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
+ ```
113
84
 
114
85
  ---
115
86
 
116
- ## Usage
87
+ ## Usage Examples
117
88
 
118
89
  ```
119
- /tribunal-mobile my React Native login screen component
120
- /tribunal-mobile the Flutter payment form widget
121
- /tribunal-mobile the responsive mobile nav component with touch gestures
122
- /tribunal-mobile the biometric authentication flow
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
123
94
  ```