Community程式設計與開發github.com

DLM 版本管理大師 7 可攜版

針對 .NET 儲存庫,設定或執行基於內容雜湊的版本化建置,提供自動內部版本號決策,並在每次直接調用時強制進行精確範圍的 Git 提交與遠端推送。適用於版本更新、Release 建置、二進位中繼資料驗證、變更日誌或版本管理的 Git 提交/推送。能從各儲存庫的合約中探索其佈局與策略。

DLM 版本管理大師 7 可攜版 是什麼?

DLM Version Master 7 Portable 是一個專為 .NET 開發者設計的 AI 輔助技能,旨在自動化、標準化基於內容雜湊的版本管理與 Git 工作流程。此技能的核心在於將版本決策、建置、驗證、提交與推送整合成一個可重複執行的自動化管道,但其強大之處在於其「合約驅動」的設計:它不預設任何特定產品的目錄結構或專案名稱,而是透過讀取儲存庫中的版本合約檔案 (`AGENTS.md`, `doc_llm/dlm.json`, `references/versioned-build-contract.md`) 來動態發現專案結構、發布入口點、輸出路徑與提交策略。這使得同一個 AI 技能可以無縫應用於任何遵循此 SDK 合約的 .NET 儲存庫,大幅提升了跨專案的一致性與可複用性。在支援平台上,此技能主要用於與 AI 編碼助手(如 Claude Code、Cursor、Codex)集成的開發環境。其工作流程為:首先載入並解析儲存庫的版本合約與當前狀態;接著,透過分析原始碼檔案的內容雜湊變化,根據內部規則自動決定是否需要版本號升級 (patch/minor/major) 以及升級的幅度;若需要升級,則依序執行 Release 建置、二進位中繼資料驗證與測試;最後,強制執行一次結構化的 Git 提交(包含詳細的 修改範圍、對應版本、怎麼改的、為什麼改的 四部分訊息)和遠端推送。這個技能將版本管理的決策邏輯與執行細節從開發者的腦海中解放出來,轉變為可由 AI 根據合約自動執行的、可審計的流程,特別適合需要嚴格版本控制與稽核的企業級 .NET 專案。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atlasray66-collab/agent-dlm-skills/tree/main/skills/dlm-version-master

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

DLM 版本管理大師 7 可攜版 是做什麼的?

目的

針對 .NET 儲存庫,進行版本管理、驗證、提交與推送,並使用儲存庫自身擁有的基礎架構,不預設產品名稱或目錄結構。此個人技能提供通用工作流程;每個儲存庫需自行宣告其專案、發布入口點、模組對應、輸出路徑與提交策略。

結果治理關卡

在執行版本狀態變更、Release 建置、成品驗證、暫存、提交或推送之前,請閱讀並套用共享的 DLM 結果治理。

  • 建立一個「凍結的」發布/版本基準線,其中包含授權範圍、所需模組/輸出、內部版本決策、符合主張的證據以及停止線。直接調用 dlm-version-master 即授權內部版本評估、必要的建置/驗證、精確範圍的 Git 提交,以及推送至遠端分支;不授權成品複製、發布、標記、部署或現場發佈。
  • 原始碼雜湊支援模組變更/版本決策的主張;輸出雜湊則在設定檔使用時支援位元組身份。這兩者都不能凍結基準線,也無法證明執行時期、協調、部署或現場狀態。
  • 僅執行設定檔要求或重大風險的檢查。綠色的中繼資料不能取代行為證據,不相關的管理失敗也不能無聲地成為發布標準。
  • 在變更之前,執行一次結合身份/範圍/預先準備的安全檢查,然後推進最短的發布路徑。除非有真正的使用者或新的重大不確定性,否則不要添加收據、重複摘要或重複完整驗證。

