Agent skill

Release

by dahlia in dahlia/optique

Create and publish releases for the Optique project. An agent skill from dahlia/optique.

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add dahlia/optique --skill release -a claude-code

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

GitHub CLI
$ gh skill install dahlia/optique release --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/dahlia/optique.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/release && 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
release
GitHub stars
737
Token cost
~1.9k tokens
SKILL.md length
913 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Create and publish releases for the Optique project. An agent skill from dahlia/optique.

  • Releasing a patch
  • Calls git, mise and jq
  • Tasks that involve Changelog and release notes

What it does

Release is an agent skill from dahlia/optique. Create and publish releases for the Optique project. Use when releasing a patch, minor, or major version. Handles Sacho release notes, the mise bump-version task, tags, and maintenance-branch merges.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with TypeScript. The repository describes itself as: Type-safe combinatorial CLI parser for TypeScript. The licence is MIT.

When your agent uses it

  • Releasing a patch
  • Tasks that involve Changelog and release notes

Example prompts

  • “/release”

What it can do on your machine

Read from SKILL.md and the folder at commit 865d769. 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
    • mise
    • jq
    • pnpm

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

  • Network

    No URLs in SKILL.md. Its commands use git and pnpm, 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

Release loads about 1.9k tokens when it runs. Until then it costs about 52 tokens; SKILL.md has 913 words of instructions outside code blocks.

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

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 dahlia/optique at commit 865d769, republished under its MIT licence (© dahlia). 913 words, ~1,928 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Create and publish releases for the Optique project. Use when releasing a patch, minor, or major version. Handles Sacho release notes, the mise bump-version task, tags, and maintenance-branch merges.
metadata.internal
true

Releasing Optique

Optique releases patch versions from X.Y-maintenance branches and major/minor versions from main. Tags have no v prefix: use 1.2.7, not v1.2.7.

changes.d/ holds unreleased entries. With materialize = true in sacho.toml, their rendered section in CHANGES.md is generated. Edit the fragments, then synchronize; do not hand-edit the unreleased section or copy entries into it during merges.

Prepare the branch

Verify the current branch, working tree, and remotes before changing versions:

bash
git status --short --branch
git remote -v

The commands below use the dahlia remote. Substitute the verified remote name if this checkout uses another one. Start from an up-to-date branch with no unrelated changes staged or pending. Choose the target and next versions from the user's release request and the branch's existing versions.

For a patch release, switch to the matching maintenance branch:

bash
git switch 1.2-maintenance
git pull --ff-only dahlia 1.2-maintenance

For a major/minor release, use main instead. Confirm that changes.d/next and all package versions match the version being released:

bash
cat changes.d/next
jq -r .version packages/core/deno.json
mise run check:versions

The two printed versions must be equal to each other and to the requested release version. check:versions verifies agreement between package manifests; it does not compare them with changes.d/next.

If the target version needs correction, use mise run bump-version VERSION. This task calls sacho next, updates packages/core/deno.json, formats it, and synchronizes all workspace package versions. Use this task instead of editing package versions manually.

Read the fragments and their compiled output before finalizing the release:

bash
sacho sync
sacho fmt
sacho preview
sacho check
mise test

If noninteractive sacho sync refuses to replace the generated region, inspect its diff for hand edits. Move any intended text into fragments before running sacho sync --force, then repeat formatting and checking.

Run pnpm build in docs/ before committing documentation changes. Use the installed sacho release --help and mise run bump-version --help when checking command syntax.

Finalize and tag the release

Use sacho release to compile the fragments into a dated release section and consume them. For example, on 1.2-maintenance with 1.2.7 pending:

bash
sacho release 1.2.7
sacho check
git diff --stat
git diff -- CHANGES.md changes.d

The date defaults to the current local calendar date; use --date YYYY-MM-DD when the release requires a specific date. Use --allow-empty only for an intentional release with no changelog entries.

Commit CHANGES.md together with the consumed fragment deletions and any change to changes.d/next, plus any package metadata changed when correcting the release version. Use the message Release 1.2.7. Follow the repository's commit and AI-disclosure rules. Do not commit just the rendered changelog while leaving its source fragments pending.

Tag this release commit before preparing the next version:

bash
git tag -m "Optique 1.2.7" 1.2.7

Always provide a tag message with -m, including for signed tags. For a major/minor release, use its version throughout, for example sacho release 1.3.0 and git tag -m "Optique 1.3.0" 1.3.0.

Do not use sacho release --next here. Prepare the next version in a separate commit with bump-version, so the release tag contains the released package versions and the next-version commit updates the manifests and changelog metadata together.

Prepare the next version and push

On a maintenance branch, advance to the next patch version:

bash
mise run bump-version 1.2.8
mise run check:versions
sacho check
git diff --stat

On main after 1.3.0, use mise run bump-version 1.4.0, or the next major version if that is the planned development line. The task creates the next unreleased section through sacho next; do not add a heading manually or run sacho next separately.

Review and commit all version changes together: package metadata, changes.d/next, and CHANGES.md. Use Version bump with [ci skip] in a separate paragraph, plus the required disclosure trailer. Run mise test before this commit as required by the repository.

Push the release tag and the updated branch:

bash
git push dahlia 1.2.7 1.2-maintenance

Tag pushes trigger the publishing workflow in .github/workflows/main.yaml. Verify that the tag's workflow succeeds, including the publish job for JSR/npm and the public-docs job, before reporting the release as published.

