tribunal-kit 4.2.0 → 4.3.1

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 (186) hide show
  1. package/.agent/ARCHITECTURE.md +21 -14
  2. package/.agent/agents/swarm-worker-contracts.md +5 -5
  3. package/.agent/agents/ui-ux-auditor.md +292 -0
  4. package/.agent/rules/GEMINI.md +8 -8
  5. package/.agent/scripts/__pycache__/_colors.cpython-311.pyc +0 -0
  6. package/.agent/scripts/__pycache__/_utils.cpython-311.pyc +0 -0
  7. package/.agent/scripts/__pycache__/case_law_manager.cpython-311.pyc +0 -0
  8. package/.agent/scripts/_colors.js +18 -0
  9. package/.agent/scripts/_utils.js +42 -0
  10. package/.agent/scripts/auto_preview.js +197 -0
  11. package/.agent/scripts/bundle_analyzer.js +290 -0
  12. package/.agent/scripts/case_law_manager.js +684 -0
  13. package/.agent/scripts/checklist.js +266 -0
  14. package/.agent/scripts/colors.js +17 -0
  15. package/.agent/scripts/compress_skills.js +141 -0
  16. package/.agent/scripts/consolidate_skills.js +149 -0
  17. package/.agent/scripts/context_broker.js +609 -0
  18. package/.agent/scripts/deep_compress.js +150 -0
  19. package/.agent/scripts/dependency_analyzer.js +272 -0
  20. package/.agent/scripts/graph_builder.js +199 -0
  21. package/.agent/scripts/graph_zoom.js +154 -0
  22. package/.agent/scripts/inner_loop_validator.js +465 -0
  23. package/.agent/scripts/lint_runner.js +187 -0
  24. package/.agent/scripts/minify_context.js +100 -0
  25. package/.agent/scripts/patch_skills_meta.js +156 -0
  26. package/.agent/scripts/patch_skills_output.js +244 -0
  27. package/.agent/scripts/schema_validator.js +297 -0
  28. package/.agent/scripts/security_scan.js +303 -0
  29. package/.agent/scripts/session_manager.js +276 -0
  30. package/.agent/scripts/skill_evolution.js +644 -0
  31. package/.agent/scripts/skill_integrator.js +313 -0
  32. package/.agent/scripts/strengthen_skills.js +193 -0
  33. package/.agent/scripts/strip_tribunal.js +47 -0
  34. package/.agent/scripts/swarm_dispatcher.js +360 -0
  35. package/.agent/scripts/test_runner.js +193 -0
  36. package/.agent/scripts/utils.js +32 -0
  37. package/.agent/scripts/verify_all.js +256 -0
  38. package/.agent/skills/agent-organizer/SKILL.md +12 -4
  39. package/.agent/skills/agentic-patterns/SKILL.md +12 -4
  40. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +12 -4
  41. package/.agent/skills/api-patterns/SKILL.md +209 -201
  42. package/.agent/skills/api-security-auditor/SKILL.md +12 -4
  43. package/.agent/skills/app-builder/SKILL.md +12 -4
  44. package/.agent/skills/app-builder/templates/SKILL.md +76 -68
  45. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +1 -1
  46. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +1 -1
  47. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +1 -1
  48. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +1 -1
  49. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +1 -1
  50. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +1 -1
  51. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +1 -1
  52. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +1 -1
  53. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
  54. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +1 -1
  55. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +1 -1
  56. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +1 -1
  57. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +1 -1
  58. package/.agent/skills/appflow-wireframe/SKILL.md +12 -4
  59. package/.agent/skills/architecture/SKILL.md +12 -4
  60. package/.agent/skills/authentication-best-practices/SKILL.md +12 -4
  61. package/.agent/skills/bash-linux/SKILL.md +12 -4
  62. package/.agent/skills/behavioral-modes/SKILL.md +12 -4
  63. package/.agent/skills/brainstorming/SKILL.md +12 -4
  64. package/.agent/skills/building-native-ui/SKILL.md +12 -4
  65. package/.agent/skills/clean-code/SKILL.md +12 -4
  66. package/.agent/skills/code-review-checklist/SKILL.md +12 -4
  67. package/.agent/skills/config-validator/SKILL.md +12 -4
  68. package/.agent/skills/csharp-developer/SKILL.md +12 -4
  69. package/.agent/skills/data-validation-schemas/SKILL.md +290 -282
  70. package/.agent/skills/database-design/SKILL.md +202 -194
  71. package/.agent/skills/deployment-procedures/SKILL.md +12 -4
  72. package/.agent/skills/devops-engineer/SKILL.md +12 -4
  73. package/.agent/skills/devops-incident-responder/SKILL.md +12 -4
  74. package/.agent/skills/doc.md +1 -1
  75. package/.agent/skills/documentation-templates/SKILL.md +12 -4
  76. package/.agent/skills/edge-computing/SKILL.md +12 -4
  77. package/.agent/skills/error-resilience/SKILL.md +390 -382
  78. package/.agent/skills/extract-design-system/SKILL.md +12 -4
  79. package/.agent/skills/framer-motion-expert/SKILL.md +206 -199
  80. package/.agent/skills/frontend-design/SKILL.md +163 -155
  81. package/.agent/skills/game-design-expert/SKILL.md +12 -4
  82. package/.agent/skills/game-engineering-expert/SKILL.md +12 -4
  83. package/.agent/skills/geo-fundamentals/SKILL.md +12 -4
  84. package/.agent/skills/github-operations/SKILL.md +12 -4
  85. package/.agent/skills/gsap-core/SKILL.md +54 -48
  86. package/.agent/skills/gsap-frameworks/SKILL.md +54 -48
  87. package/.agent/skills/gsap-performance/SKILL.md +54 -48
  88. package/.agent/skills/gsap-plugins/SKILL.md +54 -48
  89. package/.agent/skills/gsap-react/SKILL.md +54 -48
  90. package/.agent/skills/gsap-scrolltrigger/SKILL.md +54 -48
  91. package/.agent/skills/gsap-timeline/SKILL.md +54 -48
  92. package/.agent/skills/gsap-utils/SKILL.md +54 -48
  93. package/.agent/skills/i18n-localization/SKILL.md +12 -4
  94. package/.agent/skills/intelligent-routing/SKILL.md +41 -33
  95. package/.agent/skills/knowledge-graph/SKILL.md +36 -0
  96. package/.agent/skills/lint-and-validate/SKILL.md +12 -4
  97. package/.agent/skills/llm-engineering/SKILL.md +12 -4
  98. package/.agent/skills/local-first/SKILL.md +12 -4
  99. package/.agent/skills/mcp-builder/SKILL.md +12 -4
  100. package/.agent/skills/mobile-design/SKILL.md +225 -217
  101. package/.agent/skills/monorepo-management/SKILL.md +296 -288
  102. package/.agent/skills/motion-engineering/SKILL.md +195 -187
  103. package/.agent/skills/nextjs-react-expert/SKILL.md +196 -188
  104. package/.agent/skills/nodejs-best-practices/SKILL.md +12 -4
  105. package/.agent/skills/observability/SKILL.md +12 -4
  106. package/.agent/skills/parallel-agents/SKILL.md +12 -4
  107. package/.agent/skills/performance-profiling/SKILL.md +12 -4
  108. package/.agent/skills/plan-writing/SKILL.md +12 -4
  109. package/.agent/skills/platform-engineer/SKILL.md +12 -4
  110. package/.agent/skills/playwright-best-practices/SKILL.md +12 -4
  111. package/.agent/skills/powershell-windows/SKILL.md +12 -4
  112. package/.agent/skills/project-idioms/SKILL.md +12 -4
  113. package/.agent/skills/python-patterns/SKILL.md +12 -4
  114. package/.agent/skills/python-pro/SKILL.md +285 -277
  115. package/.agent/skills/react-specialist/SKILL.md +239 -231
  116. package/.agent/skills/readme-builder/SKILL.md +12 -4
  117. package/.agent/skills/realtime-patterns/SKILL.md +12 -4
  118. package/.agent/skills/red-team-tactics/SKILL.md +12 -4
  119. package/.agent/skills/rust-pro/SKILL.md +12 -4
  120. package/.agent/skills/seo-fundamentals/SKILL.md +12 -4
  121. package/.agent/skills/server-management/SKILL.md +12 -4
  122. package/.agent/skills/shadcn-ui-expert/SKILL.md +12 -4
  123. package/.agent/skills/skill-creator/SKILL.md +12 -4
  124. package/.agent/skills/sql-pro/SKILL.md +12 -4
  125. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +12 -4
  126. package/.agent/skills/swiftui-expert/SKILL.md +12 -4
  127. package/.agent/skills/systematic-debugging/SKILL.md +12 -4
  128. package/.agent/skills/tailwind-patterns/SKILL.md +12 -4
  129. package/.agent/skills/tdd-workflow/SKILL.md +12 -4
  130. package/.agent/skills/test-result-analyzer/SKILL.md +12 -4
  131. package/.agent/skills/testing-patterns/SKILL.md +12 -4
  132. package/.agent/skills/trend-researcher/SKILL.md +12 -4
  133. package/.agent/skills/typescript-advanced/SKILL.md +297 -289
  134. package/.agent/skills/ui-ux-pro-max/SKILL.md +12 -4
  135. package/.agent/skills/ui-ux-researcher/SKILL.md +12 -4
  136. package/.agent/skills/vue-expert/SKILL.md +237 -229
  137. package/.agent/skills/vulnerability-scanner/SKILL.md +12 -4
  138. package/.agent/skills/web-accessibility-auditor/SKILL.md +12 -4
  139. package/.agent/skills/web-design-guidelines/SKILL.md +12 -4
  140. package/.agent/skills/webapp-testing/SKILL.md +12 -4
  141. package/.agent/skills/whimsy-injector/SKILL.md +12 -4
  142. package/.agent/skills/workflow-optimizer/SKILL.md +12 -4
  143. package/.agent/workflows/audit.md +6 -6
  144. package/.agent/workflows/deploy.md +1 -1
  145. package/.agent/workflows/generate.md +23 -6
  146. package/.agent/workflows/session.md +5 -5
  147. package/.agent/workflows/swarm.md +2 -2
  148. package/README.md +242 -186
  149. package/bin/tribunal-kit.js +297 -57
  150. package/package.json +81 -77
  151. package/scripts/changelog.js +167 -0
  152. package/scripts/sync-version.js +81 -0
  153. package/scripts/validate-payload.js +73 -0
  154. package/.agent/scripts/__pycache__/auto_preview.cpython-311.pyc +0 -0
  155. package/.agent/scripts/__pycache__/bundle_analyzer.cpython-311.pyc +0 -0
  156. package/.agent/scripts/__pycache__/checklist.cpython-311.pyc +0 -0
  157. package/.agent/scripts/__pycache__/dependency_analyzer.cpython-311.pyc +0 -0
  158. package/.agent/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
  159. package/.agent/scripts/__pycache__/session_manager.cpython-311.pyc +0 -0
  160. package/.agent/scripts/__pycache__/skill_integrator.cpython-311.pyc +0 -0
  161. package/.agent/scripts/__pycache__/swarm_dispatcher.cpython-311.pyc +0 -0
  162. package/.agent/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
  163. package/.agent/scripts/__pycache__/verify_all.cpython-311.pyc +0 -0
  164. package/.agent/scripts/auto_preview.py +0 -180
  165. package/.agent/scripts/bundle_analyzer.py +0 -259
  166. package/.agent/scripts/case_law_manager.py +0 -755
  167. package/.agent/scripts/checklist.py +0 -209
  168. package/.agent/scripts/compress_skills.py +0 -167
  169. package/.agent/scripts/consolidate_skills.py +0 -173
  170. package/.agent/scripts/deep_compress.py +0 -202
  171. package/.agent/scripts/dependency_analyzer.py +0 -247
  172. package/.agent/scripts/lint_runner.py +0 -188
  173. package/.agent/scripts/minify_context.py +0 -80
  174. package/.agent/scripts/patch_skills_meta.py +0 -177
  175. package/.agent/scripts/patch_skills_output.py +0 -285
  176. package/.agent/scripts/schema_validator.py +0 -279
  177. package/.agent/scripts/security_scan.py +0 -224
  178. package/.agent/scripts/session_manager.py +0 -261
  179. package/.agent/scripts/skill_evolution.py +0 -563
  180. package/.agent/scripts/skill_integrator.py +0 -234
  181. package/.agent/scripts/strengthen_skills.py +0 -220
  182. package/.agent/scripts/strip_tribunal.py +0 -41
  183. package/.agent/scripts/swarm_dispatcher.py +0 -350
  184. package/.agent/scripts/test_runner.py +0 -192
  185. package/.agent/scripts/test_swarm_dispatcher.py +0 -163
  186. package/.agent/scripts/verify_all.py +0 -195
