Community寫作與編輯github.com

nicolasroy-fr/mr-description

生成或更新 GitLab MR 或 GitHub PR 的法語標題與結構化描述(包含描述、背景、變更、測試)。自動偵測平台來源。

mr-description 是什麼?

此技能專為需要在 GitLab 合併請求(MR)或 GitHub Pull Request(PR)上產生或更新標題與描述的法語使用者設計。它會依據使用者提供的連結或當前 Git 遠端自動判斷平台,並強制使用法語進行所有互動。技能會遵循固定的標題模式([卡片編號] 倉庫名稱 - 主題 - 簡短描述)與結構化的描述區塊(Description、Contexte、Changements、Tests),確保 MR/PR 內容清晰且一致。關鍵功能包括從現有內容推斷卡片編號、自動讀取 diff 與提交記錄、以及逐步引導使用者驗證每個段落,最後才請求明確授權送出變更。此工具支援 GitHub 與 GitLab CLI(gh/glab),並能處理更新既有 MR/PR 描述的情境,保留使用者自行撰寫的有用內容。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nicolasroy-fr/claude-code-marketplace/tree/HEAD/plugins/dev/skills/mr-description

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

MR / PR 標題與描述

所有寫入 MR/PR 的內容(標題、描述)以及向使用者提出的問題均使用法語。對於 GitLab 使用「MR」,對於 GitHub 使用「PR」。

引數(可選)

接收到的內容:$ARGUMENTS

引數目標
https://github.com/<owner>/<repo>/pull/<n>GitHub PR
https://<host>/<group>/<repo>/-/merge_requests/<iid>GitLab MR
#<n> / 單獨 <n>當前倉庫的 MR 或 PR:透過 git remote -v 推斷平台
無當前分支的 MR 或 PR:透過 git remote -v 推斷平台

如果無法推斷平台(自託管主機、多個遠端),請詢問使用者。

強制規則

  • 未經使用者明確確認標題與描述,且未獲得單獨的明確授權前,絕不修改 MR/PR。
  • 絕不編造事實(卡片編號、背景、測試)。應詢問或省略。
  • MR/PR 內容中不得提及 Claude。

步驟

1. 識別並擷取 MR/PR

根據引數(上表)解析目標,然後在執行任何指令之前閱讀對應的參考文件:

  • references/sources/gitlab.md
  • references/sources/github.md

如果 CLI(glab / gh)遺失或未經認證,請告知使用者(建議使用 ! glab auth login / ! gh auth login),而非自行猜測。

擷取:當前標題、當前描述、來源/目標分支,以及變更內容(diff 與提交列表),並遵循參考文件。閱讀 diff 以了解 MR/PR 的實際內容。

判斷:

  • 倉庫名稱:專案路徑的最後一段,以大寫表示。
  • 卡片編號:在現有標題、分支名稱、提交與描述中尋找(例如 ABC-123、#123)。若未找到,詢問一次;若使用者表示沒有卡片,則完全省略方括號。

2. 標題

模式(兩個平台相同):

[<卡片編號>] <倉庫名稱> - <主題> - 簡短描述
  • 僅在有卡片時才包含方括號與卡片編號。
  • <倉庫名稱>:以大寫表示的倉庫名稱。
  • <主題>:始終向使用者詢問(可根據 diff 推斷出建議作為預設選項,但不獨自決定)。如果當前標題已包含主題,建議保留它。
  • 簡短描述:簡潔,法語,以小寫開頭,結尾無句號。
  • 如果現有標題已格式良好且仍符合 MR/PR 內容,則保留它並告知使用者。如果不再符合,則提出修改後的版本並顯示修改前後的對比。

3. 描述

結構(Markdown,法語):

# Description

<一兩句總結 MR/PR 目標的句子。>

## Contexte

<如果是修改,則描述程式碼的當前狀態;預期結果:限制條件、目標、架構、策略。>

## Changements

- <高層級變更>
- ...

## Tests

- <已撰寫的測試,或已進行的手動測試>

各區段指引:

  • Description:1–2 句說明目標。提出草稿並請使用者驗證或修正。
  • Contexte:描述修改前的狀態以及預期結果(限制條件、目標、架構、策略)。逐點進行:將每個點提交給使用者驗證,並在可能需釐清時提出問題(為何選擇此方案、哪個限制條件、拒絕了哪個替代方案)。不要帶著未經驗證的假設繼續前進。
  • Changements:僅列出高層級變更。僅在變更精確涉及該細節或為理解整個 MR/PR 所必需時才深入細節。
  • Tests:概述已撰寫的自動化測試(涵蓋的檔案/領域)以及已進行的手動測試。若不清楚,詢問;絕不要聲稱未執行的測試。

建議將相關問題批次使用 AskUserQuestion(主題、卡片編號、背景要點)提出,以減少來回次數。

4. 現有描述(更新情況)

如果 MR/PR 已有描述:

  • 逐區段顯示將會變更的內容(新增 / 修改 / 移除),而非僅顯示新文字。
  • 保留使用者撰寫的有用內容(連結、螢幕截圖、檢查清單、範本區段、關閉關鍵字如 Closes #12);若有任何內容將被移除,需提及。
  • 在繼續之前,請使用者確認變更。

5. 確認,然後送出

  1. 展示最終的標題、目標 MR/PR(URL、分支)以及完整的描述,並請使用者確認三者。
  2. 僅在此之後,再提出一個單獨的問題:授權將修改送至平台。
  3. 獲得批准後,將描述寫入暫存檔案,並使用平台參考文件中的指令更新 MR/PR。這些指令故意未列在 allowed-tools 中,以便使用者收到權限提示。
  4. 報告結果以及 MR/PR 的 URL。如果失敗,顯示錯誤;不要默默重試。

相關技能