6 6
7> 修正未啟動、失敗或因預算而略過的 Code Review,找出遺漏的發現,並解決設定與 `REVIEW.md` 相關問題。7> 修正未啟動、失敗或因預算而略過的 Code Review,找出遺漏的發現,並解決設定與 `REVIEW.md` 相關問題。
8 8
9當 [Code Review](/docs/zh-TW/code-review.md) 在 pull request 上未如預期運作時,請先查看 **Claude Code Review** check run。其標題會說明審查進行到哪個階段。9當 [Code Review](https://code.claude.com/docs/zh-TW/code-review.md) 在 pull request 上未如預期運作時,請先查看 **Claude Code Review** check run。其標題會說明審查進行到哪個階段。
10 10
11## 檢查審查進行到哪個階段11## 檢查審查進行到哪個階段
12 12
18| **Code review found no issues** | 審查已完成,且未發現需要標記的問題 | 無需處理 |18| **Code review found no issues** | 審查已完成,且未發現需要標記的問題 | 無需處理 |
19| 表示發現問題的標題 | 審查已完成並有發現 | 若在差異中看不到這些發現,請參閱[找出未顯示為行內留言的問題](#find-issues-that-aren’t-showing-as-inline-comments) |19| 表示發現問題的標題 | 審查已完成並有發現 | 若在差異中看不到這些發現,請參閱[找出未顯示為行內留言的問題](#find-issues-that-aren’t-showing-as-inline-comments) |
20| **Code review skipped — no new changes** | 最新一次推送未執行自動審查 | 若仍想取得審查,請留言 `@claude review` |20| **Code review skipped — no new changes** | 最新一次推送未執行自動審查 | 若仍想取得審查,請留言 `@claude review` |
21| **Code review not repeated — earlier findings still open** | 最新一次推送未執行自動審查,且先前審查中的 Important 發現仍未解決 | 推送修正,或若仍想取得審查,請留言 `@claude review`。請參閱[推送保留先前結果的情況](/docs/zh-TW/code-review-pull-requests.md#when-a-push-keeps-the-earlier-result) |21| **Code review not repeated — earlier findings still open** | 最新一次推送未執行自動審查,且先前審查中的 Important 發現仍未解決 | 推送修正,或若仍想取得審查,請留言 `@claude review`。請參閱[推送保留先前結果的情況](https://code.claude.com/docs/zh-TW/code-review-pull-requests.md#when-a-push-keeps-the-earlier-result) |
22| **Code review failed** 或 **Code review timed out** | 審查未完成 | 若要重新執行,請參閱[重新觸發失敗或逾時的審查](#retrigger-a-failed-or-timed-out-review) |22| **Code review failed** 或 **Code review timed out** | 審查未完成 | 若要重新執行,請參閱[重新觸發失敗或逾時的審查](#retrigger-a-failed-or-timed-out-review) |
23| **Code review declined** | 審查未執行 | 閱讀 check run 的摘要。若其中提及預算或支出上限,請參閱[審查未執行且 PR 顯示預算訊息](#review-didn’t-run-and-the-pr-shows-a-budget-message) |23| **Code review declined** | 審查未執行 | 閱讀 check run 的摘要。若其中提及預算或支出上限,請參閱[審查未執行且 PR 顯示預算訊息](#review-didn’t-run-and-the-pr-shows-a-budget-message) |
24| 沒有 check run | 審查未啟動 | 留言 `@claude review`。若之後仍未出現 check run,請參閱[留言命令未啟動審查](#a-comment-command-didn’t-start-a-review) |24| 沒有 check run | 審查未啟動 | 留言 `@claude review`。若之後仍未出現 check run,請參閱[留言命令未啟動審查](#a-comment-command-didn’t-start-a-review) |
31 31
32留言 `@claude review` 之後,請在 pull request 上尋找標題為 **Code review queued...** 或 **Code review in progress...** 的 **Claude Code Review** check run。留言上出現 👀 反應並不代表審查即將進行。若未出現 check run,請逐一檢查下列原因:32留言 `@claude review` 之後,請在 pull request 上尋找標題為 **Code review queued...** 或 **Code review in progress...** 的 **Claude Code Review** check run。留言上出現 👀 反應並不代表審查即將進行。若未出現 check run,請逐一檢查下列原因:
33 33
34* **此儲存庫未啟用 Code Review**:Claude 不會針對該命令發布任何留言或 check run。請聯絡 Owner [新增此儲存庫](/docs/zh-TW/code-review-setup.md#add-more-repositories)。34* **此儲存庫未啟用 Code Review**:Claude 不會針對該命令發布任何留言或 check run。請聯絡 Owner [新增此儲存庫](https://code.claude.com/docs/zh-TW/code-review-setup.md#add-more-repositories)。
35* **留言不符合條件**:該留言是行內留言或審查內文,而非新的頂層留言,或命令未位於留言開頭。編輯先前的留言而非發布新留言同樣不算數,且 pull request 必須處於開啟狀態。請參閱[留言命令的條件](/docs/zh-TW/code-review-pull-requests.md#comment-commands),並發布符合條件的新留言。35* **留言不符合條件**:該留言是行內留言或審查內文,而非新的頂層留言,或命令未位於留言開頭。編輯先前的留言而非發布新留言同樣不算數,且 pull request 必須處於開啟狀態。請參閱[留言命令的條件](https://code.claude.com/docs/zh-TW/code-review-pull-requests.md#comment-commands),並發布符合條件的新留言。
36* **您沒有寫入權限**:您需要具備儲存庫的 write、maintain 或 admin 權限;若是來自 fork 的 pull request,則以基底儲存庫上的權限為準。除非該 pull request 是您自己的,否則 Claude 可能會以[提示](/docs/zh-TW/code-review-setup.md#turn-tip-comments-on-or-off)回覆:「No review was started: manual reviews can only be requested by someone with write access to this repository.」請改由具有寫入權限的人員留言。36* **您沒有寫入權限**:您需要具備儲存庫的 write、maintain 或 admin 權限;若是來自 fork 的 pull request,則以基底儲存庫上的權限為準。除非該 pull request 是您自己的,否則 Claude 可能會以[提示](https://code.claude.com/docs/zh-TW/code-review-setup.md#turn-tip-comments-on-or-off)回覆:「No review was started: manual reviews can only be requested by someone with write access to this repository.」請改由具有寫入權限的人員留言。
37* **預算已用盡**:Claude 會發布以「⚠️ Code review skipped」開頭的留言。請參閱[審查未執行且 PR 顯示預算訊息](#review-didn’t-run-and-the-pr-shows-a-budget-message)。37* **預算已用盡**:Claude 會發布以「⚠️ Code review skipped」開頭的留言。請參閱[審查未執行且 PR 顯示預算訊息](#review-didn’t-run-and-the-pr-shows-a-budget-message)。
38 38
39### 審查未執行且 PR 顯示預算訊息39### 審查未執行且 PR 顯示預算訊息
42 42
43該留言會連結至 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage),管理員可在此恢復預算。留言的措辭會說明達到的是哪一項上限:43該留言會連結至 [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage),管理員可在此恢復預算。留言的措辭會說明達到的是哪一項上限:
44 44
45* **「has reached its monthly code review spending cap」**:已達到 [Code Review 的每月支出上限](/docs/zh-TW/code-review-costs.md#limit-your-spend)。審查將於下一個計費週期開始時恢復。若要提早恢復,請聯絡管理員提高上限。45* **「has reached its monthly code review spending cap」**:已達到 [Code Review 的每月支出上限](https://code.claude.com/docs/zh-TW/code-review-costs.md#limit-your-spend)。審查將於下一個計費週期開始時恢復。若要提早恢復,請聯絡管理員提高上限。
46* **「has no extra usage available to pay for this review」**:組織的[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)餘額已用完,或已達到其整體每月支出上限。請聯絡管理員加購用量點數或提高該上限。46* **「has no extra usage available to pay for this review」**:組織的[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)餘額已用完,或已達到其整體每月支出上限。請聯絡管理員加購用量點數或提高該上限。
47* **「is too low to start another review」**:剩餘的預算或餘額低於一次審查的預估費用。請聯絡管理員提高上限或加購用量點數。47* **「is too low to start another review」**:剩餘的預算或餘額低於一次審查的預估費用。請聯絡管理員提高上限或加購用量點數。
48 48
49恢復預算後,請在 pull request 上留言 `@claude review`,以取得先前被略過的審查。此時適用[留言命令的條件](/docs/zh-TW/code-review-pull-requests.md#comment-commands),因此留言者需要具備寫入權限。49恢復預算後,請在 pull request 上留言 `@claude review`,以取得先前被略過的審查。此時適用[留言命令的條件](https://code.claude.com/docs/zh-TW/code-review-pull-requests.md#comment-commands),因此留言者需要具備寫入權限。
50 50
51## 重新觸發失敗或逾時的審查51## 重新觸發失敗或逾時的審查
52 52
55否則,當 check run 的標題為 **Code review failed** 或 **Code review timed out** 時,請透過留言或重新執行再次進行審查:55否則,當 check run 的標題為 **Code review failed** 或 **Code review timed out** 時,請透過留言或重新執行再次進行審查:
56 56
57* **留言 `@claude review`**:在 pull request 上以頂層留言的方式發布。這會啟動一次全新的審查,且不會讓 pull request 訂閱之後的推送。57* **留言 `@claude review`**:在 pull request 上以頂層留言的方式發布。這會啟動一次全新的審查,且不會讓 pull request 訂閱之後的推送。
58* **點擊 Re-run**:若 pull request 並非[來自 fork](/docs/zh-TW/code-review-pull-requests.md#review-drafts-and-pull-requests-from-forks),請在 GitHub 的 **Checks** 分頁中,點擊 **Claude Code Review** 檢查上的 **Re-run**。重新執行會涵蓋 pull request 目前的 head 提交,同樣不會讓 pull request 訂閱之後的推送。58* **點擊 Re-run**:若 pull request 並非[來自 fork](https://code.claude.com/docs/zh-TW/code-review-pull-requests.md#review-drafts-and-pull-requests-from-forks),請在 GitHub 的 **Checks** 分頁中,點擊 **Claude Code Review** 檢查上的 **Re-run**。重新執行會涵蓋 pull request 目前的 head 提交,同樣不會讓 pull request 訂閱之後的推送。
59 59
60## 找出未顯示為行內留言的問題60## 找出未顯示為行內留言的問題
61 61
69 69
70以下是 check run 中可能出現的三則 `REVIEW.md` 相關訊息:70以下是 check run 中可能出現的三則 `REVIEW.md` 相關訊息:
71 71
72* **「This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes.」**:此審查僅讀取了根目錄的檔案。關於保護分支會帶來哪些改變,請參閱[從哪個分支讀取 REVIEW.md](/docs/zh-TW/code-review-customize.md#which-branch-review-md-is-read-from)。72* **「This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes.」**:此審查僅讀取了根目錄的檔案。關於保護分支會帶來哪些改變,請參閱[從哪個分支讀取 REVIEW.md](https://code.claude.com/docs/zh-TW/code-review-customize.md#which-branch-review-md-is-read-from)。
73* **「were not applied to this review: branch protection could not be confirmed」**:此審查未讀取任何 `REVIEW.md`。73* **「were not applied to this review: branch protection could not be confirmed」**:此審查未讀取任何 `REVIEW.md`。
74* **「they link to a file this pull request modifies, or carry more links than the review checks」**:此審查略過了根目錄的 `REVIEW.md`,或略過了訊息中所列數量的子目錄 `REVIEW.md` 檔案。請針對每個原因檢查被略過的檔案。若是根目錄的 `REVIEW.md`,也請檢查[它所引入的檔案](/docs/zh-TW/code-review-customize.md#include-other-files-in-review-md):74* **「they link to a file this pull request modifies, or carry more links than the review checks」**:此審查略過了根目錄的 `REVIEW.md`,或略過了訊息中所列數量的子目錄 `REVIEW.md` 檔案。請針對每個原因檢查被略過的檔案。若是根目錄的 `REVIEW.md`,也請檢查[它所引入的檔案](https://code.claude.com/docs/zh-TW/code-review-customize.md#include-other-files-in-review-md):
75 * **連結過多**:檔案中含有超過 64 個 Markdown 連結。請將連結減少至 [64 個或更少](/docs/zh-TW/code-review-customize.md#include-other-files-in-review-md)。75 * **連結過多**:檔案中含有超過 64 個 Markdown 連結。請將連結減少至 [64 個或更少](https://code.claude.com/docs/zh-TW/code-review-customize.md#include-other-files-in-review-md)。
76 * **審查無法解析的連結**:檔案中有格式錯誤的 Markdown 連結。請修正或移除該連結。76 * **審查無法解析的連結**:檔案中有格式錯誤的 Markdown 連結。請修正或移除該連結。
77 * **指向已變更檔案的連結**:檔案連結至此 pull request 所變更的檔案或資料夾,且審查無法僅排除含有該連結的那幾行。請直接在 `REVIEW.md` 中撰寫該規則。77 * **指向已變更檔案的連結**:檔案連結至此 pull request 所變更的檔案或資料夾,且審查無法僅排除含有該連結的那幾行。請直接在 `REVIEW.md` 中撰寫該規則。
78 78
79## 設定問題79## 設定問題
80 80
81這些情況會在 Owner [設定 Code Review](/docs/zh-TW/code-review-setup.md) 時發生。81這些情況會在 Owner [設定 Code Review](https://code.claude.com/docs/zh-TW/code-review-setup.md) 時發生。
82 82
83### 儲存庫未列在 Add a repository 中83### 儲存庫未列在 Add a repository 中
84 84
90 90
91## 相關資源91## 相關資源
92 92
93* [在 pull request 上閱讀與請求審查](/docs/zh-TW/code-review-pull-requests.md):發現與 check run 的意義,以及留言命令93* [在 pull request 上閱讀與請求審查](https://code.claude.com/docs/zh-TW/code-review-pull-requests.md):發現與 check run 的意義,以及留言命令
94* [設定 Code Review](/docs/zh-TW/code-review-setup.md):供 Owner 使用,啟用 Code Review 並管理儲存庫94* [設定 Code Review](https://code.claude.com/docs/zh-TW/code-review-setup.md):供 Owner 使用,啟用 Code Review 並管理儲存庫
95* [Code Review 費用與用量](/docs/zh-TW/code-review-costs.md):預算訊息背後的支出上限95* [Code Review 費用與用量](https://code.claude.com/docs/zh-TW/code-review-costs.md):預算訊息背後的支出上限
96* [自訂 Code Review](/docs/zh-TW/code-review-customize.md):審查會讀取哪一份 `REVIEW.md`96* [自訂 Code Review](https://code.claude.com/docs/zh-TW/code-review-customize.md):審查會讀取哪一份 `REVIEW.md`