2026年8月11日 星期二

Antigravity 外掛開發:打造 Git Flow 斜線指令外掛

在先前的文章中,我們已經介紹過 Antigravity (Agy) 強大的互動工具與外掛機制:

既然我們已經熟悉了這些功能,這次我們就來玩點大的!這篇文章將帶大家把 ask_questionplugins 的強大能力,結合程式碼的版本控制,完整示範如何從零打造一款實用的 Agy Git Flow 協線指令外掛,方便日常使用。

在團隊或個人開發中,你是否也遇過這些痛點:開發時忘記切換分支就直接 Commit,或者是叫 AI Commit 但訊息格式五花八門(比如「更新」、「修 bug」、「update」混雜、加上奇怪的 emoji),或者跟本不知道什麼是 Git Flow,反正有 Commit 有交代

為了徹底解決這些問題,我和 Agy CLI 合作開發了 antigravity-git-flow——這是一個專為 Google Antigravity (Agy) 打造的擴充外掛。

今天這篇文章,除了介紹這款外掛的功能,還有這段開發旅程的經驗。如果你也想利用 Agy 打造專屬的 Git Flow 自動化工具,這篇文章將為你提供一份實用的架構指南。


🚀 這款外掛 (antigravity-git-flow) 到底在做什麼?

這款外掛將複雜的 Git 流程封裝成幾個簡單的「技能(Skills)」,讓 AI 助理來幫你代勞:

  1. 智慧初始化 (init):一鍵為全新專案搭建 Git Flow 標準的 maindevelop 雙軌分支架構。
  2. 慣例式提交 (commit):不用再煩惱要寫什麼訊息!AI 會自動分析你的變更,依據慣例式提交規範產出結構化、全繁體中文的 Commit 訊息。如果變更太龐大,它甚至懂得自動幫你拆分成多個 Commit。
  3. 全自動導航 (auto-next):專為 Git 新手設計。AI 會自動分析專案當前狀態,並決定下一步最適合的操作(初始化、提交、推播或發布),主動引導你完成工作。
  4. 發布與整合 (release, tag, github-pr):從建立 Release 分支、自動打版號(Tag),到建立中英雙語的 GitHub Pull Request 與 Changelog,完整涵蓋從開發到上線的生命週期。

開發紀實:從 Git 歷史看專案演進

回顧專案的 Git 歷史紀錄,這個外掛並不是一蹴可幾,而是經過了幾次關鍵的演進:

1. 解決「貢獻者圖表」的痛點 (Author 身分問題)

為了統計程式碼是 AI 還是人類,我試過把 Git 的 Author 身分來標記為 Agy 的 GitHub 帳號。但這導致了一個嚴重的問題:開發者在 GitHub 上的綠色貢獻圖表(Contributions Graph)消失了!
為了解決這個問題,我在後續的更新中,改為在 Commit 訊息最下方加上 Co-authored-by: Google Antigravity <...> 標籤。這樣不僅保留了開發者的主作者身分,也完美標記了 AI 的協作貢獻。

2. 從「純文字提示」到「混合架構」

最初,我試圖用純粹的提示詞讓 AI 處理所有事情。但很快發現,面對複雜的 Diff 分析與版號計算(Semantic Versioning),純 Prompt 容易產生幻覺。因此,我們重構了架構,將複雜邏輯抽離到 scripts/ 資料夾下,透過 Node.js 腳本處理精確的分析,再交由 AI 產生自然語言描述。

3. 防呆機制與跨平台支援

透過歷史紀錄可以發現,我們加入了防敏機制與錯誤處理。例如:避免 AI 在 main 分支上直接 Commit,而是主動詢問使用者是否要建立 hotfixfeature 分支。同時,也優化了文件與腳本,確保在 Windows、macOS 與 Linux 跨平台環境下都能順利運行。


給開發者的實戰指南:如何打造你的 Git Flow 自動化工具?

如果你也想為自己的團隊打造類似的 Git Flow 自動化專案,以下是我總結的三大核心原則:

原則一:建立清晰的 SOP(標準作業流程)

AI 助理非常聰明,但也需要明確的指引。在你的 SKILL.md(技能設定檔)中,不要只是模糊地說「幫我處理 Git」,而是應該將繁瑣的指令拆解為人類可讀的步驟。
例如在 init 技能中,我們明確寫下:

  1. 執行 git status 檢查狀態。
  2. 若無提交,建立 README.md 並初始存檔。
  3. 將分支更名為 main,並切出 develop

原則二:善用互動設計(如 ask_question 工具)

永遠不要讓 AI 在沒有確認的情況下執行危險操作!

在我們的 commit 技能中,如果系統發現有「未曾追蹤過的新檔案」,它不會盲目地 git add -A,而是被強制要求呼叫 ask_question 工具,在終端機彈出互動選單詢問開發者:

「發現未追蹤的新檔案,請問要:1. 全部加入 2. 我要手動處理 3. 先不提交」

這種將「執行權」與「決策權」分離的設計,是讓自動化工具既聰明又安全的關鍵。

原則三:結合外部腳本處理複雜邏輯

如前所述,AI 擅長理解意圖與生成文字,但不擅長精準的數學計算或複雜的字串解析。
當你發現某個任務常常出錯時,請勇敢地把它寫成一個 Shell 或 Node.js 腳本(例如我們專案中的 scripts/analyze.js)。在你的技能說明中,只需教導 AI 去執行這個腳本並讀取輸出結果,這會讓你的外掛穩定性大幅提升。

沒有留言:

張貼留言