feat: code-issues 新增看板欄位進度調整與母議題 TODO 同步並升版 0.0.4 #4

Merged
admin merged 5 commits from develop into master 2026-07-16 01:52:42 +00:00
5 changed files with 33 additions and 9 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jsc",
"version": "0.0.3",
"version": "0.0.4",
"description": "JSC 程式碼工作流 pluginClaude Code / Codex / Antigravity / OpenCode),提供 RPG 攻防式 git diff review、裁決結果歸檔、Gitea AI review findings 修復/PR 流程、Gitea 議題 TODO 彙整與逐項實作、C# / .NET NuGet 套件更新、Gitea 專案批次同步,以及 action / Dockerfile 標準化流程;於 Claude Code 以 /jsc: 前綴呼叫。",
"skills": "./skills",
"author": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jsc",
"version": "0.0.3",
"version": "0.0.4",
"description": "JSC 程式碼工作流 plugin,提供 RPG 攻防式 git diff review、裁決結果歸檔、Gitea AI review findings 修復/PR 流程、Gitea 議題 TODO 彙整與逐項實作、C# / .NET NuGet 套件更新、Gitea 專案批次同步,以及 action / Dockerfile 標準化流程。",
"skills": "./skills"
}
+1 -1
View File
@@ -205,7 +205,7 @@ rm -rf ~/.config/opencode/skills/{code-review,code-review-archive,code-review-re
### `code-issues`
處理一或多個 Gitea 議題的實作流程,五階段:**(A 工具選擇)** 檢查 `tea``GITEA_TOKEN`,詢問要用 `tea` 或 Gitea REST API**已選定則跳過**);**(B 確認專案)** 詢問議題所在專案 owner/repo,可用目前 repo 的 origin 當預設(**已知則跳過**);**(C 選擇議題)** 列出開啟中議題後詢問要處理的議題編號,**一個或多個**(**已提供則跳過**);**(D 彙整 TODO)** 讀取議題描述與所有留言、彙整需求,盤點既有 checklist 後整理 TODO 列表並依**影響範圍由小到大**(XS→XL)排序,既有 TODO **不足以達成議題需求時補上新 TODO 並附加到議題描述**的 `## TODO` 區塊;**(E 逐項實作)** 依排序實作每項 TODO 並驗證,**每完成一項就勾選描述 checkbox 並留言進度到議題**,全部完成後留下總結留言。**全程不建立任何草稿檔**(中間成果一律保存到議題描述或留言),輸出與留言**盡量使用表格與 Mermaid 圖**commitpush/PR 不在自動範圍,由使用者另行指示。
處理一或多個 Gitea 議題的實作流程,五階段:**(A 工具選擇)** 檢查 `tea``GITEA_TOKEN`,詢問要用 `tea` 或 Gitea REST API**已選定則跳過**);**(B 確認專案)** 詢問議題所在專案 owner/repo,可用目前 repo 的 origin 當預設(**已知則跳過**);**(C 選擇議題)** 列出開啟中議題後詢問要處理的議題編號,**一個或多個**(**已提供則跳過**);**(D 彙整 TODO)** 讀取議題描述與所有留言、彙整需求,盤點既有 checklist 後整理 TODO 列表並依**影響範圍由小到大**(XS→XL)排序,既有 TODO **不足以達成議題需求時補上新 TODO 並附加到議題描述**的 `## TODO` 區塊;**(E 逐項實作)** 依排序實作每項 TODO 並驗證,**每完成一項就勾選描述 checkbox 並留言進度到議題**,全部完成後留下總結留言;議題**有母議題**時,實作完成後把母議題 checklist 中**引用本議題的 TODO 項目一併勾選**並留言告知(無法明確對應的項目不硬勾)。議題若**屬於專案看板**且有「分析中/待處理/進行中/待測試/已完成」欄位可調整,依處理進度**同步移動議題欄位**(彙整需求「分析中」→ TODO 確定「待處理」→ 開始實作「進行中」→ 實作完成且驗證通過「待測試」;「已完成」僅在使用者確認時;不屬於專案、無可對應欄位或 API 不支援則回報並略過)。**全程不建立任何草稿檔**(中間成果一律保存到議題描述或留言),輸出與留言**盡量使用表格與 Mermaid 圖**commitpush/PR 不在自動範圍,由使用者另行指示。
參數:`[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以逗號分隔>] [--host <gitea 主機>] [--yes]`(帶 `--tool``--repo``--issues` 時跳過對應詢問;`--yes` 略過一般確認)。
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "jsc",
"version": "0.0.3",
"version": "0.0.4",
"description": "JSC 程式碼工作流 plugin,提供 RPG 攻防式 git diff review、裁決結果歸檔、Gitea AI review findings 修復/PR 流程、Gitea 議題 TODO 彙整與逐項實作、C# / .NET NuGet 套件更新、Gitea 專案批次同步,以及 action / Dockerfile 標準化流程;於 Antigravity 以 /jsc: 前綴呼叫。",
"skills": "./skills/"
}
+29 -5
View File
@@ -1,6 +1,6 @@
---
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]"
---
@@ -14,7 +14,9 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
| B. 確認專案 | 詢問議題所在專案(owner/repo),可用目前 repo 的 origin 當預設選項 | 已知專案(`--repo`、對話已提供、或使用者確認採用 origin)|
| C. 選擇議題 | 詢問要處理的議題編號,**一個或多個** | 已提供(`--issues` 或對話中已列出)|
| 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`
- `api``GET {base}/issues/{index}` 與 `GET {base}/issues/{index}/comments`
- 留言中若有需求補充、變更或取消,必須納入需求彙整,並以最新留言為準。
- 一併確認**議題是否屬於專案看板(project)**與看板有哪些欄位(column):`tea` 不支援 project 操作,一律改走 API(需 `GITEA_TOKEN`);projectcolumn 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
@@ -130,14 +151,15 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
依 D3 排序(多議題時先完成一個議題的所有 TODO,再進入下一個議題;有跨議題依賴時先處理被依賴者)逐項執行:
1. **實作**:在本機 repo 依 TODO 內容實作,只修改該 TODO 必要範圍;發現需要擴大範圍或牽動其他 TODO 時,先停止並詢問使用者。
1. **實作**:在本機 repo 依 TODO 內容實作,只修改該 TODO 必要範圍;發現需要擴大範圍或牽動其他 TODO 時,先停止並詢問使用者。開始實作該議題第一項 TODO 前,若議題屬於專案看板,依「議題進度欄位調整」把議題移到「進行中」。
2. **驗證**:執行適合專案的建置/測試/驗證;失敗時修正到通過,無法通過則記錄原因並在留言中標註「待人工處理」。
3. **更新議題描述**:把該 TODO 的 checkbox 由 `- [ ]` 勾成 `- [x]`(同 D4 的更新方式)。
3. **更新議題 TODO 狀態**:實作完成(驗證通過)後,把議題描述中該 TODO 的 checkbox 由 `- [ ]` 勾成 `- [x]`(同 D4 的更新方式);未通過驗證的 TODO 不得勾選。若母議題的 checklist 有**對應到本項 TODO** 的項目,一併勾選
4. **留言進度到議題**(每完成一項就留言,不可累積到最後一次補):
- `tea``tea comment <index> --repo <owner>/<repo> <內容>`
- `api``POST {base}/issues/{index}/comments`body 以 UTF-8 JSON 檔帶入
- 留言內容以表格呈現:本項 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 流程)。
@@ -152,6 +174,8 @@ argument-hint: "[--tool <tea|api>] [--repo <owner/repo>] [--issues <編號,以
- **階段 C**:處理的議題編號清單(含標題),是否因已提供而跳過詢問。
- **階段 D**:每個議題的需求彙整重點、TODO 列表(含影響範圍排序)、新增了幾項 TODO 並是否已附加到議題描述。
- **階段 E**:每項 TODO 的完成狀態與留言連結(或編號)、驗證結果、待人工處理項目;提醒後續可自行決定 commit/PR/關閉議題。
- **欄位調整**:議題是否屬於專案看板、各議題的欄位移動紀錄(`#n<原欄位> → <新欄位>`),或略過欄位調整的原因(不屬於專案/無可對應欄位/API 不支援)。
- **母議題同步**:各議題是否有母議題、母議題 checklist 勾選了哪些項目與留言連結,或略過同步的原因(無母議題/無法明確對應/尚有待人工處理項目)。
---