用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/cyberuni/cyberplace --skill add-changeset命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | add-changeset |
| description | Use this skill when a published-package change needs a changeset (monorepos supported). |
| metadata | {"internal":true} |
Add a changeset when the change:
patch)minor)major)patch)SKILL.md), a subagent/agent definition, or a plugin manifest that the package ships (bump per the nature of the change; see below)A package's public surface is not only code. Several packages here ship agent configuration
— skills, subagent/agent definitions, plugin manifests — as their actual product (e.g. cyber-sdd
ships skills/, agents/, and the .plugin/.claude-plugin/.codex-plugin manifests). Whatever a
package declares in its package.json#files is its public surface, so a change to that shipped
agent configuration is user-facing and needs a changeset the same as a code change — even though it
is authored in Markdown, not TypeScript. A shipped SKILL.md or agent definition is the product, not
documentation about it. Bump type still follows the nature of the change (see step 3).
Do nothing when:
ci:, chore:, test:, or an internal refactor with no API/behavior changeexamples/, docs/, or non-published packages (check private: true and "ignore" in .changeset/config.json)metadata: internal: true, anything under .agents/ (contributor tooling, SDD specs, ledgers, plans), or any agent-config file outside the owning package's package.json#files surface; none of it shipsdevDependenciesTell the user no changeset is needed and why.
# Confirm changesets is initialized
ls .changeset/config.json
Read .changeset/config.json to find:
"fixed" — packages that share the exact same version; bumping one bumps all"linked" — packages that share the highest bump type but keep independent versions"ignore" — packages excluded from versioning"access" — "public" means scoped packages publish publiclyFirst, determine which changes to look at:
# Check for staged changes
git diff --cached --name-only
# Check for unstaged changes
git diff --name-only
Scope selection rules (in priority order):
git diff --cached --name-onlygit diff --name-onlygit diff --name-only origin/main...HEADIn a monorepo (has pnpm-workspace.yaml, workspaces in root package.json, or bun.workspace.ts), map changed files to their owning package (find nearest package.json above each changed file). Apply fixed group rules: if any package in a fixed group is affected, all are.
Markdown agent-config files count too. A changed SKILL.md, agent definition, or plugin manifest maps to its owning package exactly like a code file — do not skip it because it is Markdown. Then confirm it is on the package's shipped surface: it must match a pattern in that package's package.json#files (e.g. cyber-sdd's skills/agents/.plugin). A change to an agent-config file outside that surface (a repo-internal .agents/ skill, an internal: true skill, a spec/ledger) ships nothing and is a do-nothing case.
In a single-package repo, the root package is always the affected package.
When scope is no local changes (case 3), also read recent commits for context:
# Commits on this branch not yet on base
git log origin/main..HEAD --oneline
Parse conventional commit prefixes to inform bump type and summary:
| Prefix | Implication |
|---|---|
feat: / feat(scope): | at least minor |
fix: / fix(scope): | at least patch |
BREAKING CHANGE: footer or ! after type | major |
chore:, ci:, test:, docs: | no changeset needed |
Use the commit message body / subject as a starting point for the changeset summary, rewritten to be user-facing (imperative mood, no implementation details).
| Change type | Bump |
|---|---|
| Removes or renames public API, breaks existing usage | major |
| Removes/renames a shipped skill or agent, or breaks its documented behavior contract | major |
| Adds new exported function, class, option, or command | minor |
| Adds a shipped skill/agent, or a new documented behavior to an existing one | minor |
| Bug fix, internal refactor, dependency update | patch |
| Fixes or clarifies a shipped skill/agent's behavior without changing its contract | patch |
A stricter shipped-agent-config check is not automatically breaking. Judge it by consumer impact like any change: a new non-blocking check, warning, or advisory a shipped skill/agent emits adds behavior without breaking existing usage, so it is
minor(patchif it only refines an existing message). Only a change that makes a previously-passing input fail — a new hard block, a removed capability, a renamed invocation — ismajor(minorpre-1.0).
Pre-1.0 rule: For packages on
0.x, useminorfor breaking changes — this is standard semver for pre-release packages. Only assignmajorto packages at1.0.0or higher.
When unsure between minor and patch, ask the user.
Choose a descriptive kebab-case filename that reflects the change (e.g. fix-button-accessibility.md, add-retry-option.md). Fall back to a random two-word slug (adjective + animal, e.g. fuzzy-wolves) when no obvious name fits or to avoid a conflict. Do not use the changeset CLI — write the file directly.
---
"package-name": patch
---
Add `retry` option to fetch client.
.changeset/<name>.md"<name>": <major|minor|patch>fixed group, list every package in the group with the same bump typeSummary — appears verbatim in CHANGELOG.md: imperative mood, user-facing effect, ends with a period, code identifiers in backticks, no internal file names or commit SHAs. For breaking changes, add a Migration: bullet list.
Only commit the changeset automatically when there were no local changes at the start (scope case 3 — branch diff). In that case:
git add .changeset/
git commit -m "docs: add changeset"
If staged or unstaged changes existed (scope cases 1 or 2), tell the user the changeset file has been created and let them include it in their own commit.
.changeset/ with a descriptive or slug filenamefixed group are included together