@@ -1,6 +1,6 @@
---
---
name : code-issues
name : code-issues
description : 處理一或多個 Gitea 議題的實作流程:先選擇使用 `tea` 或 Gitea REST API + `GITEA_TOKEN`(已選定則跳過),再確認議題所在專案(已知則跳過)與要處理的議題編號(一或多個);接著讀取議題描述與留言、彙整需求,整理 TODO 列表並依影響範圍由小到大排序,既有 TODO 不足以達成議題需求時補上新 TODO 並附加到議題描述;最後逐項實作 TODO,每完成一項就把進度留言 到議題。全程不建立任何草稿檔,中間成果一律用議題描述或留言保存,並盡量以表格與 Mermaid 圖呈現。當使用者說處理議題、實作議題、依議題 TODO 開工、把議題需求整理成 TODO 並逐項完成、議題進度留言,或提到 code-issues、issue 實作、Gitea 議題處理時觸發。不適用於:把需求拆分成多個新議題(用 doc-issues-analyze)、只同步議題狀態不實作(用 doc-issues-sync)、或與 Gitea 無關的本機 TODO 管理。
description : 處理一或多個 Gitea 議題的實作流程:先選擇使用 `tea` 或 Gitea REST API + `GITEA_TOKEN`(已選定則跳過),再確認議題所在專案(已知則跳過)與要處理的議題編號(一或多個);接著讀取議題描述與留言、彙整需求,整理 TODO 列表並依影響範圍由小到大排序,既有 TODO 不足以達成議題需求時補上新 TODO 並附加到議題描述;最後逐項實作 TODO,每完成一項就到議題勾選該 TODO 的 checkbox 並把進度留言到議題;議題若有母議題,實作完成後母議題 checklist 中引用本議題的 TODO 項目也要一併勾選並留言告知。議題若屬於專案看板且有「分析中/待處理/進行中/待測試/已完成」欄位可調整,依處理進度同步把議題移到對應欄位(彙整需求時「分析中」、TODO 確定「待處理」、開始實作「進行中」、實作完成且驗證通過「待測試」,「已完成」僅在使用者確認時) 。全程不建立任何草稿檔,中間成果一律用議題描述或留言保存,並盡量以表格與 Mermaid 圖呈現。當使用者說處理議題、實作議題、依議題 TODO 開工、把議題需求整理成 TODO 並逐項完成、議題進度留言、調整議題看板欄位進度 ,或提到 code-issues、issue 實作、Gitea 議題處理時觸發。不適用於:把需求拆分成多個新議題(用 doc-issues-analyze)、只同步議題狀態不實作(用 doc-issues-sync)、或與 Gitea 無關的本機 TODO 管理。
argument-hint : "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以逗號分隔>] [--host <gitea 主機>] [--yes]"
argument-hint : "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以逗號分隔>] [--host <gitea 主機>] [--yes]"
---
---
@@ -14,7 +14,9 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
| B. 確認專案 | 詢問議題所在專案(owner/repo),可用目前 repo 的 origin 當預設選項 | 已知專案(`--repo` 、對話已提供、或使用者確認採用 origin)|
| B. 確認專案 | 詢問議題所在專案(owner/repo),可用目前 repo 的 origin 當預設選項 | 已知專案(`--repo` 、對話已提供、或使用者確認採用 origin)|
| C. 選擇議題 | 詢問要處理的議題編號,**一個或多個** | 已提供(`--issues` 或對話中已列出)|
| C. 選擇議題 | 詢問要處理的議題編號,**一個或多個** | 已提供(`--issues` 或對話中已列出)|
| D. 彙整 TODO | 讀議題描述+留言 → 彙整需求 → TODO 依**影響範圍小→大**排序 → 不足以達成需求的缺漏 TODO **附加到議題描述 ** | — |
| D. 彙整 TODO | 讀議題描述+留言 → 彙整需求 → TODO 依**影響範圍小→大**排序 → 不足以達成需求的缺漏 TODO **附加到議題描述 ** | — |
| E. 逐項實作 | 依排序實作每項 TODO → 每完成一項:勾選議題描述 checkbox + **留言進度到議題 ** | — |
| E. 逐項實作 | 依排序實作每項 TODO → 每完成一項:勾選議題描述 checkbox + **留言進度到議題 ** → 全部完成後**同步母議題 TODO 狀態**(若有母議題) | — |
議題若**屬於專案看板**且看板有「分析中/待處理/進行中/待測試/已完成」欄位可調整,階段 D/E 需依處理進度**同步調整議題所在欄位**(見「議題進度欄位調整」)。
---
---
@@ -96,6 +98,25 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
- ` tea`: ` tea issues <index> --repo <owner>/<repo> --comments`
- ` tea`: ` tea issues <index> --repo <owner>/<repo> --comments`
- ` api`: ` GET {base}/issues/{index}` 與 ` GET {base}/issues/{index}/comments`
- ` api`: ` GET {base}/issues/{index}` 與 ` GET {base}/issues/{index}/comments`
- 留言中若有需求補充、變更或取消,必須納入需求彙整,並以最新留言為準。
- 留言中若有需求補充、變更或取消,必須納入需求彙整,並以最新留言為準。
- 一併確認**議題是否屬於專案看板(project)**與看板有哪些欄位(column):` tea` 不支援 project 操作,一律改走 API(需 ` GITEA_TOKEN`);project/ column API 隨 Gitea 版本差異大,先探測可用性(如 ` GET {base}/projects`、議題回應中的 project 資訊),**不可用時記錄並略過欄位調整**,不影響其餘流程。
- 一併確認**議題是否有母議題**:檢查議題描述/留言中的「屬於 #n」「parent: #n」等引用、timeline 的 cross-reference( ` GET {base}/issues/{index}/timeline`)、或依賴關係 API;找到候選母議題時讀取其描述,確認其 checklist 是否有引用本議題(如 ` - [ ] #<本議題編號>`)或語意對應本議題的 TODO 項目,記錄母議題編號與對應項目。無法確定時可詢問使用者;找不到就記錄「無母議題」,不臆測。
### 議題進度欄位調整(議題屬於專案看板時)
議題屬於專案看板、且看板有「**分析中/待處理/進行中/待測試/已完成**」欄位可調整時,依處理進度把議題移到對應欄位;每次移動在輸出中回報「議題 #n:<原欄位> → <新欄位>」。
| 時機 | 目標欄位 |
| --- | --- |
| 階段 D 開始彙整需求時 | 分析中 |
| 階段 D 完成(TODO 列表確定)、尚未開始實作 | 待處理 |
| 階段 E 開始實作第一項 TODO | 進行中 |
| 階段 E 全部 TODO 實作完成且驗證通過 | 待測試 |
| 議題需求全數達成且使用者確認無需再測試(或明確指示) | 已完成 |
- **就近對應**:欄位名稱不完全相同時做語意對應(如「To Do」→ 待處理、「In Progress」→ 進行中、「Done」→ 已完成);**無法明確對應的欄位不硬移**,回報並略過。
- **保守推進**:預設最多推進到「待測試」(本 skill 不負責測試與關閉議題);只有使用者明確指示或議題描述明定無需測試時才移到「已完成」。
- **只依實際狀態移動**:欄位只反映真實進度,不得先移欄位再補工作;若實作中途停止(待人工處理),欄位停留在「進行中」並於留言註明原因。
- 議題不屬於任何專案、看板缺少可對應欄位、或 API 不支援移動時 → 回報並略過欄位調整,其餘流程照常。
### D2. 彙整需求並盤點既有 TODO
### D2. 彙整需求並盤點既有 TODO
@@ -130,14 +151,15 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
依 D3 排序(多議題時先完成一個議題的所有 TODO,再進入下一個議題;有跨議題依賴時先處理被依賴者)逐項執行:
依 D3 排序(多議題時先完成一個議題的所有 TODO,再進入下一個議題;有跨議題依賴時先處理被依賴者)逐項執行:
1. **實作**:在本機 repo 依 TODO 內容實作,只修改該 TODO 必要範圍;發現需要擴大範圍或牽動其他 TODO 時,先停止並詢問使用者。
1. **實作**:在本機 repo 依 TODO 內容實作,只修改該 TODO 必要範圍;發現需要擴大範圍或牽動其他 TODO 時,先停止並詢問使用者。開始實作該議題第一項 TODO 前,若議題屬於專案看板,依「議題進度欄位調整」把議題移到「進行中」。
2. **驗證**:執行適合專案的建置/測試/驗證;失敗時修正到通過,無法通過則記錄原因並在留言中標註「待人工處理」。
2. **驗證**:執行適合專案的建置/測試/驗證;失敗時修正到通過,無法通過則記錄原因並在留言中標註「待人工處理」。
3. **更新議題描述**:把 該 TODO 的 checkbox 由 ` - [ ]` 勾成 ` - [x]`(同 D4 的更新方式)。
3. **更新議題 TODO 狀態**:實作完成(驗證通過)後,把議題描述中 該 TODO 的 checkbox 由 ` - [ ]` 勾成 ` - [x]`(同 D4 的更新方式);未通過驗證的 TODO 不得勾選。若母議題的 checklist 有**對應到本項 TODO** 的項目,一併勾選 。
4. **留言進度到議題**(每完成一項就留言,不可累積到最後一次補):
4. **留言進度到議題**(每完成一項就留言,不可累積到最後一次補):
- ` tea`: ` tea comment <index> --repo <owner>/<repo> <內容>`
- ` tea`: ` tea comment <index> --repo <owner>/<repo> <內容>`
- ` api`: ` POST {base}/issues/{index}/comments`, body 以 UTF-8 JSON 檔帶入
- ` api`: ` POST {base}/issues/{index}/comments`, body 以 UTF-8 JSON 檔帶入
- 留言內容以表格呈現:本項 TODO、影響範圍、主要變更(檔案/模組)、驗證方式與結果、整體進度(` 已完成 n/總數 m`);有助理解時附 Mermaid 圖。
- 留言內容以表格呈現:本項 TODO、影響範圍、主要變更(檔案/模組)、驗證方式與結果、整體進度(` 已完成 n/總數 m`);有助理解時附 Mermaid 圖。
5. 全部 TODO 完成後,對每個議題留下**總結留言**:TODO 完成統計表、變更檔案清單、驗證總結、待人工處理項目(若有)。
5. 全部 TODO 完成後,對每個議題留下**總結留言**:TODO 完成統計表、變更檔案清單、驗證總結、待人工處理項目(若有);若議題屬於專案看板且全部 TODO 實作完成並驗證通過,把議題移到「待測試」(有待人工處理項目時停留在「進行中」) 。
6. **同步母議題 TODO 狀態**(D1 有記錄母議題時):本議題全部 TODO 實作完成且驗證通過後,更新母議題描述,把其 checklist 中**引用本議題的項目**(如 ` - [ ] #<本議題編號>`)勾成 ` - [x]`(同 D4 的更新方式,保留母議題其餘內容不動),並在母議題留言告知「子議題 #<編號> 已實作完成」與總結留言連結。母議題 checklist 以其他文字描述本議題時做就近語意對應;**無法明確對應的項目不硬勾**,回報並略過。本議題尚有待人工處理項目時不得勾選母議題對應項目。
> 本 skill 範圍到「實作+留言」為止;是否 commit、push、開 PR 或關閉議題**不在本 skill 自動範圍**,由使用者另行指示(可搭配 ` code-review-resolve` 的分類提交與 PR 流程)。
> 本 skill 範圍到「實作+留言」為止;是否 commit、push、開 PR 或關閉議題**不在本 skill 自動範圍**,由使用者另行指示(可搭配 ` code-review-resolve` 的分類提交與 PR 流程)。
@@ -152,6 +174,8 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
- **階段 C**:處理的議題編號清單(含標題),是否因已提供而跳過詢問。
- **階段 C**:處理的議題編號清單(含標題),是否因已提供而跳過詢問。
- **階段 D**:每個議題的需求彙整重點、TODO 列表(含影響範圍排序)、新增了幾項 TODO 並是否已附加到議題描述。
- **階段 D**:每個議題的需求彙整重點、TODO 列表(含影響範圍排序)、新增了幾項 TODO 並是否已附加到議題描述。
- **階段 E**:每項 TODO 的完成狀態與留言連結(或編號)、驗證結果、待人工處理項目;提醒後續可自行決定 commit/PR/關閉議題。
- **階段 E**:每項 TODO 的完成狀態與留言連結(或編號)、驗證結果、待人工處理項目;提醒後續可自行決定 commit/PR/關閉議題。
- **欄位調整**:議題是否屬於專案看板、各議題的欄位移動紀錄(` #n : <原欄位> → <新欄位>`),或略過欄位調整的原因(不屬於專案/無可對應欄位/API 不支援)。
- **母議題同步**:各議題是否有母議題、母議題 checklist 勾選了哪些項目與留言連結,或略過同步的原因(無母議題/無法明確對應/尚有待人工處理項目)。
---
---