用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/kdeldycke/dotfiles --skill repomatic-changelog命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | repomatic-changelog |
| description | Draft, validate, consolidate, and fix changelog entries. |
| compatibility | Designed for Claude Code. Recommended model: Sonnet. |
| allowed-tools | Bash Read Grep Glob Edit Write |
| argument-hint | [add|check|fix|consolidate [VERSION]|VERSION] |
!head -40 changelog.md 2>/dev/null || echo "No changelog.md found"
!git log --oneline -10 2>/dev/null
![ -f repomatic/__init__.py ] && echo "CANONICAL_REPO" || echo "DOWNSTREAM"
You help users manage their changelog.md file. Follow CLAUDE.md § Changelog and docs updates for style rules.
The changelog.yaml workflow's fix-changelog job runs lint-changelog --fix in CI, checking release dates against PyPI, orphaned versions, over-long unreleased bullets, and released sections holding no entry. The check and fix subcommands below invoke the same tool locally. The add subcommand is purely analytical — it reviews git history and drafts entries, which no CI job does.
CANONICAL_REPO, use uv run repomatic.uvx -- repomatic.uvx form with the supply-chain cooldown: uvx --exclude-newer '1 week' --exclude-newer-package repomatic=P0D -- repomatic. The window matches [tool.repomatic] minimum-release-age; repomatic itself is exempt because a fresh release must stay installable, while its dependency tree stays gated. See claude.md § Cooldown on every install.$ARGUMENTS is empty): Run add then consolidate on the unreleased section, sequentially.add: Review recent git commits and draft changelog entries. Place entries under the current unreleased section. Describe what changed, not how or why: one sentence per user-facing change (~10-25 words), per the canonical entry-length guideline (https://github.com/kdeldycke/repomatic/blob/main/claude.md#changelog-entry-length). Mechanism, internal names, and rationale go in the commit and PR, not the entry.check: Run <cmd> lint-changelog and report results. Explain each issue found.fix: Run <cmd> lint-changelog --fix and show what was changed.consolidate [VERSION]: Consolidate redundant entries in a changelog section. This is analytical work with no CLI equivalent — read the entries, compare against git log for the relevant range, and rewrite. See § Consolidation rules below. If VERSION is omitted, target the unreleased section. If VERSION is given (e.g., consolidate 6.8.0), target that released section instead — locate it in changelog.md by matching the heading, and use the git range between its tag and the previous tag (e.g., v6.7.0..v6.8.0).6.8.0 or v6.8.0) is shorthand for consolidate VERSION. Strip the v prefix if present.Entries accumulate during development as features are built incrementally. Before release, they need consolidation. The goal is a changelog that reads as a release summary, not a development diary.
git log for its range. For the unreleased section, use git log since the last release tag. For a released version like 6.8.0, use git log v6.7.0..v6.8.0 (derive the previous tag from the next heading in changelog.md).HEAD. git log includes work that was later undone or superseded, so verify every entry against the current code and docs (open pyproject.toml, the source, the docs) instead of trusting commit messages. Collapse a value that a later commit corrected into its final form: an entry bumping a dependency floor to one version, when a subsequent commit moved it higher, should state the higher version. Drop any change introduced and then reverted within the same cycle: a dependency pinned to a branch until a fix ships and unpinned once it did, or a temporary workaround added then deleted. It never reached a release, so it is a no-op for users.docs/.Follow CLAUDE.md § Changelog and docs updates and § Version formatting (bare versions in changelog headings, no v prefix), plus the canonical entry-length guideline (one short sentence per change, what-not-how-or-why): https://github.com/kdeldycke/repomatic/blob/main/claude.md#changelog-entry-length
Suggest the user run:
/repomatic-ship to reconcile the tree and drive the release to a ready-to-merge PR.pallets/click#NNNN…#NNNNclaude.md § Changelog and docs updates: never ship an empty release section). When rules 02-07 collapse the unreleased section to zero bullets and the net cycle is genuinely mechanical, backfill one generic bullet naming what moved — e.g. "Sync CI tooling, workflow pins and dependency floors with the latest repomatic release." This is a fallback for an empty net cycle, not a substitute for drafting: it fires only after add has had its own chance to draft real entries from git log. As the section's sole bullet it needs no category ordering.**Breaking:** entries, then **Deprecated:** entries, then new features, then broad/global changes, then bug fixes, then documentation and testing. Breaking changes are what a reader scans for before upgrading, so they go at the top of the block. **Deprecated:** marks a surface that still resolves but warns and is slated for removal in a named future release.changelog.md without asking for approval. Summarize what was merged, dropped, or reordered after writing.<cmd> lint-changelog, which measures the bullet lengths against changelog.bullet-word-threshold — gate on what it reports, not on a delegated agent's self-report of how much it compressed. Then run <cmd> run mdformat --verify -- <file>, which reports what the write path would change without touching the file; a bare mdformat/mdformat --with mdformat-myst diverges on MyST directive colon-options like a {list-table}'s :header-rows:, so gate on the pinned runner. Confirm by eye what neither tool measures: rule 08 (its empty-section check covers released sections only, and deliberately skips the unreleased one you just consolidated, which is legitimately empty for most of a cycle), no doubled list markers (a stray - -), and the ## [...] heading count and availability-admonition count unchanged from before the edit. Breaking entries lead each section (rule 9).