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.
Files changed (142) hide show
  1. package/.agent/agents/accessibility-reviewer.md +220 -134
  2. package/.agent/agents/ai-code-reviewer.md +233 -129
  3. package/.agent/agents/backend-specialist.md +238 -178
  4. package/.agent/agents/code-archaeologist.md +181 -119
  5. package/.agent/agents/database-architect.md +207 -164
  6. package/.agent/agents/debugger.md +218 -151
  7. package/.agent/agents/dependency-reviewer.md +136 -55
  8. package/.agent/agents/devops-engineer.md +238 -175
  9. package/.agent/agents/documentation-writer.md +221 -137
  10. package/.agent/agents/explorer-agent.md +180 -142
  11. package/.agent/agents/frontend-reviewer.md +194 -80
  12. package/.agent/agents/frontend-specialist.md +237 -188
  13. package/.agent/agents/game-developer.md +52 -184
  14. package/.agent/agents/logic-reviewer.md +149 -78
  15. package/.agent/agents/mobile-developer.md +223 -152
  16. package/.agent/agents/mobile-reviewer.md +195 -79
  17. package/.agent/agents/orchestrator.md +211 -170
  18. package/.agent/agents/penetration-tester.md +174 -131
  19. package/.agent/agents/performance-optimizer.md +203 -139
  20. package/.agent/agents/performance-reviewer.md +211 -108
  21. package/.agent/agents/product-manager.md +162 -108
  22. package/.agent/agents/project-planner.md +162 -142
  23. package/.agent/agents/qa-automation-engineer.md +242 -138
  24. package/.agent/agents/security-auditor.md +194 -170
  25. package/.agent/agents/seo-specialist.md +213 -132
  26. package/.agent/agents/sql-reviewer.md +194 -73
  27. package/.agent/agents/supervisor-agent.md +203 -156
  28. package/.agent/agents/test-coverage-reviewer.md +193 -81
  29. package/.agent/agents/type-safety-reviewer.md +208 -65
  30. package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
  31. package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
  32. package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
  33. package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
  34. package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  35. package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
  36. package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
  37. package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
  38. package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  39. package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
  40. package/.agent/skills/agent-organizer/SKILL.md +126 -132
  41. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +155 -66
  42. package/.agent/skills/api-patterns/SKILL.md +289 -257
  43. package/.agent/skills/api-security-auditor/SKILL.md +172 -70
  44. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +1 -1
  45. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +1 -1
  46. package/.agent/skills/appflow-wireframe/SKILL.md +107 -100
  47. package/.agent/skills/architecture/SKILL.md +331 -200
  48. package/.agent/skills/authentication-best-practices/SKILL.md +168 -67
  49. package/.agent/skills/bash-linux/SKILL.md +154 -215
  50. package/.agent/skills/brainstorming/SKILL.md +104 -210
  51. package/.agent/skills/building-native-ui/SKILL.md +169 -70
  52. package/.agent/skills/clean-code/SKILL.md +360 -206
  53. package/.agent/skills/config-validator/SKILL.md +141 -165
  54. package/.agent/skills/csharp-developer/SKILL.md +528 -107
  55. package/.agent/skills/database-design/SKILL.md +455 -275
  56. package/.agent/skills/deployment-procedures/SKILL.md +145 -188
  57. package/.agent/skills/devops-engineer/SKILL.md +332 -134
  58. package/.agent/skills/devops-incident-responder/SKILL.md +113 -98
  59. package/.agent/skills/edge-computing/SKILL.md +157 -213
  60. package/.agent/skills/extract-design-system/SKILL.md +129 -69
  61. package/.agent/skills/framer-motion-expert/SKILL.md +939 -0
  62. package/.agent/skills/game-design-expert/SKILL.md +105 -0
  63. package/.agent/skills/game-engineering-expert/SKILL.md +122 -0
  64. package/.agent/skills/geo-fundamentals/SKILL.md +124 -215
  65. package/.agent/skills/github-operations/SKILL.md +314 -354
  66. package/.agent/skills/gsap-expert/SKILL.md +901 -0
  67. package/.agent/skills/i18n-localization/SKILL.md +138 -216
  68. package/.agent/skills/intelligent-routing/SKILL.md +127 -139
  69. package/.agent/skills/llm-engineering/SKILL.md +357 -258
  70. package/.agent/skills/local-first/SKILL.md +154 -203
  71. package/.agent/skills/mcp-builder/SKILL.md +118 -224
  72. package/.agent/skills/nextjs-react-expert/SKILL.md +783 -203
  73. package/.agent/skills/nodejs-best-practices/SKILL.md +559 -280
  74. package/.agent/skills/observability/SKILL.md +330 -285
  75. package/.agent/skills/parallel-agents/SKILL.md +122 -181
  76. package/.agent/skills/performance-profiling/SKILL.md +254 -197
  77. package/.agent/skills/plan-writing/SKILL.md +118 -188
  78. package/.agent/skills/platform-engineer/SKILL.md +123 -135
  79. package/.agent/skills/playwright-best-practices/SKILL.md +157 -76
  80. package/.agent/skills/powershell-windows/SKILL.md +146 -230
  81. package/.agent/skills/python-pro/SKILL.md +879 -114
  82. package/.agent/skills/react-specialist/SKILL.md +931 -108
  83. package/.agent/skills/realtime-patterns/SKILL.md +304 -296
  84. package/.agent/skills/rust-pro/SKILL.md +701 -240
  85. package/.agent/skills/seo-fundamentals/SKILL.md +154 -181
  86. package/.agent/skills/server-management/SKILL.md +190 -212
  87. package/.agent/skills/shadcn-ui-expert/SKILL.md +201 -68
  88. package/.agent/skills/sql-pro/SKILL.md +633 -104
  89. package/.agent/skills/swiftui-expert/SKILL.md +171 -70
  90. package/.agent/skills/systematic-debugging/SKILL.md +118 -186
  91. package/.agent/skills/tailwind-patterns/SKILL.md +576 -232
  92. package/.agent/skills/tdd-workflow/SKILL.md +137 -209
  93. package/.agent/skills/testing-patterns/SKILL.md +573 -205
  94. package/.agent/skills/vue-expert/SKILL.md +964 -119
  95. package/.agent/skills/vulnerability-scanner/SKILL.md +269 -316
  96. package/.agent/skills/web-accessibility-auditor/SKILL.md +188 -71
  97. package/.agent/skills/webapp-testing/SKILL.md +145 -236
  98. package/.agent/workflows/api-tester.md +151 -279
  99. package/.agent/workflows/audit.md +138 -168
  100. package/.agent/workflows/brainstorm.md +110 -146
  101. package/.agent/workflows/changelog.md +112 -144
  102. package/.agent/workflows/create.md +124 -139
  103. package/.agent/workflows/debug.md +189 -196
  104. package/.agent/workflows/deploy.md +189 -153
  105. package/.agent/workflows/enhance.md +151 -139
  106. package/.agent/workflows/fix.md +135 -143
  107. package/.agent/workflows/generate.md +157 -164
  108. package/.agent/workflows/migrate.md +160 -163
  109. package/.agent/workflows/orchestrate.md +168 -151
  110. package/.agent/workflows/performance-benchmarker.md +123 -305
  111. package/.agent/workflows/plan.md +173 -151
  112. package/.agent/workflows/preview.md +80 -137
  113. package/.agent/workflows/refactor.md +183 -153
  114. package/.agent/workflows/review-ai.md +129 -140
  115. package/.agent/workflows/review.md +116 -155
  116. package/.agent/workflows/session.md +94 -154
  117. package/.agent/workflows/status.md +79 -125
  118. package/.agent/workflows/strengthen-skills.md +139 -99
  119. package/.agent/workflows/swarm.md +179 -194
  120. package/.agent/workflows/test.md +211 -166
  121. package/.agent/workflows/tribunal-backend.md +113 -111
  122. package/.agent/workflows/tribunal-database.md +115 -132
  123. package/.agent/workflows/tribunal-frontend.md +118 -115
  124. package/.agent/workflows/tribunal-full.md +133 -136
  125. package/.agent/workflows/tribunal-mobile.md +119 -123
  126. package/.agent/workflows/tribunal-performance.md +133 -152
  127. package/.agent/workflows/ui-ux-pro-max.md +143 -171
  128. package/README.md +11 -15
  129. package/package.json +1 -1
  130. package/.agent/skills/dotnet-core-expert/SKILL.md +0 -103
  131. package/.agent/skills/framer-motion-animations/SKILL.md +0 -74
  132. package/.agent/skills/game-development/2d-games/SKILL.md +0 -119
  133. package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
  134. package/.agent/skills/game-development/SKILL.md +0 -236
  135. package/.agent/skills/game-development/game-art/SKILL.md +0 -185
  136. package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
  137. package/.agent/skills/game-development/game-design/SKILL.md +0 -129
  138. package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
  139. package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
  140. package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
  141. package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
  142. package/.agent/skills/game-development/web-games/SKILL.md +0 -150
