Files
code-review/TODO.md
T

3.5 KiB

開發階段 TODO

階段一:基本流程串接

  • 目標:確保 action 可以被觸發,pipeline 各步驟依序執行,log 出每個主要階段的進入與完成。
  • 驗收:log 中能看到每個階段(如「Step1: pipeline start」、「Step2: findings merge」等)明確訊息,且流程能走完(即使還沒產生 findings)。
  • 完成

階段二:Git Diff 排除 .gitea/ 資料夾

  • 目標:讀取 Git Diff 時排除 .gitea/ 資料夾內的所有檔案,避免 AI 分析 workflow 設定等非業務程式碼。
  • 驗收:PR 中有 .gitea/ 路徑的變更時,diff 內容不包含該路徑的區塊,AI 分析結果不含 .gitea/ 相關問題。
  • 完成

階段三:Findings 產生與合併

  • 目標:各角色(style/security/performance/maintainability/testing)能產生 findings,並正確合併新舊 findings。
  • 驗收:log 中能看到每個角色 findings 數量、合併後 findings 統計,並有「Step3: merged findings total=...」等訊息。
  • 完成

階段四:AI 去重與角色確認

  • 目標:嘗試呼叫 LLM 進行 findings 去重與角色確認,API 額度不足時要有降級處理 log。
  • 驗收:log 中能看到 deduplication/resolution confirmation 成功或失敗(如 402),降級時有「保留所有問題」等明確訊息。
  • 完成

階段五:AI 排除問題過濾

  • 目標:讀取排除問題檔案(.gitea/ai-review/exclusions.json)進行規則過濾,並呼叫 AI 判斷剩餘問題是否為誤報或不適用,兩層過濾後產生最終問題清單。
  • 驗收:log 中能看到排除問題檔案讀取成功或不存在的訊息、規則過濾數量變化,以及「AI 誤報過濾: N -> M 筆」或降級訊息。
  • 完成

階段六:findings 寫入與 comment 發布

  • 目標:.gitea/ai-review/findings.json 正確寫入,comment 發布順序正確(舊問題→非嚴重→嚴重),每步有 log。
  • 驗收:log 中能看到 .gitea/ai-review/findings.json 寫入、comment sync 的詳細訊息與順序。
  • 完成

階段七:階段六後驗證 JSON 格式

  • 目標:階段六完成後驗證 findings.jsonexclusions.json 是否為合法 JSON 格式,格式錯誤時先嘗試重置為空陣列並備份原檔,修正失敗才 exit 1。
  • 驗收:log 中能看到兩個檔案的驗證結果(成功或失敗),格式錯誤時有「嘗試修正」訊息與備份路徑,修正失敗時 workflow 狀態為失敗。
  • 完成

階段八:記憶區 commit/push 與錯誤處理

  • 目標:記憶區能成功 commit/push,錯誤時有明確 log,流程結束有總結訊息。
  • 驗收:log 有「persisted findings」、「commit=...」、「push=...」等訊息,錯誤時有「Runner failed: ...」等明確錯誤說明。
  • 完成

階段九:阻擋嚴重問題 PR(第 8 點)

  • 目標:如果 PR 問題表格中有嚴重(critical)問題,workflow 需直接 exit 1,不讓流程成功。
  • 驗收:log 中能看到「critical 問題存在,workflow 結束(exit 1)」等明確訊息,且 workflow 狀態為失敗。
  • 完成

階段十:API Key 輪替

  • 目標:所有平台的 API Key 支援逗號分隔傳入多個,隨機順序各嘗試一次,單一 Key 失敗時自動換下一個,全部失敗則 exit 1。
  • 驗收:log 中能看到「key[N/M] 失敗」等訊息,換 key 後繼續執行;傳入單一 Key 時行為與原本相同;全部 Key 失敗時 log「所有 API Key 均失敗,終止流程」且 workflow 狀態為失敗。
  • 完成

所有階段驗收通過。