# Changelog

Update per-package CHANGELOG.md files for a Ratel release.

- Repository: https://github.com/ratel-ai/ratel (547 stars)
- Category: Git and review
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add ratel-ai/ratel --skill changelog -g -a claude-code -y`
Codex: `npx skills add ratel-ai/ratel --skill changelog -g -a codex -y`
Cursor: `npx skills add ratel-ai/ratel --skill changelog -g -a cursor -y`
Gemini CLI: `npx skills add ratel-ai/ratel --skill changelog -g -a gemini-cli -y`

## Description

Update per-package CHANGELOG.md files for a Ratel release. Drafts entries with git-cliff (scoped per package), lets you curate, then writes the CHANGELOGs. Handles both RC entries and GA-graduation collapse (merging X.Y.Z-rc.* sections into a single X.Y.Z section). Invoke before tagging a release.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# /changelog

Updates a release unit's `CHANGELOG.md` in preparation for tagging it. Ratel releases
**per unit** (ADR-0008): each unit ships on its own tag (`<prefix>-v*`) at its own version.
For workflow-wired units, `.github/workflows/release.yml` rejects a tag whose unit CHANGELOG
doesn't contain the version being released. `vercel-ai-sdk` is temporarily published
manually via `scripts/publish-rc.sh`; still run this skill before its tag even though the
workflow gate does not cover it yet.

Run it **once per unit** you're releasing.

## Release units it touches

The units and their manifests/CHANGELOGs live in one registry, `scripts/release-units.mjs`, which every release tool reads. Run `node scripts/release-units.mjs --list`
for the authoritative set; the current ten units are:

| Unit | Registry | CHANGELOG path |
|---|---|---|
| `core` | `ratel-ai-core` (crates.io) | `src/core/CHANGELOG.md` |
| `sdk-ts` | `@ratel-ai/sdk` (npm) | `src/sdk/ts/CHANGELOG.md` |
| `sdk-py` | `ratel-ai` (PyPI) | `src/sdk/python/CHANGELOG.md` |
| `telemetry-core` | `ratel-ai-telemetry` (crates.io) | `src/telemetry/core/CHANGELOG.md` |
| `telemetry-ts` | `@ratel-ai/telemetry` (npm) | `src/telemetry/ts/CHANGELOG.md` |
| `telemetry-py` | `ratel-ai-telemetry` (PyPI) | `src/telemetry/python/CHANGELOG.md` |
| `vercel-ai-sdk` | `@ratel-ai/vercel-ai-sdk` (npm) | `src/adapters/ts-vercel-ai-sdk/CHANGELOG.md` |
| `mastra` | `@ratel-ai/mastra` (npm) | `src/adapters/ts-mastra/CHANGELOG.md` |
| `rankers-ts` | `@ratel-ai/rankers-plugin` (npm) | `src/rankers/ts/CHANGELOG.md` |
| `rankers-py` | `ratel-ai-rankers-plugin` (PyPI) | `src/rankers/python/CHANGELOG.md` |

`@ratel-ai/mcp-server` lives in [ratel-ai/ratel-mcp](https://github.com/ratel-ai/ratel-mcp) and maintains its own CHANGELOG there.

## Procedure

### 1. Pick the unit and read its version

The rest: https://github.com/ratel-ai/ratel/blob/HEAD/.claude/skills/changelog/SKILL.md