權限與組成

  • 每次直接調用 dlm-version-master 都帶有使用者授權,可以:
    1. 除非使用者在提示中明確指定升級策略,否則根據內部規則自主決定是否升級版本(無升級 vs. 補丁 / 次要 / 主要);
    2. 在模組版本或與建置相關的原始碼輸入有變更時,執行必要的 Release 建置和二進位中繼資料驗證;
    3. 暫存精確的允許清單路徑,執行必要的提交前審查 (ponytail-review),提交至 Git 並附帶詳細的結構化提交訊息,涵蓋修改範圍 (Scope)、對應版本 (Version)、怎麼改的 (How) 以及為什麼改的 (Why),然後推送至遠端儲存庫分支 (git push)。
  • 僅在以下情況跳過提交或推送:使用者在當前輪次中明確指示不要提交/推送,或具體的安全/驗證關卡阻止了它(例如,必要的建置/測試/審查失敗,目標檔案中存在混合的無關變更,缺少或不明確的遠端,或遠端分支已分歧)。
  • 遠端儲存庫建立、強制推送、標記、部署、發布以及成品複製仍是獨立的權限。
  • 在 dlm-close-release 組合模式下,執行探索、內部版本決策、建置、變更日誌和中繼資料驗證,然後回傳確切的變更路徑,不進行暫存、提交或推送,除非所屬協調者明確委派共享的 Git 階段。
  • 請勿將此個人技能複製到儲存庫中,或從專案上下文清單中參考它。
  • 請將工程、發布證據、DLM 協調、Git、部署和現場驗收保持為獨立的狀態。

起始上下文

  1. 解析一個 Git 根目錄並讀取其 AGENTS.md。
  2. 如果儲存庫使用 DLM,則載入 doc_llm/dlm.json 和活躍的發布任務。
  3. 讀取 references/versioned-build-contract.md 和 references/git-sync.md。
  4. 在編輯之前,檢查現有的 .sln、.slnx、可執行檔/程式庫/外掛程式的 .csproj、Directory.Build.*、儲存庫版本腳本、CI/發布定義和版本狀態。
  5. 優先使用儲存庫自身的版本基礎架構。僅在使用者要求建立版本機制且不存在相容機制時,才建立 build/versioning/。

解析儲存庫設定檔

使用以下順序:

  1. doc_llm/dlm.json 或儲存庫文件中宣告的發布/版本設定檔;
  2. 現有的版本/建置腳本和版本狀態;
  3. 使用者指定的專案/解決方案;
  4. 明確的可執行檔啟動專案或主要解決方案;
  5. 如果仍然不明確,則回報候選項目並在版本變更前詢問。

請勿將已知產品的路徑嵌入個人技能中。特定於專案的行為應屬於儲存庫合約或其腳本。

原始碼雜湊版本決策(自主內部規則)

是否要升級版本以及應用哪個升級級別,均由內部規則自動決定(除非使用者在提示中明確覆蓋級別)。對專案擁有的原始碼輸入(而非輸出二進位檔)進行雜湊處理。

包含(如果適用):

  • .cs、.fs、.vb、.xaml、.axaml;
  • .csproj、.fsproj、.vbproj、.props、.targets;
  • 專案擁有的資源、清單、套件/專案參考以及程式碼生成輸入。

排除:

  • bin/、obj/、out/、publish/、artifacts/、暫存目錄以及複製的執行時期輸出;
  • 生成的版本屬性、變更日誌和發行說明;
  • 在計算模組的原始碼雜湊時,排除版本狀態本身;
  • .pdb、.deps.json、生成的 DLL/EXE/套件輸出。

內部決策表:

  • 不升級 (無升級): 如果模組的原始碼輸入雜湊未變更,則絕不升級。如果僅有非模組檔案(例如文件、DLM 記錄或模組雜湊輸入之外的儲存庫腳本)發生變更,或者自記錄的雜湊以來沒有模組原始碼輸入發生變更,則不要升級版本,也不要建立空的版本變更;直接進入實際可允許變更範圍的 Git 提交和遠端推送階段。
  • 當模組原始碼輸入雜湊變更時自動升級: 檢查模組差異語義和儲存庫規則,以自動選擇升級級別,無需停下來詢問:
    • 主要 / A: 公開 API、持久化格式、外掛程式發現、執行、授權或部署合約的破壞性變更;
    • 次要 / B: 向後相容的功能、新模組/外掛程式/工具或功能新增;
    • 補丁 / C: 向後相容的錯誤修復、佈局/可及性/在地化修正、重構、效能調優、日誌記錄或內部維護;
    • 自動: 儲存庫宣告的預設值(如果已設定),否則根據上述 主要/次要/補丁 規則進行評估(預設為 補丁)。

