tribunal-kit 2.4.6 → 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 +155 -66
- package/.agent/skills/api-patterns/SKILL.md +289 -257
- package/.agent/skills/api-security-auditor/SKILL.md +172 -70
- 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 -100
- package/.agent/skills/architecture/SKILL.md +331 -200
- package/.agent/skills/authentication-best-practices/SKILL.md +168 -67
- 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 +169 -70
- 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 +129 -69
- 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 +157 -76
- 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/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 +201 -68
- package/.agent/skills/sql-pro/SKILL.md +633 -104
- package/.agent/skills/swiftui-expert/SKILL.md +171 -70
- 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 +188 -71
- 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/framer-motion-animations/SKILL.md +0 -74
- 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
package/.agent/workflows/test.md
CHANGED
|
@@ -1,166 +1,211 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Test generation and test running command. Creates and executes tests for code.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /test — Test
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
Before writing
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
1
|
+
---
|
|
2
|
+
description: Test generation and test running command. Creates and executes tests for code using the Testing Trophy strategy (unit → integration → E2E). Tests are behavioral (GIVEN/WHEN/THEN), not structural. Tests cannot be approved without covering happy path, error path, and boundary cases.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /test — Test Generation & Execution
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use /test
|
|
12
|
+
|
|
13
|
+
| Use `/test` when... | Use something else when... |
|
|
14
|
+
|:---|:---|
|
|
15
|
+
| New code was just generated and needs tests | Tests are failing → `/debug` |
|
|
16
|
+
| After `/debug` to prevent regression | Need a full coverage audit → `/audit` |
|
|
17
|
+
| Test coverage is below threshold | E2E for the whole app → `/performance-benchmarker` |
|
|
18
|
+
| A bug was fixed and needs a regression test | |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Testing Trophy Strategy (2026 Standard)
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/\
|
|
26
|
+
/E2E\ ← Small (Playwright): happy paths, auth, critical checkout
|
|
27
|
+
/──────\
|
|
28
|
+
/Integr.\ ← Medium (RTL + MSW): component + network behavior
|
|
29
|
+
/──────────\
|
|
30
|
+
/ Unit \ ← Foundation (Vitest): pure logic + transformations
|
|
31
|
+
/──────────────\
|
|
32
|
+
/ Static Types \ ← Free: TypeScript + ESLint
|
|
33
|
+
/────────────────────\
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
When asked to write tests without specifying a level, default to **integration tests** (highest ROI per test).
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Phase 1 — Coverage Gap Analysis
|
|
41
|
+
|
|
42
|
+
Before writing new tests, understand existing coverage:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm run test:coverage # Generate coverage report
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Cover these areas in priority order:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
1. Authentication flows (login, logout, session expiry)
|
|
52
|
+
2. Data mutation paths (create, update, delete)
|
|
53
|
+
3. Validation rejection (invalid input → correct error)
|
|
54
|
+
4. Error handling (API failure → correct fallback)
|
|
55
|
+
5. Authorization (wrong role → 403, unauthenticated → 401)
|
|
56
|
+
6. Boundary values (0, null, empty, max)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Phase 2 — Test Design (Behavioral, Not Structural)
|
|
62
|
+
|
|
63
|
+
Tests describe **behavior**, not implementation:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
✅ Behavioral: "returns 401 when no auth token is provided"
|
|
67
|
+
❌ Structural: "calls validateToken() once"
|
|
68
|
+
|
|
69
|
+
Format every test as:
|
|
70
|
+
GIVEN [initial state/context]
|
|
71
|
+
WHEN [action taken]
|
|
72
|
+
THEN [observable behavior verified]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Phase 3 — Minimum Required Test Coverage
|
|
78
|
+
|
|
79
|
+
The Tribunal rejects any test submission that does not cover ALL of:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
□ Happy path — does it work correctly with valid input?
|
|
83
|
+
□ Error path — does it fail correctly with invalid/missing input?
|
|
84
|
+
□ Boundary cases — what happens at 0, null, empty, max, limits?
|
|
85
|
+
□ Auth boundary — what happens without auth? With wrong role?
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Test Templates by Layer
|
|
91
|
+
|
|
92
|
+
### Unit Test (Vitest)
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
describe('[functionName]()', () => {
|
|
96
|
+
it('[happy path description]', () => {
|
|
97
|
+
expect(fn(validInput)).toBe(expectedResult);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('returns [expected] when input is [edge case]', () => {
|
|
101
|
+
expect(fn(boundaryInput)).toBe(expectedBoundaryResult);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it('throws [ErrorType] when [invalid condition]', () => {
|
|
105
|
+
expect(() => fn(invalidInput)).toThrow(ExpectedError);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Integration Test (RTL + MSW)
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
test('[user observable behavior]', async () => {
|
|
114
|
+
// GIVEN: server mock defined in handlers.ts
|
|
115
|
+
// WHEN: user action
|
|
116
|
+
render(<Component />);
|
|
117
|
+
await userEvent.click(screen.getByRole('button', { name: /submit/i }));
|
|
118
|
+
// THEN: observable outcome
|
|
119
|
+
await screen.findByText(/success/i);
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### E2E Test (Playwright)
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
test('[critical user path]', async ({ page }) => {
|
|
127
|
+
// GIVEN: pre-authenticated (stored session — not login from UI every test)
|
|
128
|
+
// WHEN: navigate and act
|
|
129
|
+
await page.goto('/checkout');
|
|
130
|
+
// THEN: verify final state
|
|
131
|
+
await expect(page.getByText('Order confirmed')).toBeVisible();
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Phase 4 — Test Execution
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Run tests
|
|
141
|
+
npm test # Unit + integration
|
|
142
|
+
npm run test:e2e # Playwright E2E (CI environment)
|
|
143
|
+
npm run test:coverage # With coverage report
|
|
144
|
+
|
|
145
|
+
# target coverage threshold (default 80%)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Failed tests halt the workflow. Fix the code or fix the test (not both — understand which first).
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Human Gate — Before Writing Test Files
|
|
153
|
+
|
|
154
|
+
After the test-coverage-reviewer approves:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
━━━ Human Gate ━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
158
|
+
|
|
159
|
+
Generated tests cover:
|
|
160
|
+
✅ Happy path
|
|
161
|
+
✅ Error path
|
|
162
|
+
✅ Boundary cases
|
|
163
|
+
✅ Auth boundary
|
|
164
|
+
|
|
165
|
+
Files to write:
|
|
166
|
+
[list of .test.ts files]
|
|
167
|
+
|
|
168
|
+
Write to disk? Y = write | N = discard | R = revise coverage
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
No test files are written without explicit approval.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Test Review Verdicts
|
|
176
|
+
|
|
177
|
+
The `test-coverage-reviewer` is automatically activated and checks:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
□ Happy path covered for new function/component
|
|
181
|
+
□ Error/rejection paths covered
|
|
182
|
+
□ Boundary values tested
|
|
183
|
+
□ No brittle CSS selectors — only getByRole/getByLabelText
|
|
184
|
+
□ No implementation details tested (private state, internal calls)
|
|
185
|
+
□ Async assertions use await findBy* (not getBy*)
|
|
186
|
+
□ Mock only at architectural boundaries (MSW for network — not hooks/methods)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Cross-Workflow Navigation
|
|
192
|
+
|
|
193
|
+
| After /test shows... | Go to |
|
|
194
|
+
|:---|:---|
|
|
195
|
+
| Tests failing — suspected logic bug | `/debug` |
|
|
196
|
+
| Tests failing — suspected security issue | `/tribunal-backend` |
|
|
197
|
+
| Coverage still below threshold | `/audit` for full coverage report |
|
|
198
|
+
| E2E tests failing | Check `/audit` script output |
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Usage Examples
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
/test the calculateDiscount function in src/lib/pricing.ts
|
|
206
|
+
/test the POST /api/auth/login route including rate limit behavior
|
|
207
|
+
/test the UserProfile component including loading and error states
|
|
208
|
+
/test the checkout flow E2E with Playwright
|
|
209
|
+
/test add regression test for bug: login fails with uppercase email
|
|
210
|
+
/test the database transaction in createOrder for rollback behavior
|
|
211
|
+
```
|
|
@@ -1,111 +1,113 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Backend-specific Tribunal. Runs Logic + Security + Dependency +
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /tribunal-backend —
|
|
6
|
-
|
|
7
|
-
$ARGUMENTS
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
19
|
-
| API
|
|
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
|
-
## Hallucination
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
/tribunal-backend
|
|
110
|
-
/tribunal-backend the
|
|
111
|
-
|
|
1
|
+
---
|
|
2
|
+
description: Backend-specific Tribunal. Runs Logic + Security + Dependency + Type Safety reviewers. Use for API routes, server logic, auth code, middleware, Server Actions, and any server-side business logic.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /tribunal-backend — Backend Code Audit
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use /tribunal-backend
|
|
12
|
+
|
|
13
|
+
| Use `/tribunal-backend` when... | Use something else when... |
|
|
14
|
+
|:---|:---|
|
|
15
|
+
| Reviewing API routes or middleware | Frontend components → `/tribunal-frontend` |
|
|
16
|
+
| Auth, JWT, session code | Database queries only → `/tribunal-database` |
|
|
17
|
+
| Server Actions | Mobile code → `/tribunal-mobile` |
|
|
18
|
+
| Input validation and Zod schemas | Maximum coverage → `/tribunal-full` |
|
|
19
|
+
| Third-party API integrations | |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 4 Active Reviewers (All Run Simultaneously)
|
|
24
|
+
|
|
25
|
+
### logic-reviewer
|
|
26
|
+
- Hallucinated Express/Hono/Fastify methods
|
|
27
|
+
- Missing awaits on async operations
|
|
28
|
+
- Unreachable code after return statements
|
|
29
|
+
- Race conditions in sequential state mutations
|
|
30
|
+
|
|
31
|
+
### security-auditor
|
|
32
|
+
- SQL injection via string interpolation
|
|
33
|
+
- JWT verify missing `{ algorithms: ['HS256'] }` option
|
|
34
|
+
- Auth check after business logic (wrong order)
|
|
35
|
+
- IDOR — resource ownership not verified against session
|
|
36
|
+
- SSRF — user-controlled URLs passed to fetch()
|
|
37
|
+
- Hardcoded secrets / missing env var existence checks
|
|
38
|
+
- CORS wildcard (`*`) in production
|
|
39
|
+
|
|
40
|
+
### dependency-reviewer
|
|
41
|
+
- Packages not in package.json
|
|
42
|
+
- npm package names matching typosquatting patterns
|
|
43
|
+
- Major version incompatibilities
|
|
44
|
+
- Known CVEs in used packages
|
|
45
|
+
|
|
46
|
+
### type-safety-reviewer
|
|
47
|
+
- `any` types in request handlers
|
|
48
|
+
- Missing Zod validation before DB access
|
|
49
|
+
- Unsafe type assertions (`as User` without runtime check)
|
|
50
|
+
- Return type mismatches
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Verdict System
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
If ANY reviewer → ❌ REJECTED: code must be fixed before Human Gate
|
|
58
|
+
If any reviewer → ⚠️ WARNING: proceed with flagged items noted
|
|
59
|
+
If all reviewers → ✅ APPROVED: present to Human Gate
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Output Format
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
━━━ Tribunal Backend ━━━━━━━━━━━━━━━━━━━━━
|
|
68
|
+
|
|
69
|
+
logic-reviewer: ✅ APPROVED
|
|
70
|
+
security-auditor: ❌ REJECTED
|
|
71
|
+
dependency-reviewer: ✅ APPROVED
|
|
72
|
+
type-safety-reviewer: ⚠️ WARNING
|
|
73
|
+
|
|
74
|
+
━━━ VERDICT: ❌ REJECTED ━━━━━━━━━━━━━━━━━
|
|
75
|
+
|
|
76
|
+
Blockers:
|
|
77
|
+
- security-auditor: [CRITICAL] SQL string interpolation on line 23: query = `SELECT * WHERE email = '${email}'`
|
|
78
|
+
Fix: Use parameterized query: prisma.user.findUnique({ where: { email } })
|
|
79
|
+
|
|
80
|
+
Warnings:
|
|
81
|
+
- type-safety-reviewer: [MEDIUM] 'req.body' cast as 'any' on line 47 — use Zod parse instead
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Backend-Specific Hallucination Traps (Common LLM Mistakes)
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// ❌ express.Router() methods that don't exist
|
|
90
|
+
router.middleware(() => {}); // not a method — use app.use()
|
|
91
|
+
router.beforeAll(() => {}); // not a method — use router.use()
|
|
92
|
+
|
|
93
|
+
// ❌ Hono methods that don't exist
|
|
94
|
+
app.middleware('/path', handler); // not valid — use app.use('/path', handler)
|
|
95
|
+
|
|
96
|
+
// ❌ next-auth v4 patterns in v5 projects
|
|
97
|
+
import { getServerSession } from 'next-auth'; // v4 — use auth() from './auth' in v5
|
|
98
|
+
|
|
99
|
+
// ❌ jwt.verify async form (it's synchronous)
|
|
100
|
+
const payload = await jwt.verify(token, secret); // jwt.verify is NOT async
|
|
101
|
+
const payload = jwt.verify(token, secret); // Correct
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Usage Examples
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
/tribunal-backend the POST /api/auth/login route with JWT issuance
|
|
110
|
+
/tribunal-backend the createOrder Server Action with Stripe integration
|
|
111
|
+
/tribunal-backend the auth middleware that verifies session on protected routes
|
|
112
|
+
/tribunal-backend the webhook handler for Stripe payment events
|
|
113
|
+
```
|