@@ -1,6 +1,6 @@
# AI Code Review
# AI Code Review
> 更新時間:2026/07/17 16 :49:21
> 更新時間:2026/07/17 18 :49:58
AI 多角色 code review 的 Gitea **node action ** ( `node24` 、零外部相依):以攻擊方六角色(🔮 Mage 邏輯、🗡️ Assassin 安全、⚡ Rogue 效率、🎼 Bard 風格、🧪 Maya 測試、🧰 Leo 可維護性)並行找問題、防守方(🛡️ Paladin)裁決誤報,結果留言到 PR、保存 findings,並以 bot commit 標記審查結果(`[success]` / `[failure]` )供下次觸發快速回報。
AI 多角色 code review 的 Gitea **node action ** ( `node24` 、零外部相依):以攻擊方六角色(🔮 Mage 邏輯、🗡️ Assassin 安全、⚡ Rogue 效率、🎼 Bard 風格、🧪 Maya 測試、🧰 Leo 可維護性)並行找問題、防守方(🛡️ Paladin)裁決誤報,結果留言到 PR、保存 findings,並以 bot commit 標記審查結果(`[success]` / `[failure]` )供下次觸發快速回報。
@@ -56,19 +56,19 @@ flowchart TD
| 專案名稱 | 專案描述 |
| 專案名稱 | 專案描述 |
| --- | --- |
| --- | --- |
| [ai-code-review ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master / ) | Gitea node action:提供台北時區日誌工具、runner 上下文載入、git diff/ commit 操作、Gitea REST API 客戶端(留言/review/ issue/標籤)、AI CLI 工具偵測與 sub agent 執行、角色提示載入、固定留言模板,以及多角色審查編排(攻擊方找問題、防守方裁決、findings 保存、誤判回寫、建問題模式) |
| [ai-code-review ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop / ) | Gitea node action:提供台北時區日誌工具、runner 上下文載入、git diff/ commit 操作、Gitea REST API 客戶端(留言/review/ issue/標籤)、AI CLI 工具偵測與 sub agent 執行、角色提示載入、固定留言模板,以及多角色審查編排(攻擊方找問題、防守方裁決、findings 保存、誤判回寫、建問題模式) |
### 參考專案表
### 參考專案表
| 專案名稱 | 參考專案列表 |
| 專案名稱 | 參考專案列表 |
| --- | --- |
| --- | --- |
| [ai-code-review ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master / ) | 無 |
| [ai-code-review ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop / ) | 無 |
### NuGet 套件表
### NuGet 套件表
| 專案名稱 | NuGet 套件列表 |
| 專案名稱 | NuGet 套件列表 |
| --- | --- |
| --- | --- |
| [ai-code-review ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master / ) | 無 |
| [ai-code-review ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop / ) | 無 |
## 功能列表
## 功能列表
@@ -76,56 +76,56 @@ flowchart TD
| 功能名稱 | 功能描述 |
| 功能名稱 | 功能描述 |
| --- | --- |
| --- | --- |
| [log.taipeiNow ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/log.js#L20 ) | [取得台北時區 yyyy/MM/dd HH:mm:ss 時間字串 ](#logtaipeinow ) |
| [log.taipeiNow ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/log.js#L20 ) | [取得台北時區 yyyy/MM/dd HH:mm:ss 時間字串 ](#logtaipeinow ) |
| [log.taipeiFileStamp ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/log.js#L41 ) | [取得檔名用時間戳 yyyy-MM-dd-HH:mm:ss ](#logtaipeifilestamp ) |
| [log.taipeiFileStamp ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/log.js#L41 ) | [取得檔名用時間戳 yyyy-MM-dd-HH:mm:ss ](#logtaipeifilestamp ) |
| [log.taipeiFromIso ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/log.js#L60 ) | [將 ISO 時間字串轉為台北時區顯示字串 ](#logtaipeifromiso ) |
| [log.taipeiFromIso ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/log.js#L60 ) | [將 ISO 時間字串轉為台北時區顯示字串 ](#logtaipeifromiso ) |
| [log.log ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/log.js#L83 ) | [以統一格式輸出一行日誌 ](#loglog ) |
| [log.log ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/log.js#L83 ) | [以統一格式輸出一行日誌 ](#loglog ) |
| [context.loadContext ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/context.js#L64 ) | [彙整 runner 環境變數與事件 payload 為執行上下文 ](#contextloadcontext ) |
| [context.loadContext ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/context.js#L64 ) | [彙整 runner 環境變數與事件 payload 為執行上下文 ](#contextloadcontext ) |
| [gitrepo.latestCommitSubject ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitrepo.js#L60 ) | [取得最新 commit 的訊息標題 ](#gitrepolatestcommitsubject ) |
| [gitrepo.latestCommitSubject ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitrepo.js#L60 ) | [取得最新 commit 的訊息標題 ](#gitrepolatestcommitsubject ) |
| [gitrepo.resolveMergeBase ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitrepo.js#L81 ) | [解析 base 分支與 HEAD 的 merge-base ](#gitreporesolvemergebase ) |
| [gitrepo.resolveMergeBase ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitrepo.js#L81 ) | [解析 base 分支與 HEAD 的 merge-base ](#gitreporesolvemergebase ) |
| [gitrepo.changedFiles ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitrepo.js#L104 ) | [列出 base 與 HEAD 之間有變更的檔案 ](#gitrepochangedfiles ) |
| [gitrepo.changedFiles ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitrepo.js#L104 ) | [列出 base 與 HEAD 之間有變更的檔案 ](#gitrepochangedfiles ) |
| [gitrepo.fileDiff ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitrepo.js#L125 ) | [取得單一檔案的 git diff 內容 ](#gitrepofilediff ) |
| [gitrepo.fileDiff ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitrepo.js#L125 ) | [取得單一檔案的 git diff 內容 ](#gitrepofilediff ) |
| [gitrepo.fileLastUpdatedIso ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitrepo.js#L143 ) | [取得檔案最後一次 commit 的 ISO 時間 ](#gitrepofilelastupdatediso ) |
| [gitrepo.fileLastUpdatedIso ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitrepo.js#L143 ) | [取得檔案最後一次 commit 的 ISO 時間 ](#gitrepofilelastupdatediso ) |
| [gitrepo.commitAndPushFindings ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitrepo.js#L181 ) | [以 bot 身分 commit 結果檔並 push 回 PR 來源分支 ](#gitrepocommitandpushfindings ) |
| [gitrepo.commitAndPushFindings ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitrepo.js#L181 ) | [以 bot 身分 commit 結果檔並 push 回 PR 來源分支 ](#gitrepocommitandpushfindings ) |
| [gitea.whoAmI ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L87 ) | [取得 token 對應的使用者(bot 身分) ](#giteawhoami ) |
| [gitea.whoAmI ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L87 ) | [取得 token 對應的使用者(bot 身分) ](#giteawhoami ) |
| [gitea.createCommentOnIssue ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L106 ) | [對指定編號 issue/PR 新增一般留言 ](#giteacreatecommentonissue ) |
| [gitea.createCommentOnIssue ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L106 ) | [對指定編號 issue/PR 新增一般留言 ](#giteacreatecommentonissue ) |
| [gitea.createIssueComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L124 ) | [對本次 PR 新增一般留言 ](#giteacreateissuecomment ) |
| [gitea.createIssueComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L124 ) | [對本次 PR 新增一般留言 ](#giteacreateissuecomment ) |
| [gitea.listLabels ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L141 ) | [列出存取庫可用標籤 ](#gitealistlabels ) |
| [gitea.listLabels ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L141 ) | [列出存取庫可用標籤 ](#gitealistlabels ) |
| [gitea.createIssue ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L164 ) | [在存取庫建立 issue(可掛標籤) ](#giteacreateissue ) |
| [gitea.createIssue ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L164 ) | [在存取庫建立 issue(可掛標籤) ](#giteacreateissue ) |
| [gitea.listIssueComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L184 ) | [列出 PR 全部一般留言(自動分頁) ](#gitealistissuecomments ) |
| [gitea.listIssueComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L184 ) | [列出 PR 全部一般留言(自動分頁) ](#gitealistissuecomments ) |
| [gitea.editIssueComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L202 ) | [編輯既有一般留言 ](#giteaeditissuecomment ) |
| [gitea.editIssueComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L202 ) | [編輯既有一般留言 ](#giteaeditissuecomment ) |
| [gitea.createReview ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L223 ) | [建立 code review 並掛行內留言 ](#giteacreatereview ) |
| [gitea.createReview ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L223 ) | [建立 code review 並掛行內留言 ](#giteacreatereview ) |
| [gitea.listReviews ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L243 ) | [列出 PR 全部 review(自動分頁) ](#gitealistreviews ) |
| [gitea.listReviews ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L243 ) | [列出 PR 全部 review(自動分頁) ](#gitealistreviews ) |
| [gitea.listReviewComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L264 ) | [列出某 review 的全部行內留言 ](#gitealistreviewcomments ) |
| [gitea.listReviewComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L264 ) | [列出某 review 的全部行內留言 ](#gitealistreviewcomments ) |
| [gitea.tryResolveReviewComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/gitea.js#L287 ) | [盡力將行內留言標記為已解決 ](#giteatryresolvereviewcomment ) |
| [gitea.tryResolveReviewComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/gitea.js#L287 ) | [盡力將行內留言標記為已解決 ](#giteatryresolvereviewcomment ) |
| [agents.detectTool ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/agents.js#L53 ) | [依優先序偵測可用的 AI CLI 工具 ](#agentsdetecttool ) |
| [agents.detectTool ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/agents.js#L53 ) | [依優先序偵測可用的 AI CLI 工具 ](#agentsdetecttool ) |
| [agents.runAgent ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/agents.js#L98 ) | [非互動執行一次 sub agent 並取回回覆 ](#agentsrunagent ) |
| [agents.runAgent ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/agents.js#L98 ) | [非互動執行一次 sub agent 並取回回覆 ](#agentsrunagent ) |
| [agents.extractJson ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/agents.js#L144 ) | [從 agent 回覆萃取 JSON(容忍雜訊) ](#agentsextractjson ) |
| [agents.extractJson ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/agents.js#L144 ) | [從 agent 回覆萃取 JSON(容忍雜訊) ](#agentsextractjson ) |
| [roles.loadRoles ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/roles.js#L32 ) | [載入角色提示檔並解析 frontmatter ](#rolesloadroles ) |
| [roles.loadRoles ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/roles.js#L32 ) | [載入角色提示檔並解析 frontmatter ](#rolesloadroles ) |
| [roles.attackersOf ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/roles.js#L71 ) | [過濾出攻擊方角色 ](#rolesattackersof ) |
| [roles.attackersOf ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/roles.js#L71 ) | [過濾出攻擊方角色 ](#rolesattackersof ) |
| [roles.defendersOf ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/roles.js#L90 ) | [過濾出防守方角色 ](#rolesdefendersof ) |
| [roles.defendersOf ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/roles.js#L90 ) | [過濾出防守方角色 ](#rolesdefendersof ) |
| [templates.toolComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L88 ) | [產生步驟 2 審查工具留言 ](#templatestoolcomment ) |
| [templates.toolComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L88 ) | [產生步驟 2 審查工具留言 ](#templatestoolcomment ) |
| [templates.diffComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L132 ) | [產生步驟 3 變更摘要留言 ](#templatesdiffcomment ) |
| [templates.diffComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L132 ) | [產生步驟 3 變更摘要留言 ](#templatesdiffcomment ) |
| [templates.rolesComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L173 ) | [產生步驟 4/ 6 角色登場留言 ](#templatesrolescomment ) |
| [templates.rolesComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L173 ) | [產生步驟 4/ 6 角色登場留言 ](#templatesrolescomment ) |
| [templates.severeCommentBody ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L215 ) | [產生步驟 9 單條嚴重問題留言 ](#templatesseverecommentbody ) |
| [templates.severeCommentBody ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L215 ) | [產生步驟 9 單條嚴重問題留言 ](#templatesseverecommentbody ) |
| [templates.severeReviewBody ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L247 ) | [產生步驟 9 嚴重問題 review 總覽 ](#templatesseverereviewbody ) |
| [templates.severeReviewBody ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L247 ) | [產生步驟 9 嚴重問題 review 總覽 ](#templatesseverereviewbody ) |
| [templates.othersComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L277 ) | [產生步驟 10 警告+建議彙整表格留言 ](#templatesotherscomment ) |
| [templates.othersComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L277 ) | [產生步驟 10 警告+建議彙整表格留言 ](#templatesotherscomment ) |
| [templates.issueBody ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L309 ) | [產生建問題模式的 issue 本文 ](#templatesissuebody ) |
| [templates.issueBody ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L309 ) | [產生建問題模式的 issue 本文 ](#templatesissuebody ) |
| [templates.issueFindingComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L341 ) | [產生建問題模式單條問題的 issue 留言 ](#templatesissuefindingcomment ) |
| [templates.issueFindingComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L341 ) | [產生建問題模式單條問題的 issue 留言 ](#templatesissuefindingcomment ) |
| [templates.nothingToReviewComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/templates.js#L379 ) | [產生無可審查變更留言 ](#templatesnothingtoreviewcomment ) |
| [templates.nothingToReviewComment ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/templates.js#L379 ) | [產生無可審查變更留言 ](#templatesnothingtoreviewcomment ) |
| [review.loadReviewIgnore ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L29 ) | [讀取 .reviewignore 忽略前綴清單 ](#reviewloadreviewignore ) |
| [review.loadReviewIgnore ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L29 ) | [讀取 .reviewignore 忽略前綴清單 ](#reviewloadreviewignore ) |
| [review.isIgnored ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L53 ) | [判斷檔案是否忽略不送審 ](#reviewisignored ) |
| [review.isIgnored ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L53 ) | [判斷檔案是否忽略不送審 ](#reviewisignored ) |
| [review.collectDiffRows ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L77 ) | [整理送審 diff 資料列(含長度上限) ](#reviewcollectdiffrows ) |
| [review.collectDiffRows ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L77 ) | [整理送審 diff 資料列(含長度上限) ](#reviewcollectdiffrows ) |
| [review.fillPurposes ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L127 ) | [以 AI 補齊每個檔案的一行用途描述 ](#reviewfillpurposes ) |
| [review.fillPurposes ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L127 ) | [以 AI 補齊每個檔案的一行用途描述 ](#reviewfillpurposes ) |
| [review.runAttackers ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L276 ) | [攻擊方 sub agent 並行找問題並合併列表 ](#reviewrunattackers ) |
| [review.runAttackers ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L276 ) | [攻擊方 sub agent 並行找問題並合併列表 ](#reviewrunattackers ) |
| [review.runDefenders ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L448 ) | [防守方 sub agent 裁決保留或排除 ](#reviewrundefenders ) |
| [review.runDefenders ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L448 ) | [防守方 sub agent 裁決保留或排除 ](#reviewrundefenders ) |
| [review.sortFindings ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L572 ) | [依嚴重度→檔案→行號排序 findings ](#reviewsortfindings ) |
| [review.sortFindings ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L572 ) | [依嚴重度→檔案→行號排序 findings ](#reviewsortfindings ) |
| [review.appendExclusions ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L521 ) | [誤判問題附加到 exclusions.json ](#reviewappendexclusions ) |
| [review.appendExclusions ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L521 ) | [誤判問題附加到 exclusions.json ](#reviewappendexclusions ) |
| [review.sortFindingsForIssue ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L596 ) | [依檔案→嚴重度→行號排序(建問題模式) ](#reviewsortfindingsforissue ) |
| [review.sortFindingsForIssue ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L596 ) | [依檔案→嚴重度→行號排序(建問題模式) ](#reviewsortfindingsforissue ) |
| [review.selectLabels ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L627 ) | [以 AI 從可用標籤挑選 issue 標籤 ](#reviewselectlabels ) |
| [review.selectLabels ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L627 ) | [以 AI 從可用標籤挑選 issue 標籤 ](#reviewselectlabels ) |
| [review.createIssueWithFindings ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L694 ) | [建 issue 並逐條留言問題明細 ](#reviewcreateissuewithfindings ) |
| [review.createIssueWithFindings ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L694 ) | [建 issue 並逐條留言問題明細 ](#reviewcreateissuewithfindings ) |
| [review.resolveOldComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L778 ) | [將 PR 舊留言標記為解決/過時 ](#reviewresolveoldcomments ) |
| [review.resolveOldComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L778 ) | [將 PR 舊留言標記為解決/過時 ](#reviewresolveoldcomments ) |
| [review.postSevereComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/master /src/lib/review.js#L855 ) | [嚴重問題逐條掛行留言(含降級) ](#reviewpostseverecomments ) |
| [review.postSevereComments ](https://gitea.jsc.idv.tw/node-actions/ai-code-review/src/branch/develop /src/lib/review.js#L855 ) | [嚴重問題逐條掛行留言(含降級) ](#reviewpostseverecomments ) |
## 使用範例
## 使用範例