---
name: Git 分支管理與開發規範 (Git Workflow)
description: 規範開發過程中的 Git 分支架構、合併限制、環境部署流程以及提交訊息格式。
---

# Git 分支管理與開發規範 (Git Workflow)

為了確保系統穩定性與發布紀律，所有開發者與 AI 助手必須嚴格遵守以下環境發布流程與時段限制。

## 1. 分支架構與環境定義

| 分支 | 環境 | 用途描述 | 合併來源 |
| :--- | :--- | :--- | :--- |
| **`dev`** | 本機開發 | 日常開發與功能實作。 | `feature/*` |
| **`demo`** | 測試/預佈署 | 鏡像生產環境。用於正式上線前的最終驗證。 | `dev` |
| **`main`** | 生產環境 | 正式版本分支。僅存放透過 `demo` 驗證後的代碼。 | `demo` |

## 2. 發布時段與約束 (Release Window)

### Main 分支發布限制 (Mandatory)
1.  **強制規範**：若執行推送/合併指令時未明確包含目標分支，**嚴禁** 自行預設或推論為 `main`。我必須先詢問使用者：「請問要推送到哪一個目標分支？(dev / demo / main)」。
2.  **標準發布時間**：週一至週四，**12:00 (中午) 之前**。
3.  **非標準時段提醒**：若於上述時段以外（週五、週末、國定假日或下班時間）欲合併至 `main`：
    - AI 助手**必須攔截並主動提示風險**（例如：週末災難風險）。
    - 必須取得使用者明確書面同意（如：「我確定現在要上線」）方可執行。
4.  **合併鏈路**：一般功能/修正必須先上 `demo` 測試。`main` 的程式原則上應從 `demo` 分支合併而來。

## 3. 開發與修復流程 (SOP)

### 標準開發流程
1. `feature/*` -> `dev` (隨時合併，主要測試點)。
2. `dev` -> `demo` (隨時合併，進行類生產環境測試)。
3. `demo` -> `main` (僅限允許時段進行，正式上線)。

### 緊急修復流程 (Hotfix)
1. 直接從 `main` 建立 `hotfix/*` 分支進行修復。
2. 修復完成並通過測試後合併回 `main`。
3. **重要同步**：修復後的程式碼必須立即合併回 `demo` 與 `dev`，確保各環境修復同步。

## 4. 提交訊息規範 (Commit Messages)

提交訊息必須包含以下前綴：
- `[FIX]`：修復 Bug。
- `[FEAT]`：新增功能。
- `[DOCS]`：文件更新。
- `[STYLE]`：UI/格式調整。
- `[REFACTOR]`：重構。

---
> [!IMPORTANT]
> 身為 AI 助手 (Antigravity)，我會監控合併對象與當前時間。若您的命令涉及合併至 `main` 且不在允許時段內，我會優先進行安全提醒。
