superkit-mcp-server 1.2.2 → 1.2.3

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 (170) hide show
  1. package/ARCHITECTURE.md +102 -102
  2. package/README.md +71 -71
  3. package/SUPERKIT.md +168 -168
  4. package/agents/code-archaeologist.md +106 -106
  5. package/agents/coder.md +90 -90
  6. package/agents/data-engineer.md +28 -28
  7. package/agents/devops-engineer.md +242 -242
  8. package/agents/git-manager.md +203 -203
  9. package/agents/orchestrator.md +420 -420
  10. package/agents/penetration-tester.md +188 -188
  11. package/agents/performance-optimizer.md +187 -187
  12. package/agents/planner.md +270 -270
  13. package/agents/qa-automation-engineer.md +103 -103
  14. package/agents/quant-developer.md +32 -32
  15. package/agents/reviewer.md +100 -100
  16. package/agents/scout.md +222 -222
  17. package/agents/security-auditor.md +3 -2
  18. package/agents/tester.md +274 -274
  19. package/agents/ui-designer.md +208 -208
  20. package/build/index.js +18 -9
  21. package/build/tools/__tests__/loggerTools.test.js +5 -5
  22. package/build/tools/archTools.js +2 -19
  23. package/build/tools/autoPreview.js +2 -2
  24. package/build/tools/compoundTools.js +4 -4
  25. package/build/tools/docsTools.js +5 -10
  26. package/build/tools/loggerTools.js +1 -1
  27. package/build/tools/todoTools.js +39 -39
  28. package/build/tools/validators/__tests__/apiSchema.test.js +23 -23
  29. package/build/tools/validators/__tests__/convertRules.test.js +5 -5
  30. package/build/tools/validators/__tests__/frontendDesign.test.js +12 -12
  31. package/build/tools/validators/__tests__/geoChecker.test.js +19 -19
  32. package/build/tools/validators/__tests__/mobileAudit.test.js +12 -12
  33. package/build/tools/validators/__tests__/reactPerformanceChecker.test.js +17 -17
  34. package/build/tools/validators/__tests__/securityScan.test.js +6 -6
  35. package/build/tools/validators/__tests__/seoChecker.test.js +16 -16
  36. package/build/tools/validators/__tests__/typeCoverage.test.js +14 -14
  37. package/build/tools/validators/convertRules.js +2 -2
  38. package/commands/README.md +122 -122
  39. package/commands/ask.toml +72 -72
  40. package/commands/brainstorm.toml +119 -119
  41. package/commands/chat.toml +77 -77
  42. package/commands/code-preview.toml +37 -37
  43. package/commands/code.toml +28 -28
  44. package/commands/content.toml +200 -200
  45. package/commands/cook.toml +77 -77
  46. package/commands/copywrite.toml +131 -131
  47. package/commands/db.toml +192 -192
  48. package/commands/debug.toml +166 -166
  49. package/commands/design.toml +158 -158
  50. package/commands/dev-rules.toml +14 -14
  51. package/commands/do.toml +117 -117
  52. package/commands/doc-rules.toml +14 -14
  53. package/commands/docs.toml +148 -148
  54. package/commands/fix.toml +440 -440
  55. package/commands/fullstack.toml +175 -175
  56. package/commands/git.toml +235 -235
  57. package/commands/help.toml +84 -84
  58. package/commands/integrate.toml +127 -127
  59. package/commands/journal.toml +136 -136
  60. package/commands/kit-setup.toml +40 -40
  61. package/commands/mcp.toml +183 -183
  62. package/commands/orchestration.toml +15 -15
  63. package/commands/plan.toml +171 -171
  64. package/commands/pm.toml +148 -148
  65. package/commands/pr.toml +50 -50
  66. package/commands/project.toml +32 -32
  67. package/commands/research.toml +117 -117
  68. package/commands/review-pr.toml +63 -63
  69. package/commands/review.toml +190 -190
  70. package/commands/scout-ext.toml +97 -97
  71. package/commands/scout.toml +79 -79
  72. package/commands/screenshot.toml +65 -65
  73. package/commands/session.toml +102 -102
  74. package/commands/skill.toml +384 -384
  75. package/commands/status.toml +22 -22
  76. package/commands/team.toml +56 -56
  77. package/commands/test.toml +164 -164
  78. package/commands/ticket.toml +70 -70
  79. package/commands/use.toml +106 -106
  80. package/commands/video.toml +83 -83
  81. package/commands/watzup.toml +71 -71
  82. package/commands/workflow.toml +14 -14
  83. package/package.json +35 -35
  84. package/skills/meta/README.md +30 -30
  85. package/skills/meta/api-design/SKILL.md +134 -134
  86. package/skills/meta/code-review/SKILL.md +44 -44
  87. package/skills/meta/code-review/checklists/pre-merge.md +25 -25
  88. package/skills/meta/code-review/workflows/architecture-pass.md +26 -26
  89. package/skills/meta/code-review/workflows/performance-pass.md +27 -27
  90. package/skills/meta/code-review/workflows/security-pass.md +29 -29
  91. package/skills/meta/compound-docs/SKILL.md +133 -133
  92. package/skills/meta/debug/SKILL.md +40 -40
  93. package/skills/meta/debug/templates/bug-report.template.md +31 -31
  94. package/skills/meta/debug/workflows/reproduce-issue.md +20 -20
  95. package/skills/meta/docker/SKILL.md +126 -126
  96. package/skills/meta/examples/supabase/SKILL.md +46 -46
  97. package/skills/meta/examples/supabase/references/best-practices.md +319 -319
  98. package/skills/meta/examples/supabase/references/common-patterns.md +373 -373
  99. package/skills/meta/examples/supabase/templates/migration-template.sql +49 -49
  100. package/skills/meta/examples/supabase/templates/rls-policy-template.sql +77 -77
  101. package/skills/meta/examples/supabase/workflows/debugging.md +260 -260
  102. package/skills/meta/examples/supabase/workflows/migration-workflow.md +211 -211
  103. package/skills/meta/examples/supabase/workflows/rls-policies.md +244 -244
  104. package/skills/meta/examples/supabase/workflows/schema-design.md +321 -321
  105. package/skills/meta/file-todos/SKILL.md +88 -88
  106. package/skills/meta/mobile/SKILL.md +140 -140
  107. package/skills/meta/nextjs/SKILL.md +101 -101
  108. package/skills/meta/performance/SKILL.md +130 -130
  109. package/skills/meta/react-patterns/SKILL.md +83 -83
  110. package/skills/meta/security/SKILL.md +114 -114
  111. package/skills/meta/session-resume/SKILL.md +96 -96
  112. package/skills/meta/tailwind/SKILL.md +139 -139
  113. package/skills/meta/testing/SKILL.md +43 -43
  114. package/skills/meta/testing/references/vitest-patterns.md +45 -45
  115. package/skills/meta/testing/templates/component-test.template.tsx +37 -37
  116. package/skills/tech/alpha-vantage/SKILL.md +142 -142
  117. package/skills/tech/alpha-vantage/references/commodities.md +153 -153
  118. package/skills/tech/alpha-vantage/references/economic-indicators.md +158 -158
  119. package/skills/tech/alpha-vantage/references/forex-crypto.md +154 -154
  120. package/skills/tech/alpha-vantage/references/fundamentals.md +223 -223
  121. package/skills/tech/alpha-vantage/references/intelligence.md +138 -138
  122. package/skills/tech/alpha-vantage/references/options.md +93 -93
  123. package/skills/tech/alpha-vantage/references/technical-indicators.md +374 -374
  124. package/skills/tech/alpha-vantage/references/time-series.md +157 -157
  125. package/skills/tech/doc.md +6 -6
  126. package/skills/tech/financial-modeling/SKILL.md +18 -18
  127. package/skills/tech/financial-modeling/skills/3-statements/SKILL.md +368 -368
  128. package/skills/tech/financial-modeling/skills/3-statements/references/formatting.md +118 -118
  129. package/skills/tech/financial-modeling/skills/3-statements/references/formulas.md +292 -292
  130. package/skills/tech/financial-modeling/skills/3-statements/references/sec-filings.md +125 -125
  131. package/skills/tech/financial-modeling/skills/dcf-model/SKILL.md +1210 -1210
  132. package/skills/tech/financial-modeling/skills/dcf-model/TROUBLESHOOTING.md +40 -40
  133. package/skills/tech/financial-modeling/skills/dcf-model/requirements.txt +8 -8
  134. package/skills/tech/financial-modeling/skills/dcf-model/scripts/validate_dcf.py +292 -292
  135. package/skills/tech/financial-modeling/skills/lbo-model/SKILL.md +236 -236
  136. package/skills/tech/financial-modeling/skills/merger-model/SKILL.md +108 -108
  137. package/skills/workflows/README.md +203 -203
  138. package/skills/workflows/adr.md +174 -174
  139. package/skills/workflows/changelog.md +74 -74
  140. package/skills/workflows/compound.md +323 -323
  141. package/skills/workflows/compound_health.md +74 -74
  142. package/skills/workflows/create-agent-skill.md +138 -139
  143. package/skills/workflows/cycle.md +144 -144
  144. package/skills/workflows/deploy-docs.md +84 -84
  145. package/skills/workflows/development-rules.md +42 -42
  146. package/skills/workflows/doc.md +95 -95
  147. package/skills/workflows/documentation-management.md +34 -34
  148. package/skills/workflows/explore.md +146 -146
  149. package/skills/workflows/generate_command.md +106 -106
  150. package/skills/workflows/heal-skill.md +97 -97
  151. package/skills/workflows/housekeeping.md +229 -229
  152. package/skills/workflows/kit-setup.md +102 -102
  153. package/skills/workflows/map-codebase.md +78 -78
  154. package/skills/workflows/orchestration-protocol.md +43 -43
  155. package/skills/workflows/plan-compound.md +439 -439
  156. package/skills/workflows/plan_review.md +269 -269
  157. package/skills/workflows/primary-workflow.md +37 -37
  158. package/skills/workflows/promote_pattern.md +86 -86
  159. package/skills/workflows/release-docs.md +82 -82
  160. package/skills/workflows/report-bug.md +135 -135
  161. package/skills/workflows/reproduce-bug.md +118 -118
  162. package/skills/workflows/resolve_pr.md +133 -133
  163. package/skills/workflows/resolve_todo.md +128 -128
  164. package/skills/workflows/review-compound.md +376 -376
  165. package/skills/workflows/skill-review.md +127 -127
  166. package/skills/workflows/specs.md +257 -257
  167. package/skills/workflows/triage-sprint.md +102 -102
  168. package/skills/workflows/triage.md +152 -152
  169. package/skills/workflows/work.md +399 -399
  170. package/skills/workflows/xcode-test.md +93 -93
