Agent SkillsClouGence/open-cdm › open-cdm-change-version

open-cdm-change-version

GitHub

用于生成 Open CDM 项目双语发布说明、更新版本号引用或准备完整发布流程。支持仅生成说明、仅更新版本或完整发布三种模式,确保范围精准且不越界。

skills/open-cdm-change-version/SKILL.md ClouGence/open-cdm

Trigger Scenarios

需要为指定版本生成中英文发布说明 需要更新项目版本号及相关引用 需要执行完整的发布准备工作

Install

npx skills add ClouGence/open-cdm --skill open-cdm-change-version -g -y
More Options

Use without installing

npx skills use ClouGence/open-cdm@open-cdm-change-version

指定 Agent (Claude Code)

npx skills add ClouGence/open-cdm --skill open-cdm-change-version -a claude-code -g -y

安装 repo 全部 skill

npx skills add ClouGence/open-cdm --all -g -y

预览 repo 内 skill

npx skills add ClouGence/open-cdm --list

SKILL.md

Frontmatter
{
    "name": "open-cdm-change-version",
    "description": "Generate bilingual open-cdm release notes, update version references, or prepare a complete release for a user-specified version. Use for release-note creation, version bumps, or release preparation in open-cdm; do not use for unrelated projects or rewriting earlier release history."
}

Open CDM Change Version

Generate release notes and update public version references without broadening the user's requested scope. The target version must come from the user's request; never infer it only from the current branch name.

Choose the Requested Scope

  • Release notes only: derive changes from an exact Git range, create the Chinese and English release-note files, and add their index row. Do not change Gradle, README, deployment, FAQ, Docker, or llms-full.txt version references.
  • Version references only: update the Gradle main version and public version references. Do not create release-note content. Index the version only when both local release-note files already exist.
  • Complete release: generate the bilingual release notes first, then update version references and the release-note index.

When the request is ambiguous, preserve the narrower operation supported by its wording. A request to “add release notes” means release notes only; a request to “change/bump the version” means version references only; “prepare the release” means the complete release workflow.

Establish the Release Range for Release Notes

Skip this section for a version-references-only request.

  1. Locate the intended repository, read its applicable instructions, and inspect the working tree before editing.
  2. Refresh tags from the configured remote when current remote state is required. Do not switch branches merely to inspect a tag or release branch.
  3. Prefer the exact target tag v<target-version> as the end ref. If the tag does not exist because release notes are being prepared before tagging, require an explicit end ref such as the current release branch or HEAD; do not silently substitute it.
  4. Use the newest stable SemVer tag reachable from the end ref and lower than the target version as the default start tag. Stable release notes intentionally ignore intermediate -rc tags so the range remains cumulative. Override the start tag only when the user or release topology requires it.
  5. Confirm the start tag is an ancestor of the end ref and that the end ref belongs to the checkout being edited.

Resolve the bundled scripts relative to this SKILL.md; do not assume a fixed installation or repository path.

Collect Changes and Contributors

Skip this section for a version-references-only request.

Run the read-only collector before drafting release-note files:

python3 <resolved-skill-directory>/scripts/collect_release_changes.py \
  --repo <open-cdm-repository-root> \
  --version <target-version> \
  --github

The collector defaults to v<target-version> and chooses the previous stable tag. Use --to-ref for an explicitly approved pre-tag ref and --from-tag when the default previous tag is not the intended release boundary.

--github resolves each PR's login and authorAssociation through the authenticated GitHub CLI. Treat OWNER, MEMBER, and COLLABORATOR as project members. Treat CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, and NONE as community contributors, excluding bot accounts. If PR attribution cannot be resolved, do not guess from a display name or email; resolve it before finalizing the notes.

Commit messages and PR titles are source material, not release-note prose. Inspect commit bodies or diffs when a message is vague, and do not invent user-visible behavior. Re-run the collector with --include-files only when changed paths would help resolve an unclear commit.

Generate Release Notes

Skip this section for a version-references-only request.

Before drafting, read references/release-notes.md. Create or update only the target version's files:

  • docs/release-notes/v<target-version>/index.cn.md
  • docs/release-notes/v<target-version>/index.en.md

Map every material commit in the range to a note or record why it is intentionally omitted. Every included community contribution must mention and link the contributor in the same bullet. Do not silently omit a community-authored PR merely because it is documentation, maintenance, or difficult to classify.

Keep the Chinese and English files semantically aligned. Never modify earlier version directories as part of a new release.

Update the Release-Note Index Only

For a release-notes-only request, update the index after both language files exist:

python3 <resolved-skill-directory>/scripts/change_open_cdm_version.py \
  --repo <open-cdm-repository-root> \
  --version <target-version> \
  --index-only \
  --dry-run

Review the dry run, then repeat without --dry-run. In this workflow both local files must exist, and --index-only never changes other version references.

Update Version References

Skip this section for a release-notes-only request.

For a complete release, run this only after both release-note files exist. Dry-run the version updater, review its file list and counts, then apply it:

python3 <resolved-skill-directory>/scripts/change_open_cdm_version.py \
  --repo <open-cdm-repository-root> \
  --version <target-version> \
  --dry-run

Run the same command without --dry-run only when the scope is correct. The updater changes the Gradle main version, current-version tables, supported Docker image tags, and the release-note index. It inserts or repairs the index row only when both local release-note files exist.

For a version-references-only request with no local release-note pair, add --skip-release-notes-index to both the dry run and the applied command.

Do not broaden a routine release to dependency properties, CI tuning, generated output, or historical release-note content. Do not commit, tag, switch branches, or push unless the user explicitly asks.

Validate

  • Review the full diff and ensure unrelated pre-existing changes remain untouched.
  • When release notes were requested, re-run the collector and account for every commit and every community contributor in the chosen range.
  • When release notes were requested, verify Chinese and English notes cover the same changes, PR links resolve to the correct repository, and each community @username links to that GitHub profile.
  • When the index was updated, confirm it points to two existing files.
  • When version references were requested, search current public documentation for stale version tables and supported image tags; ignore intentional historical versions.
  • Report only the range and validation relevant to the requested scope, along with all changed files.

Version History

  • 5d6eab3 Current 2026-09-03 04:13

    新增选择请求范围的逻辑,明确区分仅生成发布说明、仅更新版本引用和完整发布三种场景,并细化了 Git 标签范围和变更收集的参数处理规则。

  • 6101e65 2026-08-27 16:57

Same Skill Collection

frontend/skill/ui-layout-consistency/SKILL.md

Metadata

Files
0
Version
5d6eab3
Hash
f3a0a0b2
Indexed
2026-08-27 16:57

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-04 00:42
浙ICP备14020137号-1 $Carte des visiteurs$