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

open-cdm-change-version

GitHub

用于准备 open-cdm 版本发布,通过 Git 标签范围收集变更与贡献者信息,生成中英双语发布说明并更新版本号。

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

Trigger Scenarios

用户请求为 open-cdm 项目准备特定版本的发布 需要生成包含社区贡献者归属的双语发布说明

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": "Prepare an open-cdm release for a user-specified version by deriving changes from Git tags, generating bilingual release notes with community-contributor attribution, and updating current version references. Use for open-cdm version bumps or release preparation; do not use for unrelated projects or rewriting earlier release history."
}

Open CDM Change Version

Prepare an open-cdm version from an exact Git range. The target version must come from the user's request; never infer it only from the current branch name.

Establish the Release Range

  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

Run the read-only collector before changing version 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

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 Version References

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 the index row only when both target release-note files exist.

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.
  • Re-run the collector and account for every commit and every community contributor in the chosen range.
  • 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.
  • Confirm the release-note index points to two existing files.
  • Search current public documentation for stale version tables and supported image tags; ignore intentional historical versions.
  • Report the start tag, end ref, commit count, community contributors, changed files, and validation performed.

Version History

  • 6101e65 Current 2026-08-27 16:57

Same Skill Collection

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

Metadata

Files
0
Version
6101e65
Hash
72f6ab78
Indexed
2026-08-27 16:57

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-29 19:03
浙ICP备14020137号-1 $방문자$