Skip to main content

changeset-resolve

Repair an unreleased `.changeset/*.md` file so it matches the real branch delta against `main`. Use when a changeset was edited iteratively during debugging, when bullets may reflect turn-by-turn history instead of `main...HEAD`, when "removed/gone/renamed" claims need proof, or when you need to audit whether a changeset is actually lossless before commit.

Source facts

Repository
udecode/kitcn
Last source activity
March 30, 2026 at 13:19
Detected SKILL.md language
English
Stars
450
Forks
34

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
description
Repair an unreleased `.changeset/*.md` file so it matches the real branch delta against `main`. Use when a changeset was edited iteratively during debugging, when bullets may reflect turn-by-turn history instead of `main...HEAD`, when "removed/gone/renamed" claims need proof, or when you need to audit whether a changeset is actually lossless before commit.
name
changeset-resolve
metadata
{"skiller":{"source":".agents/rules/changeset-resolve.mdc"}}
# Changeset Resolve Use the companion `changeset` skill for structure and versioning. This skill owns the diff audit and the bullshit detector pass. ## Goal Rewrite the active unreleased changeset so it describes the package-level, user-facing branch delta against `main`, not the local iteration history. ## Hard Rules - Diff against `main...HEAD`. Never diff against the current changeset draft. - Reuse the existing unreleased changeset file. Do not create another one. - Keep the release surface package-first: - `packages/kitcn` - `packages/resend` - root and `example` manifests/scripts when user-facing - docs only when they reveal public API shape - Ignore repo noise unless it changes real user behavior: - `.claude` - `.agents` - tests - internal tooling churn - If a bullet says something is gone, removed, renamed, or replaced, prove the old surface existed on `main` first. - If it did not exist on `main`, it is not a breaking change. Rewrite it as a feature or delete it. - Do not call a changeset lossless unless you actually audited the package surface. If unsure, say so. ## Mandatory Sequence 1. Resolve the active changeset: - list `.changeset/*.md` excluding `.changeset/README.md` - reuse the existing unreleased file 2. Audit the real branch delta against `main`: ```bash git diff --stat main...HEAD -- packages/kitcn packages/resend package.json example/package.json www/content/docs git diff --name-only main...HEAD -- packages/kitcn packages/resend package.json example/package.json www/content/docs git diff main...HEAD -- packages/kitcn/package.json packages/resend/package.json package.json example/package.json ``` 3. Audit the likely-missed public seams: - package `exports` - package `bin` - package `files` - peer dependency/support matrix - new packages - public CLI commands and flags 4. Prove every breaking bullet: ```bash git show main:packages/kitcn/package.json git show main:packages/kitcn/src/cli/config.ts git grep -n "claim-you-are-making" main -- packages/kitcn packages/resend www/content/docs example ``` 5. Classify honestly: - existed on `main` and changed incompatibly: `## Breaking changes` - new user-facing capability: `## Features` - same surface, better behavior or safer output: `## Patches` - test-only, docs-only, or internal churn: omit 6. Rewrite from scratch: - keep `## Breaking changes`, `## Features`, `## Patches` - user-facing only - no file paths - no implementation gossip 7. Run one final anti-lie pass: - re-check every breaking snippet against `main` and `HEAD` - scan manifests/exports one more time - if something still smells off, say it is not fully lossless yet ## Sanity Heuristics - New command on this branch only: feature, not deprecation. - New package on this branch only: feature. - Tightened peer dependency support matrix: usually breaking. - Moved import paths with old path removed: breaking. - Renamed flag with old flag removed: breaking. - Scenario/fixture proof improvements: patch only if users feel it. - Docs sync alone: omit unless it reveals a real new surface. ## Exit Gate Before done, run: ```bash bun lint:fix ```
View on GitHub