Agent skill

Tabler Changeset Generator

by tabler in tabler/tabler

Creates a changeset file in .changeset from the actual git changes, choosing packages and bump levels from path mapping and writing a one-line description.

MITAuto-check passedDevelopment

Install Tabler Changeset Generator

skills CLI
$ npx skills add tabler/tabler --skill generate-changeset -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tabler/tabler generate-changeset --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/generate-changeset .claude/skills/generate-changeset && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
generate-changeset
GitHub stars
42k
Token cost
~2k tokens
SKILL.md length
852 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Creates a changeset file in .changeset from the actual git changes, choosing packages and bump levels from path mapping and writing a one-line description.

  • Works in 8 steps: Inspect the change → Map paths to packages → Choose bump level (per package) → …
  • Adding a changeset before committing a change under core, preview or docs
  • SKILL.md covers 1. Inspect the change, 2. Map paths to packages, 3. Choose bump level (per… and 4. Write the description, plus 4 more sections
  • Calls git and changeset

What it does

The skill writes one .changeset markdown file per logical change for the Tabler repository, grounding package choice and bump level in real git output rather than guesses. It inspects uncommitted work with status and diffs, or branch work against origin/dev, and maps changed paths to packages: core to @tabler/core, preview to @tabler/preview, docs to @tabler/docs, and shared includes and data usually to preview, with docs added when examples reference them. Root tooling changes often need no changeset.

Bump levels are set per package: patch for fixes and small tweaks, minor for new components, pages, classes and enhancements, and major only for breaking changes, which must never land on dev; if the honest bump is major, the agent stops and follows a backward-compat skill. The description is one sentence starting with Added, Updated, Fixed or Removed, saying what changed and where, aimed at 130 characters with a hard ceiling of 160.

The skill is meant for every changeset in this repo, including on the agent's own initiative before a change under core, preview or docs is committed or opened as a PR, and the file should never be hand-written instead.

When your agent uses it

  • Adding a changeset before committing a change under core, preview or docs
  • Choosing patch, minor or major for each affected package
  • Writing a concise changelog line for a pull request

Example prompts

  • “Create a changeset for my current changes.”
  • “What bump level does this new CSS utility need for core and docs?”
  • “Write the changeset for this branch compared to origin/dev.”

Requirements

  • A git checkout of the Tabler repository with a .changeset folder

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Inspect the change
  2. Map paths to packages
  3. Choose bump level (per package)
  4. Write the description
  5. Pick the filename
  6. File format
  7. Validate before writing
  8. Output to the user

What it can do on your machine

Read from SKILL.md and the folder at commit dcacb65. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • changeset

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tabler Changeset Generator loads about 2k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 852 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~97
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tabler/tabler at commit dcacb65, republished under its MIT licence (© tabler). 852 words, ~1,998 tokens.

Download SKILL.mdSave it as .claude/skills/generate-changeset/SKILL.md (or your agent's skills folder).
name
generate-changeset
description
Creates a Tabler changeset file in `.changeset/` from the current code changes. Use this skill for every changeset in this repo — when the user asks for a changeset, version bump, release note, or changelog entry, and also on your own whenever a change under `core/`, `preview/`, or `docs/` is about to be committed or opened as a PR. Never hand-write the file instead.

Generate changeset

Create one .changeset/<name>.md file per logical change. Ground package selection and bump level in actual git output—not guesses.

1. Inspect the change

From the repository root, determine scope:

  • Uncommitted work: git status -sb, git diff, git diff --cached
  • Branch work (default base: dev): git diff origin/dev...HEAD --stat, then targeted git diff origin/dev...HEAD -- <paths>

If the user points at specific files or a feature, read those diffs first.

2. Map paths to packages

PathPackage
core/@tabler/core
preview/@tabler/preview
docs/@tabler/docs
shared/includes/, shared/data/Usually @tabler/preview; add @tabler/docs if docs examples reference it
Root tooling (.github/, turbo.json, lockfile only)Often no changeset unless it affects published package behavior

Include every affected package in the frontmatter. Omit packages with no relevant changes.

3. Choose bump level (per package)

LevelWhen
patchBug fixes, small improvements, style/accessibility tweaks, variable/token fixes, doc typo/format fixes
minorNew components, new pages, new CSS classes/utilities, significant enhancements, new preview demos
majorBreaking changes, removed APIs/classes, rewrites that break consumers. Never on dev: if the honest bump is major, stop and follow the backward-compat skill

Packages can differ: e.g. @tabler/core: minor + @tabler/docs: patch is valid.

When unsure between patch and minor: prefer patch for fixes and visual tweaks; prefer minor for new user-facing capabilities.

4. Write the description

A changeset is one line in a changelog. It is not a summary of the work.

  • One sentence, 130 characters or fewer, including backticks. This is the limit to write to.
  • 160 characters is a hard ceiling. Go over 130 only when a shorter version would drop a fact the reader needs — a long list of affected components, for example. Never go over 160.
  • Start with: Added, Updated, Fixed, or Removed
  • Say what changed and where (component, page, utility). Then stop.
  • Name at least one concrete thing: a component, class, CSS variable, Sass variable, page, data file, or dependency. "Fixed mixed declarations in SCSS" and "Updated flags and avatars styling" name nothing — a reader cannot tell whether the change affects them. There is no minimum length, but an entry under ~40 characters that names nothing is almost always too vague; a dependency bump like Updated Bootstrap to v5.3.8. is fine at 28, because the dependency and version are the content.
  • Use backticks for code tokens:
    • Classes: .btn-ghost, .progress-lg
    • Properties: stroke-width, border-radius
    • Values: 1.5, 0.4
    • Icons: arrow-up
    • Attributes: aria-label, data-*
    • Functions: addEventListener()

Count the characters before writing the file:

shell
printf '%s' 'Added Progress Steps component for step-by-step navigation indicators.' | wc -c

If it is over the limit, cut words. Never split it into two sentences, a second paragraph, or a bullet list.

Leave this out

These belong in the PR description or the commit body, not in the changeset:

  • Why the change was made, or what was broken before
  • How it was built: file paths, mixin internals, refactor steps
  • A list of every affected component, page, or variable
  • Migration and rollout notes, unless the change is breaking

Cut the tail first. An over-long entry in this repo is almost always a good sentence with a trailing justification clause glued on. Delete that clause and the length problem is usually solved:

text
… and removed duplicate exports from `tabler.js` for better maintainability.
… with `var(--tblr-bg-surface-secondary)` so it adapts to dark mode.
… live in one `:root` declaration instead of separate dark-mode overrides.
Show full SKILL.md (344 more words)Show less
Examples

Good — short and specific:

text
(70) Added Progress Steps component for step-by-step navigation indicators.
(81) Added `.progress-lg` and `.progress-xl` size variants for the progress component.
(78) Fixed dark mode text selection contrast with a `--tblr-selection-bg` variable.
(58) Removed `license_key` option from the HugeRTE init object.

Too vague — name the thing that changed:

text
 (33) ❌ Fixed mixed declarations in SCSS.
 (79) ✅ Fixed Sass mixed-declaration warnings in the navbar, card, nav and table styles.
 (26) ❌ Updated activity messages.
 (82) ✅ Updated the activity feed messages in `activity.json` and the activity preview page.

Too long — trim it:

text
(175) ❌ Fixed accessibility issues for skip links, keyboard focus, `prefers-reduced-motion`, form labels, and action controls that incorrectly used links instead of `button` elements.
(117) ✅ Fixed accessibility issues in skip links, keyboard focus, `prefers-reduced-motion`, form labels, and action controls.

Over 130 but justified — the list of components is the content, and cutting it would say nothing:

text
(137) Added missing ARIA roles and states to `Pagination`, `NavSegmented`, `Accordion`, `Steps`, tabs, `Modal`, `Offcanvas` and `CarouselCard`.

Write in simple English, even if the user asked in another language.

Language (simple English)
  • Short sentences. Common words. One idea per sentence when possible.
  • No buzzwords or filler. Use technical terms only when they appear in the code or are needed to name a behavior.
  • Prefer plain phrasing: “Fixed squircle border radius for cards” over “Enhanced squircle corner-shape rendering pipeline”.
  • Keep the description easy to scan in a changelog—reviewers and users should understand it without reading the diff.

5. Pick the filename

  • Location: .changeset/
  • Kebab-case, descriptive: progress-sizes.md, fix-dark-mode-selection-contrast.md, button-ghost.md
  • One logical change per file; split unrelated changes into separate changesets
  • Do not overwrite an existing changeset unless the user asks to update it

6. File format

md
---
"@tabler/core": patch
"@tabler/preview": minor
---

One-sentence description here.

Rules:

  • Frontmatter uses quoted package names: "@tabler/core": patch
  • Blank line after closing ---
  • No title heading, no bullet list in the body
  • Body is a single line — no second paragraph
  • Bump values: patch, minor, or major only

7. Validate before writing

  • Every listed package has touched paths in the diff
  • Description is one sentence with action verb, in simple English
  • Description is 130 characters or fewer — counted, not estimated; over 130 only with a reason, never over 160
  • Description names a concrete component, class, variable, page, file, or dependency
  • Code tokens use backticks
  • Filename is kebab-case and not already used for a different change
  • SCSS/CSS/JS behavior changes include @tabler/core when under core/

8. Output to the user

After creating the file:

  1. Show the full changeset content in a fenced markdown block (for easy copy/review)
  2. Give the description length, e.g. 112 / 130 characters; if it is over 130, say why the extra words earn their place
  3. Briefly explain why each package and bump level was chosen
  4. If no changeset is needed (docs-only CI, lockfile-only, etc.), say so and why

Do not run changeset version or changeset publish unless the user explicitly asks.

© tabler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/generate-changeset of tabler/tabler.

Open the folder on GitHubat commit dcacb65

Compare with similar skills

Tabler Changeset Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tabler Changeset Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tabler Changeset Generator this skilltabler/tabler42k—~2kAutomated safety check: PassMIT
Git Workflow and Versioningaddyosmani/agent-skills102k2 repos~3.5kAutomated safety check: NotesMIT
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
pybind11 Release Preparationpybind/pybind1118k—~1.7kAutomated safety check: PassCustom licence
AionUi Version BumpiOfficeAI/AionUi33k—~2.1kAutomated safety check: PassApache-2.0
ScottPlot Changelog EntryScottPlot/ScottPlot6.8k—~366Automated safety check: PassMIT

Similar skills

  • Git Workflow and Versioning

    addyosmani/agent-skills

    Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.

    102k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.

    18k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • AionUi Version Bump

    iOfficeAI/AionUi

    Automates an AionUi release: checks the latest AionCore release and its artifacts, updates package.json, writes the changelog, opens a PR and tags the release.

    33k GitHub stars~2.1k tokensUpdated 28 days ago
    DevelopmentAuto-check passed
  • ScottPlot Changelog Entry

    ScottPlot/ScottPlot

    Adds or updates a single concise changelog bullet in CHANGELOG.md for exactly the current branch's ScottPlot pull request, leaving all other text untouched.

    6.8k GitHub stars~366 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • PR Push

    icebear0828/codex-proxy

    Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…

    1.8k GitHub stars~2.2k tokensUpdated yesterday
    DevelopmentAuto-check: notes

More from tabler/tabler

All 21 skills in this repo
  • Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.

    42k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Rules for adding or fixing client-side scripts in Tabler's Astro components so the copied preview HTML stays readable, self-contained and runs in the right order.

    42k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.

    42k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Writes or updates the classnames front matter that renders the class table at the end of a Tabler component docs page.

    42k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Guidance for changing the Tabler framework's own JavaScript in core/js: the tabler.js and tabler-theme.js bundles, the Bootstrap port and their tests.

    42k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Tabler Core SCSS

    tabler/tabler

    Rules for adding or changing styles in Tabler's core/scss framework: file placement, custom properties, dark mode, RTL, tests and build gates.

    42k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Tabler Changeset Generator

What does Tabler Changeset Generator do?

Creates a changeset file in .changeset from the actual git changes, choosing packages and bump levels from path mapping and writing a one-line description. changeset markdown file per logical change for the Tabler repository, grounding package choice and bump level in real git output rather than guesses. It inspects uncommitted work with status and diffs, or branch work against origin/dev, and maps changed paths to packages: core to @tabler/core, preview to @tabler/preview, docs to @tabler/docs, and shared includes and data usually to preview, with docs added when examples reference them.

When should I use Tabler Changeset Generator?

Tabler Changeset Generator fits situations like: adding a changeset before committing a change under core, preview or docs; choosing patch, minor or major for each affected package; writing a concise changelog line for a pull request.

How do I install Tabler Changeset Generator in Claude Code?

Run `npx skills add tabler/tabler --skill generate-changeset -a claude-code`. Or copy the skill folder (.agents/skills/generate-changeset in tabler/tabler) into .claude/skills/generate-changeset in your project. Claude Code loads it when a task matches its description.

How do I install Tabler Changeset Generator in Codex?

Run `npx skills add tabler/tabler --skill generate-changeset -a codex`. Or copy the skill folder (.agents/skills/generate-changeset in tabler/tabler) into .agents/skills/generate-changeset in your project. Codex loads it when a task matches its description.

Can I use Tabler Changeset Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tabler/tabler --skill generate-changeset -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/generate-changeset, .gemini/skills/generate-changeset, .github/skills/generate-changeset and .opencode/skills/generate-changeset in your project.

What does Tabler Changeset Generator need to run?

Going by SKILL.md and its folder, Tabler Changeset Generator needs the command-line tools its instructions call (git and changeset). Our summary lists: A git checkout of the Tabler repository with a .changeset folder.

Does Tabler Changeset Generator access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Tabler Changeset Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tabler Changeset Generator use?

Tabler Changeset Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tabler Changeset Generator use?

About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Tabler Changeset Generator?

Skills that share tags, products or a category with Tabler Changeset Generator: Git Workflow and Versioning (addyosmani/agent-skills, 102k stars), Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), pybind11 Release Preparation (pybind/pybind11, 18k stars) and AionUi Version Bump (iOfficeAI/AionUi, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tabler Changeset Generator?

tabler (a GitHub organization) maintains it in tabler/tabler, which has 41,821 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 6, 2026.

Source: tabler/tabler on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.