@@ -1,198 +1,198 @@
1
- ---
2
- name: database-design
3
- description: Database design mastery. Schema design with normalization, denormalization strategies, indexing, migration pipelines, ORM selection (Prisma/Drizzle/SQLAlchemy/EF Core), connection pooling, soft deletes, audit trails, multi-tenancy, and serverless database patterns. Use when designing schemas, choosing databases, planning migrations, or architecting data layers.
4
- allowed-tools: Read, Write, Edit, Glob, Grep
5
- version: 3.1.0
6
- last-updated: 2026-04-07
7
- applies-to-model: gemini-3-1-pro, claude-3-7-sonnet
8
- ---
9
-
10
- # Database Design — Schema & Architecture Mastery
11
-
12
- ## Hallucination Traps (Read First)
13
- - ❌ `TIMESTAMP` → ✅ Always `TIMESTAMPTZ` (with timezone). `TIMESTAMP` is ambiguous across timezones.
14
- - ❌ UUID v4 as primary key → ✅ UUID v7 (time-ordered) or `BIGINT GENERATED ALWAYS AS IDENTITY`. UUID v4 is random — destroys B-tree index performance on high-insert tables.
15
- - ❌ No index on foreign keys → ✅ PostgreSQL does NOT auto-index FK columns. Cascading deletes cause full table scans without them.
16
- - ❌ Adding `NOT NULL` column directly to a large table → ✅ Locks the entire table. Add as nullable, backfill in batches, then add constraint.
17
- - ❌ Soft delete without a partial index → ✅ Every query must filter `WHERE deleted_at IS NULL`. Add `CREATE INDEX ... WHERE deleted_at IS NULL` or use a view.
18
- - ❌ Serverless functions without a connection pooler → ✅ Each Lambda/Vercel invocation opens a new connection. Use PgBouncer or Supabase Supavisor — without it, you'll hit `max_connections` instantly.
19
-
20
- ---
21
-
22
- ## Database Selection
23
-
24
- ```
25
- Relational / Complex queries → PostgreSQL (primary choice)
26
- Serverless PG → Neon, Supabase
27
- Edge / Ultra-low latency → Turso (SQLite @ edge)
28
- Simple / Embedded → SQLite
29
- Global distribution (MySQL) → PlanetScale (no FK support)
30
-
31
- Key-value / Cache → Redis / Valkey / Upstash
32
- Document store → MongoDB / Firestore
33
- Full-text search → PostgreSQL tsvector (built-in) or Meilisearch / Typesense
34
- Time-series → TimescaleDB / ClickHouse
35
- Vector (AI embeddings) → pgvector (PostgreSQL ext) / Pinecone / Weaviate
36
- ```
37
-
38
- ---
39
-
40
- ## Standard Table Template
41
-
42
- ```sql
43
- CREATE TABLE users (
44
- id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
45
- -- OR: id UUID DEFAULT gen_random_uuid() PRIMARY KEY (use v7 for perf)
46
- email TEXT NOT NULL UNIQUE,
47
- name TEXT NOT NULL,
48
- role TEXT NOT NULL DEFAULT 'user' CHECK (role IN ('admin', 'user', 'moderator')),
49
- is_active BOOLEAN NOT NULL DEFAULT true,
50
- metadata JSONB DEFAULT '{}',
51
- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
52
- updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
53
- deleted_at TIMESTAMPTZ -- soft delete
54
- );
55
-
56
- -- Required: auto-update updated_at
57
- CREATE OR REPLACE FUNCTION update_updated_at() RETURNS TRIGGER AS $$
58
- BEGIN NEW.updated_at = now(); RETURN NEW; END; $$ LANGUAGE plpgsql;
59
- CREATE TRIGGER trg_users_updated_at BEFORE UPDATE ON users FOR EACH ROW EXECUTE FUNCTION update_updated_at();
60
-
61
- -- Required indexes
62
- CREATE INDEX idx_users_email ON users (email);
63
- CREATE INDEX idx_users_active ON users (email) WHERE deleted_at IS NULL; -- partial index for soft delete
64
- CREATE INDEX idx_users_created_at ON users (created_at DESC);
65
- ```
66
-
67
- ---
68
-
69
- ## Schema Patterns
70
-
71
- ### Relationships
72
- ```sql
73
- -- One-to-Many: FK on the "many" side + INDEX
74
- CREATE TABLE posts (
75
- id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
76
- author_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
77
- ...
78
- );
79
- CREATE INDEX idx_posts_author_id ON posts (author_id); -- REQUIRED in Postgres
80
-
81
- -- Many-to-Many: junction table with composite PK
82
- CREATE TABLE post_tags (
83
- post_id BIGINT NOT NULL REFERENCES posts(id) ON DELETE CASCADE,
84
- tag_id BIGINT NOT NULL REFERENCES tags(id) ON DELETE CASCADE,
85
- PRIMARY KEY (post_id, tag_id)
86
- );
87
- CREATE INDEX idx_post_tags_tag_id ON post_tags (tag_id); -- index the non-PK side
88
- ```
89
-
90
- ### Multi-Tenancy
91
- ```sql
92
- -- Pattern 1: tenant_id column (simplest — enforce via RLS)
93
- ALTER TABLE projects ENABLE ROW LEVEL SECURITY;
94
- CREATE POLICY tenant_isolation ON projects
95
- USING (tenant_id = current_setting('app.current_tenant_id')::bigint);
96
-
97
- -- Pattern 2: Schema per tenant (better isolation, harder migrations)
98
- -- CREATE SCHEMA tenant_acme;
99
-
100
- -- Pattern 3: DB per tenant — only for compliance/regulatory needs
101
- ```
102
-
103
- ---
104
-
105
- ## ORM Selection
106
-
107
- | ORM | Best For | Trade-offs |
108
- |-----|----------|------------|
109
- | **Drizzle** | Edge, TypeScript, bundle-size sensitive | Newer, fewer examples |
110
- | **Prisma** | DX, schema management, Prisma Studio | Heavy, NOT edge-compatible |
111
- | **Kysely** | Type-safe SQL builder, full control | Manual migrations |
112
- | **Raw SQL** | Complex queries, performance-critical | Manual type safety |
113
- | **SQLAlchemy 2.0** | Python async ecosystem | Python only |
114
-
115
- ```typescript
116
- // Drizzle — SQL-like, edge-compatible
117
- const result = await db.select({ id: users.id, name: users.name }).from(users)
118
- .where(and(eq(users.role, "admin"), eq(users.isActive, true)))
119
- .orderBy(desc(users.createdAt)).limit(20);
120
-
121
- // Prisma — ❌ TRAP: can't express complex joins natively → use prisma.$queryRaw<Type>
122
- const user = await prisma.user.findUnique({ where: { email }, include: { posts: { take: 10 } } });
123
- ```
124
-
125
- ---
126
-
127
- ## Migrations (Zero-Downtime Strategy)
128
-
129
- ```sql
130
- -- Safe column add on a large production table:
131
- -- Step 1: Add nullable (no lock)
132
- ALTER TABLE users ADD COLUMN phone TEXT;
133
- -- Step 2: Backfill in batches (non-blocking)
134
- UPDATE users SET phone = '' WHERE phone IS NULL AND id BETWEEN 1 AND 10000;
135
- -- Step 3: Add constraint AFTER all code deploys write the column
136
- ALTER TABLE users ALTER COLUMN phone SET NOT NULL;
137
- ```
138
-
139
- **Migration Rules:**
140
- - Never modify a migration already applied to production — create a new one
141
- - Remove column in 2 deploys: first remove all code references, then `DROP COLUMN`
142
- - `CREATE INDEX CONCURRENTLY` to avoid table locks on existing data
143
- - Test migrations against a copy of production data before running live
144
-
145
- ---
146
-
147
- ## Indexing Reference
148
-
149
- | Index Type | Use For |
150
- |------------|---------|
151
- | **B-tree** | General purpose — equality & range queries (default) |
152
- | **Hash** | Equality-only lookups (faster than B-tree for =) |
153
- | **GIN** | JSONB, arrays, full-text (`tsvector`) |
154
- | **GiST** | Geometric, range types |
155
- | **HNSW / IVFFlat** | Vector similarity (pgvector) |
156
-
157
- **Composite index column order:** equality columns first → range columns last → most selective first
158
-
159
- ---
160
-
161
- ## Audit Trail
162
-
163
- ```sql
164
- CREATE TABLE audit_log (
165
- id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
166
- table_name TEXT NOT NULL, record_id BIGINT NOT NULL,
167
- action TEXT NOT NULL CHECK (action IN ('INSERT', 'UPDATE', 'DELETE')),
168
- old_data JSONB, new_data JSONB,
169
- changed_by BIGINT REFERENCES users(id),
170
- changed_at TIMESTAMPTZ NOT NULL DEFAULT now()
171
- );
172
- CREATE INDEX idx_audit_log_table_record ON audit_log (table_name, record_id);
173
- CREATE INDEX idx_audit_log_changed_at ON audit_log USING brin (changed_at); -- BRIN for time-ordered append-only tables
174
- ```
175
-
176
- ---
177
-
178
- ## Connection Pooling
179
-
180
- ```
181
- Without pooling: 100 concurrent requests → 100 DB connections → overwhelms DB
182
- With pooling: 100 concurrent requests → 10–20 reused connections
183
-
184
- Sizing formula: max_connections = (cpu_cores × 2) + disk_spindles (typically 25–50)
185
-
186
- Poolers:
187
- PgBouncer → External, most common for self-hosted Postgres
188
- Prisma Accelerate → Managed, for Prisma projects
189
- Supabase Supavisor → Managed, for Supabase projects
190
- ```
1
+ ---
2
+ name: database-design
3
+ description: Database design mastery. Schema design with normalization, denormalization strategies, indexing, migration pipelines, ORM selection (Prisma/Drizzle/SQLAlchemy/EF Core), connection pooling, soft deletes, audit trails, multi-tenancy, and serverless database patterns. Use when designing schemas, choosing databases, planning migrations, or architecting data layers.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep
5
+ version: 3.1.0
6
+ last-updated: 2026-04-07
7
+ applies-to-model: gemini-3-1-pro, claude-3-7-sonnet
8
+ ---
9
+
10
+ # Database Design — Schema & Architecture Mastery
11
+
12
+ ## Hallucination Traps (Read First)
13
+ - ❌ `TIMESTAMP` → ✅ Always `TIMESTAMPTZ` (with timezone). `TIMESTAMP` is ambiguous across timezones.
14
+ - ❌ UUID v4 as primary key → ✅ UUID v7 (time-ordered) or `BIGINT GENERATED ALWAYS AS IDENTITY`. UUID v4 is random — destroys B-tree index performance on high-insert tables.
15
+ - ❌ No index on foreign keys → ✅ PostgreSQL does NOT auto-index FK columns. Cascading deletes cause full table scans without them.
16
+ - ❌ Adding `NOT NULL` column directly to a large table → ✅ Locks the entire table. Add as nullable, backfill in batches, then add constraint.
17
+ - ❌ Soft delete without a partial index → ✅ Every query must filter `WHERE deleted_at IS NULL`. Add `CREATE INDEX ... WHERE deleted_at IS NULL` or use a view.
18
+ - ❌ Serverless functions without a connection pooler → ✅ Each Lambda/Vercel invocation opens a new connection. Use PgBouncer or Supabase Supavisor — without it, you'll hit `max_connections` instantly.
19
+
20
+ ---
21
+
22
+ ## Database Selection
23
+
24
+ ```
25
+ Relational / Complex queries → PostgreSQL (primary choice)
26
+ Serverless PG → Neon, Supabase
27
+ Edge / Ultra-low latency → Turso (SQLite @ edge)
28
+ Simple / Embedded → SQLite
29
+ Global distribution (MySQL) → PlanetScale (no FK support)
191
30
 
31
+ Key-value / Cache → Redis / Valkey / Upstash
32
+ Document store → MongoDB / Firestore
33
+ Full-text search → PostgreSQL tsvector (built-in) or Meilisearch / Typesense
34
+ Time-series → TimescaleDB / ClickHouse
35
+ Vector (AI embeddings) → pgvector (PostgreSQL ext) / Pinecone / Weaviate
36
+ ```
37
+
38
+ ---
39
+
40
+ ## Standard Table Template
41
+
42
+ ```sql
43
+ CREATE TABLE users (
44
+ id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
45
+ -- OR: id UUID DEFAULT gen_random_uuid() PRIMARY KEY (use v7 for perf)
46
+ email TEXT NOT NULL UNIQUE,
47
+ name TEXT NOT NULL,
48
+ role TEXT NOT NULL DEFAULT 'user' CHECK (role IN ('admin', 'user', 'moderator')),
49
+ is_active BOOLEAN NOT NULL DEFAULT true,
50
+ metadata JSONB DEFAULT '{}',
51
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
52
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
53
+ deleted_at TIMESTAMPTZ -- soft delete
54
+ );
55
+
56
+ -- Required: auto-update updated_at
57
+ CREATE OR REPLACE FUNCTION update_updated_at() RETURNS TRIGGER AS $$
58
+ BEGIN NEW.updated_at = now(); RETURN NEW; END; $$ LANGUAGE plpgsql;
59
+ CREATE TRIGGER trg_users_updated_at BEFORE UPDATE ON users FOR EACH ROW EXECUTE FUNCTION update_updated_at();
60
+
61
+ -- Required indexes
62
+ CREATE INDEX idx_users_email ON users (email);
63
+ CREATE INDEX idx_users_active ON users (email) WHERE deleted_at IS NULL; -- partial index for soft delete
64
+ CREATE INDEX idx_users_created_at ON users (created_at DESC);
65
+ ```
192
66
 
