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.
Files changed (217) hide show
  1. package/.agent/.shared/ui-ux-pro-max/README.md +4 -4
  2. package/.agent/ARCHITECTURE.md +279 -277
  3. package/.agent/GEMINI.md +127 -121
  4. package/.agent/agents/accessibility-reviewer.md +187 -187
  5. package/.agent/agents/ai-code-reviewer.md +199 -199
  6. package/.agent/agents/api-architect.md +71 -66
  7. package/.agent/agents/backend-specialist.md +219 -215
  8. package/.agent/agents/cloud-engineer.md +98 -0
  9. package/.agent/agents/code-archaeologist.md +168 -161
  10. package/.agent/agents/database-architect.md +184 -184
  11. package/.agent/agents/db-latency-auditor.md +213 -216
  12. package/.agent/agents/debugger.md +198 -191
  13. package/.agent/agents/dependency-reviewer.md +106 -103
  14. package/.agent/agents/devops-engineer.md +218 -218
  15. package/.agent/agents/documentation-writer.md +209 -201
  16. package/.agent/agents/explorer-agent.md +167 -160
  17. package/.agent/agents/frontend-reviewer.md +162 -160
  18. package/.agent/agents/frontend-specialist.md +257 -248
  19. package/.agent/agents/game-developer.md +48 -48
  20. package/.agent/agents/logic-reviewer.md +118 -116
  21. package/.agent/agents/mobile-developer.md +197 -200
  22. package/.agent/agents/mobile-reviewer.md +159 -162
  23. package/.agent/agents/orchestrator.md +187 -181
  24. package/.agent/agents/penetration-tester.md +160 -157
  25. package/.agent/agents/performance-optimizer.md +183 -183
  26. package/.agent/agents/performance-reviewer.md +178 -178
  27. package/.agent/agents/precedence-reviewer.md +251 -250
  28. package/.agent/agents/product-manager.md +149 -142
  29. package/.agent/agents/product-owner.md +81 -80
  30. package/.agent/agents/project-planner.md +152 -142
  31. package/.agent/agents/qa-automation-engineer.md +216 -225
  32. package/.agent/agents/resilience-reviewer.md +88 -88
  33. package/.agent/agents/schema-reviewer.md +67 -67
  34. package/.agent/agents/security-auditor.md +180 -174
  35. package/.agent/agents/seo-specialist.md +188 -193
  36. package/.agent/agents/sql-reviewer.md +159 -161
  37. package/.agent/agents/supervisor-agent.md +173 -184
  38. package/.agent/agents/swarm-worker-contracts.md +170 -166
  39. package/.agent/agents/swarm-worker-registry.md +92 -92
  40. package/.agent/agents/system-architect.md +85 -0
  41. package/.agent/agents/test-coverage-reviewer.md +158 -160
  42. package/.agent/agents/test-engineer.md +118 -118
  43. package/.agent/agents/throughput-optimizer.md +291 -299
  44. package/.agent/agents/type-safety-reviewer.md +182 -175
  45. package/.agent/agents/ui-ux-auditor.md +300 -292
  46. package/.agent/agents/vitals-reviewer.md +223 -223
  47. package/.agent/mcp_config.json +37 -40
  48. package/.agent/patterns/generator.md +11 -9
  49. package/.agent/patterns/inversion.md +14 -12
  50. package/.agent/patterns/pipeline.md +11 -9
  51. package/.agent/patterns/reviewer.md +15 -13
  52. package/.agent/patterns/tool-wrapper.md +11 -9
  53. package/.agent/routing_index.json +654 -0
  54. package/.agent/rules/GEMINI.md +358 -352
  55. package/.agent/scripts/compile_router.py +112 -0
  56. package/.agent/scripts/migrate_skills_frontmatter.py +64 -0
  57. package/.agent/scripts/strengthen_skills.js +1 -1
  58. package/.agent/skills/advanced-rag-pipelines/SKILL.md +56 -0
  59. package/.agent/skills/agent-organizer/SKILL.md +156 -150
  60. package/.agent/skills/agentic-patterns/SKILL.md +313 -315
  61. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +190 -184
  62. package/.agent/skills/api-patterns/SKILL.md +253 -247
  63. package/.agent/skills/api-security-auditor/SKILL.md +195 -193
  64. package/.agent/skills/app-builder/SKILL.md +573 -572
  65. package/.agent/skills/app-builder/templates/SKILL.md +108 -115
  66. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  67. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  68. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  69. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  70. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  71. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  72. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  73. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -122
  74. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -122
  75. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -169
  76. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -134
  77. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  78. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -119
  79. package/.agent/skills/appflow-wireframe/SKILL.md +146 -145
  80. package/.agent/skills/architecture/SKILL.md +226 -219
  81. package/.agent/skills/authentication-best-practices/SKILL.md +197 -189
  82. package/.agent/skills/backend-security-expert/SKILL.md +16 -2
  83. package/.agent/skills/bash-linux/SKILL.md +179 -179
  84. package/.agent/skills/behavioral-modes/SKILL.md +239 -223
  85. package/.agent/skills/brainstorming/SKILL.md +498 -486
  86. package/.agent/skills/browser-native-ai/SKILL.md +57 -4
  87. package/.agent/skills/building-native-ui/SKILL.md +202 -202
  88. package/.agent/skills/cicd-pro/SKILL.md +442 -0
  89. package/.agent/skills/clean-code/SKILL.md +400 -381
  90. package/.agent/skills/cloud-architect/SKILL.md +439 -0
  91. package/.agent/skills/code-review-checklist/SKILL.md +203 -194
  92. package/.agent/skills/config-validator/SKILL.md +165 -165
  93. package/.agent/skills/containerization-pro/SKILL.md +452 -0
  94. package/.agent/skills/csharp-developer/SKILL.md +518 -518
  95. package/.agent/skills/data-validation-schemas/SKILL.md +333 -328
  96. package/.agent/skills/database-design/SKILL.md +247 -240
  97. package/.agent/skills/deployment-procedures/SKILL.md +172 -169
  98. package/.agent/skills/devops-engineer/SKILL.md +345 -345
  99. package/.agent/skills/devops-incident-responder/SKILL.md +143 -137
  100. package/.agent/skills/doc.md +209 -177
  101. package/.agent/skills/documentation-templates/SKILL.md +291 -279
  102. package/.agent/skills/edge-computing/SKILL.md +183 -181
  103. package/.agent/skills/error-resilience/SKILL.md +411 -428
  104. package/.agent/skills/extract-design-system/SKILL.md +160 -158
  105. package/.agent/skills/framer-motion-expert/SKILL.md +253 -244
  106. package/.agent/skills/frontend-design/SKILL.md +208 -201
  107. package/.agent/skills/frontend-security-expert/SKILL.md +16 -3
  108. package/.agent/skills/game-design-expert/SKILL.md +132 -129
  109. package/.agent/skills/game-engineering-expert/SKILL.md +148 -146
  110. package/.agent/skills/generative-ui-expert/SKILL.md +57 -1
  111. package/.agent/skills/geo-fundamentals/SKILL.md +148 -147
  112. package/.agent/skills/git-pro/SKILL.md +435 -0
  113. package/.agent/skills/github-operations/SKILL.md +335 -329
  114. package/.agent/skills/gsap-core/SKILL.md +319 -308
  115. package/.agent/skills/gsap-frameworks/SKILL.md +213 -207
  116. package/.agent/skills/gsap-performance/SKILL.md +139 -133
  117. package/.agent/skills/gsap-plugins/SKILL.md +486 -480
  118. package/.agent/skills/gsap-react/SKILL.md +202 -189
  119. package/.agent/skills/gsap-scrolltrigger/SKILL.md +357 -350
  120. package/.agent/skills/gsap-timeline/SKILL.md +165 -161
  121. package/.agent/skills/gsap-utils/SKILL.md +344 -338
  122. package/.agent/skills/harness-protocol/SKILL.md +48 -0
  123. package/.agent/skills/i18n-localization/SKILL.md +174 -163
  124. package/.agent/skills/intelligent-routing/SKILL.md +202 -246
  125. package/.agent/skills/knowledge-graph/SKILL.md +60 -52
  126. package/.agent/skills/lint-and-validate/SKILL.md +261 -261
  127. package/.agent/skills/llm-engineering/SKILL.md +400 -394
  128. package/.agent/skills/local-first/SKILL.md +178 -178
  129. package/.agent/skills/mcp-builder/SKILL.md +143 -142
  130. package/.agent/skills/mobile-design/SKILL.md +272 -263
  131. package/.agent/skills/monorepo-management/SKILL.md +335 -334
  132. package/.agent/skills/motion-engineering/SKILL.md +266 -234
  133. package/.agent/skills/nextjs-react-expert/SKILL.md +236 -234
  134. package/.agent/skills/nodejs-best-practices/SKILL.md +547 -548
  135. package/.agent/skills/observability/SKILL.md +343 -343
  136. package/.agent/skills/parallel-agents/SKILL.md +143 -146
  137. package/.agent/skills/performance-profiling/SKILL.md +259 -267
  138. package/.agent/skills/plan-writing/SKILL.md +150 -142
  139. package/.agent/skills/platform-engineer/SKILL.md +148 -147
  140. package/.agent/skills/playwright-best-practices/SKILL.md +188 -187
  141. package/.agent/skills/powershell-windows/SKILL.md +162 -162
  142. package/.agent/skills/project-idioms/SKILL.md +137 -137
  143. package/.agent/skills/python-patterns/SKILL.md +260 -259
  144. package/.agent/skills/python-pro/SKILL.md +324 -323
  145. package/.agent/skills/react-specialist/SKILL.md +305 -277
  146. package/.agent/skills/readme-builder/SKILL.md +310 -300
  147. package/.agent/skills/realtime-patterns/SKILL.md +323 -319
  148. package/.agent/skills/red-team-tactics/SKILL.md +231 -218
  149. package/.agent/skills/rust-pro/SKILL.md +671 -673
  150. package/.agent/skills/seo-fundamentals/SKILL.md +179 -179
  151. package/.agent/skills/server-management/SKILL.md +218 -214
  152. package/.agent/skills/shadcn-ui-expert/SKILL.md +231 -231
  153. package/.agent/skills/skill-creator/SKILL.md +87 -86
  154. package/.agent/skills/sql-pro/SKILL.md +629 -629
  155. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +97 -97
  156. package/.agent/skills/swiftui-expert/SKILL.md +204 -201
  157. package/.agent/skills/system-design-pro/SKILL.md +345 -0
  158. package/.agent/skills/systematic-debugging/SKILL.md +153 -142
  159. package/.agent/skills/tailwind-patterns/SKILL.md +610 -566
  160. package/.agent/skills/tdd-workflow/SKILL.md +169 -161
  161. package/.agent/skills/test-result-analyzer/SKILL.md +313 -309
  162. package/.agent/skills/testing-patterns/SKILL.md +566 -579
  163. package/.agent/skills/trend-researcher/SKILL.md +243 -237
  164. package/.agent/skills/typescript-advanced/SKILL.md +336 -335
  165. package/.agent/skills/ui-ux-pro-max/SKILL.md +590 -562
  166. package/.agent/skills/ui-ux-researcher/SKILL.md +244 -244
  167. package/.agent/skills/vue-expert/SKILL.md +294 -275
  168. package/.agent/skills/vulnerability-scanner/SKILL.md +416 -404
  169. package/.agent/skills/web-accessibility-auditor/SKILL.md +219 -218
  170. package/.agent/skills/web-design-guidelines/SKILL.md +192 -186
  171. package/.agent/skills/webapp-testing/SKILL.md +167 -169
  172. package/.agent/skills/webgpu-performance/SKILL.md +56 -2
  173. package/.agent/skills/whimsy-injector/SKILL.md +346 -325
  174. package/.agent/skills/workflow-optimizer/SKILL.md +231 -229
  175. package/.agent/workflows/acf.md +141 -0
  176. package/.agent/workflows/api-tester.md +176 -151
  177. package/.agent/workflows/audit.md +150 -127
  178. package/.agent/workflows/brainstorm.md +134 -110
  179. package/.agent/workflows/changelog.md +140 -112
  180. package/.agent/workflows/create.md +168 -124
  181. package/.agent/workflows/debug.md +190 -165
  182. package/.agent/workflows/deploy.md +201 -180
  183. package/.agent/workflows/enhance.md +154 -128
  184. package/.agent/workflows/fix.md +136 -114
  185. package/.agent/workflows/generate.md +198 -183
  186. package/.agent/workflows/marathon.md +37 -11
  187. package/.agent/workflows/migrate.md +184 -160
  188. package/.agent/workflows/orchestrate.md +192 -168
  189. package/.agent/workflows/performance-benchmarker.md +135 -114
  190. package/.agent/workflows/plan.md +196 -173
  191. package/.agent/workflows/preview.md +103 -80
  192. package/.agent/workflows/refactor.md +192 -161
  193. package/.agent/workflows/review-ai.md +125 -101
  194. package/.agent/workflows/review.md +141 -116
  195. package/.agent/workflows/session.md +122 -94
  196. package/.agent/workflows/status.md +101 -79
  197. package/.agent/workflows/strengthen-skills.md +164 -138
  198. package/.agent/workflows/super-prompt.md +24 -0
  199. package/.agent/workflows/swarm.md +193 -179
  200. package/.agent/workflows/test.md +211 -189
  201. package/.agent/workflows/tribunal-backend.md +136 -105
  202. package/.agent/workflows/tribunal-database.md +122 -95
  203. package/.agent/workflows/tribunal-frontend.md +221 -96
  204. package/.agent/workflows/tribunal-full.md +129 -100
  205. package/.agent/workflows/tribunal-mobile.md +122 -95
  206. package/.agent/workflows/tribunal-performance.md +136 -110
  207. package/.agent/workflows/tribunal-speed.md +209 -183
  208. package/.agent/workflows/ui-ux-pro-max.md +145 -122
  209. package/README.md +107 -55
  210. package/bin/mcp-server.js +159 -0
  211. package/bin/tribunal-kit.js +105 -29
  212. package/bin/wrapper.js +16 -7
  213. package/mcp_config.json +9 -0
  214. package/package.json +94 -86
  215. package/scripts/changelog.js +4 -3
  216. package/scripts/validate-payload.js +6 -1
  217. package/scripts/postinstall.js +0 -127
