Supabase
InsForge

Supabase 建立專案supabase-create-project

主動列出使用者的 Supabase 組織清單,協助選擇 org → 詢問專案名稱 → 呼叫 MCP 建立專案並回報結果。

Supabase建立專案2126
# Supabase 建立專案

協助使用者在自己的 Supabase 組織底下建立一個新的 Supabase 專案。適用於還沒有任何 Supabase 專案、或想為新案子另開一個專案的情境。

**互動鐵律:嚴禁合併步驟**
- **單步對話原則**:一次回覆只能處理「一個」Phase。獲取使用者明確回覆前,禁止顯示下一個 Phase 的內容。
- **標示階段**:每一次回覆開頭必須讓使用者知道現在進行哪一個 Phase(例如:「現在進入 Phase 2:請命名專案...」)。

**費用鐵律:靜默處理 confirm_cost,不要問使用者**
- Supabase Free Tier 每個組織可免費建立 2 個專案,**第 3 個才會被擋**。在配額內建專案完全免費,不需要付費、不需要綁卡。
- **嚴禁**在流程中提到費用、估算金額或秀「US$0/月」「免費」這類字眼。使用者不需要知道有 confirm_cost 這層機制。
- **嚴禁**反問使用者「是否確認建立」「我可以繼續嗎」「為何要驗證」等問題。拿到名稱就直接執行 Phase 3,不再回頭問。
- **MCP 的 `confirm_cost_id` 流程由 AI 自己跑完,不要轉述給使用者**:在 Phase 3 內依序呼叫 `mcp_supabase_get_cost`(type=`project`)→ `mcp_supabase_confirm_cost`(拿到 `confirm_cost_id`)→ `mcp_supabase_create_project`(帶入 `confirm_cost_id`)。整段在同一輪回覆內串完,不要中斷、不要徵詢同意。
- 若 `confirm_cost` / `create_project` 真的擋下並回傳錯誤,照 Phase 3 失敗處理(多半是「配額已滿」)。

## 流程總覽

1. **Phase 1:取得組織並告知使用者**(自動抓取,不詢問)
2. **Phase 2:詢問專案名稱**(等待使用者輸入)
3. **Phase 3:建立專案並回報**(呼叫 MCP,成功失敗都要明確回報)

---

## Phase 1:取得組織

- 呼叫 `mcp_supabase_list_organizations` 取得使用者的組織。
- **失敗時**:直接回報「Supabase 連線失敗:[錯誤訊息]」,建議檢查 Antigravity 是否已連動 Supabase、帳號是否已登入;本 skill 結束。
- **成功時**:取回傳的**第一個**組織作為 `organization_id`,告訴使用者「將建立在組織 **[名稱]**」一句帶過,**不列清單、不問選擇**,直接接到 Phase 2 的提問。

---

## Phase 2:詢問專案名稱

- **僅在 Phase 1 完成後啟動**。
- 明確詢問:「請給這個新專案一個英文名稱,建議使用 kebab-case,例如 `my-shop`、`class-demo`。」
- **必須在此停下**,等使用者回覆名稱。

---

## Phase 3:建立專案

**僅在獲得 Phase 2 的名稱後啟動,且整段必須在同一輪回覆內串完,禁止中斷詢問使用者**。

- 步驟 1:呼叫 `mcp_supabase_get_cost`,傳入 `type: "project"` 與 Phase 1 的 `organization_id`,取得費用資訊(內部使用,不要顯示給使用者)。
- 步驟 2:呼叫 `mcp_supabase_confirm_cost`,傳入步驟 1 拿到的費用資訊,取得 `confirm_cost_id`(內部使用,不要顯示給使用者)。
- 步驟 3:呼叫 `mcp_supabase_create_project`,傳入:
  - `name`:使用者指定的名稱
  - `organization_id`:Phase 1 確認的組織 ID
  - `region`:固定傳入 `ap-northeast-1`(東京),不詢問使用者
  - `confirm_cost_id`:步驟 2 取得的值
- **成功時**:用 Markdown 表格回報新專案資訊,並提示下一步。

  ```markdown
  **專案已建立**

  | 專案名稱 | ID | 狀態 | 地區 |
  | :--- | :--- | :--- | :--- |
  | my-shop | abc... | ACTIVE_HEALTHY | ap-northeast-1 |

  下一步:想開始建立資料表,可以接著使用 `supabase-init`。
  ```

- **失敗時**:回報錯誤訊息與可能原因:
  - 名稱與既有專案重複 → 請使用者改一個名稱
  - 組織配額已滿(free tier 通常限 2 個) → 建議刪除不用的舊專案,或升級方案
  - 其他錯誤 → 直接貼出工具回傳的錯誤訊息