@@ -1,209 +1,137 @@
1
- ---
2
- name: tdd-workflow
3
- description: Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle.
4
- allowed-tools: Read, Write, Edit, Glob, Grep
5
- version: 1.0.0
6
- last-updated: 2026-03-12
7
- applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
- ---
9
-
10
- # Test-Driven Development
11
-
12
- > TDD is not about testing. It is about design.
13
- > Writing the test first forces you to design the interface before you know how it will be implemented.
14
-
15
- ---
16
-
17
- ## The RED-GREEN-REFACTOR Cycle
18
-
19
- Every change in TDD follows three phases:
20
-
21
- ```
22
- RED → Write a test that fails (for code that doesn't exist yet)
23
- GREEN → Write the minimum code to make the test pass
24
- REFACTOR → Clean up the code without changing its behavior
25
- ```
26
-
27
- The constraint is important: in GREEN phase, write only enough code to pass the test. No more.
28
-
29
- ---
30
-
31
- ## RED Phase — Write a Failing Test
32
-
33
- Write a test that:
34
- 1. Describes one specific piece of behavior
35
- 2. Uses the API you wish existed (design the interface first)
36
- 3. Fails for the right reason (not a syntax error a logical failure)
37
-
38
- ```ts
39
- // RED: This test fails because `validatePassword` doesn't exist yet
40
- it('should reject passwords shorter than 8 characters', () => {
41
- const result = validatePassword('short');
42
- expect(result.valid).toBe(false);
43
- expect(result.error).toBe('Password must be at least 8 characters');
44
- });
45
- ```
46
-
47
- **The test failing for the right reason is the signal.** If it fails because of a missing import, that's not the RED phase — that's setup.
48
-
49
- ---
50
-
51
- ## GREEN Phase — Minimum Code to Pass
52
-
53
- Write only what is needed for the test to pass. Resist the urge to also handle the "other cases" — those will get their own tests.
54
-
55
- ```ts
56
- // GREEN: Minimum implementation to pass the one test
57
- function validatePassword(password: string): { valid: boolean; error?: string } {
58
- if (password.length < 8) {
59
- return { valid: false, error: 'Password must be at least 8 characters' };
60
- }
61
- return { valid: true };
62
- }
63
- ```
64
-
65
- The code may be ugly. That is fine. GREEN is about passing the test, not about clean code.
66
-
67
- ---
68
-
69
- ## REFACTOR Phase Clean Without Breaking
70
-
71
- Now that the test is green, improve the code:
72
- - Extract duplication
73
- - Clarify naming
74
- - Simplify logic
75
-
76
- The constraint: all tests must stay green during and after refactor.
77
-
78
- ```ts
79
- // REFACTOR: Same behavior, cleaner structure
80
- const MIN_PASSWORD_LENGTH = 8;
81
-
82
- function validatePassword(password: string): ValidationResult {
83
- if (password.length < MIN_PASSWORD_LENGTH) {
84
- return failure(`Password must be at least ${MIN_PASSWORD_LENGTH} characters`);
85
- }
86
- return success();
87
- }
88
- ```
89
-
90
- ---
91
-
92
- ## Triangulation
93
-
94
- When a single test could be satisfied by a hardcoded value, write a second test to force a real implementation.
95
-
96
- ```ts
97
- // Test 1: Could be satisfied by always returning 2
98
- it('should add two numbers', () => {
99
- expect(add(1, 1)).toBe(2);
100
- });
101
-
102
- // Test 2: Forces a real implementation
103
- it('should add two different numbers', () => {
104
- expect(add(3, 4)).toBe(7);
105
- });
106
- ```
107
-
108
- **Rule:** If your implementation could be a constant or a special case, triangulate.
109
-
110
- ---
111
-
112
- ## When TDD Pays Off
113
-
114
- TDD's ROI is highest for:
115
- - Business logic (calculation, validation, state machines)
116
- - Utility functions used in many places
117
- - Error handling paths that are hard to trigger manually
118
- - Refactoring existing code you want to verify still works
119
-
120
- TDD's ROI is lower for:
121
- - UI components (Storybook + visual review is often more efficient)
122
- - Database migrations (integration test after, not TDD)
123
- - Exploratory/prototype code that will be thrown away
124
-
125
- ---
126
-
127
- ## Common TDD Mistakes
128
-
129
- | Mistake | Effect |
130
- |---|---|
131
- | Writing tests after implementation | Tests confirm the implementation, not the behavior |
132
- | Testing too much in one cycle | Large RED-GREEN steps hide design problems |
133
- | Skipping REFACTOR | Code quality degrades with each cycle |
134
- | Not reaching RED | Writing tests that pass immediately means the implementation already existed |
135
- | Mocking everything | Tests become coupled to implementation, not behavior |
136
-
137
- ---
138
-
139
- ## 🛑 Verification-Before-Completion (VBC) Protocol
140
-
141
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
142
- - ❌ **Forbidden:** Ending the GREEN or REFACTOR phases based on assumption that the code is correct.
143
- - ✅ **Required:** You are explicitly forbidden from completing a test cycle or ending your task without providing **concrete terminal evidence** that the test suite actually ran and returned a strictly passing (GREEN) result.
144
-
145
- ---
146
-
147
- ## Output Format
148
-
149
- When this skill produces or reviews code, structure your output as follows:
150
-
151
- ```
152
- ━━━ Tdd Workflow Report ━━━━━━━━━━━━━━━━━━━━━━━━
153
- Skill: Tdd Workflow
154
- Language: [detected language / framework]
155
- Scope: [N files · N functions]
156
- ─────────────────────────────────────────────────
157
- ✅ Passed: [checks that passed, or "All clean"]
158
- ⚠️ Warnings: [non-blocking issues, or "None"]
159
- ❌ Blocked: [blocking issues requiring fix, or "None"]
160
- ─────────────────────────────────────────────────
161
- VBC status: PENDING → VERIFIED
162
- Evidence: [test output / lint pass / compile success]
163
- ```
164
-
165
- **VBC (Verification-Before-Completion) is mandatory.**
166
- Do not mark status as VERIFIED until concrete terminal evidence is provided.
167
-
168
-
169
-
170
- ---
171
-
172
- ## 🤖 LLM-Specific Traps
173
-
174
- AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
175
-
176
- 1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
177
- 2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
178
- 3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
179
- 4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
180
- 5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
181
-
182
- ---
183
-
184
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
185
-
186
- **Slash command: `/review` or `/tribunal-full`**
187
- **Active reviewers: `logic-reviewer` · `security-auditor`**
188
-
189
- ### ❌ Forbidden AI Tropes
190
-
191
- 1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
192
- 2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
193
- 3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
194
-
195
- ### ✅ Pre-Flight Self-Audit
196
-
197
- Review these questions before confirming output:
198
- ```
199
- ✅ Did I rely ONLY on real, verified tools and methods?
200
- ✅ Is this solution appropriately scoped to the user's constraints?
201
- ✅ Did I handle potential failure modes and edge cases?
202
- ✅ Have I avoided generic boilerplate that doesn't add value?
203
- ```
204
-
205
- ### 🛑 Verification-Before-Completion (VBC) Protocol
206
-
207
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
208
- - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
209
- - ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
1
+ ---
2
+ name: tdd-workflow
3
+ description: Test-Driven Development (TDD) mastery. Red-Green-Refactor cycles, behavior-driven design (BDD), strict mutation coverage, test doubles (mocks/stubs/spies), and avoiding test-induced design damage. Use when building complex algorithms, deep business logic, or strictly regulated systems.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 2.0.0
6
+ last-updated: 2026-04-02
7
+ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
+ ---
9
+
10
+ # Test-Driven Development (TDD) — Defect-Free Execution Mastery
11
+
12
+ > You do not write tests to verify your code. You write tests to design your code.
13
+ > Unverified code is a liability. TDD is the professional hygiene of software engineering.
14
+
15
+ ---
16
+
17
+ ## 1. The Red-Green-Refactor Cycle
18
+
19
+ TDD is a strict, irrevocable discipline. Do not write the implementation first.
20
+
21
+ ### Step 1: RED (Write the failing test)
22
+ Write the test as if the API already exists exactly how you *wish* it were designed.
23
+ Run the test. It MUST fail (because the function doesn't exist, or returns the wrong value). If it passes, the test is useless.
24
+
25
+ ```typescript
26
+ // 1. The failing test
27
+ import { calculateDiscount } from './pricing';
28
+
29
+ test('Should apply 10% discount for orders over $100', () => {
30
+ expect(calculateDiscount(150)).toBe(135);
31
+ });
32
+ // ❌ FAILS: calculateDiscount is not defined
33
+ ```
34
+
35
+ ### Step 2: GREEN (Make it pass exactly)
36
+ Write the absolute minimum, dumbest code required to make the test pass. Do not over-engineer.
37
+
38
+ ```typescript
39
+ // 2. The minimum implementation
40
+ export function calculateDiscount(subtotal: number): number {
41
+ if (subtotal >= 100) return subtotal * 0.90;
42
+ return subtotal;
43
+ }
44
+ // ✅ PASSES.
45
+ ```
46
+
47
+ ### Step 3: REFACTOR
48
+ Now wrap the implementation in clean architectural principles. The tests guarantee you haven't broken the behavior while you optimize.
49
+
50
+ ```typescript
51
+ // 3. The Refactor
52
+ const DISCOUNT_THRESHOLD = 100;
53
+ const DISCOUNT_RATE = 0.90;
54
+
55
+ export function calculateDiscount(subtotal: number): number {
56
+ return subtotal >= DISCOUNT_THRESHOLD ? subtotal * DISCOUNT_RATE : subtotal;
57
+ }
58
+ // ✅ STILL PASSES. Safe to commit.
59
+ ```
60
+
61
+ ---
62
+
63
+ ## 2. Test Doubles (Mocks, Stubs, Spies)
64
+
65
+ Knowing *how* to mock separates amateurs from professionals. Over-mocking destroys architectural integrity.
66
+
67
+ | Type | When to use | Example |
68
+ |:---|:---|:---|
69
+ | **Dummy** | Filler objects passed but never used | `processOrder(new UserDummy(), payload)` |
70
+ | **Stub** | Hardcodes a specific response | `db.getUser.mockResolvedValue({ id: 1 })` |
71
+ | **Spy** | Records how many times a function was called | `expect(emailService.send).toHaveBeenCalledTimes(1)` |
72
+ | **Mock** | A spy with predefined expectations of exact payloads | `expect(logger.info).toHaveBeenCalledWith('Authorized')` |
73
+
74
+ ### The Mocking Rule
75
+ **Only mock at the architectural boundaries (Database, Network, External FileSystem).**
76
+ NEVER mock internal business logic or child pure-functions. If function A calls function B, test A by allowing it to genuinely call B.
77
+
78
+ ---
79
+
80
+ ## 3. Anti-Pattern: Testing Implementation Details
81
+
82
+ Tests should verify the *behavior* output, not the underlying code structure.
83
+
84
+ ```typescript
85
+ class Account {
86
+ private balance = 0;
87
+ deposit(amount: number) { this.balance += amount; }
88
+ getBalance() { return this.balance; }
89
+ }
90
+
91
+ // ❌ BAD: Testing internal state (Fragile)
92
+ test('Deposit updates the internal balance variable', () => {
93
+ const acc = new Account();
94
+ acc.deposit(50);
95
+ expect(acc['balance']).toBe(50); // Intrusive test breaks if variable is renamed
96
+ });
97
+
98
+ // GOOD: Testing external behavior contract
99
+ test('Deposit makes the funds available via getBalance', () => {
100
+ const acc = new Account();
101
+ acc.deposit(50);
102
+ expect(acc.getBalance()).toBe(50); // Tests the public API only
103
+ });
104
+ ```
105
+
106
+ ---
107
+
108
+ ## 🤖 LLM-Specific Traps (TDD)
109
+
110
+ 1. **Executing Green-First:** Writing the implementation *before* the test. This completely bypasses the design guidance inherent to TDD.
111
+ 2. **Test-Induced Design Damage:** Making private methods public just so they can be individually unit tested. Test the private methods exclusively through the public interface.
112
+ 3. **Mocks as Reality:** AI deeply mocking internal functions (`vi.mock('./utils')`) to the point where the test simply verifies the mock configuration, providing zero real-world confidence.
113
+ 4. **Fragile "Any" Mocks:** AI writing `expect(mock).toHaveBeenCalledWith(expect.anything())`, neutralizing the actual verification value of the spy.
114
+ 5. **No Edge Cases:** Generating tests exclusively for the "Happy Path" (valid inputs). TDD requires boundary testing (nulls, negatives, MAX_INT, empty arrays).
115
+ 6. **Massive Arrange Blocks:** Constructing 100-line object setups before the action occurs. Strongly indicates the code under test requires too many dependencies.
116
+ 7. **Random Execution Dependency:** Writing tests relying on `Math.random()`, `new Date()`, or real database connections. Tests must be deterministic. Inject interfaces for time and randomizers.
117
+ 8. **Catch-All Error Checks:** AI writes `expect(fn).toThrowError()`. Assert against specific error messages so regressions in the exact failure reason are detected.
118
+ 9. **Test Name Obscurity:** `test('Works properly', () => ...)`. The test name should read as explicit documentation of system constraints (`test('Throws InsufficientFundsError when withdrawal exceeds balance')`).
119
+ 10. **Refactor Skip:** Completing the "Green" phase and stopping. The Refactor phase is where the technical debt is permanently cleared.
120
+
121
+ ---
122
+
123
+ ## 🏛️ Tribunal Integration
124
+
125
+ ### ✅ Pre-Flight Self-Audit
126
+ ```
127
+ Did I write the failing test requirements BEFORE creating the implementation?
128
+ ✅ Are internal private methods accessed solely via verifying the public API layer?
129
+ Were mocks restricted entirely to architectural boundaries (Network/DB/Disk)?
130
+ ✅ Are date/time instances mocked via FakeTimers to ensure strict determinism?
131
+ Do assertions verify precise error messages instead of generic catch-all throws?
132
+ Are test case titles descriptive enough to serve as living documentation?
133
+ Have all negative edge cases (boundaries, empty states) been accounted for?
134
+ Upon achieving 'Green', was a deliberate refactor pass initiated for clean code?
135
+ Has `expect.anything()` been avoided to enforce rigid verification of call payloads?
136
+ ✅ Does the payload setup rely on minimal dummy data instead of colossal stubs?
137
+ ```