For a major/minor release, push its tag and main, then create the maintenance branch from the release tag, not from the next-version commit:

bash
git push dahlia 1.3.0 main
git switch -c 1.3-maintenance 1.3.0
mise run bump-version 1.3.1
mise run check:versions
sacho check
mise test

Commit the first patch-version preparation with the same version-bump message and push 1.3-maintenance.

Show full SKILL.md (284 more words)Show less

Merge patch releases forward

Merge each patch release into newer maintenance branches in order, then into main. Merge the release tag, not the older branch's next-version commit. Inspect available branches with git branch -a --list '*-maintenance'.

For example, to bring 1.2.7 into an existing 1.3-maintenance branch:

bash
git switch 1.3-maintenance
git pull --ff-only dahlia 1.3-maintenance
git merge --no-commit --no-ff 1.2.7

Resolve conflicts while retaining the receiving branch's package versions and changes.d/next. Sacho's configured merge driver preserves the receiving unreleased region and adds the released section at its version position. Review the result even when Git reports no conflict.

On newer maintenance branches, include the fixes in their next patch notes by carrying the released entries back into fragments. Before running carry, check for existing carried-from-1.2.7.md fragments: the command replaces them.

bash
sacho carry 1.2.7
sacho sync
sacho fmt
sacho preview
sacho check
mise test

carry creates package-specific carried-from-1.2.7.md fragments. Edit them if the receiving branch needs different wording, then synchronize again. Do not copy bullets or reference link definitions directly into CHANGES.md.

Complete the merge commit, including carried fragments and the synchronized changelog. Confirm the receiving branch's next version and core manifest version match, using the checks in “Prepare the branch”. Then repeat “Finalize and tag the release” and the maintenance-branch steps in “Prepare the next version and push”, using its pending patch version. Merge the new release tag into the next newer maintenance branch.

At main, merge the last release tag, including its code fixes and released changelog section. If there is no newer maintenance branch, use the original release tag. Apply the same conflict handling, but do not run sacho carry. Keep main's existing fragments and next version; the imported released section records the patch fixes without duplicating them in the next major/minor release notes. Run sacho sync, sacho check, and mise test, complete the merge commit, and push main.

© dahlia, 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/release of dahlia/optique.

Open the folder on GitHubat commit 865d769

Compare with similar skills

Release 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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skilldahlia/optique737—~1.9kAutomated safety check: PassMIT
Generate Release Notesteambit/bit18k—~2.2kAutomated safety check: PassCustom licence
Release Roundethereumjs/ethereumjs-monorepo2.8k—~2kAutomated safety check: PassNone
Bumpy Add Changezap-studio/monorepo1721 repos~1.4kAutomated safety check: NotesMIT
Create Release Checklistsoftware-mansion/smelter734—~1.9kAutomated safety check: NotesCustom licence
Kanvibe Release Deployrookedsysc/kanvibe143—~12kAutomated safety check: NotesAGPL-3.0

Similar skills

  • Generate comprehensive release notes for Bit from git commits and pull requests.

    18k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Round

    ethereumjs/ethereumjs-monorepo

    Runs a coordinated EthereumJS npm release round in six human-gated phases — intent and readiness, CHANGELOG, version bump, publish (human executes), post-publish verification, and announcements.

    2.8k GitHub stars~2k tokensUpdated 21 days ago
    DevelopmentAuto-check passed
  • Bumpy Add Change

    zap-studio/monorepo

    Create a bumpy bump file describing which packages changed and how, for version bumping and changelog generation.

    172 GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check: notes
  • Create Release Checklist

    software-mansion/smelter

    Generate a GitHub release-checklist issue for a full (non-RC) release of the Smelter server and/or the TypeScript SDK.

    734 GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Kanvibe Release Deploy

    rookedsysc/kanvibe

    A skill your agent uses whenever releasing or deploying KanVibe desktop from a clean, up-to-date dev checkout: ask only for the target version and release-note approval, then let the AI update…

    143 GitHub stars~12k tokensUpdated today
    DevelopmentAuto-check: notes
  • Release Notes

    Aivis-Project/AivisSpeech

    AivisSpeech の新バージョンリリース時に updateInfos のリリースノートドラフトを作成・更新するスキル。「リリースノート」「updateInfos」「アップデート情報」「リリース準備」などのキーワードが出たら使う。updateInfos.draft.json の作成・更新、エンジン側リリースノートとの統合、漏れチェックまでを包括的にサポートする。

    483 GitHub stars~745 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed

More from dahlia/optique

  • Guides writing command-line interfaces with the Optique TypeScript library: composing parsers, choosing value types, subcommands and avoiding common mistakes.

    737 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

Create and publish releases for the Optique project. An agent skill from dahlia/optique. Release is an agent skill from dahlia/optique. Create and publish releases for the Optique project.

When should I use Release?

Release fits situations like: releasing a patch; tasks that involve Changelog and release notes.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use Release 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 dahlia/optique --skill release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, mise, jq and pnpm).

Does Release 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 Release 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 Release use?

Release 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 Release use?

About 1.9k tokens (SKILL.md is roughly 7.7k 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 Release?

Skills that share tags, products or a category with Release: Generate Release Notes (teambit/bit, 18k stars), Release Round (ethereumjs/ethereumjs-monorepo, 2.8k stars), Bumpy Add Change (zap-studio/monorepo, 172 stars) and Create Release Checklist (software-mansion/smelter, 734 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

dahlia (a GitHub user) maintains it in dahlia/optique, which has 737 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.

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