# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in the repository](https://github.com/changesets/changesets)

**What is a changeset?** A changeset is a piece of information about changes made in a branch or commit. It
holds three bits of information:
- What we need to release
- What version we are releasing packages at (using a [semver bump type](https://semver.org/))
- A changelog entry for the released packages

[Click here to learn what changesets are, and how to add one.](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md)

[Click here if you want to understand how to contribute when changesets are used.](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md#i-am-a-contributor)

---

## Open Knowledge convention — pre-1.0 bump types

**While Open Knowledge is pre-1.0, NEVER declare a `major` bump in a changeset.** OK uses a modified semver where the bump types map differently:

| What you want to communicate                            | OK pre-1.0 bump type |
| ------------------------------------------------------- | -------------------- |
| Breaking change for consumers (rename, removal, schema) | `minor`              |
| New feature, additive API surface                       | `minor`              |
| Bug fix, internal change, no user-visible API impact    | `patch`              |

**Why:** under standard semver, going from `0.X.Y` to `1.0.0` is a once-in-a-product-lifetime decision. Until OK explicitly takes a major (decided by the team, not by an individual changeset), every change is either `minor` (new behavior or breaking change) or `patch` (bug fix / refinement). This lets us ship breaking changes without prematurely advertising a 1.0 stability promise.

**Mechanic:** the OK fixed-group (`@inkeep/open-knowledge`, `-core`, `-server`, `-app`, `-desktop`) bumps in lock-step on the highest declared bump type across all queued changesets. A single `major` declaration on any one package pulls the entire group to `1.0.0` — once. Don't be that changeset.

When `1.0.0` does eventually ship, this convention will be retired and standard semver resumes.

> Authoring tip: run `bun changeset` from anywhere under `public/open-knowledge/` — the CLI walks up to find this folder. Don't hand-create files; the tool's interactive flow asks for bump types in order and writes a well-formed frontmatter block. Per the convention above, only pick `minor` or `patch`.

> SKILL.md metadata is synced automatically by the VP workflow via [`scripts/sync-skill-version.sh`](../scripts/sync-skill-version.sh). You don't need to bump `packages/server/assets/skills/open-knowledge/SKILL.md`'s `metadata.version:` by hand — `bun changeset version` (in CI) bumps the package.json files, then the sync script propagates the new version into SKILL.md. The same script can be run manually from `public/open-knowledge/` if you ever need to re-sync after a hand edit.