193
67
  ---
194
68
 
195
- ## 🤖 LLM-Specific Traps
69
+ ## Schema Patterns
70
+
71
+ ### Relationships
72
+ ```sql
73
+ -- One-to-Many: FK on the "many" side + INDEX
74
+ CREATE TABLE posts (
75
+ id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
76
+ author_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
77
+ ...
78
+ );
79
+ CREATE INDEX idx_posts_author_id ON posts (author_id); -- REQUIRED in Postgres
80
+
81
+ -- Many-to-Many: junction table with composite PK
82
+ CREATE TABLE post_tags (
83
+ post_id BIGINT NOT NULL REFERENCES posts(id) ON DELETE CASCADE,
84
+ tag_id BIGINT NOT NULL REFERENCES tags(id) ON DELETE CASCADE,
85
+ PRIMARY KEY (post_id, tag_id)
86
+ );
87
+ CREATE INDEX idx_post_tags_tag_id ON post_tags (tag_id); -- index the non-PK side
88
+ ```
89
+
90
+ ### Multi-Tenancy
91
+ ```sql
92
+ -- Pattern 1: tenant_id column (simplest — enforce via RLS)
93
+ ALTER TABLE projects ENABLE ROW LEVEL SECURITY;
94
+ CREATE POLICY tenant_isolation ON projects
95
+ USING (tenant_id = current_setting('app.current_tenant_id')::bigint);
96
+
97
+ -- Pattern 2: Schema per tenant (better isolation, harder migrations)
98
+ -- CREATE SCHEMA tenant_acme;
99
+
100
+ -- Pattern 3: DB per tenant — only for compliance/regulatory needs
101
+ ```
102
+
103
+ ---
104
+
105
+ ## ORM Selection
106
+
107
+ | ORM | Best For | Trade-offs |
108
+ |-----|----------|------------|
109
+ | **Drizzle** | Edge, TypeScript, bundle-size sensitive | Newer, fewer examples |
110
+ | **Prisma** | DX, schema management, Prisma Studio | Heavy, NOT edge-compatible |
111
+ | **Kysely** | Type-safe SQL builder, full control | Manual migrations |
112
+ | **Raw SQL** | Complex queries, performance-critical | Manual type safety |
113
+ | **SQLAlchemy 2.0** | Python async ecosystem | Python only |
114
+
115
+ ```typescript
116
+ // Drizzle — SQL-like, edge-compatible
117
+ const result = await db.select({ id: users.id, name: users.name }).from(users)
118
+ .where(and(eq(users.role, "admin"), eq(users.isActive, true)))
119
+ .orderBy(desc(users.createdAt)).limit(20);
120
+
121
+ // Prisma — ❌ TRAP: can't express complex joins natively → use prisma.$queryRaw<Type>
122
+ const user = await prisma.user.findUnique({ where: { email }, include: { posts: { take: 10 } } });
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Migrations (Zero-Downtime Strategy)
128
+
129
+ ```sql
130
+ -- Safe column add on a large production table:
131
+ -- Step 1: Add nullable (no lock)
132
+ ALTER TABLE users ADD COLUMN phone TEXT;
133
+ -- Step 2: Backfill in batches (non-blocking)
134
+ UPDATE users SET phone = '' WHERE phone IS NULL AND id BETWEEN 1 AND 10000;
135
+ -- Step 3: Add constraint AFTER all code deploys write the column
136
+ ALTER TABLE users ALTER COLUMN phone SET NOT NULL;
137
+ ```
138
+
139
+ **Migration Rules:**
140
+ - Never modify a migration already applied to production — create a new one
141
+ - Remove column in 2 deploys: first remove all code references, then `DROP COLUMN`
142
+ - `CREATE INDEX CONCURRENTLY` to avoid table locks on existing data
143
+ - Test migrations against a copy of production data before running live
144
+
145
+ ---
146
+
147
+ ## Indexing Reference
148
+
149
+ | Index Type | Use For |
150
+ |------------|---------|
151
+ | **B-tree** | General purpose — equality & range queries (default) |
152
+ | **Hash** | Equality-only lookups (faster than B-tree for =) |
153
+ | **GIN** | JSONB, arrays, full-text (`tsvector`) |
154
+ | **GiST** | Geometric, range types |
155
+ | **HNSW / IVFFlat** | Vector similarity (pgvector) |
156
+
157
+ **Composite index column order:** equality columns first → range columns last → most selective first
158
+
159
+ ---
160
+
161
+ ## Audit Trail
162
+
163
+ ```sql
164
+ CREATE TABLE audit_log (
165
+ id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
166
+ table_name TEXT NOT NULL, record_id BIGINT NOT NULL,
167
+ action TEXT NOT NULL CHECK (action IN ('INSERT', 'UPDATE', 'DELETE')),
168
+ old_data JSONB, new_data JSONB,
169
+ changed_by BIGINT REFERENCES users(id),
170
+ changed_at TIMESTAMPTZ NOT NULL DEFAULT now()
171
+ );
172
+ CREATE INDEX idx_audit_log_table_record ON audit_log (table_name, record_id);
173
+ CREATE INDEX idx_audit_log_changed_at ON audit_log USING brin (changed_at); -- BRIN for time-ordered append-only tables
174
+ ```
175
+
176
+ ---
177
+
178
+ ## Connection Pooling
179
+
180
+ ```
181
+ Without pooling: 100 concurrent requests → 100 DB connections → overwhelms DB
182
+ With pooling: 100 concurrent requests → 10–20 reused connections
183
+
184
+ Sizing formula: max_connections = (cpu_cores × 2) + disk_spindles (typically 25–50)
185
+
186
+ Poolers:
187
+ PgBouncer → External, most common for self-hosted Postgres
188
+ Prisma Accelerate → Managed, for Prisma projects
189
+ Supabase Supavisor → Managed, for Supabase projects
190
+ ```
191
+
192
+
193
+ ---
194
+
195
+
196
196
 
197
197
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
198
198
 
@@ -204,7 +204,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
204
204
 
205
205
  ---
206
206
 
207
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
207
+
208
208
 
209
209
  **Slash command: `/review` or `/tribunal-full`**
210
210
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -215,7 +215,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
215
215
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
216
216
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
217
217
 
218
- ### ✅ Pre-Flight Self-Audit
218
+
219
219
 
220
220
  Review these questions before confirming output:
221
221
  ```
