發送 PR(ship-pr)
呼叫此技能可授權建立分支、暫存、提交、推送、建立或更新 PR,以及回覆必要的留言,以準備一個 PR 進行合併。此技能本身不授權合併操作。
如果存在 references/repo-specific-pr-policy.md,請在開始工作流程前先閱讀該文件,並將其視為權威指南。
輸入
要求使用 pr_worker 排程目標,並在每次排程時使用 /dispatch-agent。在所有 pr_worker 提示中傳遞任何額外的呼叫者輸入。
除非使用者限定了範圍,否則請包含整個目前的工作目錄。
工作流程
-
當儲存庫規範要求時,建立一個分支。提交預期的變更,推送,並建立或重複使用 PR。根據變更推導出 PR 標題,並填入
assets/pr-body-template.md,移除未使用的區段和佔位符。 -
在受管理的背景會話中啟動一個監視器。保持其運行,直到 PR 合併或工作流程停止,然後停止它。如果監視器因暫時的傳輸故障而退出,請重新取得權威狀態並使用相同的僅附加日誌重新啟動它。
bash <skill_dir>/scripts/watch-pr-events.sh \ --repo <owner/name> \ --pr <pr-number> \ --log-file .agent-layer/tmp/ship-pr-events-<pr-number>.jsonl \ --interval-seconds 300 -
使用
gh獲取目前的 HEAD、檢查狀態和可合併性。使用以下無狀態命令讀取留言;絕不能從監視器日誌推斷目前狀態:bash <skill_dir>/scripts/read-pr-comments.sh \ --repo <owner/name> \ --pr <pr-number>對於未解決的回饋,使用精確的 PR、HEAD 和
references/address-pr-comments.md調度pr_worker;對於失敗的必要檢查,還需提供其證據和references/fix-ci.md。該工作者會編輯本地目錄,但不會提交、推送或發布回覆。自動解決機械性衝突。只有在滿足下列所有條件時,PR 才準備好合併:
- PR 在其最新 HEAD 下是可合併的。
- 至少有一位代理或人類審查者已透過正式審查或留言發布回饋。
- 每項必要檢查和儲存庫閘門都是綠燈。
- 每則符合條件的留言都有經過驗證的回覆。
- 如果存在可選的儲存庫政策,則也必須滿足其所定義的每個合併標準。
如果在 PR 建立後的 10 分鐘內沒有任何代理或人類審查者發布回饋,則停止並回報未收到回饋。如果準備好,則繼續執行步驟 5。否則,在提交之前處理完整的可操作回合。
-
提交並推送已接受的修正。一次發布一個工作者提出的支援回覆:對於行內留言,本機回覆;對於對話留言或審查摘要,發布一個連結到來源的問題留言。重新執行留言命令,並修正任何缺失或不支援的回覆。返回步驟 3,直到準備就緒。如果僅有檢查或審查待處理,則等待監視器。
-
請求對精確 PR 和 HEAD 的單次使用合併授權。回報任何實質性發現、簡潔的留言處理摘要以及準備就緒的證據。
-
獲得授權後,重新獲取 HEAD、檢查狀態、可合併性和留言。確認本地目錄完整,且每則符合條件的留言都有已發布的支援回覆。如果發生任何變更,返回步驟 3 並為產生的 PR HEAD 取得新的授權;否則合併。
-
確認檢出(checkout)是乾淨的,切換到預設分支,快進該分支,並刪除此工作流程建立的分支或工作目錄。保留狀態,並回報任何不安全執行的清理動作。