智能體開發者經常面臨發版時重建變更說明的困境:隊友錯過 breaking change,用戶不知道該不該升級,而開發者在六週後重建“這版到底改了啥”。Commit message 服務代碼,而 changelog 服務被代碼改變了生活的人。如果等到發版時憑記憶補寫,記憶早已模糊哪些改動要緊。changelog-capture 插件旨在解決這個問題,它要求在代碼變更發生時,以結構化的方式記錄面向用戶的條目。
是什麼¶
這是一個工作流插件,位於 chenneyzhuang/changelog-capture,維護者爲 ChenneyZhuang。它的核心功能是在代碼 diff 還在手邊時,捕獲面向用戶的條目。條目採用“Who/What/How to upgrade”的格式,明確區分 Added/Changed/Fixed/Breaking,並在發佈時與實際 diff 進行驗證,確保日誌不會聲稱代碼未做的事情。
安裝與啓用¶
使用以下命令安裝插件:
npx skills add ChenneyZhuang/changelog-capture
安裝後,該插件會隨當前 DSH 進程運行。各 agent 的具體兼容性路徑請參考項目中的 COMPATIBILITY.md 文件。
核心功能¶
- 變更時捕獲:在 diff 還在手邊時記錄,避免遺忘。
- 用戶可見條目:條目結構固定爲 Who(受影響的用戶)、What(行爲描述)、How to upgrade(升級操作)。
- 分類明確:將變更分爲 Added、Changed、Fixed 和 Breaking 四類。Breaking 變更必須置於列表頂部。
- 驗證機制:在發佈時,每個條目需與實際 diff 進行覈對。
- 去噪:只有當變更影響用戶行爲時才記錄,內部重構若無外部可見差異則不記錄。
典型用法¶
插件要求條目採用特定的格式。例如,對於 CSV 導入功能的變更:
### Changed — CSV import now maps date columns automatically (was: manual mapping)
Who: everyone importing CSV exports from other tools
Upgrade: re-run the import preview once; check the mapped dates before confirming
適用場景與注意¶
該插件適合需要維護清晰用戶可見變更記錄的項目。
在使用前,請務必檢查源碼與許可證(MIT)。插件以當前 dsh 進程權限運行,其 diff 對賬的完整性取決於 git 歷史的完整性。對於被 squash 或 amend 的歷史,需要真正的變更清單。此外,“User-facing”的判斷是主觀的,內部 API 變更若未影響 SDK 用戶,可能暫時無條目,直到被報告。
總結¶
通過在變更發生時即時記錄,該插件將發版說明的生成成本降至最低,避免了六週後重建變更歷史的混亂。更多細節與源碼,請訪問插件目錄或 GitHub 倉庫。