tribunal-kit 4.5.0 → 4.6.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/.shared/ui-ux-pro-max/README.md +4 -4
- package/.agent/ARCHITECTURE.md +279 -277
- package/.agent/GEMINI.md +127 -121
- package/.agent/agents/accessibility-reviewer.md +187 -187
- package/.agent/agents/ai-code-reviewer.md +199 -199
- package/.agent/agents/api-architect.md +71 -66
- package/.agent/agents/backend-specialist.md +219 -215
- package/.agent/agents/cloud-engineer.md +98 -0
- package/.agent/agents/code-archaeologist.md +168 -161
- package/.agent/agents/database-architect.md +184 -184
- package/.agent/agents/db-latency-auditor.md +213 -216
- package/.agent/agents/debugger.md +198 -191
- package/.agent/agents/dependency-reviewer.md +106 -103
- package/.agent/agents/devops-engineer.md +218 -218
- package/.agent/agents/documentation-writer.md +209 -201
- package/.agent/agents/explorer-agent.md +167 -160
- package/.agent/agents/frontend-reviewer.md +162 -160
- package/.agent/agents/frontend-specialist.md +257 -248
- package/.agent/agents/game-developer.md +48 -48
- package/.agent/agents/logic-reviewer.md +118 -116
- package/.agent/agents/mobile-developer.md +197 -200
- package/.agent/agents/mobile-reviewer.md +159 -162
- package/.agent/agents/orchestrator.md +187 -181
- package/.agent/agents/penetration-tester.md +160 -157
- package/.agent/agents/performance-optimizer.md +183 -183
- package/.agent/agents/performance-reviewer.md +178 -178
- package/.agent/agents/precedence-reviewer.md +251 -250
- package/.agent/agents/product-manager.md +149 -142
- package/.agent/agents/product-owner.md +81 -80
- package/.agent/agents/project-planner.md +152 -142
- package/.agent/agents/qa-automation-engineer.md +216 -225
- package/.agent/agents/resilience-reviewer.md +88 -88
- package/.agent/agents/schema-reviewer.md +67 -67
- package/.agent/agents/security-auditor.md +180 -174
- package/.agent/agents/seo-specialist.md +188 -193
- package/.agent/agents/sql-reviewer.md +159 -161
- package/.agent/agents/supervisor-agent.md +173 -184
- package/.agent/agents/swarm-worker-contracts.md +170 -166
- package/.agent/agents/swarm-worker-registry.md +92 -92
- package/.agent/agents/system-architect.md +85 -0
- package/.agent/agents/test-coverage-reviewer.md +158 -160
- package/.agent/agents/test-engineer.md +118 -118
- package/.agent/agents/throughput-optimizer.md +291 -299
- package/.agent/agents/type-safety-reviewer.md +182 -175
- package/.agent/agents/ui-ux-auditor.md +300 -292
- package/.agent/agents/vitals-reviewer.md +223 -223
- package/.agent/mcp_config.json +37 -40
- package/.agent/patterns/generator.md +11 -9
- package/.agent/patterns/inversion.md +14 -12
- package/.agent/patterns/pipeline.md +11 -9
- package/.agent/patterns/reviewer.md +15 -13
- package/.agent/patterns/tool-wrapper.md +11 -9
- package/.agent/routing_index.json +654 -0
- package/.agent/rules/GEMINI.md +358 -352
- package/.agent/scripts/compile_router.py +112 -0
- package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
- package/.agent/scripts/strengthen_skills.js +1 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
- package/.agent/skills/agent-organizer/SKILL.md +156 -150
- package/.agent/skills/agentic-patterns/SKILL.md +313 -315
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
- package/.agent/skills/api-patterns/SKILL.md +253 -247
- package/.agent/skills/api-security-auditor/SKILL.md +195 -193
- package/.agent/skills/app-builder/SKILL.md +573 -572
- package/.agent/skills/app-builder/templates/SKILL.md +108 -115
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
- package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
- package/.agent/skills/architecture/SKILL.md +226 -219
- package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
- package/.agent/skills/backend-security-expert/SKILL.md +16 -2
- package/.agent/skills/bash-linux/SKILL.md +179 -179
- package/.agent/skills/behavioral-modes/SKILL.md +239 -223
- package/.agent/skills/brainstorming/SKILL.md +498 -486
- package/.agent/skills/browser-native-ai/SKILL.md +57 -4
- package/.agent/skills/building-native-ui/SKILL.md +202 -202
- package/.agent/skills/cicd-pro/SKILL.md +442 -0
- package/.agent/skills/clean-code/SKILL.md +400 -381
- package/.agent/skills/cloud-architect/SKILL.md +439 -0
- package/.agent/skills/code-review-checklist/SKILL.md +203 -194
- package/.agent/skills/config-validator/SKILL.md +165 -165
- package/.agent/skills/containerization-pro/SKILL.md +452 -0
- package/.agent/skills/csharp-developer/SKILL.md +518 -518
- package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
- package/.agent/skills/database-design/SKILL.md +247 -240
- package/.agent/skills/deployment-procedures/SKILL.md +172 -169
- package/.agent/skills/devops-engineer/SKILL.md +345 -345
- package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
- package/.agent/skills/doc.md +209 -177
- package/.agent/skills/documentation-templates/SKILL.md +291 -279
- package/.agent/skills/edge-computing/SKILL.md +183 -181
- package/.agent/skills/error-resilience/SKILL.md +411 -428
- package/.agent/skills/extract-design-system/SKILL.md +160 -158
- package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
- package/.agent/skills/frontend-design/SKILL.md +208 -201
- package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
- package/.agent/skills/game-design-expert/SKILL.md +132 -129
- package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
- package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
- package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
- package/.agent/skills/git-pro/SKILL.md +435 -0
- package/.agent/skills/github-operations/SKILL.md +335 -329
- package/.agent/skills/gsap-core/SKILL.md +319 -308
- package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
- package/.agent/skills/gsap-performance/SKILL.md +139 -133
- package/.agent/skills/gsap-plugins/SKILL.md +486 -480
- package/.agent/skills/gsap-react/SKILL.md +202 -189
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
- package/.agent/skills/gsap-timeline/SKILL.md +165 -161
- package/.agent/skills/gsap-utils/SKILL.md +344 -338
- package/.agent/skills/harness-protocol/SKILL.md +48 -0
- package/.agent/skills/i18n-localization/SKILL.md +174 -163
- package/.agent/skills/intelligent-routing/SKILL.md +202 -246
- package/.agent/skills/knowledge-graph/SKILL.md +60 -52
- package/.agent/skills/lint-and-validate/SKILL.md +261 -261
- package/.agent/skills/llm-engineering/SKILL.md +400 -394
- package/.agent/skills/local-first/SKILL.md +178 -178
- package/.agent/skills/mcp-builder/SKILL.md +143 -142
- package/.agent/skills/mobile-design/SKILL.md +272 -263
- package/.agent/skills/monorepo-management/SKILL.md +335 -334
- package/.agent/skills/motion-engineering/SKILL.md +266 -234
- package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
- package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
- package/.agent/skills/observability/SKILL.md +343 -343
- package/.agent/skills/parallel-agents/SKILL.md +143 -146
- package/.agent/skills/performance-profiling/SKILL.md +259 -267
- package/.agent/skills/plan-writing/SKILL.md +150 -142
- package/.agent/skills/platform-engineer/SKILL.md +148 -147
- package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
- package/.agent/skills/powershell-windows/SKILL.md +162 -162
- package/.agent/skills/project-idioms/SKILL.md +137 -137
- package/.agent/skills/python-patterns/SKILL.md +260 -259
- package/.agent/skills/python-pro/SKILL.md +324 -323
- package/.agent/skills/react-specialist/SKILL.md +305 -277
- package/.agent/skills/readme-builder/SKILL.md +310 -300
- package/.agent/skills/realtime-patterns/SKILL.md +323 -319
- package/.agent/skills/red-team-tactics/SKILL.md +231 -218
- package/.agent/skills/rust-pro/SKILL.md +671 -673
- package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
- package/.agent/skills/server-management/SKILL.md +218 -214
- package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
- package/.agent/skills/skill-creator/SKILL.md +87 -86
- package/.agent/skills/sql-pro/SKILL.md +629 -629
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
- package/.agent/skills/swiftui-expert/SKILL.md +204 -201
- package/.agent/skills/system-design-pro/SKILL.md +345 -0
- package/.agent/skills/systematic-debugging/SKILL.md +153 -142
- package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
- package/.agent/skills/tdd-workflow/SKILL.md +169 -161
- package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
- package/.agent/skills/testing-patterns/SKILL.md +566 -579
- package/.agent/skills/trend-researcher/SKILL.md +243 -237
- package/.agent/skills/typescript-advanced/SKILL.md +336 -335
- package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
- package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
- package/.agent/skills/vue-expert/SKILL.md +294 -275
- package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
- package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
- package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
- package/.agent/skills/webapp-testing/SKILL.md +167 -169
- package/.agent/skills/webgpu-performance/SKILL.md +56 -2
- package/.agent/skills/whimsy-injector/SKILL.md +346 -325
- package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
- package/.agent/workflows/acf.md +141 -0
- package/.agent/workflows/api-tester.md +176 -151
- package/.agent/workflows/audit.md +150 -127
- package/.agent/workflows/brainstorm.md +134 -110
- package/.agent/workflows/changelog.md +140 -112
- package/.agent/workflows/create.md +168 -124
- package/.agent/workflows/debug.md +190 -165
- package/.agent/workflows/deploy.md +201 -180
- package/.agent/workflows/enhance.md +154 -128
- package/.agent/workflows/fix.md +136 -114
- package/.agent/workflows/generate.md +198 -183
- package/.agent/workflows/marathon.md +37 -11
- package/.agent/workflows/migrate.md +184 -160
- package/.agent/workflows/orchestrate.md +192 -168
- package/.agent/workflows/performance-benchmarker.md +135 -114
- package/.agent/workflows/plan.md +196 -173
- package/.agent/workflows/preview.md +103 -80
- package/.agent/workflows/refactor.md +192 -161
- package/.agent/workflows/review-ai.md +125 -101
- package/.agent/workflows/review.md +141 -116
- package/.agent/workflows/session.md +122 -94
- package/.agent/workflows/status.md +101 -79
- package/.agent/workflows/strengthen-skills.md +164 -138
- package/.agent/workflows/super-prompt.md +24 -0
- package/.agent/workflows/swarm.md +193 -179
- package/.agent/workflows/test.md +211 -189
- package/.agent/workflows/tribunal-backend.md +136 -105
- package/.agent/workflows/tribunal-database.md +122 -95
- package/.agent/workflows/tribunal-frontend.md +221 -96
- package/.agent/workflows/tribunal-full.md +129 -100
- package/.agent/workflows/tribunal-mobile.md +122 -95
- package/.agent/workflows/tribunal-performance.md +136 -110
- package/.agent/workflows/tribunal-speed.md +209 -183
- package/.agent/workflows/ui-ux-pro-max.md +145 -122
- package/README.md +107 -55
- package/bin/mcp-server.js +159 -0
- package/bin/tribunal-kit.js +105 -29
- package/bin/wrapper.js +16 -7
- package/mcp_config.json +9 -0
- package/package.json +94 -86
- package/scripts/changelog.js +4 -3
- package/scripts/validate-payload.js +6 -1
- package/scripts/postinstall.js +0 -127
package/.agent/workflows/test.md
CHANGED
|
@@ -1,189 +1,211 @@
|
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
await
|
|
130
|
-
// THEN:
|
|
131
|
-
await
|
|
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
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
+
required-skills: testing-patterns, tdd-workflow
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /test — Test Generation & Execution
|
|
7
|
+
|
|
8
|
+
$ARGUMENTS
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## $CONTEXT_REQUIRED
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Read BEFORE testing:
|
|
16
|
+
□ Target files → Code to be tested
|
|
17
|
+
□ Existing tests → Understand testing patterns already used
|
|
18
|
+
□ package.json → Check test frameworks (Jest, Vitest, etc.)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## When to Use /test
|
|
24
|
+
|
|
25
|
+
| Use `/test` when... | Use something else when... |
|
|
26
|
+
| :------------------------------------------ | :------------------------------------------------- |
|
|
27
|
+
| New code was just generated and needs tests | Tests are failing → `/debug` |
|
|
28
|
+
| After `/debug` to prevent regression | Need a full coverage audit → `/audit` |
|
|
29
|
+
| Test coverage is below threshold | E2E for the whole app → `/performance-benchmarker` |
|
|
30
|
+
| A bug was fixed and needs a regression test | |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Testing Trophy Strategy (2026 Standard)
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
/\
|
|
38
|
+
/E2E\ ← Small (Playwright): happy paths, auth, critical checkout
|
|
39
|
+
/──────\
|
|
40
|
+
/Integr.\ ← Medium (RTL + MSW): component + network behavior
|
|
41
|
+
/──────────\
|
|
42
|
+
/ Unit \ ← Foundation (Vitest): pure logic + transformations
|
|
43
|
+
/──────────────\
|
|
44
|
+
/ Static Types \ ← Free: TypeScript + ESLint
|
|
45
|
+
/────────────────────\
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
When asked to write tests without specifying a level, default to **integration tests** (highest ROI per test).
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Phase 1 — Coverage Gap Analysis
|
|
53
|
+
|
|
54
|
+
Before writing new tests, understand existing coverage:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm run test:coverage # Generate coverage report
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Cover these areas in priority order:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
1. Authentication flows (login, logout, session expiry)
|
|
64
|
+
2. Data mutation paths (create, update, delete)
|
|
65
|
+
3. Validation rejection (invalid input → correct error)
|
|
66
|
+
4. Error handling (API failure → correct fallback)
|
|
67
|
+
5. Authorization (wrong role → 403, unauthenticated → 401)
|
|
68
|
+
6. Boundary values (0, null, empty, max)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Phase 2 — Test Design (Behavioral, Not Structural)
|
|
74
|
+
|
|
75
|
+
Tests describe **behavior**, not implementation:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
✅ Behavioral: "returns 401 when no auth token is provided"
|
|
79
|
+
❌ Structural: "calls validateToken() once"
|
|
80
|
+
|
|
81
|
+
Format every test as:
|
|
82
|
+
GIVEN [initial state/context]
|
|
83
|
+
WHEN [action taken]
|
|
84
|
+
THEN [observable behavior verified]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Phase 3 — Minimum Required Test Coverage
|
|
90
|
+
|
|
91
|
+
The Tribunal rejects any test submission that does not cover ALL of:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
□ Happy path — does it work correctly with valid input?
|
|
95
|
+
□ Error path — does it fail correctly with invalid/missing input?
|
|
96
|
+
□ Boundary cases — what happens at 0, null, empty, max, limits?
|
|
97
|
+
□ Auth boundary — what happens without auth? With wrong role?
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Test Templates by Layer
|
|
103
|
+
|
|
104
|
+
### Unit Test (Vitest)
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
describe("[functionName]()", () => {
|
|
108
|
+
it("[happy path description]", () => {
|
|
109
|
+
expect(fn(validInput)).toBe(expectedResult);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("returns [expected] when input is [edge case]", () => {
|
|
113
|
+
expect(fn(boundaryInput)).toBe(expectedBoundaryResult);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("throws [ErrorType] when [invalid condition]", () => {
|
|
117
|
+
expect(() => fn(invalidInput)).toThrow(ExpectedError);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Integration Test (RTL + MSW)
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
test('[user observable behavior]', async () => {
|
|
126
|
+
// GIVEN: server mock defined in handlers.ts
|
|
127
|
+
// WHEN: user action
|
|
128
|
+
render(<Component />);
|
|
129
|
+
await userEvent.click(screen.getByRole('button', { name: /submit/i }));
|
|
130
|
+
// THEN: observable outcome
|
|
131
|
+
await screen.findByText(/success/i);
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### E2E Test (Playwright)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
test("[critical user path]", async ({ page }) => {
|
|
139
|
+
// GIVEN: pre-authenticated (stored session — not login from UI every test)
|
|
140
|
+
// WHEN: navigate and act
|
|
141
|
+
await page.goto("/checkout");
|
|
142
|
+
// THEN: verify final state
|
|
143
|
+
await expect(page.getByText("Order confirmed")).toBeVisible();
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Phase 4 — Test Execution
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Run tests
|
|
153
|
+
npm test # Unit + integration
|
|
154
|
+
npm run test:e2e # Playwright E2E (CI environment)
|
|
155
|
+
npm run test:coverage # With coverage report
|
|
156
|
+
|
|
157
|
+
# target coverage threshold (default 80%)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Failed tests halt the workflow. Fix the code or fix the test (not both — understand which first).
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Human Gate — Before Writing Test Files
|
|
165
|
+
|
|
166
|
+
After the test-coverage-reviewer approves:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
━━━ Human Gate ━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
170
|
+
|
|
171
|
+
Generated tests cover:
|
|
172
|
+
✅ Happy path
|
|
173
|
+
✅ Error path
|
|
174
|
+
✅ Boundary cases
|
|
175
|
+
✅ Auth boundary
|
|
176
|
+
|
|
177
|
+
Files to write:
|
|
178
|
+
[list of .test.ts files]
|
|
179
|
+
|
|
180
|
+
Write to disk? Y = write | N = discard | R = revise coverage
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
No test files are written without explicit approval.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Test Review Verdicts
|
|
188
|
+
|
|
189
|
+
The `test-coverage-reviewer` is automatically activated and checks:
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
□ Happy path covered for new function/component
|
|
193
|
+
□ Error/rejection paths covered
|
|
194
|
+
□ Boundary values tested
|
|
195
|
+
□ No brittle CSS selectors — only getByRole/getByLabelText
|
|
196
|
+
□ No implementation details tested (private state, internal calls)
|
|
197
|
+
□ Async assertions use await findBy* (not getBy*)
|
|
198
|
+
□ Mock only at architectural boundaries (MSW for network — not hooks/methods)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## After /test — Next Steps
|
|
204
|
+
|
|
205
|
+
| Outcome | Next Command |
|
|
206
|
+
| :-------------------------- | :--------------------------------------------------- |
|
|
207
|
+
| Tests pass cleanly | → `/deploy` or return to `/enhance` for next feature |
|
|
208
|
+
| Tests fail with bugs | → `/debug` to trace logic errors |
|
|
209
|
+
| Need to improve performance | → `/performance-benchmarker` |
|
|
210
|
+
|
|
211
|
+
---
|
|
@@ -1,105 +1,136 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Backend-specific Tribunal. Runs Logic + Security + Dependency + Type Safety + Resilience + Schema reviewers. Use for API routes, server logic, auth code, middleware, Server Actions, and any server-side business logic.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
1
|
+
---
|
|
2
|
+
description: Backend-specific Tribunal. Runs Logic + Security + Dependency + Type Safety + Resilience + Schema reviewers. Use for API routes, server logic, auth code, middleware, Server Actions, and any server-side business logic.
|
|
3
|
+
required-skills: backend-security-expert, nodejs-best-practices, api-patterns
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /tribunal-backend — Backend Code Audit
|
|
7
|
+
|
|
8
|
+
$ARGUMENTS
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## $CONTEXT_REQUIRED
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Read BEFORE backend review:
|
|
16
|
+
□ Target backend files → The code being audited
|
|
17
|
+
□ package.json → Verify dependency versions (express, next, etc.)
|
|
18
|
+
□ prisma/schema.prisma → If ORM is used
|
|
19
|
+
□ .env.example → Expected environment variables
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## When to Use /tribunal-backend
|
|
25
|
+
|
|
26
|
+
| Use `/tribunal-backend` when... | Use something else when... |
|
|
27
|
+
| :--------------------------------- | :------------------------------------------- |
|
|
28
|
+
| Reviewing API routes or middleware | Frontend components → `/tribunal-frontend` |
|
|
29
|
+
| Auth, JWT, session code | Database queries only → `/tribunal-database` |
|
|
30
|
+
| Server Actions | Mobile code → `/tribunal-mobile` |
|
|
31
|
+
| Input validation and Zod schemas | Maximum coverage → `/tribunal-full` |
|
|
32
|
+
| Third-party API integrations | |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 6 Active Reviewers (All Run Simultaneously)
|
|
37
|
+
|
|
38
|
+
### precedence-reviewer → Checks local repo Case Law for past rejections
|
|
39
|
+
|
|
40
|
+
logic-reviewer
|
|
41
|
+
|
|
42
|
+
- Hallucinated Express/Hono/Fastify methods
|
|
43
|
+
- Missing awaits on async operations
|
|
44
|
+
- Unreachable code after return statements
|
|
45
|
+
- Race conditions in sequential state mutations
|
|
46
|
+
|
|
47
|
+
### security-auditor
|
|
48
|
+
|
|
49
|
+
- SQL injection via string interpolation
|
|
50
|
+
- JWT verify missing `{ algorithms: ['HS256'] }` option
|
|
51
|
+
- Auth check after business logic (wrong order)
|
|
52
|
+
- IDOR — resource ownership not verified against session
|
|
53
|
+
- SSRF — user-controlled URLs passed to fetch()
|
|
54
|
+
- Hardcoded secrets / missing env var existence checks
|
|
55
|
+
- CORS wildcard (`*`) in production
|
|
56
|
+
|
|
57
|
+
### dependency-reviewer
|
|
58
|
+
|
|
59
|
+
- Packages not in package.json
|
|
60
|
+
- npm package names matching typosquatting patterns
|
|
61
|
+
- Major version incompatibilities
|
|
62
|
+
- Known CVEs in used packages
|
|
63
|
+
|
|
64
|
+
### type-safety-reviewer
|
|
65
|
+
|
|
66
|
+
- `any` types in request handlers
|
|
67
|
+
- Missing Zod validation before DB access
|
|
68
|
+
- Unsafe type assertions (`as User` without runtime check)
|
|
69
|
+
- Return type mismatches
|
|
70
|
+
|
|
71
|
+
### schema-reviewer
|
|
72
|
+
|
|
73
|
+
- Missing input validation on req.body/req.query
|
|
74
|
+
- Validation applied client-side only
|
|
75
|
+
- Loosely defined Zod/Pydantic schemas
|
|
76
|
+
|
|
77
|
+
### resilience-reviewer
|
|
78
|
+
|
|
79
|
+
- Swallowed errors (empty catch blocks)
|
|
80
|
+
- Missing timeouts on network fetches
|
|
81
|
+
- Unhandled Promise rejections
|
|
82
|
+
- Missing retries for temporal network failures
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Verdict System
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
If ANY reviewer → ❌ REJECTED: code must be fixed before Human Gate
|
|
90
|
+
If any reviewer → ⚠️ WARNING: proceed with flagged items noted
|
|
91
|
+
If all reviewers → ✅ APPROVED: present to Human Gate
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Backend-Specific Hallucination Traps (Common LLM Mistakes)
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
// ❌ express.Router() methods that don't exist
|
|
100
|
+
router.middleware(() => {}); // not a method — use app.use()
|
|
101
|
+
router.beforeAll(() => {}); // not a method — use router.use()
|
|
102
|
+
|
|
103
|
+
// ❌ Hono methods that don't exist
|
|
104
|
+
app.middleware("/path", handler); // not valid — use app.use('/path', handler)
|
|
105
|
+
|
|
106
|
+
// ❌ next-auth v4 patterns in v5 projects
|
|
107
|
+
import { getServerSession } from "next-auth"; // v4 — use auth() from './auth' in v5
|
|
108
|
+
|
|
109
|
+
// ❌ jwt.verify async form (it's synchronous)
|
|
110
|
+
const payload = await jwt.verify(token, secret); // jwt.verify is NOT async
|
|
111
|
+
const payload = jwt.verify(token, secret); // Correct
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Usage Examples
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
/tribunal-backend the POST /api/auth/login route with JWT issuance
|
|
120
|
+
/tribunal-backend the createOrder Server Action with Stripe integration
|
|
121
|
+
/tribunal-backend the auth middleware that verifies session on protected routes
|
|
122
|
+
/tribunal-backend the webhook handler for Stripe payment events
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## After /tribunal-backend — Next Steps
|
|
128
|
+
|
|
129
|
+
| Outcome | Next Command |
|
|
130
|
+
| :--------------------------- | :------------------------------------------------ |
|
|
131
|
+
| All checks pass | → `/deploy` or merge code |
|
|
132
|
+
| Reviewers reject with fixes | → Apply fixes, then run `/tribunal-backend` again |
|
|
133
|
+
| Performance concerns raised | → `/tribunal-performance` for deep profiling |
|
|
134
|
+
| Need test coverage for logic | → `/test` to generate backend tests |
|
|
135
|
+
|
|
136
|
+
---
|