Communitygithub.com

01-Yang/codebase-convergence

用於梳理程式碼、架構與文件一致性的 Codex Agent 技能。

codebase-convergence 是什麼?

此 Agent 技能旨在提升程式庫的可理解性與可修改性,避免大規模重新設計。它透過一套明確的工作流程,引導 Agent 先建立基準(Baseline),將發現的問題分類為可直接收斂(Direct Convergence)、需要決策批准(Decision Required)或架構候選(Architecture Candidate)。技能核心原則包括:維護單一事實來源、不擅自修改數值或業務規則、保護鎖定內容,並要求在一次決策封包中提交所有待決項目,以減少互動次數。支援的文件類型包括 Markdown、程式碼與 UI,且適用於多步驟變更場景。此技能特別強調以證據為基礎、保持介面簡潔、偏好局部修復而非推測性抽象,並提供驗證與交接步驟,確保變更範圍的精確性與一致性。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add 01-Yang/codebase-convergence

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Codebase Convergence

讓儲存庫更容易理解與修改,無需重新設計。偏好證據、小型介面與局部修復,而非推測性抽象。

防護措施

  • 在進行多步驟變更前,先說明範圍、假設、受保護內容與成功檢查點。
  • 在判斷架構前,請先閱讀儲存庫說明文件、領域詞彙表與相關的架構決策記錄(ADR)。使用儲存庫的領域名稱。
  • 僅觸碰與請求相關的檔案。保留使用者未相關的修改,僅移除因本次工作而變得多餘的匯入、程式碼或文件。
  • 將明確受保護的領域文字、標題、資料定義與使用者指定的副本視為鎖定內容。保持原樣複製。若其狀態不明確,則將其納入決策封包,而非直接編輯。
  • 未經明確核准,不得更改任何數值或其表示形式——包括設定、閾值、餘額、比率、限制或文件記錄值。
  • 未經明確核准,不得私自更改業務規則、狀態轉換、互動行為、公開介面或視覺契約。除非修復是直接隱含的且保持行為不變,否則將其視為需要決策的事項。
  • 維護每個事實的單一事實來源。不要建立僅僅重複其他文件的文件。

工作流程

1. 建立基準線

  1. 檢視工作目錄(worktree),僅辨識出被請求的區域。記錄不相關的修改;不要暫存或更改它們。
  2. 繪製相關的程式碼路徑、狀態/資料所有權、UI 流程、測試與 Markdown 檔案。在閱讀實作這些領域與決策的檔案之前,先閱讀目前定義這些領域與決策的文件。
  3. 記錄每個發現事項並附上證據:檔案、衝突的陳述或路徑、對使用者的影響,以及是否可以直接安全解決。
  4. 將發現事項分類:
    • 直接收斂:重複、失效連結、互相矛盾的非鎖定散文,或具有行為保持修復的局部實作/UI 缺陷。
    • 需要決策:任何數值、規則、行為、受保護內容、公開介面或模糊的資料來源。
    • 架構候選:潛在的更深層模組,或其接縫(seam)尚未達成共識的變更。

2. 一次性提出重要決策

完成探索後再提問。發送一個包含所有未解決項目的決策封包;不要在多次對話中零散地提出問題。

對於每個數值項目,請包含其識別碼與檔案、當前數值、不一致的證據、影響,以及建議,或清楚表明未提出任何數值。在獲得使用者明確核准前,不要編輯、正規化、移動或移除受影響的數值表達式。

在同一封包中包含其他重要的不確定事項:鎖定內容狀態、行為選擇、所有權衝突與架構選擇。在等待核准期間,繼續獨立執行直接收斂。

3. 套用直接收斂

保持每次修改精確且可追溯至發現事項。

文件

  • 賦予每個文件一個責任。遵守現有慣例;否則維持最小集合:入口概述、架構/系統圖表、領域或產品規則、決策記錄,以及目前工作/狀態。
  • 合併重疊的產品需求文件(PRD)、計畫與工作記錄時,保留權威內容一次。將持久的理由移至專案的決策記錄,並保持操作狀態簡短。
  • 在搬遷鎖定區塊時,保持原樣複製。如果合併會改變鎖定區塊或數值表達式,則將該區塊留待核准。
  • 移除重複、失效的參照與衝突的非鎖定說明。在移動後更新連結,並避免建立重複規格的摘要文件。

程式碼與 UI

  • 在編輯 UI 程式碼前,追蹤使用者操作從狀態所有權到最終渲染結果的完整路徑。
  • 修正具體不一致:重複的呈現狀態、不匹配的事件/資料名稱、無效的條件流程、本次變更產生的無效程式碼,或阻礙局部修復的元件責任。
  • 保持版面配置、互動、無障礙性與響應式行為穩定,除非使用者核准產品或視覺變更。
  • 偏好一個清晰的狀態轉換擁有者與一個標準的資料表示形式。不要在未經證實的需求下引入抽象化、設定或錯誤處理。

4. 分開評估架構候選

一致地使用這些術語:

  • 模組:一個具有介面與實作的單元。
  • 介面:呼叫方必須知道的所有內容,包括不變量與錯誤模式。
  • 接縫:可以在不編輯呼叫方的情況下改變行為的位置。
  • 深度:透過小型介面提供的實質行為所帶來的槓桿效益;局部性:相關的知識與變更保持在一起。

應用刪除測試:如果刪除一個模組僅是將其複雜性移轉給呼叫方,則該模組有其存在的價值;如果複雜性隨之消失,則該模組很可能太過淺薄。不要為單一轉接器(adapter)建立接縫。

對於會更改介面、行為或所有權的候選方案,不要立即實作。僅在視覺比較有幫助時,在作業系統臨時目錄中建立一個簡潔的自包含 HTML 報告。報告內容應包含檔案、證據、變更前/後圖表、預期的局部性與槓桿效益、任何與 ADR 的衝突,以及建議強度。在設計介面之前,請使用者選擇一個候選方案。

5. 驗證與交接

  1. 檢查最終差異(diff)的範圍、鎖定內容的保留、重複的事實來源,以及非預期的數值或行為變更。
  2. 執行相關的現有格式化工具、lint、型別檢查、測試、建置與 UI 驗證。不要僅為此任務新增工具或廣泛的測試套件。區分既有失敗與引入的失敗。
  3. 在合併後確認 Markdown 連結與標題,並驗證每個修改過的陳述與其規範來源一致。
  4. 以簡潔的方式回報直接變更、未解決的決策項目、驗證結果與風險。每個變更行都必須能追溯到所要求的收斂工作。

相關技能