Communitygithub.com

允破壞性變更

啟用一個跨工作階段的政策,允許架構上合理的破壞性變更,並從設計限制中移除與專案自有歷史介面的相容性。僅在用戶明確呼叫 `$allow-breaking-change` 時觸發;切勿因一般重構、簡化、架構、相容性或破壞性變更討論而隱含觸發。除非用戶為特定任務覆蓋或停用此政策,否則在當前對話的其餘部分,保持該政策跨專案與任務有效。

允破壞性變更 是什麼?

此技能啟用一個跨工作階段政策,允許在明確用戶請求後(通過 `$allow-breaking-change` 呼叫)進行架構上合理的破壞性變更。它指示 AI 代理將與專案自有遺留介面、API、CLI、設定、協定和檔案格式的相容性視為非必要,從而簡化設計決策。該技能支援應對因長期相容性包袱而阻礙架構改進的專案,適用於 Claude Code、Cursor、Codex 等平台。工作流程涉及透過強制套用 KISS(保持簡單、愚蠢)和 Unixify 原則來為材料變更做準備,同時保護資料完整性,提供必要的遷移路徑,並確保對破壞性變更進行清晰溝通,而無需為其尋求明確許可。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jamie-Cui/skills/tree/HEAD/skills/allow-breaking-change

在你喜歡的 AI 中提問

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

說明文件

允許破壞性變更

將與專案自有歷史行為的相容性視為可選,適用於當前對話的其餘部分。優先選擇滿足當前需求的最簡單、穩健的架構;切勿僅為新奇而破壞行為。

啟用與保留政策

  1. 僅在收到明確的 $allow-breaking-change 呼叫後啟用。
  2. 對於單純呼叫,用一句簡潔的句子確認啟用及其數據保護邊界,然後等待任務。對於附帶任務的呼叫,先啟用再處理任務。
  3. 跨專案與任務應用此政策,包括規劃、設計、審查、診斷和實施,直到對話結束或用戶明確停用。
  4. 將明確的任務層級指令(例如 keep compatibility for this task)視為臨時覆蓋。將明確的指令(例如 disable allow-breaking-change)視為在對話剩餘期間撤銷。
  5. 僅在相容性影響決策或結果時提及啟用的政策。不要在不相關的回合重複狀態提醒。
  6. 繼續遵守更高優先級的指令、儲存庫要求和明確的當前任務限制。

在無歷史相容性下做出決策

  • 從決策標準中排除與專案自有遺留 API、CLI、設定、協定和檔案格式的向後與向前相容性。
  • 不要僅僅為了保留歷史消費者而添加轉接器、棄用期、平行實作、版本橋接或遺留解析。
  • 將所有作用域內的呼叫者、測試、文件、範例和生成的工件更新到新的合約。
  • 按意圖分類舊測試。刪除或重寫僅為相容性而存在的斷言;保留對正確性、安全性、數據完整性、可訪問性和當前行為的要求。
  • 仍需權衡實作工作量、回歸風險、驗證難度、效能和運營風險。允許破壞相容性並不意味著允許擴展任務範圍或執行破壞性操作。
  • 繼續遵守外部標準、平台 ABI、活躍的第三方合約以及仍為當前任務一部分的其他互操作性要求。

使用 KISS 和 Unixify 判斷架構

對於責任邊界、介面、數據表示或系統層級的重大變更,先應用已安裝的 $kiss 技能以移除不必要的概念和機制,然後應用 $unixify 來塑造其餘的責任、表示和組合介面。對於局部的機械性變更,可跳過此額外工作流程。

在此政策啟用期間,僅覆蓋 KISS 和 Unixify 中的相容性保留護欄。保留它們的其他護欄,尤其是正確性、安全性、數據完整性、清晰性、合理的邊界和可觀察的故障行為。

保護數據與操作

  • 當儲存數據必須移動到不相容的表示時,提供並驗證一次性、無損的遷移。遷移後僅支援新的表示。
  • 如果無法實現無損遷移,則停止並報告會遺失的資訊或語義。在執行有損遷移之前,獲取特定任務的決策。
  • 僅當當前的可用性或滾動部署要求需要混合版本操作時,才引入臨時相容性橋接。為橋接設定明確的移除條件,並在過渡後將其移除。

溝通破壞性變更

無需僅僅因為所選設計具有破壞性而請求許可。在計劃、審查或完成報告中,簡要標明主要的破壞合約、受影響的呼叫者或數據、所需的遷移以及已執行的驗證。

相關技能