Community生產力與協作github.com

團隊迴圈

透過明確的任務所有權、簡短狀態報告、合併列車、樹狀憑證及所有者決策,協調兩個 AI 開發團隊在同一個儲存庫上協作。

團隊迴圈 是什麼?

此技能專為需要兩個協作團隊(或 AI 代理)在同一個 Git 儲存庫中工作的情境而設計。它使用「團隊迴圈」模式,提供一套結構化的工作流程,包括明確的角色定義(如所有者、團隊 A/B、審查者)、狀態標籤、領取協議以及基於合併列車的部署流程。技能的核心在於其精確的通訊格式(例如強制性的狀態標題)和自動化腳本(如 `claim.sh`、`train.sh`),以減少衝突並確保流程的可靠性。它支援 GitHub 作為平台,任何標準的 AI 代理工具(如 Claude Code、Cursor、Codex)皆可透過複製技能並安裝對應的適配器來使用。此外,該技能還強調了樹狀憑證(tree certificate)來驗證部署的安全性,以及所有者(Owner)作為人類最終決策者的角色,以處理優先級、合併、部署和凍結等事項。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tjrtm/the-team-loop/tree/HEAD/skill/the-team-loop

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

團隊迴圈 是做什麼的?

當兩個協作的團隊或代理在同一個儲存庫中工作時,請使用此技能。將「團隊A」和「團隊B」替換為已設定的名稱。所有者是人類,負責優先級、合併、部署、凍結和政策決策的權威。

入門:五分鐘設定

  1. 將此技能複製到目標儲存庫中,並為活躍的代理工具安裝適配器。
  2. 將 templates/team-loop.yml 複製為 .team-loop.yml;設定團隊名稱和 gate_command。
  3. 執行 scripts/setup-labels.sh --repo OWNER/REPO。
  4. 讓所有者建立一個置頂的協調議題和一個帶有 ready 標籤的議題。
  5. 每個團隊閱讀此檔案,最多領取一個項目,並使用已設定的狀態標題。

角色

  • 所有者: 建立或推廣就緒的工作;以所有者自己的話張貼直接「所有者:」決策;授權合併和部署,但在具有範圍和 UTC 結束時間的書面授權內除外。
  • 團隊A / 團隊B: 建置、測試、審查、領取、交接並報告。在可能的情況下使用不同的 GitHub 身份。
  • 審查者(可選): 執行全新上下文的審查。對於已設定的風險路徑或類別,需要審查者。

迴圈狀態

backlog -> ready -> in-progress -> blocked 或 needs-owner -> 實作 PR -> ready-for-owner -> 已合併 -> deployed。

  • backlog 不可領取。每週批次處理低嚴重性的 backlog 工作,等待所有者推廣。
  • ready 授權實作、測試和開啟 PR。它絕不授權合併或部署。
  • 關閉議題時,移除過時的狀態標籤,例如 in-progress、ready、blocked 和 needs-owner。

領取協議

  1. 在執行任何動作之前,立即重新讀取標籤。不要領取 in-progress、blocked 或非 ready 的工作。
  2. 執行 scripts/claim.sh --repo OWNER/REPO --issue N --team "Team A" --plan "short plan"。
  3. 該腳本會新增 in-progress 和一個團隊標籤,張貼領取聲明,然後重新檢查狀態。如果競爭失敗,它會退出。
  4. 每個團隊保持進行中的工作在 wip_limit(或更低)。在領取另一個項目之前,完成、交接或明確封鎖當前項目。
  5. 對於 team:any,最早的有效領取評論者獲勝;另一個團隊退出。不要透過重複實作來解決平手。

評論與溝通

每個團隊評論的第一行必須以以下格式開頭:

狀態:<state> | 團隊:<configured team> | <short context>

僅張貼包含計畫的領取、審查結果、閘道結果、交接、問題、面向所有者的升級、協議或發布報告。不要張貼開始、排隊、仍在等待、重新武裝或其他儀式性的評論。保持一般評論在五個簡短行內;將證據放在 PR 描述或摺疊的詳細資訊中。

只有所有者才能撰寫「所有者:」決策。團隊必須連結或要求所有者的直接評論,絕不能將其視為權威轉達。

標籤與路由

使用 reference/labels.md 中的標籤。除非設定另有規定,否則未分配的 ready 議題預設歸團隊A。team:any 允許任一團隊領取。空閒時,按以下順序幫助另一個團隊:請求的審查、列車準備或重基、然後是每週 backlog 批次。未經所有者請求,不要進行無限制的錯誤掃蕩。

審查、列車、閘道、憑證

  1. 每個 PR 執行輕量、聚焦的檢查,並根據其風險接受所需的審查層級。

  2. 審查者將完整的 PR 標記為 ready-for-owner。

  3. 列車執行者收集該時刻可用的已審查 PR。它執行:

    scripts/train.sh --repo OWNER/REPO --name train-YYYYMMDD-N PR_NUMBER...
    
  4. train.sh 為每個包含的 PR 添加 train-running,記錄基底和頭部,執行衝突檢查,建構臨時合併結果,並調用 gate.sh 一次。

  5. gate.sh 將憑證綁定到 git rev-parse HEAD^{tree}。僅當使用 --force 時,匹配的現有憑證才能作為成功證據。

  6. 如果基底或 PR 頭部發生變更,或衝突檢查/閘道失敗,則列車無效。移除或拆分有問題的 PR,然後重建列車。當 train-running 持有列車時,不要合併不相關的工作。

  7. 在獲得所有者直接批准或有效的授權後,再次執行 train.sh 並加上 --merge --owner-authorization "Owner: ..." 來按順序合併記錄的 PR 頭部。如果基底或頭部發生變更,它將拒絕,並在每次合併後驗證受保護分支的樹狀結構。

部署、凍結、保持、暫停

  • 僅部署已設定的受保護分支,並且僅在存在匹配的樹狀憑證時進行部署,除非所有者提供記錄的例外情況。
  • 為版本發布產生一份部署報告。將已發布的 PR 和議題標記為 deployed;將它們連結到同一份報告,而不是重複報告。
  • freeze 會停止新的合併和部署。將無法讀取的標籤視為已凍結,以處理不可逆的動作。
  • 列車保持會阻止該列車之外的合併,直到列車退出。
  • 暫停時,停止領取、列車、合併和部署。所有者張貼一個重新啟動列表,列出允許恢復的項目。在重新啟動之前,重新檢查標籤、PR 頭部、基底和憑證。

升級與授權

當產品、安全、法律、發布或所有權不明確的決策阻礙工作時,使用 needs-owner。說明觀察到的行為、選項、建議和截止日期(如果有的話)。繼續進行獨立的工作。

授權必須陳述其確切範圍和 UTC 到期時間,例如:

所有者:團隊A 可以合併和部署已審查的文件 PR 41 和 42,直到 2026-05-01T18:00:00Z。

該範圍之外或在到期後的任何操作都需要新的直接決策。

回顧

至少每週執行一次 scripts/scorecard.sh,並討論 reference/metrics.md 中的定義。每次改進一個可衡量的瓶頸。審查以下指標:每次合併 PR 的閘道執行次數、領取延遲、週期時間、佇列淨變化、平均批次大小、憑證覆蓋率以及變更失敗率。

在張貼狀態之前,請閱讀 reference/rules.md 以了解規範的編號規則以及 `reference/comment-templates.md。

相關技能