@@ -229,4 +229,12 @@ Review these questions before confirming output:
229
229
 
230
230
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
231
231
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
232
- - ✅ **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.
232
+ - ✅ **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.
233
+
234
+
235
+ ## Pre-Flight Checklist
236
+ - [ ] Have I reviewed the user's specific constraints and requests?
237
+ - [ ] Have I checked the environment for relevant existing implementations?
238
+
239
+ ## VBC Protocol (Verification-Before-Completion)
240
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -121,7 +121,7 @@ If the answer relies on "recompiling the old git commit," you have failed.
121
121
 
122
122
  ---
123
123
 
124
- ## 🤖 LLM-Specific Traps
124
+
125
125
 
126
126
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
127
127
 
@@ -133,7 +133,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
133
133
 
134
134
  ---
135
135
 
136
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
136
+
137
137
 
138
138
  **Slash command: `/review` or `/tribunal-full`**
139
139
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -144,7 +144,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
144
144
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
145
145
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
146
146
 
147
- ### ✅ Pre-Flight Self-Audit
147
+
148
148
 
149
149
  Review these questions before confirming output:
150
150
  ```
@@ -158,4 +158,12 @@ Review these questions before confirming output:
158
158
 
159
159
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
160
160
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
161
- - ✅ **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.
161
+ - ✅ **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.
162
+
163
+
164
+ ## Pre-Flight Checklist
165
+ - [ ] Have I reviewed the user's specific constraints and requests?
166
+ - [ ] Have I checked the environment for relevant existing implementations?
167
+
168
+ ## VBC Protocol (Verification-Before-Completion)
169
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -297,7 +297,7 @@ Security:
297
297
 
298
298
  ---
299
299
 
300
- ## 🤖 LLM-Specific Traps
300
+
301
301
 
302
302
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
303
303
 
@@ -309,7 +309,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
309
309
 
310
310
  ---
311
311
 
312
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
312
+
313
313
 
314
314
  **Slash command: `/review` or `/tribunal-full`**
315
315
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -320,7 +320,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
320
320
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
321
321
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
322
322
 
323
- ### ✅ Pre-Flight Self-Audit
323
+
324
324
 
325
325
  Review these questions before confirming output:
326
326
  ```
