Changeset
Overview
Create the release changeset, optional breaking-change note, staging, and commit. Order matters: scope, patch/minor classification, file edits, exact-message commit.
When this skill is active, follow only this skill for the changeset task. Ignore other process skills, including superpowers skills, unless the user explicitly asks for them.
Workflow
- Determine the change scope.
- If the prompt describes the change directly, use that description.
- If the prompt is like
611 1, find changes/611*/1*/spec.md and read it.
- If the scope is still unclear, ask the user before continuing.
- Determine the issue number.
- Prefer the numeric prefix from a
changes/ directory.
- Otherwise use the prompt's issue number.
- If no issue number is known, ask the user; the changeset and commit message must end with
(#<issue-number>).
- Classify the release type.
patch: adding new functionality.
patch: extending existing functionality while preserving previous contracts.
minor: any backward-compatibility gap or breaking behavior/API change.
- Determine affected packages.
- Include packages whose public behavior/API changed.
- Use each package's
name from packages/<folder>/package.json in the changeset file.
- If
pqb or rake-db are affected, always include orchid-orm.
- If
pqb or rake-db is minor, orchid-orm is also minor.
- For a
minor change, prepend a section to BREAKING_CHANGES.md.
- Describe before, after, and upgrade steps.
- Grep current affected versions from
packages/*/package.json.
- Title: affected packages and versions after this release by incrementing minor and setting patch to
0.
- Keep the section short and clear.
- From the repo root, run:
pnpm changeset add --empty
- Edit the generated
.changeset/*.md file printed by the command.
- Put affected packages between the
--- lines in changeset format.
- Use
patch or minor values only.
- Always include
orchid-orm when pqb or rake-db are affected.
- After the second
---, add a blank line and a 1-2 sentence description ending with (#<issue-number>).
- Before committing, print the generated outputs and ask for confirmation.
- If
BREAKING_CHANGES.md was changed, print the new section that was added.
- Print the full generated
.changeset/*.md file content.
- Ask the user to confirm committing; do not commit without confirmation.
- Stage and commit:
- Run
git add -A; include all changed files, even files not changed by this agent.
- Commit with exactly the same message as the changeset description, including
(#<issue-number>).
Quick Reference
| Situation |
Release type |
| New functionality |
patch |
| Contract-preserving extension |
patch |
| Backward-compatibility gap |
minor |
pqb or rake-db affected |
Include orchid-orm |
pqb or rake-db is minor |
orchid-orm is minor |
Examples
Prompt changeset 611 1 means read changes/611*/1*/spec.md.
Example changeset file:
---
'orchid-orm': minor
'pqb': patch
---
Fix selecting relation when deleting a record (#708)
Common Mistakes
- Do not classify new functionality as
minor; it is patch unless compatibility is not preserved.
- Do not forget
orchid-orm when pqb or rake-db are affected.
- Do not invent an issue number. Ask the user if it is unknown.
- Do not alter the commit message; it must exactly match the changeset description.
1---2name: changeset3description: Use when the user prompts "changeset".4---56# Changeset78## Overview910Create the release changeset, optional breaking-change note, staging, and commit. Order matters: scope, patch/minor classification, file edits, exact-message commit.1112When this skill is active, follow only this skill for the changeset task. Ignore other process skills, including superpowers skills, unless the user explicitly asks for them.1314## Workflow15161. Determine the change scope.17 - If the prompt describes the change directly, use that description.18 - If the prompt is like `611 1`, find `changes/611*/1*/spec.md` and read it.19 - If the scope is still unclear, ask the user before continuing.202. Determine the issue number.21 - Prefer the numeric prefix from a `changes/` directory.22 - Otherwise use the prompt's issue number.23 - If no issue number is known, ask the user; the changeset and commit message must end with `(#<issue-number>)`.243. Classify the release type.25 - `patch`: adding new functionality.26 - `patch`: extending existing functionality while preserving previous contracts.27 - `minor`: any backward-compatibility gap or breaking behavior/API change.284. Determine affected packages.29 - Include packages whose public behavior/API changed.30 - Use each package's `name` from `packages/<folder>/package.json` in the changeset file.31 - If `pqb` or `rake-db` are affected, always include `orchid-orm`.32 - If `pqb` or `rake-db` is `minor`, `orchid-orm` is also `minor`.335. For a `minor` change, prepend a section to `BREAKING_CHANGES.md`.34 - Describe before, after, and upgrade steps.35 - Grep current affected versions from `packages/*/package.json`.36 - Title: affected packages and versions after this release by incrementing minor and setting patch to `0`.37 - Keep the section short and clear.386. From the repo root, run:39 ```sh40 pnpm changeset add --empty41 ```427. Edit the generated `.changeset/*.md` file printed by the command.43 - Put affected packages between the `---` lines in changeset format.44 - Use `patch` or `minor` values only.45 - Always include `orchid-orm` when `pqb` or `rake-db` are affected.46 - After the second `---`, add a blank line and a 1-2 sentence description ending with `(#<issue-number>)`.478. Before committing, print the generated outputs and ask for confirmation.48 - If `BREAKING_CHANGES.md` was changed, print the new section that was added.49 - Print the full generated `.changeset/*.md` file content.50 - Ask the user to confirm committing; do not commit without confirmation.519. Stage and commit:52 - Run `git add -A`; include all changed files, even files not changed by this agent.53 - Commit with exactly the same message as the changeset description, including `(#<issue-number>)`.5455## Quick Reference5657| Situation | Release type |58| ----------------------------- | ----------------------- |59| New functionality | `patch` |60| Contract-preserving extension | `patch` |61| Backward-compatibility gap | `minor` |62| `pqb` or `rake-db` affected | Include `orchid-orm` |63| `pqb` or `rake-db` is `minor` | `orchid-orm` is `minor` |6465## Examples6667Prompt `changeset 611 1` means read `changes/611*/1*/spec.md`.6869Example changeset file:7071```md72---73'orchid-orm': minor74'pqb': patch75---7677Fix selecting relation when deleting a record (#708)78```7980## Common Mistakes8182- Do not classify new functionality as `minor`; it is `patch` unless compatibility is not preserved.83- Do not forget `orchid-orm` when `pqb` or `rake-db` are affected.84- Do not invent an issue number. Ask the user if it is unknown.85- Do not alter the commit message; it must exactly match the changeset description.