Supabase × Claude Code: agent-skills でパフォーマンスと RLS の正確性を高める
Supabase とは Supabase は Firebase のオープンソース代替 として急成長している BaaS(Backend as a Service)だ。PostgreSQL をベースに、認証・リアルタイムデータベース・ストレージ・Edge Functions をワンストップで提供する。 PostgreSQL がそのまま使える — 独自のクエリ言語ではなく標準 SQL Row Level Security (RLS) — テーブル単位でアクセス制御ポリシーを定義 自動生成 REST API — テーブル定義から即座に CRUD API が生成される オープンソース — セルフホスティングも可能 無料枠あり — 個人プロジェクトなら無料で始められる Firebase との最大の違いは「中身が PostgreSQL」である点だ。NoSQL ではなく RDB なので、既存の SQL 知識がそのまま活かせる。 Supabase を使っているプロジェクトで Claude Code を活用している場合、公式の supabase/agent-skills をインストールするだけでコード品質とパフォーマンスが大幅に向上する。特に Row Level Security (RLS) の書き方ミスを防ぐ効果が高い。 なぜ agent-skills が必要なのか Claude Code は Supabase の細かいベストプラクティスをデフォルトでは把握していない。たとえば RLS ポリシーで頻出する次のパターンを考えてほしい。 1 2 3 4 5 6 7 -- ❌ Claude がデフォルトで書きがちなコード create policy "users can view own records" on public.records for select using (auth.uid() = user_id); -- ✅ パフォーマンスを考慮した正しい書き方 create policy "users can view own records" on public.records for select using ((select auth.uid()) = user_id); auth.uid() をそのまま使うとクエリの行ごとに関数が評価されるが、(select auth.uid() as uid) のようにサブクエリ化することでクエリプランナーが一度だけ評価するよう最適化できる。これによってテーブルスキャン時のパフォーマンスが大幅に改善する。 ...