Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Prepare Helmor releases by inspecting the current branch, drafting a concise user-facing Changesets entry first (bump + body — keep it as short as possible), creating any needed pending in-app release announcement under `.announcements/`, and then showing the user the result with a short menu of adjustments they can pick from. Use when the user wants to cut a release, write a changeset, decide patch/minor/major, draft GitHub release notes, create a release announcement, or summarize branch chang
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 149% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 152% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 90% | 0% |
Use this skill to turn a branch's real changes into release metadata for Helmor:
.changeset/*.md entry.announcements/*.json fragment when the change deserves an in-app "New in vX" toastscripts/collect_release_context.py to gather:patch / minor / major) using the Versioning Guidance belowPrefer a conservative bump (patch unless there is a clear new user-visible capability). If you genuinely cannot decide the bump from the diff alone, default to patch and flag it in the confirmation step.
Brevity bias. Aim for the shortest sentence that names the user-visible change — if a clause can be dropped without losing meaning, drop it. Reserve summary+bullets for releases with ≥2 distinct user-visible items.
.changeset/ right away. Do not wait for approval before creating the file — the user will adjust from a real draft, not a hypothetical one..announcements/ only for new user-visible features or workflow changes.bun run release:version consumes all pending announcement files and merges them into one catalog entry for the final version.Do not ask the user anything before the draft is written. Once the changeset file exists, report what you created and offer a short menu of adjustments.
Preferred pattern:
Example (Shape A — single sentence):
textI've written .changeset/brave-otters-smile.md: bump: patch body: Fix the context-usage ring resetting to zero when switching the active model. If you want to adjust anything, tell me which: 1. Version bump (currently: patch — say "make it minor" / "make it major") 2. Rewrite the body 3. Add or revise an in-app release announcement 4. Expand into summary + bullets 5. Add a thanks/credits line Otherwise we're done — no reply needed.
Example (Shape B — multi-change):
textI've written .changeset/brave-otters-smile.md: I've also written .announcements/release-and-updates.json: bump: minor summary: Ship a round of release and auto-update improvements: bullets: - Add in-app update checks that download updates in the background ... - Add a signed and notarized macOS release pipeline ... - Add release planning automation ... If you want to adjust anything, tell me which: 1. Version bump (currently: minor — say "make it patch" / "make it major") 2. Summary line 3. The bullet list (add / remove / rewrite specific items) 4. In-app announcement text 5. Collapse to a single sentence 6. Add a thanks/credits line Otherwise we're done — no reply needed.
If structured choice tools are unavailable, present the menu in plain text and let the user reply naturally.
Write changesets for users, not for maintainers.
Do:
Do not:
- bullet (see format rule below)The body has two allowed shapes. Pick the smallest one that fits.
Shape A — single sentence. Use this when one self-contained sentence captures the entire user-visible change. This is the default for most patch-level fixes and small polish PRs. Keep it as short as possible.
Shape B — summary line + bullets. Use this only when there are ≥2 distinct user-visible changes worth enumerating. The first line is a prose summary (usually ending with :); each concrete change is a - sub-item underneath.
@changesets/changelog-github inlines the first line of the body after Thanks @user! - when rendering CHANGELOG.md / GitHub Release. A single prose sentence renders cleanly. A leading - would produce ! - - Fix X with the first item glued to the attribution. Never start the body with - .
Decision rule: if you find yourself writing a summary that just restates the one bullet underneath it, collapse to Shape A. If a single sentence would force you to cram multiple ideas with "and"/";", expand to Shape B.
md--- "helmor": patch --- Fix a Chinese IME regression in the composer so pressing Enter to confirm an IME candidate no longer accidentally sends the message.
First line is a prose summary ending with :. Bullets start from the next line:
md--- "helmor": minor --- Ship a round of release and auto-update improvements: - Add in-app update checks that download updates in the background and prompt once the update is ready to install. - Add a signed and notarized macOS release pipeline for GitHub Releases. - Add release planning automation so Helmor can publish user-facing release notes through Changesets.
This renders cleanly as:
md- [#NN] [`hash`] Thanks @user! - Ship a round of release and auto-update improvements: - Add in-app update checks ... - Add a signed and notarized macOS release pipeline ... - Add release planning automation ...
If the user wants credits, append a final bullet such as:
md- Thanks @username for helping validate the release flow.
Helmor already uses @changesets/changelog-github in .changeset/config.json.
That means:
CHANGELOG.mdDo not invent a separate release-note format unless the user asks for one.
Create a pending announcement fragment when the PR adds a user-visible feature or workflow change that users should learn about in the app.
Do:
.announcements/Do not:
id or releaseVersionsrc/features/announcements/release-announcement-catalog.json by hand during feature workSchema:
tstype PendingReleaseAnnouncement = { items: Array<{ text: string; action?: { label: string; value: | { type: "openSettings"; section?: SettingsSection } | { type: "setRightSidebarMode"; mode: WorkspaceRightSidebarMode }; }; }>; };
Allowed openSettings.section values come from src/features/settings. Allowed setRightSidebarMode.mode values come from WorkspaceRightSidebarMode in src/lib/settings.ts.
Plain text example:
json{ "items": [ { "text": "You can now drag workspaces in the sidebar to keep each section in your preferred order." } ] }
Action example:
json{ "items": [ { "text": "You can now group workspaces in the sidebar by repository.", "action": { "label": "Open General", "value": { "type": "openSettings", "section": "general" } } }, { "text": "Add Context now supports GitLab too.", "action": { "label": "Open Context", "value": { "type": "setRightSidebarMode", "mode": "context" } } } ] }
At release-plan time, bun run release:version consumes every pending fragment, merges all items into one entry for the final package version, and deletes the pending files.
Recommend:
patch for fixes, polish, and invisible release improvementsminor for new user-visible features or workflowsmajor only when behavior changes incompatiblyFor Helmor's current early lifecycle, prefer patch or minor. Escalate to major only with a concrete breaking change.
scripts/collect_release_context.py to inspect the current branch before drafting the changeset.references/release-format.md if you need the exact Helmor release flow or writing guidance.Other measured skills in the registry, with their headline benchmark lift.