Use when generating changesets in the kimi-code repository, including package bump selection, internal package and CLI bundle handling, bump levels, major confirmation, and English changelog wording.
75
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
kimi-code uses changesets to manage versions and changelogs. The current user-facing published package is:
@moonshot-ai/kimi-code: the CLIAll other @moonshot-ai/* packages are treated as internal packages, including @moonshot-ai/kimi-code-sdk, agent-core, kosong, kaos, kimi-code-oauth, kimi-telemetry, and migration-legacy.
@moonshot-ai/pi-tui is a special internal package: it is a private fork (private: true) that is never published, but it keeps its own changelog through changesets. It is an exception to Core Rule 4 — see the dedicated section below.
git status / git diff --name-only to identify which packages were actually changed..changeset/config.json, do not put that ignored package in frontmatter together with a non-ignored package; changesets rejects mixed ignored/non-ignored frontmatter.@moonshot-ai/kimi-code and describe the actual user-visible or release-artifact change in the changelog text.@moonshot-ai/kimi-code inline-bundles @moonshot-ai/* source, but those internal packages are devDependencies from the CLI's perspective, so changesets will not automatically propagate bumps. If a change enters the CLI output and is user-perceivable, list @moonshot-ai/kimi-code. See rule 6 for when to skip the changeset entirely.
@moonshot-ai/kimi-web) changes always enter the CLI bundle. @moonshot-ai/kimi-web is ignored by changesets (see .changeset/config.json) and cannot be mixed with @moonshot-ai/kimi-code in one changeset frontmatter. Describe the web change in the changelog text, but list @moonshot-ai/kimi-code so the CLI release carries the bundled dist-web output.test/ changes that do not enter package output do not trigger a CLI bump.main still ship in the next release triggered by any user-facing changeset, so skipping the changeset loses nothing. Do not write changesets for:
agent-core-v2 internal architecture: new services, refactors, config-persistence or journal/wire mechanisms.kap-server WebSocket / REST protocol changes consumed only by the bundled web UI, kimi-inspect, or other dev tooling (new endpoints, subscribe protocols, stream baselines). A web-facing feature they back gets its own web: entry instead.kimi -p), unless it exposes documented user configuration such as a config.toml section or env vars that also work on a shipped surface (TUI or kimi web).@moonshot-ai/vis / vis-server / vis-web are ignored by changesets and should not be handled. @moonshot-ai/kimi-inspect (a private dev app that never ships) is likewise ignored and must never appear in a changeset frontmatter..changeset/config.json.@moonshot-ai/kimi-code in frontmatter instead of mixing the ignored package into the same changeset..changeset/.Before a release, review the accumulated .changeset/ entries against Core Rule 6 and prune non-user-facing ones; the release PR regenerates from .changeset/ on main, so deleting a changeset removes its changelog entry without affecting the shipped code.
Format:
---
"<package A>": patch
"<package B>": minor
---
<English changelog entry>| Level | When to use |
|---|---|
patch | Bug fixes; build/package fixes; internal refactors that do not change behavior; wording tweaks; small dependency upgrades; small improvements to existing features with limited user-facing impact (e.g. a new keyboard shortcut, a flag alias, a minor UX tweak) |
minor | A substantial new user-facing feature, such as a new slash command, a new built-in tool, or a new mode |
major | Breaking changes: incompatible config changes, renamed or removed commands/arguments, behavior semantics changes, and similar |
When in doubt between patch and minor: if the change improves an existing feature and the user-facing impact is small, choose patch even when the change is technically "new". Reserve minor for a substantial new capability that introduces something users could not do before.
New configuration surface is not automatically minor. Additions to an existing feature's configuration — env var overlays, config-file fallbacks, global defaults under per-item settings — are patch. Examples: a global default MCP timeout when per-server timeouts already exist; env-based credentials for a service already configurable in config.toml.
Never write major on your own.
If you believe a change qualifies as major, stop first, explain why, and ask the user for confirmation. Only write major after the user explicitly agrees. If the user does not reply, replies ambiguously, or disagrees, fall back to minor; if minor is also unclear, fall back to patch.
Add the /foo slash command to list active sessions. Run /foo to see them.Add the kimi web subcommand to open the web UI. Run kimi web to launch it.Add a --bar flag to skip confirmation prompts. Pass --bar to skip.Add the /foo command to list active sessions. It accepts an optional --all flag to include background sessions, supports filtering by name with /foo <name>, and writes the result to the transcript...example.com, example.test, or YOUR_API_KEY.refactor, optimize, and improve. Describe the actual change, or use more specific wording.Generate the changeset from what the diff clearly shows. If part of a change is unclear and you cannot confidently describe what it does for users, do not guess or pad the entry with vague wording.
An internal package fixes a bug visible to CLI users:
---
"@moonshot-ai/kimi-code": patch
---
Fix occasional loss of tool call results in long conversations.A new user-facing slash command (note the short usage hint):
---
"@moonshot-ai/kimi-code": minor
---
Add the /foo slash command to list active sessions. Run /foo to see them.A new CLI subcommand:
---
"@moonshot-ai/kimi-code": minor
---
Add the kimi web subcommand to open the web UI. Run kimi web to launch it.A new flag on an existing command:
---
"@moonshot-ai/kimi-code": patch
---
Add a --bar flag to skip confirmation prompts. Pass --bar to skip.An internal package has an internal-only change, but it enters the CLI bundle:
---
"@moonshot-ai/kimi-code": patch
---
Unify tool execution metadata handling.Only SDK source changed, and the CLI does not use it:
---
"@moonshot-ai/kimi-code-sdk": patch
---
Clarify session status typing for internal SDK callers.@moonshot-ai/kimi-web is ignored by changesets and must never appear in a changeset frontmatter. Because the web app is bundled into the CLI release artifact, any web change that ships must list @moonshot-ai/kimi-code instead and describe the actual web-facing change in the text.
web: (for example web: Fix the chat not scrolling to the bottom after sending a message.) so the synced docs changelog can mark web UI entries. Apply this whenever the change is to the web project (@moonshot-ai/kimi-web).web: entry describing what the web user gets. Do not add a separate server-API changeset unless the API has independent user value (a public endpoint that SDK or server consumers call directly). The docs changelog sync also deduplicates this pattern, but catching it here avoids duplicate changesets.Web-only fix:
---
"@moonshot-ai/kimi-code": patch
---
web: Fix the chat not scrolling to the bottom after sending a message.Web UI plus backing server APIs in the same PR (prefer a single web: entry; the API is plumbing):
---
"@moonshot-ai/kimi-code": minor
---
web: Add the server-hosted web UI, including chat layout and session list behaviors.Split into two changesets only when the API has independent user value on its own (for example, a public endpoint SDK consumers call directly). In that case add the web entry above plus a separate one such as Add a public REST API to list archived sessions for SDK consumers.
@moonshot-ai/pi-tui changes@moonshot-ai/pi-tui is a vendored fork that lives in packages/pi-tui. It is private: true and is never published, but it is not ignored by changesets: changesets versions it and writes packages/pi-tui/CHANGELOG.md so the fork keeps its own history. Because it is bundled into the CLI like other internal packages, it is an exception to Core Rule 4 — do not list @moonshot-ai/kimi-code for a change that only touches pi-tui.
@moonshot-ai/pi-tui only. No CLI changeset.@moonshot-ai/kimi-code with CLI-focused wording, in addition to the pi-tui changeset. Do not mix both packages in one frontmatter — the two changelogs need different wording.pi-tui-only change:
---
"@moonshot-ai/pi-tui": patch
---
Export the package manifest so the bundled binary can locate its native assets.pi-tui change that is also visible in the CLI (two separate changesets):
---
"@moonshot-ai/pi-tui": patch
---
Clamp the differential render to the visible viewport so scrolling up during streaming no longer jumps to the top.---
"@moonshot-ai/kimi-code": patch
---
Fix the transcript jumping to the top when scrolling up through history during streaming output.major without asking the user.agent-core-v2 internals, kap-server WS/REST protocol plumbing, experimental-engine-only behavior. Skip the changeset instead (Core Rule 6).minor — configuration additions to existing features are patch.@moonshot-ai/kimi-code is missing.packages/node-sdk was not changed, but @moonshot-ai/kimi-code-sdk was listed for "internal package sync".@moonshot-ai/pi-tui lists @moonshot-ai/kimi-code instead of @moonshot-ai/pi-tui, or mixes both packages in one frontmatter.web: prefix.web: changeset already describes (use one web: entry instead, unless the API has independent user value).77618e3
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.