tribunal-kit 3.0.0 → 4.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/ARCHITECTURE.md +99 -99
- package/.agent/GEMINI.md +52 -52
- package/.agent/agents/accessibility-reviewer.md +187 -220
- package/.agent/agents/ai-code-reviewer.md +199 -233
- package/.agent/agents/backend-specialist.md +215 -238
- package/.agent/agents/code-archaeologist.md +161 -181
- package/.agent/agents/database-architect.md +184 -207
- package/.agent/agents/debugger.md +191 -218
- package/.agent/agents/dependency-reviewer.md +103 -136
- package/.agent/agents/devops-engineer.md +218 -238
- package/.agent/agents/documentation-writer.md +201 -221
- package/.agent/agents/explorer-agent.md +160 -180
- package/.agent/agents/frontend-reviewer.md +160 -194
- package/.agent/agents/frontend-specialist.md +248 -237
- package/.agent/agents/game-developer.md +48 -52
- package/.agent/agents/logic-reviewer.md +116 -149
- package/.agent/agents/mobile-developer.md +200 -223
- package/.agent/agents/mobile-reviewer.md +162 -195
- package/.agent/agents/orchestrator.md +181 -211
- package/.agent/agents/penetration-tester.md +157 -174
- package/.agent/agents/performance-optimizer.md +183 -203
- package/.agent/agents/performance-reviewer.md +178 -211
- package/.agent/agents/precedence-reviewer.md +213 -0
- package/.agent/agents/product-manager.md +142 -162
- package/.agent/agents/product-owner.md +6 -25
- package/.agent/agents/project-planner.md +142 -162
- package/.agent/agents/qa-automation-engineer.md +225 -242
- package/.agent/agents/security-auditor.md +174 -194
- package/.agent/agents/seo-specialist.md +193 -213
- package/.agent/agents/sql-reviewer.md +161 -194
- package/.agent/agents/supervisor-agent.md +184 -203
- package/.agent/agents/swarm-worker-contracts.md +17 -17
- package/.agent/agents/swarm-worker-registry.md +46 -46
- package/.agent/agents/test-coverage-reviewer.md +160 -193
- package/.agent/agents/test-engineer.md +0 -21
- package/.agent/agents/type-safety-reviewer.md +175 -208
- package/.agent/patterns/generator.md +9 -9
- package/.agent/patterns/inversion.md +12 -12
- package/.agent/patterns/pipeline.md +9 -9
- package/.agent/patterns/reviewer.md +13 -13
- package/.agent/patterns/tool-wrapper.md +9 -9
- package/.agent/rules/GEMINI.md +63 -63
- package/.agent/scripts/append_flow.js +72 -0
- package/.agent/scripts/case_law_manager.py +525 -0
- package/.agent/scripts/compress_skills.py +167 -0
- package/.agent/scripts/consolidate_skills.py +173 -0
- package/.agent/scripts/deep_compress.py +202 -0
- package/.agent/scripts/minify_context.py +80 -0
- package/.agent/scripts/security_scan.py +1 -1
- package/.agent/scripts/skill_evolution.py +563 -0
- package/.agent/scripts/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +100 -126
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +134 -160
- package/.agent/skills/api-patterns/SKILL.md +123 -215
- package/.agent/skills/api-security-auditor/SKILL.md +143 -177
- package/.agent/skills/app-builder/SKILL.md +334 -50
- package/.agent/skills/app-builder/templates/SKILL.md +13 -15
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +16 -16
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +22 -22
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +20 -20
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +17 -17
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +21 -21
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +26 -26
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +19 -19
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +18 -18
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +20 -20
- package/.agent/skills/appflow-wireframe/SKILL.md +95 -121
- package/.agent/skills/architecture/SKILL.md +169 -331
- package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
- package/.agent/skills/bash-linux/SKILL.md +129 -154
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +436 -104
- package/.agent/skills/building-native-ui/SKILL.md +152 -174
- package/.agent/skills/clean-code/SKILL.md +331 -360
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +115 -141
- package/.agent/skills/csharp-developer/SKILL.md +468 -528
- package/.agent/skills/database-design/SKILL.md +104 -369
- package/.agent/skills/deployment-procedures/SKILL.md +119 -145
- package/.agent/skills/devops-engineer/SKILL.md +295 -332
- package/.agent/skills/devops-incident-responder/SKILL.md +87 -113
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +27 -63
- package/.agent/skills/edge-computing/SKILL.md +131 -157
- package/.agent/skills/extract-design-system/SKILL.md +108 -134
- package/.agent/skills/framer-motion-expert/SKILL.md +111 -855
- package/.agent/skills/frontend-design/SKILL.md +151 -499
- package/.agent/skills/game-design-expert/SKILL.md +79 -105
- package/.agent/skills/game-engineering-expert/SKILL.md +96 -122
- package/.agent/skills/geo-fundamentals/SKILL.md +97 -124
- package/.agent/skills/github-operations/SKILL.md +279 -314
- package/.agent/skills/gsap-expert/SKILL.md +119 -826
- package/.agent/skills/i18n-localization/SKILL.md +113 -138
- package/.agent/skills/intelligent-routing/SKILL.md +167 -127
- package/.agent/skills/lint-and-validate/SKILL.md +16 -52
- package/.agent/skills/llm-engineering/SKILL.md +344 -357
- package/.agent/skills/local-first/SKILL.md +128 -154
- package/.agent/skills/mcp-builder/SKILL.md +92 -118
- package/.agent/skills/mobile-design/SKILL.md +213 -219
- package/.agent/skills/motion-engineering/SKILL.md +184 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +99 -698
- package/.agent/skills/nodejs-best-practices/SKILL.md +498 -559
- package/.agent/skills/observability/SKILL.md +293 -330
- package/.agent/skills/parallel-agents/SKILL.md +96 -122
- package/.agent/skills/performance-profiling/SKILL.md +217 -254
- package/.agent/skills/plan-writing/SKILL.md +92 -118
- package/.agent/skills/platform-engineer/SKILL.md +97 -123
- package/.agent/skills/playwright-best-practices/SKILL.md +137 -162
- package/.agent/skills/powershell-windows/SKILL.md +112 -146
- package/.agent/skills/project-idioms/SKILL.md +87 -0
- package/.agent/skills/python-patterns/SKILL.md +15 -35
- package/.agent/skills/python-pro/SKILL.md +148 -754
- package/.agent/skills/react-specialist/SKILL.md +123 -827
- package/.agent/skills/readme-builder/SKILL.md +23 -85
- package/.agent/skills/realtime-patterns/SKILL.md +269 -304
- package/.agent/skills/red-team-tactics/SKILL.md +18 -51
- package/.agent/skills/rust-pro/SKILL.md +623 -701
- package/.agent/skills/seo-fundamentals/SKILL.md +129 -154
- package/.agent/skills/server-management/SKILL.md +164 -190
- package/.agent/skills/shadcn-ui-expert/SKILL.md +181 -206
- package/.agent/skills/skill-creator/SKILL.md +24 -56
- package/.agent/skills/sql-pro/SKILL.md +579 -633
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +35 -66
- package/.agent/skills/swiftui-expert/SKILL.md +151 -176
- package/.agent/skills/systematic-debugging/SKILL.md +92 -118
- package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
- package/.agent/skills/tdd-workflow/SKILL.md +111 -137
- package/.agent/skills/test-result-analyzer/SKILL.md +33 -73
- package/.agent/skills/testing-patterns/SKILL.md +512 -573
- package/.agent/skills/trend-researcher/SKILL.md +30 -71
- package/.agent/skills/ui-ux-pro-max/SKILL.md +8 -41
- package/.agent/skills/ui-ux-researcher/SKILL.md +51 -91
- package/.agent/skills/vue-expert/SKILL.md +127 -866
- package/.agent/skills/vulnerability-scanner/SKILL.md +354 -269
- package/.agent/skills/web-accessibility-auditor/SKILL.md +168 -193
- package/.agent/skills/web-design-guidelines/SKILL.md +25 -61
- package/.agent/skills/webapp-testing/SKILL.md +119 -145
- package/.agent/skills/whimsy-injector/SKILL.md +58 -132
- package/.agent/skills/workflow-optimizer/SKILL.md +28 -68
- package/.agent/workflows/api-tester.md +151 -151
- package/.agent/workflows/audit.md +127 -138
- package/.agent/workflows/brainstorm.md +110 -110
- package/.agent/workflows/changelog.md +112 -112
- package/.agent/workflows/create.md +124 -124
- package/.agent/workflows/debug.md +165 -189
- package/.agent/workflows/deploy.md +180 -189
- package/.agent/workflows/enhance.md +128 -151
- package/.agent/workflows/fix.md +114 -135
- package/.agent/workflows/generate.md +13 -4
- package/.agent/workflows/migrate.md +160 -160
- package/.agent/workflows/orchestrate.md +168 -168
- package/.agent/workflows/performance-benchmarker.md +114 -123
- package/.agent/workflows/plan.md +173 -173
- package/.agent/workflows/preview.md +80 -80
- package/.agent/workflows/refactor.md +161 -183
- package/.agent/workflows/review-ai.md +101 -129
- package/.agent/workflows/review.md +116 -116
- package/.agent/workflows/session.md +94 -94
- package/.agent/workflows/status.md +79 -79
- package/.agent/workflows/strengthen-skills.md +138 -139
- package/.agent/workflows/swarm.md +179 -179
- package/.agent/workflows/test.md +189 -211
- package/.agent/workflows/tribunal-backend.md +94 -113
- package/.agent/workflows/tribunal-database.md +95 -115
- package/.agent/workflows/tribunal-frontend.md +96 -118
- package/.agent/workflows/tribunal-full.md +93 -133
- package/.agent/workflows/tribunal-mobile.md +95 -119
- package/.agent/workflows/tribunal-performance.md +110 -133
- package/.agent/workflows/ui-ux-pro-max.md +122 -143
- package/README.md +30 -1
- package/bin/tribunal-kit.js +175 -12
- package/package.json +25 -4
- package/.agent/skills/api-patterns/api-style.md +0 -42
- package/.agent/skills/api-patterns/auth.md +0 -24
- package/.agent/skills/api-patterns/documentation.md +0 -26
- package/.agent/skills/api-patterns/graphql.md +0 -41
- package/.agent/skills/api-patterns/rate-limiting.md +0 -31
- package/.agent/skills/api-patterns/response.md +0 -37
- package/.agent/skills/api-patterns/rest.md +0 -40
- package/.agent/skills/api-patterns/security-testing.md +0 -122
- package/.agent/skills/api-patterns/trpc.md +0 -41
- package/.agent/skills/api-patterns/versioning.md +0 -22
- package/.agent/skills/app-builder/agent-coordination.md +0 -71
- package/.agent/skills/app-builder/feature-building.md +0 -53
- package/.agent/skills/app-builder/project-detection.md +0 -34
- package/.agent/skills/app-builder/scaffolding.md +0 -118
- package/.agent/skills/app-builder/tech-stack.md +0 -40
- package/.agent/skills/architecture/context-discovery.md +0 -43
- package/.agent/skills/architecture/examples.md +0 -94
- package/.agent/skills/architecture/pattern-selection.md +0 -68
- package/.agent/skills/architecture/patterns-reference.md +0 -50
- package/.agent/skills/architecture/trade-off-analysis.md +0 -77
- package/.agent/skills/brainstorming/dynamic-questioning.md +0 -360
- package/.agent/skills/database-design/database-selection.md +0 -43
- package/.agent/skills/database-design/indexing.md +0 -39
- package/.agent/skills/database-design/migrations.md +0 -48
- package/.agent/skills/database-design/optimization.md +0 -36
- package/.agent/skills/database-design/orm-selection.md +0 -30
- package/.agent/skills/database-design/schema-design.md +0 -56
- package/.agent/skills/frontend-design/animation-guide.md +0 -331
- package/.agent/skills/frontend-design/color-system.md +0 -329
- package/.agent/skills/frontend-design/decision-trees.md +0 -418
- package/.agent/skills/frontend-design/motion-graphics.md +0 -306
- package/.agent/skills/frontend-design/typography-system.md +0 -363
- package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
- package/.agent/skills/frontend-design/visual-effects.md +0 -383
- package/.agent/skills/intelligent-routing/router-manifest.md +0 -65
- package/.agent/skills/mobile-design/decision-trees.md +0 -516
- package/.agent/skills/mobile-design/mobile-backend.md +0 -491
- package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
- package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
- package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
- package/.agent/skills/mobile-design/mobile-performance.md +0 -767
- package/.agent/skills/mobile-design/mobile-testing.md +0 -356
- package/.agent/skills/mobile-design/mobile-typography.md +0 -433
- package/.agent/skills/mobile-design/platform-android.md +0 -666
- package/.agent/skills/mobile-design/platform-ios.md +0 -561
- package/.agent/skills/mobile-design/touch-psychology.md +0 -537
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
|
@@ -1,115 +1,95 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Database-specific Tribunal. Runs Logic + Security + SQL reviewers. Use for Prisma queries, raw SQL, schema migrations, ORM operations, and database transaction code.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /tribunal-database — Database Code Audit
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## When to Use /tribunal-database
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|:---|:---|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 3 Active Reviewers (All Run Simultaneously)
|
|
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
|
-
If
|
|
52
|
-
If
|
|
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
|
-
// ❌ Missing rollback in raw SQL
|
|
98
|
-
try {
|
|
99
|
-
await db.query('BEGIN');
|
|
100
|
-
await db.query('UPDATE ...');
|
|
101
|
-
} catch (e) {
|
|
102
|
-
// Missing: await db.query('ROLLBACK');
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Usage Examples
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
/tribunal-database the createOrder function with Stripe idempotency
|
|
112
|
-
/tribunal-database the user registration with email uniqueness check
|
|
113
|
-
/tribunal-database the migration file adding phoneNumber to users
|
|
114
|
-
/tribunal-database the paginated product query with category filter
|
|
115
|
-
```
|
|
1
|
+
---
|
|
2
|
+
description: Database-specific Tribunal. Runs Logic + Security + SQL reviewers. Use for Prisma queries, raw SQL, schema migrations, ORM operations, and database transaction code.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /tribunal-database — Database Code Audit
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use /tribunal-database
|
|
12
|
+
|
|
13
|
+
|Use `/tribunal-database` when...|Use something else when...|
|
|
14
|
+
|:---|:---|
|
|
15
|
+
|Prisma queries and schema|Frontend queries → `/tribunal-frontend`|
|
|
16
|
+
|Raw SQL with pg/mysql2/better-sqlite3|API routes calling DB → `/tribunal-backend`|
|
|
17
|
+
|Database migrations|Full audit → `/tribunal-full`|
|
|
18
|
+
|ORM schema changes||
|
|
19
|
+
|Transaction boundaries||
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 3 Active Reviewers (All Run Simultaneously)
|
|
24
|
+
|
|
25
|
+
### precedence-reviewer → Checks local repo Case Law for past rejections
|
|
26
|
+
logic-reviewer
|
|
27
|
+
- Prisma methods that don't exist (`findOne` was removed — use `findUnique`)
|
|
28
|
+
- Transaction that should be `$transaction` but isn't
|
|
29
|
+
- Pagination query missing total count (returns wrong metadata)
|
|
30
|
+
- `.findMany()` with no `take` limit (unbounded query)
|
|
31
|
+
|
|
32
|
+
### security-auditor
|
|
33
|
+
- SQL injection via `$queryRaw` with template literals and user input
|
|
34
|
+
- Row-level security bypass (no WHERE clause on user-scoped query)
|
|
35
|
+
- Mass assignment via `prisma.user.update({ data: req.body })` (unrestricted)
|
|
36
|
+
- Prisma `$executeRaw` with string interpolation
|
|
37
|
+
|
|
38
|
+
### sql-reviewer
|
|
39
|
+
- N+1 pattern (loop with prisma query inside)
|
|
40
|
+
- Foreign key columns without `@@index`
|
|
41
|
+
- No index on ORDER BY column for large tables
|
|
42
|
+
- Unscoped UPDATE/DELETE without WHERE clause
|
|
43
|
+
- Missing rollback in raw SQL catch block
|
|
44
|
+
- Expand vs contract migration not followed
|
|
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
|
+
## Database-Specific Hallucination Traps (Common LLM Mistakes)
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
// ❌ Prisma: findOne was REMOVED — doesn't exist in any version
|
|
64
|
+
const user = await prisma.user.findOne({ where: { id } });
|
|
65
|
+
// ✅ Correct
|
|
66
|
+
const user = await prisma.user.findUnique({ where: { id } });
|
|
67
|
+
|
|
68
|
+
// ❌ Prisma: upsertMany doesn't exist
|
|
69
|
+
await prisma.product.upsertMany({ data: products }); // Doesn't exist
|
|
70
|
+
// ✅ Use createMany or transaction with multiple upserts
|
|
71
|
+
await prisma.$transaction(products.map(p => prisma.product.upsert({ ... })));
|
|
72
|
+
|
|
73
|
+
// ❌ Migration fails silently: adding NOT NULL column to populated table
|
|
74
|
+
ALTER TABLE users ADD COLUMN phone VARCHAR(20) NOT NULL; // Error on existing rows
|
|
75
|
+
// ✅ Always add nullable first, backfill, then add constraint
|
|
76
|
+
|
|
77
|
+
// ❌ Missing rollback in raw SQL
|
|
78
|
+
try {
|
|
79
|
+
await db.query('BEGIN');
|
|
80
|
+
await db.query('UPDATE ...');
|
|
81
|
+
} catch (e) {
|
|
82
|
+
// Missing: await db.query('ROLLBACK');
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Usage Examples
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
/tribunal-database the createOrder function with Stripe idempotency
|
|
92
|
+
/tribunal-database the user registration with email uniqueness check
|
|
93
|
+
/tribunal-database the migration file adding phoneNumber to users
|
|
94
|
+
/tribunal-database the paginated product query with category filter
|
|
95
|
+
```
|
|
@@ -1,118 +1,96 @@
|
|
|
1
|
-
---
|
|
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
|
-
---
|
|
4
|
-
|
|
5
|
-
# /tribunal-frontend — Frontend Code Audit
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## When to Use /tribunal-frontend
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|:---|:---|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 4 Active Reviewers (All Run Simultaneously)
|
|
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
|
-
If
|
|
58
|
-
If
|
|
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
|
-
const { id } = await params; // CORRECT
|
|
98
|
-
|
|
99
|
-
// ❌ Hook not valid in Server Component
|
|
100
|
-
export default async function Page() {
|
|
101
|
-
const [count, setCount] = useState(0); // Server Components cannot use hooks
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// ❌ Server Action missing 'use server'
|
|
105
|
-
async function saveData(formData: FormData) { // Without 'use server' — not a Server Action
|
|
106
|
-
'use server'; // Must be FIRST line
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Usage Examples
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
/tribunal-frontend the ProductCard component with server-fetched data
|
|
115
|
-
/tribunal-frontend the useAuth custom hook implementation
|
|
116
|
-
/tribunal-frontend the checkout page with Server Action form
|
|
117
|
-
/tribunal-frontend the DashboardLayout with Suspense and loading states
|
|
118
|
-
```
|
|
1
|
+
---
|
|
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
|
+
---
|
|
4
|
+
|
|
5
|
+
# /tribunal-frontend — Frontend Code Audit
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use /tribunal-frontend
|
|
12
|
+
|
|
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||
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 4 Active Reviewers (All Run Simultaneously)
|
|
24
|
+
|
|
25
|
+
### precedence-reviewer → Checks local repo Case Law for past rejections
|
|
26
|
+
logic-reviewer
|
|
27
|
+
- Hallucinated React 19 hooks (non-existent hook names)
|
|
28
|
+
- useFormState called instead of useActionState (React 19 rename)
|
|
29
|
+
- useEffect missing dependencies (stale closure)
|
|
30
|
+
- Multiple setStates that should be batched (React 19 auto-batches in most cases)
|
|
31
|
+
|
|
32
|
+
### security-auditor
|
|
33
|
+
- `dangerouslySetInnerHTML` with user-controlled content (XSS)
|
|
34
|
+
- eval/Function() calls in component code
|
|
35
|
+
- Exposing sensitive data in client-rendered output
|
|
36
|
+
|
|
37
|
+
### frontend-reviewer
|
|
38
|
+
- useState/useReducer in Server Components (no client runtime!)
|
|
39
|
+
- 'use client' directive missing on components using hooks
|
|
40
|
+
- Missing 'use server' on Server Actions
|
|
41
|
+
- cookies()/headers()/params not awaited in Next.js 15
|
|
42
|
+
- useEffect not cleaned up (subscription leaks)
|
|
43
|
+
- Keys not unique in list rendering (using index as key)
|
|
44
|
+
- Direct DOM mutations (document.querySelector inside React)
|
|
45
|
+
|
|
46
|
+
### type-safety-reviewer
|
|
47
|
+
- Props typed as `any`
|
|
48
|
+
- Event handlers typed as `any` (use `React.MouseEvent<HTMLButtonElement>`)
|
|
49
|
+
- Server Component async props typed without Promise<> (Next.js 15 params)
|
|
50
|
+
- No explicit return type on custom hooks
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Verdict System
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
If ANY reviewer → ❌ REJECTED: fix before Human Gate
|
|
58
|
+
If any reviewer → ⚠️ WARNING: proceed with flagged items
|
|
59
|
+
If all reviewers → ✅ APPROVED: Human Gate
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Frontend-Specific Hallucination Traps (Common LLM Mistakes)
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// ❌ React 19: useFormState renamed to useActionState
|
|
70
|
+
import { useFormState } from 'react'; // useFormState no longer exists in React 19
|
|
71
|
+
import { useActionState } from 'react'; // Correct React 19 name
|
|
72
|
+
|
|
73
|
+
// ❌ Next.js 15: params and searchParams must be awaited
|
|
74
|
+
const { id } = params; // WRONG — params is a Promise in Next.js 15
|
|
75
|
+
const { id } = await params; // CORRECT
|
|
76
|
+
|
|
77
|
+
// ❌ Hook not valid in Server Component
|
|
78
|
+
export default async function Page() {
|
|
79
|
+
const [count, setCount] = useState(0); // Server Components cannot use hooks
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// ❌ Server Action missing 'use server'
|
|
83
|
+
async function saveData(formData: FormData) { // Without 'use server' — not a Server Action
|
|
84
|
+
'use server'; // Must be FIRST line
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Usage Examples
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
/tribunal-frontend the ProductCard component with server-fetched data
|
|
93
|
+
/tribunal-frontend the useAuth custom hook implementation
|
|
94
|
+
/tribunal-frontend the checkout page with Server Action form
|
|
95
|
+
/tribunal-frontend the DashboardLayout with Suspense and loading states
|
|
96
|
+
```
|