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.
- 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/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/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/strip_tribunal.py +41 -0
- package/.agent/skills/agent-organizer/SKILL.md +92 -126
- package/.agent/skills/agentic-patterns/SKILL.md +0 -70
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +126 -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 +326 -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 +87 -121
- package/.agent/skills/architecture/SKILL.md +82 -252
- package/.agent/skills/authentication-best-practices/SKILL.md +139 -173
- package/.agent/skills/bash-linux/SKILL.md +120 -154
- package/.agent/skills/behavioral-modes/SKILL.md +8 -69
- package/.agent/skills/brainstorming/SKILL.md +428 -104
- package/.agent/skills/building-native-ui/SKILL.md +143 -174
- package/.agent/skills/clean-code/SKILL.md +323 -360
- package/.agent/skills/code-review-checklist/SKILL.md +0 -62
- package/.agent/skills/config-validator/SKILL.md +107 -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 +111 -145
- package/.agent/skills/devops-engineer/SKILL.md +295 -332
- package/.agent/skills/devops-incident-responder/SKILL.md +79 -113
- package/.agent/skills/doc.md +5 -5
- package/.agent/skills/documentation-templates/SKILL.md +19 -63
- package/.agent/skills/edge-computing/SKILL.md +123 -157
- package/.agent/skills/extract-design-system/SKILL.md +100 -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 +71 -105
- package/.agent/skills/game-engineering-expert/SKILL.md +88 -122
- package/.agent/skills/geo-fundamentals/SKILL.md +89 -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 +104 -138
- package/.agent/skills/intelligent-routing/SKILL.md +159 -127
- package/.agent/skills/lint-and-validate/SKILL.md +8 -52
- package/.agent/skills/llm-engineering/SKILL.md +344 -357
- package/.agent/skills/local-first/SKILL.md +120 -154
- package/.agent/skills/mcp-builder/SKILL.md +84 -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 +88 -122
- package/.agent/skills/performance-profiling/SKILL.md +217 -254
- package/.agent/skills/plan-writing/SKILL.md +84 -118
- package/.agent/skills/platform-engineer/SKILL.md +89 -123
- package/.agent/skills/playwright-best-practices/SKILL.md +128 -162
- package/.agent/skills/powershell-windows/SKILL.md +112 -146
- package/.agent/skills/python-patterns/SKILL.md +7 -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 +15 -85
- package/.agent/skills/realtime-patterns/SKILL.md +269 -304
- package/.agent/skills/red-team-tactics/SKILL.md +10 -51
- package/.agent/skills/rust-pro/SKILL.md +623 -701
- package/.agent/skills/seo-fundamentals/SKILL.md +120 -154
- package/.agent/skills/server-management/SKILL.md +156 -190
- package/.agent/skills/shadcn-ui-expert/SKILL.md +172 -206
- package/.agent/skills/skill-creator/SKILL.md +18 -58
- package/.agent/skills/sql-pro/SKILL.md +579 -633
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +28 -68
- package/.agent/skills/swiftui-expert/SKILL.md +142 -176
- package/.agent/skills/systematic-debugging/SKILL.md +84 -118
- package/.agent/skills/tailwind-patterns/SKILL.md +516 -576
- package/.agent/skills/tdd-workflow/SKILL.md +103 -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 +0 -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 +159 -193
- package/.agent/skills/web-design-guidelines/SKILL.md +17 -61
- package/.agent/skills/webapp-testing/SKILL.md +111 -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 +12 -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 +93 -113
- package/.agent/workflows/tribunal-database.md +94 -115
- package/.agent/workflows/tribunal-frontend.md +95 -118
- package/.agent/workflows/tribunal-full.md +92 -133
- package/.agent/workflows/tribunal-mobile.md +94 -119
- package/.agent/workflows/tribunal-performance.md +109 -133
- package/.agent/workflows/ui-ux-pro-max.md +122 -143
- package/package.json +1 -1
- 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,94 @@
|
|
|
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
|
-
### logic-reviewer
|
|
26
|
-
- Prisma methods that don't exist (`findOne` was removed — use `findUnique`)
|
|
27
|
-
- Transaction that should be `$transaction` but isn't
|
|
28
|
-
- Pagination query missing total count (returns wrong metadata)
|
|
29
|
-
- `.findMany()` with no `take` limit (unbounded query)
|
|
30
|
-
|
|
31
|
-
### security-auditor
|
|
32
|
-
- SQL injection via `$queryRaw` with template literals and user input
|
|
33
|
-
- Row-level security bypass (no WHERE clause on user-scoped query)
|
|
34
|
-
- Mass assignment via `prisma.user.update({ data: req.body })` (unrestricted)
|
|
35
|
-
- Prisma `$executeRaw` with string interpolation
|
|
36
|
-
|
|
37
|
-
### sql-reviewer
|
|
38
|
-
- N+1 pattern (loop with prisma query inside)
|
|
39
|
-
- Foreign key columns without `@@index`
|
|
40
|
-
- No index on ORDER BY column for large tables
|
|
41
|
-
- Unscoped UPDATE/DELETE without WHERE clause
|
|
42
|
-
- Missing rollback in raw SQL catch block
|
|
43
|
-
- Expand vs contract migration not followed
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Verdict System
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
If ANY reviewer → ❌ REJECTED: fix before Human Gate
|
|
51
|
-
If any reviewer → ⚠️ WARNING: proceed with flagged items
|
|
52
|
-
If all reviewers → ✅ APPROVED: Human Gate
|
|
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
|
-
// ✅ Always add nullable first, backfill, then add constraint
|
|
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
|
+
### logic-reviewer
|
|
26
|
+
- Prisma methods that don't exist (`findOne` was removed — use `findUnique`)
|
|
27
|
+
- Transaction that should be `$transaction` but isn't
|
|
28
|
+
- Pagination query missing total count (returns wrong metadata)
|
|
29
|
+
- `.findMany()` with no `take` limit (unbounded query)
|
|
30
|
+
|
|
31
|
+
### security-auditor
|
|
32
|
+
- SQL injection via `$queryRaw` with template literals and user input
|
|
33
|
+
- Row-level security bypass (no WHERE clause on user-scoped query)
|
|
34
|
+
- Mass assignment via `prisma.user.update({ data: req.body })` (unrestricted)
|
|
35
|
+
- Prisma `$executeRaw` with string interpolation
|
|
36
|
+
|
|
37
|
+
### sql-reviewer
|
|
38
|
+
- N+1 pattern (loop with prisma query inside)
|
|
39
|
+
- Foreign key columns without `@@index`
|
|
40
|
+
- No index on ORDER BY column for large tables
|
|
41
|
+
- Unscoped UPDATE/DELETE without WHERE clause
|
|
42
|
+
- Missing rollback in raw SQL catch block
|
|
43
|
+
- Expand vs contract migration not followed
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Verdict System
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
If ANY reviewer → ❌ REJECTED: fix before Human Gate
|
|
51
|
+
If any reviewer → ⚠️ WARNING: proceed with flagged items
|
|
52
|
+
If all reviewers → ✅ APPROVED: Human Gate
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Database-Specific Hallucination Traps (Common LLM Mistakes)
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// ❌ Prisma: findOne was REMOVED — doesn't exist in any version
|
|
63
|
+
const user = await prisma.user.findOne({ where: { id } });
|
|
64
|
+
// ✅ Correct
|
|
65
|
+
const user = await prisma.user.findUnique({ where: { id } });
|
|
66
|
+
|
|
67
|
+
// ❌ Prisma: upsertMany doesn't exist
|
|
68
|
+
await prisma.product.upsertMany({ data: products }); // Doesn't exist
|
|
69
|
+
// ✅ Use createMany or transaction with multiple upserts
|
|
70
|
+
await prisma.$transaction(products.map(p => prisma.product.upsert({ ... })));
|
|
71
|
+
|
|
72
|
+
// ❌ Migration fails silently: adding NOT NULL column to populated table
|
|
73
|
+
ALTER TABLE users ADD COLUMN phone VARCHAR(20) NOT NULL; // Error on existing rows
|
|
74
|
+
// ✅ Always add nullable first, backfill, then add constraint
|
|
75
|
+
|
|
76
|
+
// ❌ Missing rollback in raw SQL
|
|
77
|
+
try {
|
|
78
|
+
await db.query('BEGIN');
|
|
79
|
+
await db.query('UPDATE ...');
|
|
80
|
+
} catch (e) {
|
|
81
|
+
// Missing: await db.query('ROLLBACK');
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Usage Examples
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
/tribunal-database the createOrder function with Stripe idempotency
|
|
91
|
+
/tribunal-database the user registration with email uniqueness check
|
|
92
|
+
/tribunal-database the migration file adding phoneNumber to users
|
|
93
|
+
/tribunal-database the paginated product query with category filter
|
|
94
|
+
```
|
|
@@ -1,118 +1,95 @@
|
|
|
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
|
-
### 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
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Verdict System
|
|
54
|
-
|
|
55
|
-
```
|
|
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
|
|
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
|
-
const { id } = params; // WRONG — params is a Promise in Next.js 15
|
|
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
|
+
### 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
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Verdict System
|
|
54
|
+
|
|
55
|
+
```
|
|
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
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Frontend-Specific Hallucination Traps (Common LLM Mistakes)
|
|
66
|
+
|
|
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
|
|
71
|
+
|
|
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
|
|
75
|
+
|
|
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
|
+
}
|
|
80
|
+
|
|
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
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Usage Examples
|
|
89
|
+
|
|
90
|
+
```
|
|
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
|
|
95
|
+
```
|
|
@@ -1,133 +1,92 @@
|
|
|
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
|
-
|
|
|
14
|
-
|:---|:---|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
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
|
-
|
|
|
51
|
-
|:---|:---|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
+
---
|
|
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
|
+
---
|
|
76
|
+
|
|
77
|
+
## Retry Protocol
|
|
78
|
+
|
|
79
|
+
When code is rejected:
|
|
80
|
+
|
|
81
|
+
```
|
|
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
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|