發佈 jsc-sdlc 0.1.1:PR 未合併不開下一包、檢查時讀留言 #16

Merged
admin merged 3 commits from develop into master 2026-08-25 04:12:26 +00:00
Member

變更摘要

PR 建立後就停住:該 PR 沒合併之前不得開始下一個工作包。每次檢查 PR 是否完成時,順便讀留言並詢問使用者要不要依留言修正。

流程

implement 新增步驟 4「先處理上一個工作包的 PR」,排在挑選工作包之前:

  1. 讀分析頁的 PR 欄,有未合併的 PR → gitea.sh pr-status {owner}/{repo} {index}。
  2. merged=true → 解除阻擋:移除該包的 worktree、把工作包標記完成、繼續。
  3. 未合併 → 同一次就把留言讀出來:gitea.sh pr-comments 回傳 issue 留言、審查評語、行內程式碼留言,依時間排序,原文轉述給使用者(作者、時間、內容)。
  4. 依決策樹詢問:依留言修正(回原 worktree 改,推同一條工作分支,PR 自己更新)或先等待。不自行決定,不為同一包開第二個 PR。
  5. 已關閉但未合併 → 回報並詢問,不得當成完成。
  6. 只有在沒有未合併 PR 時才能往下走。

步驟 11 相應改為:建立 PR → 把 PR 連結寫進分析頁的 PR 欄 → 保留 worktree → 回報 PR 網址並停止,不開下一包。

推翻了先前的一個決定

worktree 的移除時機從「PR 建立成功後」改為「PR 合併之後」。

這不是偏好問題:新規則要求「留言要求修改時回去改」,而修改要回到同一個 worktree、推到同一條工作分支。PR 一建立就移除 worktree,等於每次收到留言都要為了改一行重建整個 worktree。

分析頁樣板

WBS 表新增 PR 欄,記錄該工作包的 PR 連結與編號。這是下一次執行 implement 時找得到「上一包的 PR」的唯一途徑——沒有它,步驟 4 無從查起。

新增的工具(jsc-gitea,另一個 PR,本 PR 依賴它)

子指令 用途
gitea.sh pr-status <owner>/<repo> <index> 印出 {state} {merged} {mergeable}
gitea.sh pr-comments <owner>/<repo> <index> 印出所有留言,依時間排序

驗證

pr-status 與 pr-comments 都在真實 PR 上實測過。過程中發現一件事:Gitea 的 PR comments 計數會把沒有文字的審查算進去,只印有內文的留言會讓 APPROVED/REQUEST_CHANGES 這種關鍵狀態完全消失。pr-comments 因此改為無評語的審查也照印,標成「(無評語)」。

STE100 lint 通過;description 5 句;步驟編號 1~13 連續。

## 變更摘要 PR 建立後就停住:**該 PR 沒合併之前不得開始下一個工作包**。每次檢查 PR 是否完成時,順便讀留言並詢問使用者要不要依留言修正。 ## 流程 `implement` 新增步驟 4「先處理上一個工作包的 PR」,排在挑選工作包之前: 1. 讀分析頁的 PR 欄,有未合併的 PR → `gitea.sh pr-status {owner}/{repo} {index}`。 2. `merged=true` → 解除阻擋:移除該包的 worktree、把工作包標記完成、繼續。 3. 未合併 → **同一次就把留言讀出來**:`gitea.sh pr-comments` 回傳 issue 留言、審查評語、行內程式碼留言,依時間排序,原文轉述給使用者(作者、時間、內容)。 4. 依決策樹詢問:**依留言修正**(回原 worktree 改,推同一條工作分支,PR 自己更新)或**先等待**。不自行決定,**不為同一包開第二個 PR**。 5. 已關閉但未合併 → 回報並詢問,不得當成完成。 6. **只有在沒有未合併 PR 時才能往下走。** 步驟 11 相應改為:建立 PR → 把 PR 連結寫進分析頁的 PR 欄 → **保留 worktree** → 回報 PR 網址並停止,不開下一包。 ## 推翻了先前的一個決定 worktree 的移除時機從「PR 建立成功後」改為「**PR 合併之後**」。 這不是偏好問題:新規則要求「留言要求修改時回去改」,而修改要回到同一個 worktree、推到同一條工作分支。PR 一建立就移除 worktree,等於每次收到留言都要為了改一行重建整個 worktree。 ## 分析頁樣板 WBS 表新增 **PR 欄**,記錄該工作包的 PR 連結與編號。這是下一次執行 `implement` 時找得到「上一包的 PR」的唯一途徑——沒有它,步驟 4 無從查起。 ## 新增的工具(jsc-gitea,另一個 PR,本 PR 依賴它) | 子指令 | 用途 | | --- | --- | | `gitea.sh pr-status <owner>/<repo> <index>` | 印出 `{state} {merged} {mergeable}` | | `gitea.sh pr-comments <owner>/<repo> <index>` | 印出所有留言,依時間排序 | ## 驗證 `pr-status` 與 `pr-comments` 都在真實 PR 上實測過。過程中發現一件事:Gitea 的 PR `comments` 計數會把**沒有文字的審查**算進去,只印有內文的留言會讓 `APPROVED`/`REQUEST_CHANGES` 這種關鍵狀態完全消失。`pr-comments` 因此改為無評語的審查也照印,標成「(無評語)」。 STE100 lint 通過;description 5 句;步驟編號 1~13 連續。
jiantw83 added 3 commits 2026-08-25 04:08:53 +00:00
admin approved these changes 2026-08-25 04:12:23 +00:00
admin merged commit 0e773b34bd into master 2026-08-25 04:12:26 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Reference: plugins/sdlc#16