iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0

https://ithelp.ithome.com.tw/upload/images/20260911/20124384B1D1MfejiK.jpg

今天要做什麼外掛(Plugins)

  1. 名稱:antigravity-github-flow
  2. GitHub:https://github.com/AndyAWD/antigravity-github-flow

為什麼要做這個外掛(Plugins)

  1. 每次要 AI 提交要用自然語言好麻煩
  2. 每次 AI 的提交訊息不統一好麻煩
  3. 每次一樣的東西要一直說好麻煩

這個外掛做的過程

第一個版本是 GitFlow 的外掛(https://github.com/AndyAWD/antigravity-git-flow ),然後再從這個外掛改成 GitHub Flow

目錄結構

antigravity-github-flow/
├── plugin.json                    # 外掛程式資訊清單(定義名稱與版本 v0.1.0)
├── package.json                   # Node.js 模組配置(宣告 ES 模組規範)
├── LICENSE                        # MIT 開源授權條款
├── README.md                      # 繁體中文說明文件
└── skills/                        # 核心技能目錄
    ├── auto-next/
    │   └── SKILL.md               # 智慧導航管家技能(自動分析現況並推進流程)
    ├── commit/
    │   ├── SKILL.md               # 慣例式提交技能(8 個標準操作步驟規範)
    │   └── scripts/
    │       ├── analyze.js         # 工作區狀態與差異分析腳本(背景自動 fetch)
    │       ├── branch-guard.js    # 主分支保護與自動切換工作分支腳本
    │       └── commit.js          # 自動附加共同作者簽名與提交腳本
    ├── init/
    │   └── SKILL.md               # 專案初始化技能(建立 main 主分支與起始結構)
    ├── push/
    │   └── SKILL.md               # 遠端推播技能(防呆落後檢查與標籤同步)
    ├── merge/
    │   └── SKILL.md               # 分支合併技能(支援 PR / 本地 --no-ff 與清理)
    ├── github-pr/
    │   └── SKILL.md               # 拉取請求技能(自動彙整繁中 PR 內容與 gh 串接)
    ├── release/
    │   └── SKILL.md               # 發布準備技能(跨平台版號檔案自動更新)
    ├── tag/
    │   └── SKILL.md               # 自動標記技能(SemVer 2.0.0 分析與打 Tag)
    └── github-release/
        └── SKILL.md               # GitHub 發布技能(自動產生中英雙語 Changelog)

這外掛怎麼用

外掛程式相容於 Antigravity 命令列介面(CLI)、整合開發環境(IDE)與 Antigravity 2.0 桌面應用程式,支援遠端快速安裝,並提供自初始化、提交、合併至版本發布的完整生命週期。

安裝方式

  1. 透過 GitHub 遠端安裝(推薦):

    agy plugin install https://github.com/AndyAWD/antigravity-github-flow
    
  2. 從本機路徑安裝:

    agy plugin install .
    
  3. 專案工作區安裝(團隊共用):
    將專案資料夾複製至專案根目錄下的 .agents/plugins/antigravity-github-flow/ 即可被專案自動識別。

完整使用生命週期

情境 1:全自動模式推進(/auto-next)

不熟悉 Git 指令或不知道下一步該做什麼時,直接呼叫導航指令,AI 會依序檢查遠端、暫存區、本地分支與主幹狀態,主動推進流程:

────────────────────────────────────────────────
> /antigravity-github-flow:github-flow:auto-next
────────────────────────────────────────────────
[Auto Next] 正在分析專案狀態...
發現工作區有已修改的檔案,我先幫您把目前的進度妥善存檔!
自動觸發慣例式提交流程...
────────────────────────────────────────────────

情境 2:智慧拆分與慣例式提交(/commit)

完成開發階段後,呼叫提交技能。若目前停留在 main 主分支,外掛會自動觸發互動對話框進行防呆保護:

────────────────────────────────────────────────
> /antigravity-github-flow:github-flow:commit
────────────────────────────────────────────────
? 目前在 main 主分支上,請問您希望如何處理這次的提交?
  ▸ (Recommended) 從 main 切出新分支進行提交(如 feature/*, fix/* 等)
    直接提交到 main 主分支
    取消目前操作

確認切出新分支後,腳本會自動分析變更並拆分成獨立的語意化提交:

────────────────────────────────────────────────
建立分支 feature/user-auth...
分析工作區變更:偵測到 2 項獨立任務,自動拆分提交:

[1/2] 提交使用者驗證模組
[feature/user-auth a1b2c3d] feat(auth): 實作使用者登入狀態驗證
 2 files changed, 48 insertions(+)
 create mode 100644 src/auth.ts

[2/2] 提交設定檔排除清單
[feature/user-auth e4f5g6h] chore: 更新忽略清單排除本地暫存檔
 1 file changed, 2 insertions(+)

已完成所有變更之慣例式提交,末端已簽署共同作者。
────────────────────────────────────────────────

產生的提交紀錄將完整保留共同作者資訊:

feat(auth): 實作使用者登入狀態驗證

Co-authored-by: Google Antigravity <242056456+google-antigravity@users.noreply.github.com>

情境 3:發布拉取請求(/github-pr)

在功能分支完成開發並推播至遠端後,執行 PR 技能,AI 會自動彙整分支與 main 之間的差異,以繁體中文撰寫完整描述並透過 GitHub CLI 建立 PR:

────────────────────────────────────────────────
> /antigravity-github-flow:github-flow:github-pr
────────────────────────────────────────────────
正在比對 origin/main..HEAD 之提交歷史...
自動產生繁體中文 Pull Request 內容:
- 標題:feat(auth): 支援使用者多因子登入驗證
- 描述:新增雙層驗證機制並補齊相關單元測試案例。

正在建立 GitHub Pull Request...
✓ https://github.com/AndyAWD/antigravity-github-flow/pull/1
────────────────────────────────────────────────

情境 4:分支安全合併與自動清理(/merge)

當功能審查完畢,透過合併技能整併回 main 主分支,合併完成後主動詢問是否刪除分支以維持儲存庫整潔:

────────────────────────────────────────────────
> /antigravity-github-flow:github-flow:merge
────────────────────────────────────────────────
切換至 main 主分支並同步最新遠端進度...
執行非快進(--no-ff)合併:git merge --no-ff feature/user-auth
Merge made by the 'ort' strategy.

? 合併已順利完成!請問您是否要刪除剛才合併的原始分支來保持儲存庫乾淨?
  [x] 刪除本地分支 (feature/user-auth)
  [x] 刪除遠端分支 (origin/feature/user-auth)
  [ ] 保留分支,不刪除

✓ 已刪除本地分支 feature/user-auth
✓ 已刪除遠端分支 origin/feature/user-auth
儲存庫環境整理完畢!
────────────────────────────────────────────────

情境 5:自動版號標記與雙語 Release 發布(/tag & /github-release)

合併至主分支後,執行自動標記技能,外掛會依據 SemVer 2.0.0 規則自動計算新版本,並產生中英雙語 Changelog 建立 GitHub Release:

────────────────────────────────────────────────
> /antigravity-github-flow:github-flow:tag
────────────────────────────────────────────────
分析自 v0.1.0 以來的合併紀錄:
- 偵測到 feat 類型變更,依據 SemVer 2.0.0 規範加算 MINOR 版本號。
建立標籤:v0.2.0
同步推播標籤至遠端:git push origin v0.2.0

> /antigravity-github-flow:github-flow:github-release
────────────────────────────────────────────────
正在擷取 v0.1.0..v0.2.0 之變更項目...
產生中英文雙語 Changelog:

### What's Changed
#### English
- Feat: implement multi-factor user authentication by @AndyAWD
- Fix: resolve token expiration race condition by @AndyAWD

#### 繁體中文
- 新功能: 實作使用者多因子登入驗證 by @AndyAWD
- 修正: 修復存取權杖過期之競爭危害問題 by @AndyAWD

正在建立 GitHub Release v0.2.0...
✓ https://github.com/AndyAWD/antigravity-github-flow/releases/tag/v0.2.0
────────────────────────────────────────────────

上一篇
115/22 - Agy 對話狀態管理 Plugin 實作 - agy-state
系列文
第一次用 Antigravity CLI 做出 Plugin 就上手23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言