Issue Create
智慧建立 GitLab Issue,支援兩種使用模式:討論模式(自然對話後建立)和指令模式(直接建立)。
使用模式
模式一:討論模式(推薦)
在自然對話中討論問題或需求,AI 會在適當時機主動詢問是否建立 Issue。
觸發時機:當對話中出現以下情境時,AI 應主動提出建立 Issue:
- •討論了一個具體的 bug(重現步驟、錯誤現象)
- •討論了一個新功能需求(功能描述、預期行為)
- •使用者描述了客戶/客成回報的問題
- •討論到了具體的解決方案或行動項目
對話範例:
使用者:表單送出後,如果有計算欄位引用了子表單的值,結果會顯示 NaN。
客戶 A 公司的 John 有回報這個問題。
AI: 這看起來是計算欄位在子表單值更新時沒有正確取值的問題。
可能是子表單的資料在送出時尚未同步到計算欄位的上下文中。
要不要建立一個 Bug Issue 來追蹤這個問題?
我可以根據我們剛才的討論自動填寫模板。
使用者:好
AI: [進入 Issue 預覽與確認流程,自動從對話中萃取資訊填入模板]
AI 主動提問的格式: 使用 AskUserQuestion:
- •問題:「要不要建立一個 [Bug/Feature] Issue 來追蹤這個問題?」
- •選項:
- •好,建立 Issue(AI 自動從對話萃取內容填入模板)
- •再討論一下,先不建
- •不用
若使用者同意,AI 從對話上下文中萃取資訊,自動填入模板的各區段,然後進入 Step 5(預覽與確認) 流程。
模式二:指令模式
直接使用指令建立 Issue。
/issue-create 修正登入頁面的驗證問題
/issue-create --template=bug 登入驗證失敗
/issue-create --project=api --template=feature --milestone="Sprint 62" 新增深色模式
參數說明:
- •
描述(必要):Issue 的自然語言描述 - •
--template(可選):使用指定模板(bug / feature),若未指定則 AI 自動判斷 - •
--project(可選):指定目標專案的 key(對應 config 中 gitlab.projects),預設為 defaultProjectPath - •
--labels(可選):額外標籤,逗號分隔 - •
--milestone(可選):指定里程碑名稱
前置條件
需要 .issue-config.json 存在。按以下優先順序搜尋:
- •專案目錄:
./.issue-config.json - •使用者目錄:
~/.claude/.issue-config.json
若均不存在,提示:
✗ 尚未初始化 Issue 設定 找不到 .issue-config.json,請先執行 /issue-init 建立設定。
工作流程
1. 讀取設定
從搜尋到的 .issue-config.json 讀取(專案層級優先於使用者層級):
- •
gitlab.defaultProjectPath(或--project覆寫) - •
defaults.labels - •
templates(若指定--template或 AI 自動判斷)
2. 內容來源判斷
根據觸發模式決定內容來源:
討論模式:
- •從當前對話上下文中萃取資訊
- •自動識別:問題描述、客戶資訊、重現步驟、技術分析、解決方案
- •將萃取的資訊對應到模板區段
指令模式:
- •從使用者提供的描述文字中提取資訊
3. 智慧分析
AI 根據內容來源進行分析:
- •自動判斷 Issue 類型:根據關鍵字判斷是 bug / feature
- •bug 關鍵字:修正、修復、fix、bug、錯誤、問題、異常、crash、壞掉、不正常、失敗
- •feature 關鍵字:新增、新功能、feature、實作、implement、需求、開發、建立
- •提取關鍵資訊:填入對應模板的各區段
- •Bug 模板:填入「狀況描述」、「如何重現」、「完成定義」等區段
- •Feature 模板:填入「功能描述」、「完成定義」等區段
- •建議標籤組合:從 config 中的 templates.labels + defaults.labels 組合
- •建議優先級:根據描述中的緊急程度
4. 跨專案影響分析(可選)
若 config 中有設定 gitlab.projects(多專案):
- •使用
mcp__GitLab_communication_server__list_issues搜尋各子專案的相關 Issue - •分析此需求可能影響的專案範圍
- •在 Issue 描述中加入「影響範圍」區段
5. 重複檢查
使用 mcp__GitLab_communication_server__list_issues 搜尋相似 Issue:
- •以 title 關鍵字搜尋
- •若找到相似 Issue → 使用 AskUserQuestion 顯示:
- •問題:「找到以下相似的 Issue,是否仍要建立新 Issue?」
- •列出相似 Issue(標題 + URL)
- •選項:
- •仍要建立新 Issue
- •在既有 Issue 上新增備註
- •取消
6. 預覽與確認
使用 AskUserQuestion 展示完整的 Issue 預覽:
- •問題:「即將建立以下 Issue,確認嗎?」
- •顯示:
code
專案: BizForm/Home 標題: 登入驗證失敗導致無法登入 Labels: Bug, from-claude 描述: # 狀況描述 - 客戶/客成訊息 (或附上 Mattermost 討論連結) [相關討論連結] - 工程人員簡述 使用者輸入正確帳密後,系統仍顯示驗證失敗 | 反應的用戶 | 聯繫人員 | | ---------- | ---------- | | XXX 公司 | John | # 如何重現 ## 重現步驟 1. 開啟登入頁面 2. 輸入正確的帳號密碼 3. 點擊登入按鈕 - 出錯表單/畫面的連結/截圖 - https://example.com/login?depotId=gss_test - 重現環境 - 裝置 - [x] Win - [ ] Mac ... - •選項:
- •確認建立
- •修改內容(提供修改指示)
- •取消
6.5 Label 驗證
在建立 Issue 前,檢查所有要附加的 Labels 是否存在:
- •使用
mcp__GitLab_communication_server__list_labels查詢專案現有 Labels - •比對預計附加的 Labels
- •若有不存在的 Label → 使用 AskUserQuestion 詢問:
- •問題:「以下 Labels 在專案中不存在:[label1, label2]」
- •選項:
- •建立新 Label 並繼續
- •移除不存在的 Label 繼續建立
- •取消
- •若選擇建立 → 使用
mcp__GitLab_communication_server__create_label建立
7. 建立 Issue
使用 mcp__GitLab_communication_server__create_issue 建立 Issue:
- •project_id: 來自 config
- •title: 組合後的標題
- •description: 填充後的模板內容
- •labels: 組合後的標籤(逗號分隔字串)
- •milestone_id: 若指定,先用 list_milestones 查詢對應 ID
8. 建立跨專案關聯(可選)
若影響分析發現相關 Issue:
- •使用 AskUserQuestion 詢問是否建立關聯
- •使用
mcp__GitLab_communication_server__create_issue_link建立relates_to關聯
9. 完成訊息
✓ Issue 已建立: #456 - [Bug] 登入驗證失敗 URL: https://gitlab.example.com/BizForm/Home/-/issues/456 Labels: bug, priority::medium, from-claude 關聯 Issue: - relates_to #234 (BizForm/API)
GitLab MCP 工具使用
| 步驟 | 工具 | 用途 |
|---|---|---|
| 重複檢查 | list_issues | 搜尋相似 Issue |
| 跨專案分析 | list_issues | 搜尋各專案相關 Issue |
| 里程碑查詢 | list_milestones | 取得 milestone ID |
| Label 驗證 | list_labels | 查詢專案現有 Labels |
| 建立 Label | create_label | 建立新 Label |
| 建立 Issue | create_issue | 建立 Issue |
| 建立關聯 | create_issue_link | 建立 Issue 間關聯 |
| 新增備註 | create_issue_note | 在既有 Issue 上新增備註 |
模板定義
Bug 模板
使用時自動附加 label: Bug
注意: GitLab quick action /label 由 API 的 labels 參數自動處理,不需要放在描述中。
# 狀況描述
- 客戶/客成訊息 (或附上 Mattermost 討論連結)
- 工程人員簡述
| 反應的用戶 | 聯繫人員 |
| ---------- | ---------- |
| xxx | xxxx |
# 如何重現
## 重現步驟
1.
2.
- 出錯表單/畫面的連結/截圖
- 表單、表單樣板網址請記得加上參數指定站台 `?depotId=gss_test`
- 重現環境
- 裝置
- [ ] Win
- [ ] Mac
- [ ] iPhone
- [ ] iPad
- [ ] Android
- 特定瀏覽器
- [ ] Chrome
- [ ] Edge
- [ ] Safari
- [ ] FireFox
# 完成定義
## 完整的預期行為
- 設計稿/畫面截圖標示
- API 預期回傳資料、處理邏輯
- [API 名稱](swagger 連結)
-
- 需支援的情境/範例情境
-
## 可能解決方案
-
# 關聯 Issue
-
Feature 模板
使用時自動附加 label: Feature
注意: GitLab quick action /label 由 API 的 labels 參數自動處理,不需要放在描述中。
# 功能描述 | 提出的用戶 | 聯繫的人員 | | ---------- | ---------- | | xxx | xxxx | # 完成定義 # 關聯 Issue
注意事項
- •所有建立操作都需要使用者確認後才執行
- •AI 自動判斷的模板類型可被 --template 參數覆寫
- •defaults.labels 中的標籤會自動附加到所有新建 Issue
- •若 GitLab 中不存在指定的 label,會提示是否要建立新 label