二進位中繼資料

對於 SDK 風格的專案,確保公開版本值流入生成的輸出中:

<Version>1.2.3</Version>
<AssemblyVersion>1.2.3.0</AssemblyVersion>
<FileVersion>1.2.3.0</FileVersion>
<InformationalVersion>1.2.3</InformationalVersion>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>

請勿將分支、提交 SHA、遠端 URL、作者/電子郵件、提交訊息、機器路徑或儲存庫路徑放置在公開的二進位版本欄位中。Git 來源資訊應屬於 Git/CI/發布日誌。

建置與驗證

當內部規則升級一個或多個模組時(或當與建置相關的模組輸入發生變更時),如果存在儲存庫腳本則使用它;否則按序列建置所選範圍:

dotnet build <project-or-solution> -c Release -m:1

請勿強制刪除鎖定的輸出。回報鎖定處理程序並停止,除非使用者授權安全的處理序關閉。

建置後,僅驗證凍結發布基準線和儲存庫設定檔所需的主張:

  1. 執行受影響的測試和儲存庫發布檢查;
  2. 驗證每個已變更的公開模組至少有一個輸出;
  3. 透過適當的工具讀取檔案/產品/組件/資訊版本;
  4. 驗證預期的輸出路徑,並在需要時驗證 SHA-256/套件中繼資料;
  5. 確保未變更的模組沒有被升級;
  6. 當發布設定檔或真正的發布/決策使用者要求時,生成儲存庫的簡潔變更日誌/發布摘要。

如果無法驗證所需的中繼資料、測試、雜湊或輸出身份,則相應的發布主張將不完整,並會阻止 Git 提交/推送階段。請分別回報不相關的既有失敗或管理失敗;除非證明有重大影響,否則它們不會使符合規範的輸出失效。

強制性 Git 提交與遠端推送階段

每次直接調用 dlm-version-master 時,請遵循 Git 同步(除非使用者明確禁止,或作為未委派 Git 的子組合執行):

  1. 執行內部版本決策 -> 經過驗證的建置(當有升級或與建置相關的輸入變更時) -> 提交前審查 (ponytail-review 和儲存庫鉤子) -> 精確範圍的 git commit -> git push 到遠端分支。
  2. 由 dlm-version-master 建立的每次提交都必須使用基於實際 git diff --cached 和版本過渡的詳細結構化多行提交訊息(絕不能是一行摘要或模糊的「升級版本」/「更新檔案」)。它必須明確包含所有四個必要部分:
    • 修改範圍: 變更的模組/專案/子系統以及主要的允許清單檔案或邊界;
    • 對應版本: 升級級別 (無升級 / 補丁 / 次要 / 主要),以及每個受影響模組的 舊版 -> 新版 版本過渡(如果沒有模組升級,則為當前版本加上 無升級 (sourceHash 未變更));
    • 怎麼改的: 從暫存的差異中得出的具體技術實作(入口點、資料/控制流程、演算法/UI/設定/建置調整);
    • 為什麼改的: 程式碼變更和版本決策的根本原因、需求/任務驅動因素、缺陷觸發因素或架構/相容性原因。
  3. 當內部規則決定不升級版本時(模組原始碼雜湊未變更),跳過版本變更且不要建立空的版本提交;仍然暫存、審查、提交(使用相同的四部分結構化提交訊息)並推送範圍內的任何預期允許清單儲存庫變更,或推送目前分支上現有未推送的已驗證提交。

輸出

回報儲存庫設定檔來源、凍結發布基準線/停止線、內部版本決策 (無升級 / 補丁 / 次要 / 主要) 及其理由、建置範圍和命令(如果已執行)、模組雜湊/版本過渡、未變更的模組、符合主張的測試、已驗證的輸出中繼資料/雜湊、變更日誌使用者/路徑、變更檔案允許清單、完整的結構化提交訊息 (修改範圍 / 對應版本 / 怎麼改的 / 為什麼改的)、提交雜湊、已驗證的遠端分支推送結果,以及阻擋性與建議性差距。請將更高層級的證據水準與建置和 Git 同步成功與否明確區分開來。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能