원클릭으로
supabase-debug
Use when diagnosing Supabase issues like RLS, auth, empty queries, webhooks, and performance problems in production apps.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when diagnosing Supabase issues like RLS, auth, empty queries, webhooks, and performance problems in production apps.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Walk the B1-B15 AI-to-AI blind-spot catalog systematically. Use during the audit pipeline AFTER hard-stops and Tambon hunt and BEFORE the 13 domain audits. Output: PRESENT / NOT PRESENT for each B-class with evidence. Findings flow into the appropriate domains.
Standardize remediation decisions, baseline-policy entries, and legal-review banners for accepted, deferred, or policy-blocked audit findings.
Audit the security domain - auth, authz, secrets, transport, sensitive data exposure, dependency CVEs. Run as part of /audit Phase E.
Audit the architecture and code quality domain - module boundaries, abstraction layers, code organization, naming, documentation. Run as part of /audit Phase E.
Audit the database and data layer - schema design, query patterns, migrations, indexing, RLS, soft-delete, transactions. Run as part of /audit Phase E.
Audit the infra and DevOps domain - CI/CD, deployment, IaC, secrets management, environments, logging, observability. Run as part of /audit Phase E.
| name | supabase-debug |
| description | Use when diagnosing Supabase issues like RLS, auth, empty queries, webhooks, and performance problems in production apps. |
Quick-reference debugging skill for Supabase-backed projects (9/11 active projects use Supabase).
Symptom: Query returns empty array but data exists in DB
-- View policies on a table
SELECT * FROM pg_policies WHERE tablename = 'your_table';
const { data: { user } } = await supabase.auth.getUser();
console.log('Auth state:', user-.id, user-.role);
company_id
// Verify the company_id matches
const { data } = await supabase.from('table').select('*').eq('company_id', companyId);
Symptom: 401 Unauthorized, session expired, login loops
supabase.auth.getSession()Symptom: Function call returns error or unexpected result
supabase functions listcurl -X POST <supabase_url>/functions/v1/<function_name>Symptom: Schema mismatch, missing columns/tables
supabase migration listsupabase db pushsupabase/migrations/ for conflicting filessupabase db reset (WARNING: destroys data)Symptom: UI not updating when data changes
.on('postgres_changes', { event: '*', schema: 'public', table: 'your_table' })# Check Supabase project status
npx supabase status
# View recent logs
npx supabase functions logs <function-name> --tail
# Test RLS as a specific user
npx supabase db test
# Check table structure
npx supabase db dump --schema public | grep "CREATE TABLE your_table" -A 20
| Project | Supabase URL Pattern | Schema | Special Notes |
|---|---|---|---|
| argentina-sales-hub | orqkgmcwkkzt... | public | 85+ migrations, multi-tenant via company_id |
| douglas-haig | via project config | public | QR codes with 24h expiry |
| elbraserito | nzqnibcdgqjp... | elbraserito | Custom schema, not public |
| fitflow-pro-connect2 | via project config | public | localStorage fallback |
| goodmorning/nereidas | via project config | public | Real-time order subscriptions |
| mutual | ueagbmyhdvje... | public + socios + financial + properties + loans | Multi-schema! |
| pedrito | via project config | public | Legacy SQLite references exist but unused |