@@ -0,0 +1,345 @@
1
+ ---
2
+ name: system-design-pro
3
+ description: Industry-level system design mastery for interviews and production. The 6-step design framework, scale estimation (DAU→QPS→storage→bandwidth), core building blocks (load balancers L4/L7, CDN, caches, queues), database selection matrix, CAP Theorem applied, and reference designs for URL shortener, rate limiter, Twitter feed, distributed cache, and notification system. Use when designing systems for scale, conducting architecture reviews, or preparing system design discussions.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 1.0.0
6
+ last-updated: 2026-06-21
7
+ applies-to-model: gemini-2.5-pro, claude-3-7-sonnet
8
+ routing:
9
+ domain: architecture
10
+ tier: pro
11
+ trigger-signals:
12
+ strong: [design a system, scale estimation, CAP Theorem, rate limiter]
13
+ ---
14
+
15
+ ## Hallucination Traps (Read First)
16
+
17
+ - ❌ "Just use microservices" for <10K RPM → ✅ Microservices add operational complexity that kills small teams. Start monolith.
18
+ - ❌ Adding database sharding before exhausting vertical scaling → ✅ Sharding is a last resort. Try: connection pooling → read replicas → caching → vertical scaling first.
19
+ - ❌ Applying CQRS to simple CRUD apps → ✅ CQRS is only justified when read and write models genuinely diverge at scale.
20
+ - ❌ Choosing NoSQL because "it scales better" → ✅ NoSQL sacrifices ACID transactions and query flexibility. Choose based on data model, not hype.
21
+ - ❌ Designing for peak load from day one → ✅ Design for 3-5x current load. Over-engineering kills velocity. Add complexity when measured, not speculated.
22
+
23
+ ---
24
+
25
+ # System Design Pro — Industry-Level Mastery
26
+
27
+ ## 1. The 6-Step Design Framework
28
+
29
+ Use this structure for every system design discussion:
30
+
31
+ ```
32
+ Step 1: CLARIFY SCOPE (5 min)
33
+ → What features are in scope for THIS design?
34
+ → Read-heavy or write-heavy?
35
+ → What are the consistency requirements? (eventual OK, or strict?)
36
+ → What are the latency requirements?
37
+
38
+ Step 2: ESTIMATE SCALE (5 min)
39
+ → Daily Active Users (DAU)
40
+ → Queries Per Second (QPS) — read and write separately
41
+ → Data storage growth per year
42
+ → Bandwidth (inbound + outbound)
43
+
44
+ Step 3: DEFINE THE API (5 min)
45
+ → Sketch the core API endpoints / interfaces
46
+ → Defines the contract before implementation details
47
+
48
+ Step 4: DATA MODEL (10 min)
49
+ → Which database type? (SQL / NoSQL / Graph / Time-series)
50
+ → Core entities and relationships
51
+ → Key fields, indexes
52
+
53
+ Step 5: HIGH-LEVEL DESIGN (15 min)
54
+ → Draw the boxes: clients → LB → services → DB → cache
55
+ → Happy path data flow
56
+
57
+ Step 6: DEEP DIVE (20 min)
58
+ → Bottleneck analysis
59
+ → Scaling strategies for the identified bottleneck
60
+ → Failure modes and mitigations
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 2. Scale Estimation (The Math)
66
+
67
+ ### Reference Numbers
68
+
69
+ ```
70
+ Latency Numbers Every Engineer Should Know:
71
+ L1 cache reference: 0.5 ns
72
+ Main memory access: 100 ns
73
+ SSD random read: 150 μs
74
+ Read 1 MB from SSD: 1 ms
75
+ Round trip within datacenter: 500 μs
76
+ Round trip CA to Netherlands: 150 ms
77
+
78
+ Storage:
79
+ 1 character = 1 byte
80
+ 1 photo (compressed) = 300 KB
81
+ 1 video (1 min, 720p) = 50 MB
82
+ 1 tweet = ~280 bytes
83
+
84
+ Throughput:
85
+ 1 server handles: ~10K connections (nginx), ~1K QPS (Node.js CPU-bound)
86
+ PostgreSQL: ~5K–10K simple queries/sec
87
+ Redis: ~100K–1M ops/sec
88
+ ```
89
+
90
+ ### Worked Example: Twitter-Scale Feed
91
+
92
+ ```
93
+ Given:
94
+ DAU = 300M users
95
+ Each user reads feed 5x/day → 1.5B read requests/day
96
+ Each user posts 1 tweet/week → 43M writes/day
97
+
98
+ Calculations:
99
+ Read QPS = 1,500,000,000 / 86,400 = ~17,400 QPS
100
+ Write QPS = 43,000,000 / 86,400 = ~500 QPS
101
+ Ratio = 35:1 (heavily read-dominant → aggressive caching justified)
102
+
103
+ Storage (tweets):
104
+ 43M tweets/day × 280 bytes = ~12 GB/day
105
+ 12 GB × 365 = ~4.4 TB/year for text
106
+ (media stored separately in object storage)
107
+
108
+ Bandwidth:
109
+ Outbound: 17,400 QPS × 20 tweets/feed × 280 bytes = ~97 MB/s outbound text
110
+ (plus CDN-served media)
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 3. Core Building Blocks
116
+
117
+ ### Load Balancer Selection
118
+
119
+ ```
120
+ L4 Load Balancer (Transport Layer):
121
+ - Routes based on TCP/UDP — no HTTP awareness
122
+ - Ultra-low overhead, extremely fast
123
+ - Can't do: SSL termination, path-based routing, header inspection
124
+ - Use for: raw TCP services, database connections, non-HTTP
125
+ - AWS equivalent: Network Load Balancer (NLB)
126
+
127
+ L7 Load Balancer (Application Layer):
128
+ - Routes based on HTTP headers, path, host, cookies
129
+ - Can do: SSL termination, A/B testing, sticky sessions, compression
130
+ - Slightly higher overhead than L4
131
+ - Use for: web applications, REST APIs, microservices
132
+ - AWS equivalent: Application Load Balancer (ALB)
133
+
134
+ Algorithms:
135
+ Round Robin → even distribution, no server awareness
136
+ Least Connections → route to server with fewest active connections
137
+ IP Hash → sticky sessions (same client → same server)
138
+ Weighted → send 80% to v1, 20% to v2 (canary deploys)
139
+ ```
140
+
141
+ ### Cache Strategies
142
+
143
+ ```
144
+ Cache-Aside (Lazy Loading) — most common:
145
+ 1. App checks cache → MISS
146
+ 2. App reads from DB
147
+ 3. App writes result to cache
148
+ 4. Returns data
149
+ Pro: Only caches what's actually read. Cache failure doesn't break app.
150
+ Con: First request always slow. Cache can become stale.
151
+
152
+ Write-Through:
153
+ 1. App writes to cache AND DB simultaneously
154
+ Pro: Cache always up-to-date
155
+ Con: Write latency doubled. Caches data that may never be read.
156
+
157
+ Write-Behind (Write-Back):
158
+ 1. App writes to cache
159
+ 2. Cache asynchronously writes to DB (batched)
160
+ Pro: Very fast writes
161
+ Con: Risk of data loss if cache fails before flush
162
+
163
+ Read-Through:
164
+ Cache sits in front of DB. On miss, cache fetches from DB.
165
+ Pro: Simpler app code (cache handles DB reads)
166
+ Con: Cold start problem. Cache becomes SPOF.
167
+
168
+ TTL Strategy:
169
+ Short TTL (seconds–minutes): Real-time data, stock prices, feed counts
170
+ Medium TTL (hours): User profiles, product details
171
+ Long TTL (days): Static content, configuration
172
+ No TTL: Immutable data (old posts, completed orders)
173
+ ```
174
+
175
+ ### Message Queues
176
+
177
+ ```
178
+ When to use a queue:
179
+ ✅ Async processing (email sending, image resize, notifications)
180
+ ✅ Rate limiting (smooth out traffic spikes)
181
+ ✅ Decoupling services (producer doesn't know about consumer)
182
+ ✅ Retry logic (failed jobs re-queued automatically)
183
+
184
+ Queue Selection:
185
+ BullMQ (Redis-backed) → Simple, single-service, <100K jobs/day
186
+ RabbitMQ → Complex routing, dead-letter, multi-consumer
187
+ Apache Kafka → High throughput (millions/sec), replay, event log
188
+ AWS SQS → Serverless, managed, Lambda integration
189
+ AWS SQS + SNS (fan-out) → Broadcast one event to multiple consumers
190
+
191
+ Delivery guarantees:
192
+ At-most-once → messages may be lost (fire-and-forget analytics)
193
+ At-least-once → messages may be duplicated (requires idempotent consumers)
194
+ Exactly-once → expensive, complex; only Kafka transactions + consumer groups
195
+ ```
196
+
197
+ ---
198
+
199
+ ## 4. Database Selection Matrix
200
+
201
+ | Signal | Recommended | Why |
202
+ | -------------------------------------- | --------------------------------- | -------------------------------------------- |
203
+ | Structured data, ACID, complex queries | **PostgreSQL** | Relational model, joins, transactions |
204
+ | Time-series data (metrics, logs) | **InfluxDB / TimescaleDB** | Optimized for time-ordered data, compression |
205
+ | Document storage, flexible schema | **MongoDB** | Schema-free, embedded documents |
206
+ | Key-value, <1ms latency | **Redis / DynamoDB** | In-memory or single-digit ms |
207
+ | Graph relationships (social, rec) | **Neo4j / Neptune** | Traversal queries 100x faster than SQL joins |
208
+ | Search & full-text | **Elasticsearch / OpenSearch** | Inverted index, relevance scoring |
209
+ | Immutable audit log | **Kafka / Append-only table** | Never update, only append |
210
+ | Multi-region globally distributed | **CockroachDB / DynamoDB Global** | Multi-master, automatic failover |
211
+
212
+ ### CAP Theorem Applied
213
+
214
+ ```
215
+ CAP: You can only guarantee 2 of: Consistency, Availability, Partition Tolerance
216
+ (In distributed systems, Partition Tolerance is mandatory → choose C or A)
217
+
218
+ CP (Consistency + Partition Tolerance):
219
+ → All reads return latest write or error
220
+ → Use for: Banking, financial transactions, inventory (overselling is catastrophic)
221
+ → Examples: PostgreSQL, ZooKeeper, HBase
222
+
223
+ AP (Availability + Partition Tolerance):
224
+ → System stays up even during partitions, may return stale data
225
+ → Use for: Social feeds, shopping carts, DNS, search indexes
226
+ → Examples: DynamoDB (eventually consistent), Cassandra, CouchDB
227
+
228
+ Practical rule:
229
+ Does incorrect data cause financial harm or security breach? → CP
230
+ Can users tolerate seeing slightly stale data for seconds? → AP
231
+ ```
232
+
233
+ ---
234
+
235
+ ## 5. Classic Reference Designs
236
+
237
+ ### URL Shortener (tinyurl.com)
238
+
239
+ ```
240
+ API:
241
+ POST /api/shorten { url: "https://long-url.com" } → { shortCode: "abc123" }
242
+ GET /:shortCode → HTTP 302 redirect to original URL
243
+
244
+ Scale:
245
+ Reads: 100:1 read-to-write (CDN + cache at edge)
246
+ Writes: ~1M URLs/day = ~12 writes/sec
247
+
248
+ Key Design Decisions:
249
+ Short code generation: MD5(url)[:6] — fast, deterministic, but collision-prone
250
+ Better: Globally unique counter + base62 encoding (a-zA-Z0-9)
251
+ Best: Distributed ID with snowflake-style (timestamp + datacenter + sequence)
252
+
253
+ Data model:
254
+ urls table: { id BIGINT PK, short_code VARCHAR(8) UNIQUE, original_url TEXT,
255
+ user_id BIGINT, created_at TIMESTAMP, click_count INT }
256
+
257
+ Caching:
258
+ Cache short_code → original_url in Redis (high read QPS, small value size)
259
+ TTL: 24h (popular links stay warm)
260
+
261
+ Scaling bottleneck: DB write throughput
262
+ Fix: Write to a queue, batch-insert every 100ms
263
+ ```
264
+
265
+ ### Rate Limiter
266
+
267
+ ```
268
+ Algorithms:
269
+ Token Bucket:
270
+ - Bucket refills at rate R tokens/second, max capacity C
271
+ - Each request consumes 1 token
272
+ - Allows bursting (use all C tokens instantly)
273
+ - Ideal for: most APIs
274
+
275
+ Sliding Window Counter:
276
+ - Count requests in sliding 1-minute window
277
+ - More precise than fixed window (no edge-of-window bursts)
278
+ - Implementation: Redis sorted set (ZADD + ZCOUNT + ZREMRANGEBYSCORE)
279
+
280
+ Redis Implementation (Token Bucket):
281
+ EVAL lua_script KEYS[1] ARGV[1] ARGV[2] ARGV[3]
282
+ -- key=user_id, capacity, refill_rate, current_time
283
+ -- atomically check and decrement token count
284
+
285
+ Response headers:
286
+ X-RateLimit-Limit: 1000
287
+ X-RateLimit-Remaining: 42
288
+ X-RateLimit-Reset: 1719532800 (Unix timestamp)
289
+ Retry-After: 60 (on 429 response)
290
+ ```
291
+
292
+ ### Notification System
293
+
294
+ ```
295
+ Requirements: Send 10M push notifications/day via email, SMS, push
296
+
297
+ Architecture:
298
+ 1. Producer: API receives notification request → publishes to Kafka topic
299
+ 2. Kafka topics: one per channel (email-queue, sms-queue, push-queue)
300
+ 3. Workers: Dedicated consumers per channel
301
+ - email-worker → SendGrid API
302
+ - sms-worker → Twilio API
303
+ - push-worker → FCM (Android) / APNS (iOS)
304
+ 4. Retry queue: Failed notifications → dead-letter queue → retry with backoff
305
+ 5. Notification log: All sent notifications stored in Cassandra (time-series)
306
+
307
+ Failure handling:
308
+ - Idempotency key per notification (dedup on retry)
309
+ - Exponential backoff: 1s → 10s → 100s → dead letter
310
+ - Alert on dead letter queue depth > threshold
311
+ ```
312
+
313
+ ---
314
+
315
+ ## 🤖 LLM-Specific Traps
316
+
317
+ 1. **Premature sharding**: Suggesting database sharding before the user has even mentioned scale issues. Sharding is complex; exhaust simpler options first.
318
+ 2. **NoSQL for everything**: DynamoDB and MongoDB are not universally better. They sacrifice joins and ACID. Present the tradeoffs honestly.
319
+ 3. **Ignoring the 80/20 of read QPS**: Most web apps are 80-95% reads. Design the read path first (caching, CDN, read replicas) before optimizing writes.
320
+ 4. **Forgetting the Coordinator Problem**: Distributed systems need coordination (who is the leader?). Mention ZooKeeper/etcd or leaderless designs when relevant.
321
+ 5. **Over-specifying CAP**: Real systems pick AP vs CP at the feature level, not the system level. A shopping cart (AP) and payment processing (CP) can coexist.
322
+
323
+ ---
324
+
325
+ ## 🏛️ Tribunal Integration (Anti-Hallucination)
326
+
327
+ **Slash command: `/review` or `/tribunal-full`**
328
+ **Active reviewers: `logic-reviewer` · `system-architect` · `database-architect`**
329
+
330
+ ### ✅ Pre-Flight Self-Audit
331
+
332
+ ```
333
+ ✅ Did I quantify the scale before recommending a solution?
334
+ ✅ Did I present at least 2 database options with tradeoffs?
335
+ ✅ Did I define the read:write ratio before choosing a caching strategy?
336
+ ✅ Did I verify the system doesn't need microservices before recommending them?
337
+ ✅ Did I define a failure mode and mitigation for the primary bottleneck?
338
+ ```
339
+
340
+ ### 🛑 Verification-Before-Completion (VBC) Protocol
341
+
342
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
343
+
344
+ - ❌ **Forbidden**: Recommending an architecture without first establishing scale numbers.
345
+ - ✅ **Required**: Every system design must include: QPS estimates, data model, caching strategy, and at least one identified bottleneck with a scaling plan.
@@ -1,146 +1,155 @@
1
- ---
2
- name: systematic-debugging
3
- description: Systematic debugging framework. Root-cause isolation, 4-phase methodology, hypothesis testing, log tracing, avoiding shotgun-surgery, memory allocation analysis, and empirical evidence gathering. Use when debugging complex, highly-coupled, or elusive bugs across mixed execution environments.
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
- ## Hallucination Traps (Read First)
11
- - ❌ Changing multiple things at once to fix a bug -> ✅ Change ONE variable at a time; multiple changes make it impossible to identify the fix
12
- - ❌ Assuming the bug is where the error message points -> ✅ The error location is often downstream; trace UP the call stack to find root cause
13
- - Not reproducing the bug before attempting a fix -> ✅ If you cannot reproduce it reliably, you cannot verify your fix works
14
-
15
- ---
16
-
17
-
18
- # Systematic Debugging — Root Cause Mastery
19
-
20
- ---
21
-
22
- ## 1. The 4-Phase Debugging Methodology
23
-
24
- Never jump straight into modifying code when a bug is reported.
25
-
26
- ### Phase 1: Replication & Isolation
27
- **Goal:** Prove the bug exists continuously and isolate the execution path.
28
- 1. Write a failing deterministic unit/integration test that replicates the exact condition.
29
- 2. Strip away all unnecessary layers (If the UI button fails to delete a user, curl the endpoint directly. Does the API fail? If yes, UI is fine, bug is in the backend/database).
30
-
31
- ### Phase 2: Hypothesis Generation
32
- **Goal:** Formulate logical explanations for the anomaly based on data, not guesses.
33
- - "Because the log shows `auth: false` even after successful token parse, the RBAC middleware must be overwriting the session."
34
-
35
- ### Phase 3: Evidence-Based Testing (The Probe)
36
- **Goal:** Prove or disprove the hypothesis without mutating the actual program functionality.
37
- - Insert strict logging probes: `logger.debug("Executing line 45. User.permissions:", user.permissions)`.
38
- - If the logs match your hypothesis, proceed. If they do not, discard the hypothesis.
39
-
40
- ### Phase 4: Resolution & Verification
41
- **Goal:** Apply the minimal surgical change required, then verify via tests.
42
- - Re-run the deterministic failing test created in Phase 1. It must now pass.
43
-
44
- ---
45
-
46
- ## 2. Advanced Diagnostic Vectors
47
-
48
- When pure logic errors are ruled out, look for environmental factors.
49
-
50
- **1. Race Conditions / Timing Bugs**
51
- - *Symptom:* The bug only happens 30% of the time, or depends on network speed.
52
- - *Cause:* Missing `await` statements, relying on asynchronous callbacks returning in a specific order, or concurrent database transacting.
53
-
54
- **2. State Leakage**
55
- - *Symptom:* The first operation works perfectly. The second consecutive operation fails mysteriously.
56
- - *Cause:* Global variables, cached HTTP clients, or React state lacking proper cleanup functions between unmounts.
57
-
58
- **3. Silent Failures (Swallowed Errors)**
59
- - *Symptom:* The application stops processing midway through an operation, but nothing is in the error logs.
60
- - *Cause:* Empty `catch (e) {}` blocks, unhandled promise rejections, or frontend elements conditionally rendering `null` on missing datasets.
61
-
62
- ---
63
-
64
- ## 3. The Bisection Method (Git Bisect)
65
-
66
- When a catastrophic bug appears in production but worked fine last week, use algorithmic isolation across the git history.
67
-
68
- ```bash
69
- git bisect start
70
- git bisect bad HEAD # The current state is broken
71
- git bisect good v1.4.0 # It worked fine in the last release
72
-
73
- # Git will now jump you exactly halfway between those commits.
74
- # Run your tests...
75
- git bisect bad # (If it failed)
76
- # Or...
77
- git bisect good # (If it passed)
78
-
79
- # Git will isolate the exact commit that introduced the bug in O(log N) steps.
80
- ```
81
-
82
- ---
83
-
84
- ## 4. Reading the Stack Trace Properly
85
-
86
- Do not skim. Stack traces tell the exact sequence of destruction.
87
-
88
- 1. **Top line:** The final fatal blow (e.g., `TypeError: Cannot read properties of undefined (reading 'map')`).
89
- 2. **First Application Function:** Scroll down past `node_modules` and framework internals. Find the absolute top-most function call that YOU wrote (e.g., `at UserList (src/components/UserList.tsx:45)`).
90
- 3. **The Parameter Conclusion:** Therefore, line 45 invoked `.map` on a variable that was `undefined`. Why did the parent layer pass `undefined` instead of `[]`?
91
-
92
- ---
93
-
94
-
95
- ---
96
-
97
-
98
-
99
- AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
100
-
101
- 1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
102
- 2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
103
- 3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
104
- 4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
105
- 5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
106
-
107
- ---
108
-
109
-
110
-
111
- **Slash command: `/review` or `/tribunal-full`**
112
- **Active reviewers: `logic-reviewer` · `security-auditor`**
113
-
114
- ### ❌ Forbidden AI Tropes
115
-
116
- 1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
117
- 2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
118
- 3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
119
-
120
-
121
-
122
- Review these questions before confirming output:
123
- ```
124
- ✅ Did I rely ONLY on real, verified tools and methods?
125
- ✅ Is this solution appropriately scoped to the user's constraints?
126
- ✅ Did I handle potential failure modes and edge cases?
127
- ✅ Have I avoided generic boilerplate that doesn't add value?
128
- ```
129
-
130
- ### 🛑 Verification-Before-Completion (VBC) Protocol
131
-
132
- **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
133
- - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
134
- - ✅ **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.
135
-
136
-
137
- ## Pre-Flight Checklist
138
- - [ ] Have I reviewed the user's specific constraints and requests?
139
- - [ ] Have I checked the environment for relevant existing implementations?
140
-
141
- ## VBC Protocol (Verification-Before-Completion)
142
- You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
1
+ ---
2
+ name: systematic-debugging
3
+ description: Systematic debugging framework. Root-cause isolation, 4-phase methodology, hypothesis testing, log tracing, avoiding shotgun-surgery, memory allocation analysis, and empirical evidence gathering. Use when debugging complex, highly-coupled, or elusive bugs across mixed execution environments.
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
+ routing:
9
+ domain: general
10
+ tier: basic
11
+ ---
12
+
13
+ ## Hallucination Traps (Read First)
14
+
15
+ - ❌ Changing multiple things at once to fix a bug -> ✅ Change ONE variable at a time; multiple changes make it impossible to identify the fix
16
+ - ❌ Assuming the bug is where the error message points -> ✅ The error location is often downstream; trace UP the call stack to find root cause
17
+ - ❌ Not reproducing the bug before attempting a fix -> ✅ If you cannot reproduce it reliably, you cannot verify your fix works
18
+
19
+ ---
20
+
21
+ # Systematic Debugging — Root Cause Mastery
22
+
23
+ ---
24
+
25
+ ## 1. The 4-Phase Debugging Methodology
26
+
27
+ Never jump straight into modifying code when a bug is reported.
28
+
29
+ ### Phase 1: Replication & Isolation
30
+
31
+ **Goal:** Prove the bug exists continuously and isolate the execution path.
32
+
33
+ 1. Write a failing deterministic unit/integration test that replicates the exact condition.
34
+ 2. Strip away all unnecessary layers (If the UI button fails to delete a user, curl the endpoint directly. Does the API fail? If yes, UI is fine, bug is in the backend/database).
35
+
36
+ ### Phase 2: Hypothesis Generation
37
+
38
+ **Goal:** Formulate logical explanations for the anomaly based on data, not guesses.
39
+
40
+ - "Because the log shows `auth: false` even after successful token parse, the RBAC middleware must be overwriting the session."
41
+
42
+ ### Phase 3: Evidence-Based Testing (The Probe)
43
+
44
+ **Goal:** Prove or disprove the hypothesis without mutating the actual program functionality.
45
+
46
+ - Insert strict logging probes: `logger.debug("Executing line 45. User.permissions:", user.permissions)`.
47
+ - If the logs match your hypothesis, proceed. If they do not, discard the hypothesis.
48
+
49
+ ### Phase 4: Resolution & Verification
50
+
51
+ **Goal:** Apply the minimal surgical change required, then verify via tests.
52
+
53
+ - Re-run the deterministic failing test created in Phase 1. It must now pass.
54
+
55
+ ---
56
+
57
+ ## 2. Advanced Diagnostic Vectors
58
+
59
+ When pure logic errors are ruled out, look for environmental factors.
60
+
61
+ **1. Race Conditions / Timing Bugs**
62
+
63
+ - _Symptom:_ The bug only happens 30% of the time, or depends on network speed.
64
+ - _Cause:_ Missing `await` statements, relying on asynchronous callbacks returning in a specific order, or concurrent database transacting.
65
+
66
+ **2. State Leakage**
67
+
68
+ - _Symptom:_ The first operation works perfectly. The second consecutive operation fails mysteriously.
69
+ - _Cause:_ Global variables, cached HTTP clients, or React state lacking proper cleanup functions between unmounts.
70
+
71
+ **3. Silent Failures (Swallowed Errors)**
72
+
73
+ - _Symptom:_ The application stops processing midway through an operation, but nothing is in the error logs.
74
+ - _Cause:_ Empty `catch (e) {}` blocks, unhandled promise rejections, or frontend elements conditionally rendering `null` on missing datasets.
75
+
76
+ ---
77
+
78
+ ## 3. The Bisection Method (Git Bisect)
79
+
80
+ When a catastrophic bug appears in production but worked fine last week, use algorithmic isolation across the git history.
81
+
82
+ ```bash
83
+ git bisect start
84
+ git bisect bad HEAD # The current state is broken
85
+ git bisect good v1.4.0 # It worked fine in the last release
86
+
87
+ # Git will now jump you exactly halfway between those commits.
88
+ # Run your tests...
89
+ git bisect bad # (If it failed)
90
+ # Or...
91
+ git bisect good # (If it passed)
92
+
93
+ # Git will isolate the exact commit that introduced the bug in O(log N) steps.
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 4. Reading the Stack Trace Properly
99
+
100
+ Do not skim. Stack traces tell the exact sequence of destruction.
143
101
 
102
+ 1. **Top line:** The final fatal blow (e.g., `TypeError: Cannot read properties of undefined (reading 'map')`).
103
+ 2. **First Application Function:** Scroll down past `node_modules` and framework internals. Find the absolute top-most function call that YOU wrote (e.g., `at UserList (src/components/UserList.tsx:45)`).
104
+ 3. **The Parameter Conclusion:** Therefore, line 45 invoked `.map` on a variable that was `undefined`. Why did the parent layer pass `undefined` instead of `[]`?
105
+
106
+ ---
107
+
108
+ ---
109
+
110
+ AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
111
+
112
+ 1. **Over-engineering:** Proposing complex abstractions or distributed systems when a simpler approach suffices.
113
+ 2. **Hallucinated Libraries/Methods:** Using non-existent methods or packages. Always `// VERIFY` or check `package.json` / `requirements.txt`.
114
+ 3. **Skipping Edge Cases:** Writing the "happy path" and ignoring error handling, timeouts, or data validation.
115
+ 4. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
116
+ 5. **Silent Degradation:** Catching and suppressing errors without logging or re-raising.
117
+
118
+ ---
119
+
120
+ **Slash command: `/review` or `/tribunal-full`**
121
+ **Active reviewers: `logic-reviewer` · `security-auditor`**
122
+
123
+ ### ❌ Forbidden AI Tropes
124
+
125
+ 1. **Blind Assumptions:** Never make an assumption without documenting it clearly with `// VERIFY: [reason]`.
126
+ 2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
127
+ 3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
128
+
129
+ Review these questions before confirming output:
130
+
131
+ ```
132
+ ✅ Did I rely ONLY on real, verified tools and methods?
133
+ ✅ Is this solution appropriately scoped to the user's constraints?
134
+ ✅ Did I handle potential failure modes and edge cases?
135
+ ✅ Have I avoided generic boilerplate that doesn't add value?
136
+ ```
137
+
138
+ ### 🛑 Verification-Before-Completion (VBC) Protocol
139
+
140
+ **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
141
+
142
+ - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
143
+ - ✅ **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.
144
+
145
+ ## Pre-Flight Checklist
146
+
147
+ - [ ] Have I reviewed the user's specific constraints and requests?
148
+ - [ ] Have I checked the environment for relevant existing implementations?
149
+
150
+ ## VBC Protocol (Verification-Before-Completion)
151
+
152
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
144
153
 
145
154
  ---
146
155
 
@@ -170,6 +179,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
170
179
  ### ✅ Pre-Flight Self-Audit
171
180
 
172
181
  Review these questions before confirming output:
182
+
173
183
  ```
174
184
  ✅ Did I rely ONLY on real, verified tools and methods?
175
185
  ✅ Is this solution appropriately scoped to the user's constraints?
@@ -180,5 +190,6 @@ Review these questions before confirming output:
180
190
  ### 🛑 Verification-Before-Completion (VBC) Protocol
181
191
 
182
192
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
193
+
183
194
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
184
195
  - ✅ **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.