yamcodes/arkenv/changeset
Claude Code and agent skill by yamcodes/arkenv
- community
Checking that the SKILL.md file is still in the repository.
Creates changesets for semantic versioning. Use when adding changesets, preparing releases, determining version bumps (patch/minor/major), generating changelog entries, or documenting breaking changes.
Install
npx vskill@latest install yamcodes/arkenv/changesetSKILL.md
Changeset & release manager
Overview
Automate the creation and modification of changesets following project conventions, ensuring proper version bumps and well-documented release notes.
When to use
- After completing a feature or fix
- Before creating a PR
- When updating or correcting an existing changeset
- When preparing a release
- To document breaking changes
What is a changeset?
A changeset is a markdown file in the .changeset/ directory that describes:
- Which packages are affected
- What type of version bump (patch/minor/major)
- A description of the change
Changeset types
| Type | When to Use in v0 (Current) | When to Use in v1+ | |
|---|---|---|---|
patch | Any non-breaking change (fixes, features) | Non-breaking bug fixes | |
minor | Breaking changes | Non-breaking new features | |
major | Switch to v1 (only when instructed) | Breaking changes |
\* In v0, minor is used for breaking changes, not features. \\ In v0, major is used only when explicitly transitioning to v1.
Decision guide
Current Status: The ArkEnv monorepo is in v1 prerelease mode (alpha). All packages follow standard SemVer (v1+ rules).
Use patch for:
- Bug fixes
- Dependency updates (non-breaking)
- Performance improvements
- Code style/linting fixes
- Small documentation corrections
Use minor for:
- New features (new CLI commands, new configuration options, enhanced functionality, non-breaking API additions, etc.)
- New exports or public APIs
- Significant documentation improvements
Use major for:
- Breaking changes (any modification that requires consumers to change their code). You MUST include a
**BREAKING CHANGE**:note at the bottom of the changeset with migration instructions.
Note: Purely internal refactorings (e.g., library switches, internal type cleanup) that offer no tangible benefit or change to the consumer should NOT be documented in a changeset. Do not clutter the changelog with changes that are meaningless to the end user.
v0 Rules (Legacy / Reference Only)
Use these rules only when working with packages still at 0.y.z that are not in v1 prerelease mode:
Use patch for:
- Any non-breaking change (including new features, bug fixes, dependency updates, performance improvements, etc.)
Use minor ONLY for:
- Breaking changes (Required in v0 for any breaking modification. You MUST prefix the description with
**BREAKING CHANGE**:).
Use major ONLY for:
- Explicitly transitioning the project from v0.x.y to v1.0.0. Only use major when explicitly instructed to switch/transition to v1.
Decision guide (v1+ rules)
For packages in v1+ (e.g. active v1 branch):
Use patch for:
- Backward-compatible bug fixes
- Internal performance or refactor improvements with user value
Use minor for:
- Backward-compatible new features or API additions
Use major for:
- Breaking changes (Any change that breaks backward compatibility. You MUST prefix the description with
**BREAKING CHANGE**:).
Creating a changeset
Title and body voice
- Format: All changeset descriptions MUST start with a
####header. - Title mood: The
####header MUST use the imperative mood — a command to the codebase (e.g. "Add helper...", "Fix missing-schema errors...", "Remove the schema/define plugin API"). Indicative titles ("Adds...", "Removes...") and past-tense titles ("Added...", "Removed...") are invalid. - Body mood: The paragraphs under the title are changelog copy for users, not commit-message commands. Prefer past tense or a present "now" statement (e.g. "The
arkenv(schema)pattern has been dropped", "Removed the ambient helpers...", "Plugins now only accept transform options"). Do not write the body as imperative commands ("Drop X", "Replace Y", "Make Z"). Match the voice in existingCHANGELOG.mdfiles.
Good:
```markdown #### Remove the schema/define plugin API
The arkenv(schema) pattern has been dropped. Plugins now only accept transform options. ```
Bad (imperative body):
```markdown #### Remove the schema/define plugin API
Drop arkenv(schema) and replace native-accessor reads with the env object. ```
Usage examples
Always include usage examples or code snippets when adding new features or fixing bugs that affect how the library is used.
Interactive method
Follow the prompts:
- Select affected packages (space to select)
- Choose bump type for each package
- Write a summary of changes (imperative
####title; user-friendly past-tense / "now" body)
Manual method
Create a file in `.changeset/` (at the root of .changeset/, not under .changeset/pre/) with a random kebab-case name:
import arkenv from "arkenv" import { type } from "arktype"
export const env = arkenv({ schema: { NODE_ENV: type("'development' | 'production' | 'test'"), PORT: type.number.parseable() } })
Pending vs .changeset/pre/ (hard rule)
On v1 (and any branch in Changesets pre mode), two folders look similar but mean opposite things:
| Path | Role | Who writes here | |
|---|---|---|---|
.changeset/<name>.md | Pending — not applied until changeset version (but changesets/action does read these to open/update the Version Packages PR) | You / agents on feature PRs | |
.changeset/pre/<name>.md | Consumed archive — already applied by a Version Packages PR | Only changeset version / the release bot |
Never create, move, or commit a new changeset under `.changeset/pre/`. changesets/action / assemble-release-plan only treat root .changeset/*.md as pending. A file that lands only in pre/ is skipped (“No changesets found” when nothing else is pending) and will not bump packages or open/update a Version Packages PR (see the #2022 extractors miss, plus #2013 / #2014).
Also never hand-edit or delete files already in pre/ to “fix” a missed release — restore a copy as a new pending file under .changeset/ instead (or move an orphaned never-consumed file from pre/ back to .changeset/ in a dedicated fix PR).
Orphaned vs deliberate deferral: do not use pre/ as a holding pen. If a change should not release yet, do not add a changeset (or keep the PR unmerged). A file under pre/ that was added by a feature commit (not a Version Packages commit) is almost certainly an orphaned miss — move it back to .changeset/.
pre.json (mode / tag) is the pre-release channel config. It is unrelated to the pre/ directory of consumed markdown.
File format
Modifying an existing changeset
When to modify
- The bump type is wrong (e.g., used
minorfor a patch-level change) - The title is not imperative, or the body is written as imperative commands instead of changelog prose
- Usage examples are missing or incorrect
- The changeset references GitHub issues directly
- A change is documented that should be excluded (internal-only refactoring with no consumer value)
- Multiple related changes exist across separate changesets that should be combined
Process
- Read the existing changeset file from
.changeset/ - Assess what needs to change: bump type, description, examples, or scope
- Edit the file directly - changesets are plain markdown files
- Remove the file entirely if the changeset no longer applies (e.g., the change was reverted)
Validation checklist after modification
- [ ] File path is
.changeset/<name>.md— not.changeset/pre/<name>.md - [ ] Bump type matches the decision guide (patch/minor for non-breaking, major for breaking)
- [ ] Title starts with
####header and uses imperative mood - [ ] Body is user-facing changelog prose (past tense or "now"), not imperative commands
- [ ] Usage examples present for user-facing changes
- [ ] No GitHub issue references (# numbers) or internal documentation references (e.g. ADRs, internal RFCs)
- [ ] Breaking changes use
majorbump and include a**BREAKING CHANGE**:note at the bottom
Release workflow
1. Create or modify changeset
2. PR and review
- Changeset is part of the feature PR targeting the
devbranch - Reviewers can suggest bump type changes or edits
3. Merge to dev
- Merging a feature PR containing a changeset to
devtriggers the Changesets GitHub Action - The action automatically creates or updates a "Version Packages" PR targeting the
devbranch (sincebaseBranchis set todevin.changeset/config.json) - This "Version Packages" PR contains all accumulated version updates and CHANGELOG entries
4. Merge version PR
- Merging the "Version Packages" PR on
devtriggers the publication of bumped packages to npm - Upon successful publish, the release workflow programmatically fast-forwards the
mainbranch todev(git merge dev --ff-only) and pushes it - The push to
mainrefreshes the v0 docs archive (https://arkenv-v0.vercel.app), not Production - Production /
arkenv.js.orgtracks `v1` (vercel --prodviadeploy-www.yml)
Pre-release versions
For managing alpha, beta, and release candidate (rc) pre-releases, we follow a strict versioning policy using the alpha ➔ beta ➔ rc progression.
To avoid duplication, the exact pre-release branching strategies, command workflows, and SemVer naming rules are documented in the Contributing Guide.
Checking status
Common mistakes
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 96 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/changeset/SKILL.md
Popularity
- Repository stars
- 125
- Repository forks
- 4
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/yamcodes/arkenv/changeset)