supabase Skill:讓 AI 助手按 Supabase 官方流程做全棧開發

前言

用 Cursor、Claude Code 或 Copilot 接 Supabase 時,常見問題不是「會不會寫 SQL」,而是上下文不對:RLS 策略漏了 WITH CHECK、把 user_metadata 寫進授權邏輯、新表沒暴露到 Data API,或者還在用已廢棄的 auth.role()。模型訓練數據往往落後於 Supabase 文檔和 changelog,同一套提示詞很難覆蓋 Database、Auth、Edge Functions、Realtime、Storage 等整條產品線。

下面介紹 Supabase 在 agent-skills 倉庫裏維護的 supabase Skill(當前 manifest 版本 0.1.2,作者 supabase)。它把「先查 changelog、再查文檔、改完要驗證、安全清單」寫成 Agent 可加載的流程說明,在涉及 Supabase 的任務裏自動參與決策。

這是什麼

supabase 是一條面向「任何 Supabase 相關任務」的綜合開發 Skill,遵循 Agent Skills Open Standard:根目錄有 SKILL.md(含 name、description、metadata),可選 references/ 放詳細參考。

  • 維護方:Supabase(官方倉庫 supabase/agent-skills)。
  • 兼容環境:資料寫明兼容 18+ 種 AI Agent,包括 Claude Code、GitHub Copilot、Cursor、Cline 等;安裝後由 Agent 在檢測到相關任務時自行選用。
  • 與同倉庫其他 Skill 的關係:同倉還有 supabase-postgres-best-practices(側重 Postgres 性能與 schema);官方文檔建議在做表結構、遷移、RLS、索引等數據庫改動前優先加載 postgres 最佳實踐 Skill。supabase 覆蓋更廣的產品面與排障場景,二者可配合使用。

核心功能

Skill 的 description 與文檔列出的觸發範圍一致,主要包括以下幾類(均來自官方 SKILL 與文檔表述)。

產品線與集成

  • 產品:Database、Auth、Edge Functions、Realtime、Storage、Vectors、Cron、Queues。
  • 客戶端與 SSR:supabase-js、@supabase/ssr,以及 Next.js、React、SvelteKit、Astro、Remix 等集成。
  • 平臺工具:Supabase CLI、MCP server;schema 變更、migrations、declarative schemas、安全審計;Postgres 擴展(如 pg_graphql、pg_cron、pg_vector)。

Auth 與排障

  • Auth 主題:登錄/登出、session、JWT、cookies、getSession、getUser、getClaims、RLS。
  • 調試:HTTP/Postgres 錯誤、RLS 意外行爲、permission denied、schema cache、超時、Edge Function 崩潰、Realtime 斷開、Storage 失敗;查閱 Logs Explorer、ClickHouse 等日誌。

內置工作原則(SKILL.md Core Principles)

官方在 Skill 正文裏固定了幾條執行原則,Agent 被要求遵守:

  1. 變更頻繁,以文檔和 changelog 爲準
    實現前先拉取 https://supabase.com/changelog.md,關注與任務相關的 breaking-change,再按 Skill 內指引查閱當前文檔;不要依賴模型的過時記憶。

  2. 改完要驗證
    修復或實現後應跑測試查詢(或等價驗證),未驗證視爲未完成。

  3. 失敗不要死循環
    同一思路失敗 2~3 次應換方法、查文檔、細看錯誤與日誌。

  4. Data API 暴露與 RLS
    新表是否對 REST/Data API 可見取決於項目 Data API settings;anon / authenticated 可能需要顯式 GRANT。這與 RLS(控制可見行)是兩層問題。對暴露 schema(默認含 public)的表應啓用 RLS,策略要匹配真實訪問模型,而不是每張表套同一套 auth.uid() 模板。

  5. 安全清單
    涉及 auth、RLS、視圖、Storage、用戶數據時,Skill 要求逐項覈對常見陷阱,例如:
    - 不要用 user_metadata 做 JWT 授權決策,授權數據應放在 app_metadata;
    - 刪除用戶不會立即使舊 access token 失效;
    - 前端禁止暴露 service_role;Management API / CLI / MCP 宜用 scoped personal access token;
    - 視圖默認繞過 RLS(Postgres 15+ 可用 security_invoker);
    - UPDATE 需要 SELECT policy;auth.role() 已廢棄,應使用 policy 的 TO authenticated / TO anon,且僅 TO authenticated 不能替代行級授權;
    - UPDATE policy 需要 USING 與 WITH CHECK;
    - 慎用 SECURITY DEFINER,public 下的 definer 函數默認可被 anon/authenticated 調用。

