feat(ai-code-review): AI 多角色 code review action #1

Closed
jiantw83 wants to merge 0 commits from ai-review-resolve/master-20260717-165242 into master
Member

變更摘要

將 node action 範本改寫為 AI Code Review action:以攻擊方六角色(🔮 Mage 邏輯、🗡️ Assassin 安全、 Rogue 效率、🎼 Bard 風格、🧪 Maya 測試、🧰 Leo 可維護性)並行審查 PR diff、防守方(🛡️ Paladin)批次裁決誤報,結果留言到 PR、保存 findings,並以 bot commit([success][failure])閉環回報審查狀態。

審查流程(10 步驟)

flowchart LR
    A[1 bot commit 快速回報] --> B[2 偵測 AI 工具]
    B --> C[3 .reviewignore + diff 摘要]
    C --> D[4-5 攻擊方並行找問題]
    D --> E[6-7 防守方裁決 → 保存 findings]
    E --> F[8 舊留言標記解決]
    F --> G[9-10 嚴重掛行留言/其他表格彙整]
    G --> H[收尾 commit/push + exit code]

影響範圍與重點檔案

區塊 檔案 說明
manifest action.yml 重定義為 AI Code Review:inputs token(必填)、modelcreate-issue(預設 'false');node24 零相依直跑 src/index.js
主程式 src/index.js 啟動橫幅+10 步驟編排;exit code:無嚴重問題 0、有嚴重問題 1
模組 src/lib/(8 檔) 日誌(Asia/Taipei 統一格式)、context 載入、git 操作、Gitea API、AI CLI 偵測(antigravity→codex→claude)、角色載入、審查編排、留言模板(表格+mermaid);全數含繁中 JSDoc
角色 src/prompts/roles/(7 檔) 攻擊方 ×6+防守方 Paladin(改批次裁決)
設定 .reviewignore 送審 diff 的路徑前綴忽略清單
文件 readme.mdci.yaml README 重建(50 個公開函式的功能列表與使用範例、錨點檢查通過);ci.yaml 補標頭與逐行註解(純註解,不影響行為)

主要功能

  • 誤判回寫:防守方判排除的問題附加至 .gitea/ai-review/exclusions.json(含裁決理由),與 findings 一併 commit 回 PR 分支
  • 建問題模式create-issue: 'true'):建 issue(標題=PR 標題、描述=PR 描述、AI 挑標籤)、問題依「檔案→嚴重度→行號」逐條留言到 issue,收尾只 commit exclusions.json
  • 降級防護:AI 角色失敗不阻斷、review 掛行失敗降級一般留言、resolve API 不支援改標〔已過時〕、push 失敗不覆蓋審查結果、空 commit 防護

風險與注意事項

  1. runs.using: node24 需較新的 act runner(過舊需升級或退 node20
  2. runner 需已可執行 codex 或 claude CLI;antigravity 非互動參數尚未驗證(程式內標「需人工確認」)
  3. 呼叫端 workflow 需 fetch-depth: 0 並以 secrets.GITHUB_TOKEN 傳入 token
  4. Gitea resolve-conversation API 依版本不一定存在,已實作降級
  5. ci.yaml 註解標 4 處「需人工確認」:PR 即發布 Release 的行為、release token 權限、gitea.sha 指向、ACTION_CLEAN_OLD_RELEASE 變數命名

Commit 清單

  • feat(ai-code-review): 新增 AI 多角色 code review action(攻防審查、findings 保存、建問題模式)
  • docs(readme 與 ci.yaml): 重建 README 功能文件並為 ci.yaml 補標頭與逐行註解
  • chore(package.json): 更新套件名稱與描述為 ai-code-review

🤖 Generated with Claude Code

## 變更摘要 將 node action 範本改寫為 **AI Code Review** action:以攻擊方六角色(🔮 Mage 邏輯、🗡️ Assassin 安全、⚡ Rogue 效率、🎼 Bard 風格、🧪 Maya 測試、🧰 Leo 可維護性)並行審查 PR diff、防守方(🛡️ Paladin)批次裁決誤報,結果留言到 PR、保存 findings,並以 bot commit(`[success]`/`[failure]`)閉環回報審查狀態。 ## 審查流程(10 步驟) ```mermaid flowchart LR A[1 bot commit 快速回報] --> B[2 偵測 AI 工具] B --> C[3 .reviewignore + diff 摘要] C --> D[4-5 攻擊方並行找問題] D --> E[6-7 防守方裁決 → 保存 findings] E --> F[8 舊留言標記解決] F --> G[9-10 嚴重掛行留言/其他表格彙整] G --> H[收尾 commit/push + exit code] ``` ## 影響範圍與重點檔案 | 區塊 | 檔案 | 說明 | | --- | --- | --- | | manifest | `action.yml` | 重定義為 AI Code Review:inputs `token`(必填)、`model`、`create-issue`(預設 `'false'`);`node24` 零相依直跑 `src/index.js` | | 主程式 | `src/index.js` | 啟動橫幅+10 步驟編排;exit code:無嚴重問題 0、有嚴重問題 1 | | 模組 | `src/lib/`(8 檔) | 日誌(Asia/Taipei 統一格式)、context 載入、git 操作、Gitea API、AI CLI 偵測(antigravity→codex→claude)、角色載入、審查編排、留言模板(表格+mermaid);全數含繁中 JSDoc | | 角色 | `src/prompts/roles/`(7 檔) | 攻擊方 ×6+防守方 Paladin(改批次裁決) | | 設定 | `.reviewignore` | 送審 diff 的路徑前綴忽略清單 | | 文件 | `readme.md`、`ci.yaml` | README 重建(50 個公開函式的功能列表與使用範例、錨點檢查通過);ci.yaml 補標頭與逐行註解(純註解,不影響行為) | ## 主要功能 - **誤判回寫**:防守方判排除的問題附加至 `.gitea/ai-review/exclusions.json`(含裁決理由),與 findings 一併 commit 回 PR 分支 - **建問題模式**(`create-issue: 'true'`):建 issue(標題=PR 標題、描述=PR 描述、AI 挑標籤)、問題依「檔案→嚴重度→行號」逐條留言到 issue,收尾只 commit `exclusions.json` - **降級防護**:AI 角色失敗不阻斷、review 掛行失敗降級一般留言、resolve API 不支援改標〔已過時〕、push 失敗不覆蓋審查結果、空 commit 防護 ## 風險與注意事項 1. `runs.using: node24` 需較新的 act runner(過舊需升級或退 `node20`) 2. runner 需已可執行 codex 或 claude CLI;**antigravity 非互動參數尚未驗證**(程式內標「需人工確認」) 3. 呼叫端 workflow 需 `fetch-depth: 0` 並以 `secrets.GITHUB_TOKEN` 傳入 `token` 4. Gitea resolve-conversation API 依版本不一定存在,已實作降級 5. `ci.yaml` 註解標 4 處「需人工確認」:PR 即發布 Release 的行為、release token 權限、`gitea.sha` 指向、`ACTION_CLEAN_OLD_RELEASE` 變數命名 ## Commit 清單 - `feat(ai-code-review)`: 新增 AI 多角色 code review action(攻防審查、findings 保存、建問題模式) - `docs(readme 與 ci.yaml)`: 重建 README 功能文件並為 ci.yaml 補標頭與逐行註解 - `chore(package.json)`: 更新套件名稱與描述為 ai-code-review 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jiantw83 added 3 commits 2026-07-17 08:54:29 +00:00
jiantw83 closed this pull request 2026-07-17 10:24:12 +00:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: node-actions/ai-code-review#1