@@ -334,4 +334,12 @@ Review these questions before confirming output:
334
334
 
335
335
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
336
336
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
337
- - ✅ **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.
337
+ - ✅ **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.
338
+
339
+
340
+ ## Pre-Flight Checklist
341
+ - [ ] Have I reviewed the user's specific constraints and requests?
342
+ - [ ] Have I checked the environment for relevant existing implementations?
343
+
344
+ ## VBC Protocol (Verification-Before-Completion)
345
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -89,7 +89,7 @@ Incident response does not end when the system recovers. It ends when the system
89
89
 
90
90
  ---
91
91
 
92
- ## 🤖 LLM-Specific Traps
92
+
93
93
 
94
94
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
95
95
 
@@ -101,7 +101,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
101
101
 
102
102
  ---
103
103
 
104
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
104
+
105
105
 
106
106
  **Slash command: `/review` or `/tribunal-full`**
107
107
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -112,7 +112,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
112
112
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
113
113
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
114
114
 
115
- ### ✅ Pre-Flight Self-Audit
115
+
116
116
 
117
117
  Review these questions before confirming output:
118
118
  ```
@@ -126,4 +126,12 @@ Review these questions before confirming output:
126
126
 
127
127
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
128
128
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
129
- - ✅ **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.
129
+ - ✅ **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.
130
+
131
+
132
+ ## Pre-Flight Checklist
133
+ - [ ] Have I reviewed the user's specific constraints and requests?
134
+ - [ ] Have I checked the environment for relevant existing implementations?
135
+
136
+ ## VBC Protocol (Verification-Before-Completion)
137
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -174,4 +174,4 @@ By creating Skills, you transform a general AI model into an expert for your pro
174
174
  - ✅ Automatically add license headers
175
175
  - ✅ The Agent automatically knows how to work with your team
176
176
 
177
- Instead of constantly reminding the AI to "remember to add the license" or "fix the commit format," now the Agent will do it automatically!
177
+ Instead of constantly reminding the AI to "remember to add the license" or "fix the commit format," now the Agent will do it automatically!
@@ -231,7 +231,7 @@ Evidence: [link to terminal output, test result, or file diff]
231
231
 
232
232
  ---
233
233
 
234
- ## 🤖 LLM-Specific Traps
234
+
235
235
 
236
236
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
237
237
 
@@ -243,7 +243,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
243
243
 
244
244
  ---
245
245
 
246
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
246
+
247
247
 
248
248
  **Slash command: `/review` or `/tribunal-full`**
249
249
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -254,7 +254,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
254
254
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
255
255
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
256
256
 
257
- ### ✅ Pre-Flight Self-Audit
257
+
258
258
 
259
259
  Review these questions before confirming output:
260
260
  ```
