tribunal-kit 2.4.5 → 3.0.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.
- package/.agent/agents/accessibility-reviewer.md +220 -134
- package/.agent/agents/ai-code-reviewer.md +233 -129
- package/.agent/agents/backend-specialist.md +238 -178
- package/.agent/agents/code-archaeologist.md +181 -119
- package/.agent/agents/database-architect.md +207 -164
- package/.agent/agents/debugger.md +218 -151
- package/.agent/agents/dependency-reviewer.md +136 -55
- package/.agent/agents/devops-engineer.md +238 -175
- package/.agent/agents/documentation-writer.md +221 -137
- package/.agent/agents/explorer-agent.md +180 -142
- package/.agent/agents/frontend-reviewer.md +194 -80
- package/.agent/agents/frontend-specialist.md +237 -188
- package/.agent/agents/game-developer.md +52 -184
- package/.agent/agents/logic-reviewer.md +149 -78
- package/.agent/agents/mobile-developer.md +223 -152
- package/.agent/agents/mobile-reviewer.md +195 -79
- package/.agent/agents/orchestrator.md +211 -170
- package/.agent/agents/penetration-tester.md +174 -131
- package/.agent/agents/performance-optimizer.md +203 -139
- package/.agent/agents/performance-reviewer.md +211 -108
- package/.agent/agents/product-manager.md +162 -108
- package/.agent/agents/project-planner.md +162 -142
- package/.agent/agents/qa-automation-engineer.md +242 -138
- package/.agent/agents/security-auditor.md +194 -170
- package/.agent/agents/seo-specialist.md +213 -132
- package/.agent/agents/sql-reviewer.md +194 -73
- package/.agent/agents/supervisor-agent.md +203 -156
- package/.agent/agents/test-coverage-reviewer.md +193 -81
- package/.agent/agents/type-safety-reviewer.md +208 -65
- package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
- package/.agent/skills/agent-organizer/SKILL.md +126 -132
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +160 -0
- package/.agent/skills/api-patterns/SKILL.md +289 -257
- package/.agent/skills/api-security-auditor/SKILL.md +177 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +1 -1
- package/.agent/skills/appflow-wireframe/SKILL.md +107 -58
- package/.agent/skills/architecture/SKILL.md +331 -200
- package/.agent/skills/authentication-best-practices/SKILL.md +173 -0
- package/.agent/skills/bash-linux/SKILL.md +154 -215
- package/.agent/skills/brainstorming/SKILL.md +104 -210
- package/.agent/skills/building-native-ui/SKILL.md +174 -0
- package/.agent/skills/clean-code/SKILL.md +360 -206
- package/.agent/skills/config-validator/SKILL.md +141 -165
- package/.agent/skills/csharp-developer/SKILL.md +528 -107
- package/.agent/skills/database-design/SKILL.md +455 -275
- package/.agent/skills/deployment-procedures/SKILL.md +145 -188
- package/.agent/skills/devops-engineer/SKILL.md +332 -134
- package/.agent/skills/devops-incident-responder/SKILL.md +113 -98
- package/.agent/skills/edge-computing/SKILL.md +157 -213
- package/.agent/skills/extract-design-system/SKILL.md +134 -0
- package/.agent/skills/framer-motion-expert/SKILL.md +939 -0
- package/.agent/skills/game-design-expert/SKILL.md +105 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +122 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +124 -215
- package/.agent/skills/github-operations/SKILL.md +314 -354
- package/.agent/skills/gsap-expert/SKILL.md +901 -0
- package/.agent/skills/i18n-localization/SKILL.md +138 -216
- package/.agent/skills/intelligent-routing/SKILL.md +127 -139
- package/.agent/skills/llm-engineering/SKILL.md +357 -258
- package/.agent/skills/local-first/SKILL.md +154 -203
- package/.agent/skills/mcp-builder/SKILL.md +118 -224
- package/.agent/skills/nextjs-react-expert/SKILL.md +783 -203
- package/.agent/skills/nodejs-best-practices/SKILL.md +559 -280
- package/.agent/skills/observability/SKILL.md +330 -285
- package/.agent/skills/parallel-agents/SKILL.md +122 -181
- package/.agent/skills/performance-profiling/SKILL.md +254 -197
- package/.agent/skills/plan-writing/SKILL.md +118 -188
- package/.agent/skills/platform-engineer/SKILL.md +123 -135
- package/.agent/skills/playwright-best-practices/SKILL.md +162 -0
- package/.agent/skills/powershell-windows/SKILL.md +146 -230
- package/.agent/skills/python-pro/SKILL.md +879 -114
- package/.agent/skills/react-specialist/SKILL.md +931 -108
- package/.agent/skills/readme-builder/SKILL.md +42 -0
- package/.agent/skills/realtime-patterns/SKILL.md +304 -296
- package/.agent/skills/rust-pro/SKILL.md +701 -240
- package/.agent/skills/seo-fundamentals/SKILL.md +154 -181
- package/.agent/skills/server-management/SKILL.md +190 -212
- package/.agent/skills/shadcn-ui-expert/SKILL.md +206 -0
- package/.agent/skills/skill-creator/SKILL.md +68 -0
- package/.agent/skills/sql-pro/SKILL.md +633 -104
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +78 -0
- package/.agent/skills/swiftui-expert/SKILL.md +176 -0
- package/.agent/skills/systematic-debugging/SKILL.md +118 -186
- package/.agent/skills/tailwind-patterns/SKILL.md +576 -232
- package/.agent/skills/tdd-workflow/SKILL.md +137 -209
- package/.agent/skills/testing-patterns/SKILL.md +573 -205
- package/.agent/skills/vue-expert/SKILL.md +964 -119
- package/.agent/skills/vulnerability-scanner/SKILL.md +269 -316
- package/.agent/skills/web-accessibility-auditor/SKILL.md +193 -0
- package/.agent/skills/webapp-testing/SKILL.md +145 -236
- package/.agent/workflows/api-tester.md +151 -279
- package/.agent/workflows/audit.md +138 -168
- package/.agent/workflows/brainstorm.md +110 -146
- package/.agent/workflows/changelog.md +112 -144
- package/.agent/workflows/create.md +124 -139
- package/.agent/workflows/debug.md +189 -196
- package/.agent/workflows/deploy.md +189 -153
- package/.agent/workflows/enhance.md +151 -139
- package/.agent/workflows/fix.md +135 -143
- package/.agent/workflows/generate.md +157 -164
- package/.agent/workflows/migrate.md +160 -163
- package/.agent/workflows/orchestrate.md +168 -151
- package/.agent/workflows/performance-benchmarker.md +123 -305
- package/.agent/workflows/plan.md +173 -151
- package/.agent/workflows/preview.md +80 -137
- package/.agent/workflows/refactor.md +183 -153
- package/.agent/workflows/review-ai.md +129 -140
- package/.agent/workflows/review.md +116 -155
- package/.agent/workflows/session.md +94 -154
- package/.agent/workflows/status.md +79 -125
- package/.agent/workflows/strengthen-skills.md +139 -99
- package/.agent/workflows/swarm.md +179 -194
- package/.agent/workflows/test.md +211 -166
- package/.agent/workflows/tribunal-backend.md +113 -111
- package/.agent/workflows/tribunal-database.md +115 -132
- package/.agent/workflows/tribunal-frontend.md +118 -115
- package/.agent/workflows/tribunal-full.md +133 -136
- package/.agent/workflows/tribunal-mobile.md +119 -123
- package/.agent/workflows/tribunal-performance.md +133 -152
- package/.agent/workflows/ui-ux-pro-max.md +143 -171
- package/README.md +11 -15
- package/package.json +1 -1
- package/.agent/skills/dotnet-core-expert/SKILL.md +0 -103
- package/.agent/skills/game-development/2d-games/SKILL.md +0 -119
- package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
- package/.agent/skills/game-development/SKILL.md +0 -236
- package/.agent/skills/game-development/game-art/SKILL.md +0 -185
- package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
- package/.agent/skills/game-development/game-design/SKILL.md +0 -129
- package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
- package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
- package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
- package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
- package/.agent/skills/game-development/web-games/SKILL.md +0 -150
|
@@ -1,136 +1,133 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Run ALL 11 Tribunal reviewer agents simultaneously. Maximum hallucination coverage. Use before merging any AI-generated code.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /tribunal-full —
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Use
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
security-auditor:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
/tribunal-full when you're unsure which domain applies
|
|
135
|
-
/tribunal-full the entire auth service
|
|
136
|
-
```
|
|
1
|
+
---
|
|
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
|
+
---
|
|
4
|
+
|
|
5
|
+
# /tribunal-full — Complete 11-Reviewer Audit
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use /tribunal-full
|
|
12
|
+
|
|
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 | |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 11 Reviewers — All Active Simultaneously
|
|
24
|
+
|
|
25
|
+
```
|
|
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
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Active Reviewers by Code Type
|
|
47
|
+
|
|
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."
|
|
49
|
+
|
|
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 |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Verdict Aggregation
|
|
64
|
+
|
|
65
|
+
```
|
|
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)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Output Format
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
━━━ Tribunal Full — All 11 Reviewers ━━━━━━━━━━━━━━
|
|
79
|
+
|
|
80
|
+
logic-reviewer: ✅ APPROVED
|
|
81
|
+
security-auditor: ❌ REJECTED (1 critical)
|
|
82
|
+
dependency-reviewer: ⚠️ WARNING (1 medium)
|
|
83
|
+
type-safety-reviewer: ✅ APPROVED
|
|
84
|
+
sql-reviewer: ✅ APPROVED
|
|
85
|
+
frontend-reviewer: ✅ APPROVED
|
|
86
|
+
performance-reviewer: ⚠️ WARNING (1 low)
|
|
87
|
+
mobile-reviewer: N/A — no mobile code
|
|
88
|
+
ai-code-reviewer: N/A — no AI API calls
|
|
89
|
+
test-coverage-reviewer: ❌ REJECTED (missing error path)
|
|
90
|
+
accessibility-reviewer: ⚠️ WARNING (1 medium)
|
|
91
|
+
|
|
92
|
+
━━━ GLOBAL VERDICT: ❌ REJECTED ━━━━━━━━━━━━━━━━━━━
|
|
93
|
+
|
|
94
|
+
Blockers (must fix before Human Gate):
|
|
95
|
+
1. security-auditor: JWT verify missing { algorithms } option in src/lib/auth.ts:45
|
|
96
|
+
2. test-coverage-reviewer: POST /api/orders missing error path test
|
|
97
|
+
|
|
98
|
+
Warnings (flagged but not blocking):
|
|
99
|
+
- dependency-reviewer: 'zod' version mismatch — package uses 3.22.4, imports from 3.23.0-beta
|
|
100
|
+
- performance-reviewer: LCP image missing priority={true}
|
|
101
|
+
- accessibility-reviewer: icon button at line 67 missing aria-label
|
|
102
|
+
|
|
103
|
+
━━━ Human Gate ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
104
|
+
Approve after blockers resolved? Y = proceed | N = discard | R = revise
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Retry Protocol
|
|
110
|
+
|
|
111
|
+
When code is rejected:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Attempt 1: Maker revises with reviewer feedback
|
|
115
|
+
Attempt 2: Maker revises with stricter constraints + full reviewer context
|
|
116
|
+
Attempt 3: Maker revises with maximum constraints + full context dump
|
|
117
|
+
|
|
118
|
+
After 3 failed attempts:
|
|
119
|
+
→ HALT
|
|
120
|
+
→ Report to human with full failure history
|
|
121
|
+
→ DO NOT retry silently
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Cross-Workflow Navigation
|
|
127
|
+
|
|
128
|
+
| Full Tribunal finds... | Go to |
|
|
129
|
+
|:---|:---|
|
|
130
|
+
| Backend security issues | Also run `/review` for deep pattern analysis |
|
|
131
|
+
| Tests incomplete | `/test` to write missing cases |
|
|
132
|
+
| Performance warnings | `/tribunal-performance` for full analysis |
|
|
133
|
+
| After all blockers resolved | Re-run `/tribunal-full` before Human Gate |
|
|
@@ -1,123 +1,119 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Mobile-specific Tribunal. Runs Logic + Security + Mobile reviewers. Use for React Native,
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /tribunal-mobile — Mobile Code
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Use
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
|
123
|
-
```
|
|
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
|
+
```
|