pull-request
SKILL.md
GitHub Pull Request 助手
協助使用者建立或修改 GitHub Pull Request,自動分析分支 commits 並產生繁體中文 PR 標題與描述。
功能
- 建立 PR:從當前分支建立 Pull Request 到目標分支
- 修改 PR:更新現有 PR 的標題或描述
- 分析 commits:自動彙整分支變更產生 PR 內容
決策流程
使用者請求 PR 相關操作
│
├─ 步驟 1:檢查當前分支是否有對應的 PR
│ │
│ │ gh pr view --json number,title,state 2>&1
│ │
│ ├─ 【有輸出且 state="OPEN"】→ PR 已存在
│ │ │
│ │ └─ 進入【修改 PR 流程】
│ │ - 顯示現有 PR 資訊
│ │ - 詢問使用者要修改的內容
│ │ - 執行 gh pr edit 指令
│ │
│ └─ 【無輸出或錯誤】→ PR 不存在
│ │
│ └─ 進入【建立 PR 流程】
│ - 執行前置檢查
│ - 分析 commits
│ - 產生標題與描述
│ - 執行 gh pr create 指令
│
└─ 步驟 2:執行對應流程並回報結果
檢查 PR 是否存在
# 檢查當前分支是否已有 PR
gh pr view --json number,title,state,url
判斷邏輯:
| 輸出結果 | 判斷 | 後續動作 |
|---|---|---|
返回 JSON 且 state: "OPEN" |
PR 已存在且開啟中 | 進入修改流程 |
返回 JSON 且 state: "MERGED" |
PR 已合併 | 詢問是否建立新 PR |
返回 JSON 且 state: "CLOSED" |
PR 已關閉 | 詢問是否重開或建立新 PR |
錯誤訊息 no pull requests found |
PR 不存在 | 進入建立流程 |
建立 PR 流程
步驟 0:前置檢查
確認當前分支已推送至遠端:
# 取得當前分支名稱
git rev-parse --abbrev-ref HEAD
# 檢查分支是否存在於遠端
git ls-remote --heads origin $(git rev-parse --abbrev-ref HEAD)
若無輸出:分支尚未推上遠端,需先執行:
git push -u origin <當前分支>
步驟 1:取得 commits 清單
取得當前分支相對於目標分支(預設 main)的 commits:
git --no-pager log --oneline <目標分支>..<當前分支>
步驟 2:取得 commit 詳細資訊
針對每個 commit 取得變更統計:
git --no-pager show <commit-hash> --stat
步驟 3:產生 PR 標題
根據 commit 數量決定標題策略:
| 情況 | 標題策略 |
|---|---|
| 單一 commit | 直接使用該 commit 訊息 |
| 多個 commits | 總結所有變更的描述性標題 |
步驟 4:產生 PR 描述
必須嚴格遵守以下格式,確保輸出為真正的 Markdown 換行,而非包含 \n 的字串:
完整範本請參考
references/pr-template.md
### 摘要
[一句話總結此 PR 的主要目的]
### 修改內容
- 變更項目 1:描述具體的修改內容
- 變更項目 2:描述具體的修改內容
- 變更項目 3:描述具體的修改內容
### ⚠️ 風險評估
[評估此 PR 是否有破壞性變更、需要特別注意的地方]
常見風險類型:
- 資料庫變更(migration、schema 修改)
- API 變更(endpoint 修改、參數變更)
- 設定檔變更(環境變數、設定參數)
- 相依性更新(套件版本升級)
若無風險,可註明:「無破壞性變更」
### 備註
[其他需要審查者注意的地方,如測試方式、部署注意事項、相關 Issue 連結等]
步驟 5:建立 Pull Request
使用 GitHub CLI 建立 PR。
⚠️ 絕對禁止直接使用 --body 參數。必須先將內容寫入暫存檔案,再使用 --body-file 讀取內容,以避免換行符被轉義為 \n 字串。
# 正確做法:
# 1. 建立暫存檔案 pr-body.md,寫入 PR 描述內容(確保內容中是真正的換行)
# 2. 使用 --body-file 讀取檔案
gh pr create --base <目標分支> --head <當前分支> --title "<標題>" --body-file pr-body.md
# 3. 建立完成後刪除暫存檔案
PowerShell 範例:
# 將 PR 描述寫入檔案
@"
### 摘要
實作使用者登入功能
### 修改內容
- 新增登入 API 端點
- 實作 JWT 驗證機制
### ⚠️ 風險評估
無破壞性變更
"@ | Out-File -FilePath pr-body.md -Encoding UTF8
# 建立 PR
gh pr create --base main --title "feat: 實作登入功能" --body-file pr-body.md
# 清理暫存檔案
Remove-Item pr-body.md
Bash 範例:
# 將 PR 描述寫入檔案
cat << 'EOF' > pr-body.md
### 摘要
實作使用者登入功能
### 修改內容
- 新增登入 API 端點
- 實作 JWT 驗證機制
### ⚠️ 風險評估
無破壞性變更
EOF
# 建立 PR
gh pr create --base main --title "feat: 實作登入功能" --body-file pr-body.md
# 清理暫存檔案
rm pr-body.md
常用選項:
| 選項 | 說明 |
|---|---|
--body-file <file> |
從檔案讀取 PR 描述(推薦) |
--draft |
建立草稿 PR |
--reviewer <users> |
指定審核者(逗號分隔) |
--assignee <users> |
指定負責人 |
--label <labels> |
新增標籤 |
修改 PR 流程
當 PR 已存在時,進入此流程。
步驟 1:取得現有 PR 資訊
gh pr view --json number,title,body,state,url,headRefName,baseRefName
步驟 2:顯示 PR 摘要
向使用者顯示:
- PR 編號與標題
- 目前狀態(OPEN/DRAFT)
- 來源分支 → 目標分支
- PR 連結
步驟 3:確認修改內容
根據使用者需求執行對應操作:
修改標題
gh pr edit <PR編號或URL> --title "<新標題>"
修改描述
gh pr edit <PR編號或URL> --body "<新描述>"
新增審核者/標籤
gh pr edit <PR編號或URL> --add-reviewer <users>
gh pr edit <PR編號或URL> --add-label <labels>
查看現有 PR
# 列出當前 repo 的 PR
gh pr list
# 查看特定 PR 詳情
gh pr view <PR編號>
注意事項
- 僅處理已提交的變更:忽略未 staged 的變更
- 語言要求:PR 標題與描述使用繁體中文 (zh-TW)
- 目標分支預設:若使用者未指定,預設為
main - 需要 GitHub CLI:確保已安裝並登入
gh工具
範例
範例 1:PR 不存在 - 建立新 PR
使用者請求: 「幫我建立 PR 到 develop」
執行流程:
- 檢查 PR:
gh pr view→ 錯誤「no pull requests found」 - 判斷:PR 不存在,進入建立流程
- 前置檢查:確認分支已在遠端
- 取得 commits:
git --no-pager log --oneline develop..HEAD - 分析變更產生標題與描述
- 執行:
gh pr create --base develop --head feature/login --title "feat: 實作使用者登入功能" --body "..."
範例 2:PR 已存在 - 自動進入修改模式
使用者請求: 「幫我開 PR」
執行流程:
- 檢查 PR:
gh pr view --json number,title,state{"number": 42, "title": "feat: 新增登入功能", "state": "OPEN"} - 判斷:PR 已存在,進入修改流程
- 回報:「此分支已有 PR #42『feat: 新增登入功能』,請問要進行什麼修改?」
- 等待使用者指示
範例 3:明確修改 PR
使用者請求: 「修改 PR #42 的標題為『修正購物車計算錯誤』」
執行:
gh pr edit 42 --title "修正購物車計算錯誤"
範例 4:PR 已合併
使用者請求: 「幫我建 PR」
執行流程:
- 檢查 PR:
gh pr view --json number,title,state{"number": 38, "title": "feat: 舊功能", "state": "MERGED"} - 判斷:PR 已合併
- 回報:「此分支的 PR #38 已合併。若有新的變更需要建立 PR,請確認已有新的 commits。」
參考資料
references/pr-template.md- PR 描述範本與編寫指南references/gh-pr-commands.md- GitHub CLI PR 相關指令完整參考
Weekly Installs
7
Repository
gn00678465/agentskillsFirst Seen
Feb 22, 2026
Security Audits
Installed on
opencode7
gemini-cli7
github-copilot7
codex7
kimi-cli7
cursor7