(Storage 等條目在完整 SKILL.md 中還有續篇;安裝後由 Agent 加載全文。)

安裝與啓用

官方推薦通過 skills CLI 安裝;默認裝在項目作用域,便於貢獻者與 Cloud Agent 共享同一套 Skill。需要全局安裝時可加 --global;可爲檢測到的所有 Agent 一次性安裝時加 --all。詳見 Supabase AI Skills 文檔。

只安裝 supabase Skill

npx skills add supabase/agent-skills --skill supabase

安裝倉庫內全部 Skill

npx skills add supabase/agent-skills

更新

npx skills update

可按 Skill 名稱只更新部分,例如 npx skills update supabase(以 skills 包文檔爲準)。

Claude Code 插件方式(可選)

claude plugin marketplace add supabase/agent-skills
claude plugin install supabase@supabase-agent-skills

與 MCP 的組合

文檔提到可將 Agent Skills 與 Supabase Plugin for AI Coding Agents(含 MCP server)一起做一步配置;具體步驟以 AI Tools 文檔 與 Plugin 說明爲準。

安裝完成後 Skill 自動可用,無需在每次對話裏手動 @;Agent 根據任務描述中的 Supabase 相關意圖選用。倉庫還通過 release 構建 dist/index.json,由 https://supabase.com/.well-known/agent-skills/ 提供發現索引(符合 agent-skills .well-known 規範)。

典型用法

以下示例來自官方 README / 文檔中的 Usage 說明,可直接作爲自然語言任務交給已安裝 Skill 的 Agent:

Help me set up Supabase Auth with Next.js
Review my schema for performance issues

(後者更貼近 supabase-postgres-best-practices;若同時安裝兩個 Skill,Agent 可按任務拆分加載。)

更貼合 supabase 本體的任務示例:

Debug why my RLS policy returns zero rows on UPDATE
Add Edge Function and check logs when it crashes
Expose a new SQL table to the Data API with proper GRANT and RLS

實踐上,你描述產品模塊(Auth、Realtime、Storage 等)、框架(如 Next.js + @supabase/ssr)和錯誤現象即可;Skill 會推動 Agent 先對 changelog、再對官方文檔,並在安全相關改動時走清單。

適用場景與注意

適合誰

  • 已在用或計劃用 Supabase 做 BaaS(數據庫 + Auth + 實時 + 存儲 + Edge)的團隊。
  • 希望 AI 寫遷移、RLS、SSR 會話代碼時,默認帶上 Supabase 官方安全與 API 暴露規則的場景。
  • 使用 Cursor、Claude Code、Copilot 等支持 Agent Skills 的工具鏈的開發者。

限制與注意

  • Skill 是流程與規則載體,不能替代你在 Dashboard 裏的項目配置、密鑰管理與生產變更評審。
  • Supabase 迭代快:除 Skill 內強調的 changelog 外,應定期執行 npx skills update。
  • 純 Postgres 性能與 schema 深度優化,官方另備 supabase-postgres-best-practices;大改表結構前建議兩個 Skill 一起裝。
  • 涉及 Management API、CLI、MCP 的自動化時,按文檔使用 scoped personal access token,避免長期把全賬號權限交給腳本或 Agent。

結尾

supabase Skill 把 Supabase 全產品線與常見踩坑(尤其是 RLS、Data API、Auth JWT)收斂成 Agent 可執行的官方話術,適合作爲接 Supabase 項目時的默認上下文。安裝命令與說明以 Supabase 文檔爲準。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