@@ -1,260 +1,260 @@
1
- # Supabase Debugging Workflow
2
-
3
- Systematic approach to diagnosing and resolving Supabase issues.
4
-
5
- ## When To Use
6
-
7
- - Auth errors (login failures, session issues)
8
- - Query errors (RLS blocking, missing data)
9
- - Performance problems (slow queries, timeouts)
10
- - Connection issues
11
-
12
- ---
13
-
14
- ## Common Issues
15
-
16
- ### Issue 1: Auth State Mismatch
17
-
18
- **Symptoms:**
19
- - User shows as logged in frontend, but API returns 401
20
- - Session lost on page refresh
21
- - "No rows returned" despite data existing
22
-
23
- **Diagnosis:**
24
-
25
- 1. Check Supabase auth state:
26
- ```javascript
27
- const { data: { session } } = await supabase.auth.getSession();
28
- console.log('Session:', session);
29
- ```
30
-
31
- 2. Verify SessionStore:
32
- ```javascript
33
- // Check lib/auth/SessionStore.ts
34
- const stored = SessionStore.getSession();
35
- console.log('Stored session:', stored);
36
- ```
37
-
38
- 3. Check sync between SessionStore and Supabase:
39
- ```javascript
40
- // In AuthContext, verify setSession was called
41
- await supabase.auth.setSession(sessionData);
42
- ```
43
-
44
- **Solution:**
45
- - Ensure `AuthContext` properly hydrates Supabase from SessionStore on init
46
- - Verify `persistSession: false` in `supabaseClient.ts`
47
- - Check SessionStore is single source of truth
48
-
49
- **Reference:** `lib/supabaseClient.ts` architecture comments
50
-
51
- ---
52
-
53
- ### Issue 2: RLS Policy Blocking Query
54
-
55
- **Symptoms:**
56
- - Query returns empty array despite data existing
57
- - "permission denied" errors
58
- - Works in Supabase dashboard, fails in app
59
-
60
- **Diagnosis:**
61
-
62
- 1. Verify RLS is the issue:
63
- ```sql
64
- -- Test query with RLS disabled (in Supabase SQL editor)
65
- ALTER TABLE schema.table DISABLE ROW LEVEL SECURITY;
66
- SELECT * FROM schema.table;
67
- ALTER TABLE schema.table ENABLE ROW LEVEL SECURITY;
68
- ```
69
-
70
- 2. Check user's auth.uid():
71
- ```sql
72
- SELECT auth.uid();
73
- ```
74
-
75
- 3. Review table policies:
76
- ```sql
77
- SELECT * FROM pg_policies WHERE tablename = 'your_table';
78
- ```
79
-
80
- **Solution:**
81
- - Create missing policy for the operation
82
- - Verify policy USING clause matches auth.uid() correctly
83
- - Check if user has required role in profiles table
84
-
85
- **See:** `workflows/rls-policies.md` for policy patterns
86
-
87
- ---
88
-
89
- ### Issue 3: N+1 Query Problem
90
-
91
- **Symptoms:**
92
- - Slow page loads
93
- - Many sequential database queries
94
- - High database CPU usage
95
-
96
- **Diagnosis:**
97
-
98
- 1. Check for missing joins:
99
- ```typescript
100
- // ❌ BAD: N+1 queries
101
- const users = await supabase.from('users').select('*');
102
- for (const user of users.data) {
103
- const profile = await supabase.from('profiles')
104
- .select('*')
105
- .eq('user_id', user.id);
106
- }
107
-
108
- // ✅ GOOD: Single query with join
109
- const users = await supabase
110
- .from('users')
111
- .select('*, profiles(*)');
112
- ```
113
-
114
- 2. Enable query logging:
115
- ```typescript
116
- // Add to supabaseClient.ts for debugging
117
- Logger.debug('[Supabase] Query:', { url, method });
118
- ```
119
-
120
- **Solution:**
121
- - Use Supabase joins: `.select('*, related_table(*)')`
122
- - Create database views for complex joins
123
- - Add indexes for foreign keys
124
-
125
- ---
126
-
127
- ### Issue 4: Missing Environment Variables
128
-
129
- **Symptoms:**
130
- - "Missing NEXT_PUBLIC_SUPABASE_ANON_KEY" error
131
- - Supabase client not initialized
132
- - 404 on API calls
133
-
134
- **Diagnosis:**
135
-
136
- 1. Check `.env.local`:
137
- ```bash
138
- cat .env.local | grep SUPABASE
139
- ```
140
-
141
- 2. Verify environment variables loaded:
142
- ```bash
143
- echo $NEXT_PUBLIC_SUPABASE_URL
144
- ```
145
-
146
- **Solution:**
147
- - Copy from `.env.local.example` if exists
148
- - Get keys from Supabase Dashboard > Project Settings > API
149
- - Restart dev server after adding env vars
150
-
151
- ---
152
-
153
- ### Issue 5: CORS Errors
154
-
155
- **Symptoms:**
156
- - "CORS policy" errors in browser console
157
- - Requests blocked from localhost
158
- - Works in production, fails locally
159
-
160
- **Diagnosis:**
161
-
162
- 1. Check Supabase project settings:
163
- - Dashboard > Authentication > URL Configuration
164
- - Redirect URLs should include `http://localhost:3000`
165
-
166
- 2. Verify request origin:
167
- ```javascript
168
- console.log('Origin:', window.location.origin);
169
- ```
170
-
171
- **Solution:**
172
- - Add localhost to allowed redirect URLs in Supabase
173
- - Add site URL to authentication settings
174
- - Ensure using HTTPS in production
175
-
176
- ---
177
-
178
- ### Issue 6: Timeout on Large Queries
179
-
180
- **Symptoms:**
181
- - "AbortError: The operation was aborted"
182
- - Queries taking >15 seconds
183
- - Timeout on complex joins
184
-
185
- **Diagnosis:**
186
-
187
- 1. Check query performance:
188
- ```sql
189
- EXPLAIN ANALYZE
190
- SELECT * FROM large_table WHERE ...;
191
- ```
192
-
193
- 2. Look for missing indexes:
194
- ```sql
195
- -- Check if index exists
196
- SELECT * FROM pg_indexes WHERE tablename = 'your_table';
197
- ```
198
-
199
- **Solution:**
200
- - Add indexes for WHERE clause columns
201
- - Add indexes for foreign keys
202
- - Paginate results (use `.range(start, end)`)
203
- - Increase timeout in `supabaseClient.ts` if justified
204
-
205
- **Reference:** `lib/supabaseClient.ts` - 15 second timeout configured
206
-
207
- ---
208
-
209
- ## Debugging Checklist
210
-
211
- When encountering Supabase errors:
212
-
213
- - [ ] Check browser console for errors
214
- - [ ] Verify auth session exists
215
- - [ ] Test query in Supabase SQL editor
216
- - [ ] Review RLS policies on affected tables
217
- - [ ] Check for missing indexes
218
- - [ ] Verify environment variables loaded
219
- - [ ] Check network tab for failed requests
220
- - [ ] Review Supabase client configuration
221
-
222
- ---
223
-
224
- ## Tools
225
-
226
- ### Log Supabase Queries
227
-
228
- Add to `lib/supabaseClient.ts`:
229
-
230
- ```typescript
231
- global: {
232
- fetch: (url, options = {}) => {
233
- Logger.debug('[Supabase] Request:', { url, method: options.method });
234
- // ... existing timeout logic
235
- },
236
- }
237
- ```
238
-
239
- ### Test RLS in SQL Editor
240
-
241
- ```sql
242
- -- Simulate authenticated user
243
- SET LOCAL role authenticated;
244
- SET LOCAL request.jwt.claims.sub = 'user-uuid-here';
245
-
246
- -- Run your query
247
- SELECT * FROM your_table;
248
-
249
- -- Reset
250
- RESET role;
251
- ```
252
-
253
- ---
254
-
255
- ## Expected Output
256
-
257
- ✅ Issue identified and root cause understood
258
- ✅ Solution implemented or workaround documented
259
- ✅ Verified fix resolves the problem
260
- ✅ Added prevention measures (indexes, policies, etc.)
1
+ # Supabase Debugging Workflow
2
+
3
+ Systematic approach to diagnosing and resolving Supabase issues.
4
+
5
+ ## When To Use
6
+
7
+ - Auth errors (login failures, session issues)
8
+ - Query errors (RLS blocking, missing data)
9
+ - Performance problems (slow queries, timeouts)
10
+ - Connection issues
11
+
12
+ ---
13
+
14
+ ## Common Issues
15
+
16
+ ### Issue 1: Auth State Mismatch
17
+
18
+ **Symptoms:**
19
+ - User shows as logged in frontend, but API returns 401
20
+ - Session lost on page refresh
21
+ - "No rows returned" despite data existing
22
+
23
+ **Diagnosis:**
24
+
25
+ 1. Check Supabase auth state:
26
+ ```javascript
27
+ const { data: { session } } = await supabase.auth.getSession();
28
+ console.log('Session:', session);
29
+ ```
30
+
31
+ 2. Verify SessionStore:
32
+ ```javascript
33
+ // Check lib/auth/SessionStore.ts
34
+ const stored = SessionStore.getSession();
35
+ console.log('Stored session:', stored);
36
+ ```
37
+
38
+ 3. Check sync between SessionStore and Supabase:
39
+ ```javascript
40
+ // In AuthContext, verify setSession was called
41
+ await supabase.auth.setSession(sessionData);
42
+ ```
43
+
44
+ **Solution:**
45
+ - Ensure `AuthContext` properly hydrates Supabase from SessionStore on init
46
+ - Verify `persistSession: false` in `supabaseClient.ts`
47
+ - Check SessionStore is single source of truth
48
+
49
+ **Reference:** `lib/supabaseClient.ts` architecture comments
50
+
51
+ ---
52
+
53
+ ### Issue 2: RLS Policy Blocking Query
54
+
55
+ **Symptoms:**
56
+ - Query returns empty array despite data existing
57
+ - "permission denied" errors
58
+ - Works in Supabase dashboard, fails in app
59
+
60
+ **Diagnosis:**
61
+
62
+ 1. Verify RLS is the issue:
63
+ ```sql
64
+ -- Test query with RLS disabled (in Supabase SQL editor)
65
+ ALTER TABLE schema.table DISABLE ROW LEVEL SECURITY;
66
+ SELECT * FROM schema.table;
67
+ ALTER TABLE schema.table ENABLE ROW LEVEL SECURITY;
68
+ ```
69
+
70
+ 2. Check user's auth.uid():
71
+ ```sql
72
+ SELECT auth.uid();
73
+ ```
74
+
75
+ 3. Review table policies:
76
+ ```sql
77
+ SELECT * FROM pg_policies WHERE tablename = 'your_table';
78
+ ```
79
+
80
+ **Solution:**
81
+ - Create missing policy for the operation
82
+ - Verify policy USING clause matches auth.uid() correctly
83
+ - Check if user has required role in profiles table
84
+
85
+ **See:** `workflows/rls-policies.md` for policy patterns
86
+
87
+ ---
88
+
89
+ ### Issue 3: N+1 Query Problem
90
+
91
+ **Symptoms:**
92
+ - Slow page loads
93
+ - Many sequential database queries
94
+ - High database CPU usage
95
+
96
+ **Diagnosis:**
97
+
98
+ 1. Check for missing joins:
99
+ ```typescript
100
+ // ❌ BAD: N+1 queries
101
+ const users = await supabase.from('users').select('*');
102
+ for (const user of users.data) {
103
+ const profile = await supabase.from('profiles')
104
+ .select('*')
105
+ .eq('user_id', user.id);
106
+ }
107
+
108
+ // ✅ GOOD: Single query with join
109
+ const users = await supabase
110
+ .from('users')
111
+ .select('*, profiles(*)');
112
+ ```
113
+
114
+ 2. Enable query logging:
115
+ ```typescript
116
+ // Add to supabaseClient.ts for debugging
117
+ Logger.debug('[Supabase] Query:', { url, method });
118
+ ```
119
+
120
+ **Solution:**
121
+ - Use Supabase joins: `.select('*, related_table(*)')`
122
+ - Create database views for complex joins
123
+ - Add indexes for foreign keys
124
+
125
+ ---
126
+
127
+ ### Issue 4: Missing Environment Variables
128
+
129
+ **Symptoms:**
130
+ - "Missing NEXT_PUBLIC_SUPABASE_ANON_KEY" error
131
+ - Supabase client not initialized
132
+ - 404 on API calls
133
+
134
+ **Diagnosis:**
135
+
136
+ 1. Check `.env.local`:
137
+ ```bash
138
+ cat .env.local | grep SUPABASE
139
+ ```
140
+
141
+ 2. Verify environment variables loaded:
142
+ ```bash
143
+ echo $NEXT_PUBLIC_SUPABASE_URL
144
+ ```
145
+
146
+ **Solution:**
147
+ - Copy from `.env.local.example` if exists
148
+ - Get keys from Supabase Dashboard > Project Settings > API
149
+ - Restart dev server after adding env vars
150
+
151
+ ---
152
+
153
+ ### Issue 5: CORS Errors
154
+
155
+ **Symptoms:**
156
+ - "CORS policy" errors in browser console
157
+ - Requests blocked from localhost
158
+ - Works in production, fails locally
159
+
160
+ **Diagnosis:**
161
+
162
+ 1. Check Supabase project settings:
163
+ - Dashboard > Authentication > URL Configuration
164
+ - Redirect URLs should include `http://localhost:3000`
165
+
166
+ 2. Verify request origin:
167
+ ```javascript
168
+ console.log('Origin:', window.location.origin);
169
+ ```
170
+
171
+ **Solution:**
172
+ - Add localhost to allowed redirect URLs in Supabase
173
+ - Add site URL to authentication settings
174
+ - Ensure using HTTPS in production
175
+
176
+ ---
177
+
178
+ ### Issue 6: Timeout on Large Queries
179
+
180
+ **Symptoms:**
181
+ - "AbortError: The operation was aborted"
182
+ - Queries taking >15 seconds
183
+ - Timeout on complex joins
184
+
185
+ **Diagnosis:**
186
+
187
+ 1. Check query performance:
188
+ ```sql
189
+ EXPLAIN ANALYZE
190
+ SELECT * FROM large_table WHERE ...;
191
+ ```
192
+
193
+ 2. Look for missing indexes:
194
+ ```sql
195
+ -- Check if index exists
196
+ SELECT * FROM pg_indexes WHERE tablename = 'your_table';
197
+ ```
198
+
199
+ **Solution:**
200
+ - Add indexes for WHERE clause columns
201
+ - Add indexes for foreign keys
202
+ - Paginate results (use `.range(start, end)`)
203
+ - Increase timeout in `supabaseClient.ts` if justified
204
+
205
+ **Reference:** `lib/supabaseClient.ts` - 15 second timeout configured
206
+
207
+ ---
208
+
209
+ ## Debugging Checklist
210
+
211
+ When encountering Supabase errors:
212
+
213
+ - [ ] Check browser console for errors
214
+ - [ ] Verify auth session exists
215
+ - [ ] Test query in Supabase SQL editor
216
+ - [ ] Review RLS policies on affected tables
217
+ - [ ] Check for missing indexes
218
+ - [ ] Verify environment variables loaded
219
+ - [ ] Check network tab for failed requests
220
+ - [ ] Review Supabase client configuration
221
+
222
+ ---
223
+
224
+ ## Tools
225
+
226
+ ### Log Supabase Queries
227
+
228
+ Add to `lib/supabaseClient.ts`:
229
+
230
+ ```typescript
231
+ global: {
232
+ fetch: (url, options = {}) => {
233
+ Logger.debug('[Supabase] Request:', { url, method: options.method });
234
+ // ... existing timeout logic
235
+ },
236
+ }
237
+ ```
238
+
239
+ ### Test RLS in SQL Editor
240
+
241
+ ```sql
242
+ -- Simulate authenticated user
243
+ SET LOCAL role authenticated;
244
+ SET LOCAL request.jwt.claims.sub = 'user-uuid-here';
245
+
246
+ -- Run your query
247
+ SELECT * FROM your_table;
248
+
249
+ -- Reset
250
+ RESET role;
251
+ ```
252
+
253
+ ---
254
+
255
+ ## Expected Output
256
+
257
+ ✅ Issue identified and root cause understood
258
+ ✅ Solution implemented or workaround documented
259
+ ✅ Verified fix resolves the problem
260
+ ✅ Added prevention measures (indexes, policies, etc.)