Generate changelog entries for changes on the current branch relative to main, then sync to the docs site.
Steps
- Inspect:
git log main..HEAD --oneline + git diff main..HEAD --stat.
- Edit root CHANGELOG: add bullets under
## Unreleased in CHANGELOG.md using the prefix table below. For changes scoped to a subpackage under packages/ or sdks/, also update that subpackage's CHANGELOG.md — subpackage CHANGELOGs follow their own prefix conventions (e.g. packages/kosong/CHANGELOG.md uses provider prefixes like Kimi: / Anthropic:); only the root CHANGELOG follows the table below.
- Sync English docs:
node docs/scripts/sync-changelog.mjs.
- Translate to Chinese: hand-write equivalents under
## 未发布 in docs/zh/release-notes/changelog.md. Use the full-width colon :. Follow docs/AGENTS.md terminology.
- Breaking changes: if any, add a section under
## Unreleased in docs/en/release-notes/breaking-changes.md with Affected + Migration subsections, and under ## 未发布 in docs/zh/release-notes/breaking-changes.md with 受影响 + 迁移 subsections.
Entry format
- <Prefix>: <verb-led sentence, readable standalone> — <optional rationale / before-after / migration>
- First sentence stands alone — readers should know after one sentence whether the bullet matters to them.
- One change per bullet. No
; also, ; and, or nested em-dashes. Two changes = two bullets.
- Verb-led:
Fix … / Add … / Switch … / Bump ….
- User-meaningful only. No internal refactors, test churn, or CI tweaks — except
Lib: for SDK-facing changes.
Prefixes — pick from this list, do not invent new ones
| Prefix |
Scope |
Shell |
Interactive TUI: keys, status bar, slash commands, terminal rendering |
Web |
kimi web |
Vis |
kimi vis tracing visualizer |
CLI |
Top-level flags, subcommands, --print / --yolo / --afk |
ACP |
Zed / JetBrains and other ACP integrations |
Core |
Agent runtime, step loop, approval, quota, turns, background tasks |
Tool |
Any built-in tool; name the specific tool in the body (ReadFile, Grep, Todo, Plan, …) |
Skill |
Skill discovery/loading, Flow, Loop (always singular — not Skills:) |
MCP |
MCP server integration |
Plugin |
Plugin system, kimi plugin subcommands |
LLM |
Provider-agnostic or cross-provider; name the provider in the body (Kimi / Anthropic / OpenAI / DeepSeek …). Do not create per-provider prefixes |
Kosong |
Changes to the kosong LLM abstraction layer surfaced in the root CHANGELOG (the subpackage's own CHANGELOG uses provider prefixes) |
Wire |
Wire protocol events, version |
Auth |
OAuth, token refresh, /login |
Config |
Config schema, env vars |
Lib |
SDK-facing API changes |
Build |
Nix / Rust / Python / packaging |
When unsure, match an existing entry of the same kind. Prefer this list; if you genuinely need a new prefix, raise it with maintainers and update this table in the same PR so the convention stays single-sourced.
Ordering: within each version, group bullets by prefix in the order of the table above. Order within a prefix is free — keep the development order.
Highlights
Starting from the next release, add **Highlights**: … under each version header (1–3 items most users will notice); mirror it as **亮点**:… in Chinese. Skip on releases that are only internal or Lib:. Highlights summarize — every highlighted item still needs its full bullet below. Do not backfill historical versions.
1---2name: gen-changelog3description: Generate changelog entries for code changes.4---56Generate changelog entries for changes on the current branch relative to `main`, then sync to the docs site.78## Steps9101. **Inspect**: `git log main..HEAD --oneline` + `git diff main..HEAD --stat`.112. **Edit root CHANGELOG**: add bullets under `## Unreleased` in `CHANGELOG.md` using the prefix table below. For changes scoped to a subpackage under `packages/` or `sdks/`, **also** update that subpackage's `CHANGELOG.md` — subpackage CHANGELOGs follow their own prefix conventions (e.g. `packages/kosong/CHANGELOG.md` uses provider prefixes like `Kimi:` / `Anthropic:`); only the root CHANGELOG follows the table below.123. **Sync English docs**: `node docs/scripts/sync-changelog.mjs`.134. **Translate to Chinese**: hand-write equivalents under `## 未发布` in `docs/zh/release-notes/changelog.md`. Use the full-width colon `:`. Follow `docs/AGENTS.md` terminology.145. **Breaking changes**: if any, add a section under `## Unreleased` in `docs/en/release-notes/breaking-changes.md` with **Affected** + **Migration** subsections, and under `## 未发布` in `docs/zh/release-notes/breaking-changes.md` with **受影响** + **迁移** subsections.1516## Entry format1718```19- <Prefix>: <verb-led sentence, readable standalone> — <optional rationale / before-after / migration>20```2122- **First sentence stands alone** — readers should know after one sentence whether the bullet matters to them.23- **One change per bullet.** No `; also`, `; and`, or nested em-dashes. Two changes = two bullets.24- **Verb-led**: `Fix …` / `Add …` / `Switch …` / `Bump …`.25- **User-meaningful only.** No internal refactors, test churn, or CI tweaks — except `Lib:` for SDK-facing changes.2627## Prefixes — pick from this list, do not invent new ones2829| Prefix | Scope |30|---|---|31| `Shell` | Interactive TUI: keys, status bar, slash commands, terminal rendering |32| `Web` | `kimi web` |33| `Vis` | `kimi vis` tracing visualizer |34| `CLI` | Top-level flags, subcommands, `--print` / `--yolo` / `--afk` |35| `ACP` | Zed / JetBrains and other ACP integrations |36| `Core` | Agent runtime, step loop, approval, quota, turns, background tasks |37| `Tool` | Any built-in tool; name the specific tool in the body (ReadFile, Grep, Todo, Plan, …) |38| `Skill` | Skill discovery/loading, Flow, Loop (always singular — not `Skills:`) |39| `MCP` | MCP server integration |40| `Plugin` | Plugin system, `kimi plugin` subcommands |41| `LLM` | Provider-agnostic or cross-provider; name the provider in the body (Kimi / Anthropic / OpenAI / DeepSeek …). **Do not** create per-provider prefixes |42| `Kosong` | Changes to the `kosong` LLM abstraction layer surfaced in the root CHANGELOG (the subpackage's own CHANGELOG uses provider prefixes) |43| `Wire` | Wire protocol events, version |44| `Auth` | OAuth, token refresh, `/login` |45| `Config` | Config schema, env vars |46| `Lib` | SDK-facing API changes |47| `Build` | Nix / Rust / Python / packaging |4849When unsure, match an existing entry of the same kind. Prefer this list; if you genuinely need a new prefix, raise it with maintainers and update this table in the same PR so the convention stays single-sourced.5051**Ordering**: within each version, group bullets by prefix in the order of the table above. Order within a prefix is free — keep the development order.5253## Highlights5455Starting from the next release, add `**Highlights**: …` under each version header (1–3 items most users will notice); mirror it as `**亮点**:…` in Chinese. Skip on releases that are only internal or `Lib:`. Highlights summarize — every highlighted item still needs its full bullet below. **Do not backfill historical versions.**