@@ -268,4 +268,12 @@ Review these questions before confirming output:
268
268
 
269
269
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
270
270
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
271
- - ✅ **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.
271
+ - ✅ **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.
272
+
273
+
274
+ ## Pre-Flight Checklist
275
+ - [ ] Have I reviewed the user's specific constraints and requests?
276
+ - [ ] Have I checked the environment for relevant existing implementations?
277
+
278
+ ## VBC Protocol (Verification-Before-Completion)
279
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
@@ -133,7 +133,7 @@ export class ChatRoom {
133
133
 
134
134
  ---
135
135
 
136
- ## 🤖 LLM-Specific Traps
136
+
137
137
 
138
138
  AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
139
139
 
@@ -145,7 +145,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
145
145
 
146
146
  ---
147
147
 
148
- ## 🏛️ Tribunal Integration (Anti-Hallucination)
148
+
149
149
 
150
150
  **Slash command: `/review` or `/tribunal-full`**
151
151
  **Active reviewers: `logic-reviewer` · `security-auditor`**
@@ -156,7 +156,7 @@ AI coding assistants often fall into specific bad habits when dealing with this
156
156
  2. **Silent Degradation:** Catching and suppressing errors without logging or handling.
157
157
  3. **Context Amnesia:** Forgetting the user's constraints and offering generic advice instead of tailored solutions.
158
158
 
159
- ### ✅ Pre-Flight Self-Audit
159
+
160
160
 
161
161
  Review these questions before confirming output:
162
162
  ```
@@ -170,4 +170,12 @@ Review these questions before confirming output:
170
170
 
171
171
  **CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
172
172
  - ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
173
- - ✅ **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.
173
+ - ✅ **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.
174
+
175
+
176
+ ## Pre-Flight Checklist
177
+ - [ ] Have I reviewed the user's specific constraints and requests?
178
+ - [ ] Have I checked the environment for relevant existing implementations?
179
+
180
+ ## VBC Protocol (Verification-Before-Completion)
181
+ You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.