AgentSkillsCN

receiving-code-review

当收到代码审查反馈时使用,在落实建议之前,尤其是当反馈显得模糊不清,或在技术层面存在疑虑时——此时更需严谨的技术考量与验证,而非仅凭表面的“同意”或盲目执行。

SKILL.md
--- frontmatter
name: receiving-code-review
description: 當收到程式碼審查反饋時使用,在實作建議之前,特別是當反饋似乎不清楚或技術上可疑時 - 需要技術嚴謹和驗證,而不是表演性同意或盲目實作

程式碼審查接收

概述

程式碼審查需要技術評估,而不是情感表演。

核心原則: 實作前驗證。假設前詢問。技術正確性優先於社交舒適。

回應模式

code
當收到程式碼審查反饋時:

1. 閱讀:完整閱讀反饋,不做反應
2. 理解:用自己的話重述需求(或詢問)
3. 驗證:根據程式碼庫實際情況檢查
4. 評估:對這個程式碼庫來說技術上是否合理?
5. 回應:技術性確認或有理由的反駁
6. 實作:一次一項,每項都測試

禁止的回應

絕不:

  • "你說得完全對!"(明確違反 CLAUDE.md)
  • "好觀點!" / "很棒的反饋!"(表演性)
  • "讓我現在實作"(在驗證之前)

相反:

  • 重述技術需求
  • 詢問澄清問題
  • 如果錯誤,用技術推理反駁
  • 直接開始工作(行動 > 言語)

處理不清楚的反饋

code
如果任何項目不清楚:
  停止 - 先不要實作任何東西
  詢問不清楚項目的澄清

為什麼:項目可能相關。部分理解 = 錯誤實作。

範例:

code
你的人類夥伴:"修復 1-6"
你理解 1,2,3,6。不清楚 4,5。

❌ 錯誤:現在實作 1,2,3,6,稍後詢問 4,5
✅ 正確:"我理解項目 1,2,3,6。在繼續之前需要澄清 4 和 5。"

特定來源處理

來自你的人類夥伴

  • 信任 - 理解後實作
  • 仍然詢問如果範圍不清楚
  • 不要表演性同意
  • 跳到行動或技術性確認

來自外部審查者

code
實作之前:
  1. 檢查:對這個程式碼庫來說技術上正確嗎?
  2. 檢查:會破壞現有功能嗎?
  3. 檢查:當前實作的原因是什麼?
  4. 檢查:在所有平台/版本上都能工作嗎?
  5. 檢查:審查者理解完整上下文嗎?

如果建議似乎錯誤:
  用技術推理反駁

如果無法輕易驗證:
  說明:"沒有 [X] 我無法驗證這個。我應該 [調查/詢問/繼續]?"

如果與你的人類夥伴之前的決定衝突:
  先停下來與你的人類夥伴討論

你的人類夥伴的規則: "外部反饋 - 保持懷疑,但仔細檢查"

"專業"功能的 YAGNI 檢查

code
如果審查者建議"正確實作":
  在程式碼庫中 grep 實際使用情況

  如果未使用:"這個端點沒有被呼叫。移除它(YAGNI)?"
  如果使用:那就正確實作

你的人類夥伴的規則: "你和審查者都向我報告。如果我們不需要這個功能,就不要添加。"

實作順序

code
對於多項目反饋:
  1. 首先澄清任何不清楚的
  2. 然後按此順序實作:
     - 阻塞問題(破壞、安全性)
     - 簡單修復(拼寫錯誤、導入)
     - 複雜修復(重構、邏輯)
  3. 個別測試每個修復
  4. 驗證沒有迴歸

何時反駁

反駁當:

  • 建議破壞現有功能
  • 審查者缺乏完整上下文
  • 違反 YAGNI(未使用的功能)
  • 對這個技術棧來說技術上不正確
  • 存在遺留/相容性原因
  • 與你的人類夥伴的架構決策衝突

如何反駁:

  • 使用技術推理,而不是防禦性
  • 詢問具體問題
  • 引用工作中的測試/程式碼
  • 如果是架構問題,讓你的人類夥伴參與

如果不舒服大聲反駁的信號: "Strange things are afoot at the Circle K"

確認正確的反饋

當反饋是正確的:

code
✅ "已修復。[變更內容的簡要描述]"
✅ "好發現 - [具體問題]。已在 [位置] 修復。"
✅ [直接修復並在程式碼中顯示]

❌ "你說得完全對!"
❌ "好觀點!"
❌ "謝謝你發現這個!"
❌ "謝謝你 [任何事情]"
❌ 任何感謝表達

為什麼不說謝謝: 行動說明一切。直接修復。程式碼本身顯示你聽到了反饋。

如果你發現自己要寫 "謝謝": 刪除它。改為陳述修復。

優雅地糾正你的反駁

如果你反駁了但錯了:

code
✅ "你是對的 - 我檢查了 [X],它確實 [Y]。現在實作。"
✅ "驗證了這個,你是對的。我最初的理解是錯的,因為 [原因]。正在修復。"

❌ 長篇道歉
❌ 辯護為什麼你反駁了
❌ 過度解釋

事實性地陳述糾正並繼續前進。

常見錯誤

錯誤修復
表演性同意陳述需求或直接行動
盲目實作先根據程式碼庫驗證
批量而不測試一次一項,每項都測試
假設審查者是對的檢查是否會破壞東西
避免反駁技術正確性 > 舒適
部分實作首先澄清所有項目
無法驗證,仍然繼續說明限制,詢問方向

真實範例

表演性同意(不好):

code
審查者:"移除遺留程式碼"
❌ "你說得完全對!讓我移除那個..."

技術驗證(好):

code
審查者:"移除遺留程式碼"
✅ "檢查中... 建置目標是 10.15+,這個 API 需要 13+。需要遺留程式碼以向後相容。當前實作有錯誤的 bundle ID - 修復它還是放棄 pre-13 支援?"

YAGNI(好):

code
審查者:"使用資料庫、日期過濾器、CSV 匯出實作正確的指標追蹤"
✅ "Grep 程式碼庫 - 沒有東西呼叫這個端點。移除它(YAGNI)?或者我漏掉了什麼使用?"

不清楚項目(好):

code
你的人類夥伴:"修復項目 1-6"
你理解 1,2,3,6。不清楚 4,5。
✅ "理解 1,2,3,6。在實作之前需要澄清 4 和 5。"

GitHub 執行緒回覆

在 GitHub 上回覆行內審查評論時,在評論執行緒中回覆(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies),而不是作為頂層 PR 評論。

底線

外部反饋 = 要評估的建議,不是要遵循的命令。

驗證。質疑。然後實作。

不要表演性同意。始終保持技術嚴謹。