Agent skill

Cut Release

by vtjeng in vtjeng/MIPVerify.jl

Prepare and cut MIPVerify.jl releases from version selection through release-note drafting, the release pull request, JuliaRegistrator, the General registry, TagBot, and final verification.

MITAuto-check passedDevelopment

Install Cut Release

skills CLI
$ npx skills add vtjeng/MIPVerify.jl --skill cut-release -a claude-code

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

GitHub CLI
$ gh skill install vtjeng/MIPVerify.jl cut-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/vtjeng/MIPVerify.jl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/cut-release .claude/skills/cut-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
cut-release
GitHub stars
118
Token cost
~2.5k tokens
SKILL.md length
1,369 words
Files
3 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Prepare and cut MIPVerify.jl releases from version selection through release-note drafting, the release pull request, JuliaRegistrator, the General registry, TagBot, and final verification.

  • Works in 8 steps: Reconcile the current release state → Establish the release range and version → Research the release changes → …
  • Revise MIPVerify release notes
  • SKILL.md covers Guardrails, 1. Reconcile the current…, 2. Establish the release range… and 3. Research the release changes, plus 6 more sections
  • Calls gh and git

What it does

Cut Release is an agent skill from vtjeng/MIPVerify.jl. Prepare and cut MIPVerify.jl releases from version selection through release-note drafting, the release pull request, JuliaRegistrator, the General registry, TagBot, and final verification. Use when asked to draft or revise MIPVerify release notes, bump the package version, open or merge a release PR, register a new version, monitor release automation, or verify a completed release.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/release-notes-style.md`).

It sits in Development, covering Changelog and release notes. It works with GitHub. The repository describes itself as: Evaluating Robustness of Neural Networks with Mixed Integer Programming. The licence is MIT.

When your agent uses it

  • Revise MIPVerify release notes
  • Bump the package version
  • Merge a release PR
  • Register a new version

Example prompts

  • “/cut-release”

Workflow steps

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

  1. Reconcile the current release state
  2. Establish the release range and version
  3. Research the release changes
  4. Draft and verify the release notes
  5. Create and validate the release PR
  6. Merge the release PR
  7. Register the merged commit
  8. Monitor registration and publication

What it can do on your machine

Read from SKILL.md and the folder at commit 7a24fd7. 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:

    • gh
    • git

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

  • Network

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

Cut Release loads about 2.5k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 99 tokens; SKILL.md has 1,369 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~99
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4k

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 vtjeng/MIPVerify.jl at commit 7a24fd7, republished under its MIT licence (© vtjeng). 1,369 words, ~2,548 tokens.

Download SKILL.mdSave it as .claude/skills/cut-release/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
cut-release
description
Prepare and cut MIPVerify.jl releases from version selection through release-note drafting, the release pull request, JuliaRegistrator, the General registry, TagBot, and final verification. Use when asked to draft or revise MIPVerify release notes, bump the package version, open or merge a release PR, register a new version, monitor release automation, or verify a completed release.

Cut a MIPVerify release

Run the release as a sequence of independently verified gates. Keep the release commit small, give the release notes the same care as code, and follow the automation through the registry merge and published GitHub release.

Before drafting or approving release notes, read references/release-notes-style.md completely.

Guardrails

  • Read and follow the repository AGENTS.md and shared instructions.
  • Run gh auth status outside the sandbox before using GitHub. Do not diagnose credentials from a sandboxed check.
  • Work on a descriptive branch from current origin/master. Never commit directly on master.
  • Preserve unrelated user changes. If the current worktree is dirty, use a clean throwaway worktree or clone instead of stashing, reverting, or mixing changes.
  • Treat the release PR merge, Julia registration, General registry merge, tag, and GitHub release as separate gates. Verify each gate before starting the next one.
  • Wait for the release PR to merge, resolve its merge commit, and post the JuliaRegistrator request on that commit.
  • Let General's automerge and this repository's TagBot workflow operate normally. Do not manually merge the registry PR or create a tag while automation is healthy.
  • Preserve every required AI trailer and visible disclosure from the repository instructions. The Registrator commit comment is its own GitHub artifact and needs its own disclosure.

1. Reconcile the current release state

Start by locating any release work that already exists: an open or merged release PR, a version bump on master, a Registrator comment, a General PR, a tag, and a GitHub release. Compare their versions and commit IDs (SHAs) before making changes.

Resume from the first incomplete gate and perform only the gates the user authorized. Do not infer the next version solely from Project.toml: it may already have been bumped for a release that has not been tagged. Reuse verified artifacts instead of opening a duplicate PR, posting a second registration request, or creating a competing tag or release.

2. Establish the release range and version

  1. Fetch origin/master and inspect the live repository, latest tag, latest GitHub release, and Project.toml version.
  2. Build a complete inventory of changes since the latest release tag from every first-parent commit. Attach PR metadata where a commit came from a PR, and retain direct commits as separate inventory entries. Resolve squash-merge subjects such as ... (#123) back to their PRs.
  3. Inspect Project.toml compatibility and search README/docs for version requirements that may have become stale.
  4. Choose the next version from the current version and actual changes. Before 1.0, user-visible breaking changes and new user-visible functionality normally require a minor release; compatible bug fixes normally require a patch release. Apply normal semantic-versioning rules after 1.0. Ask only when the change set leaves the choice genuinely ambiguous.
  5. Keep feature work out of the release PR. Limit it to release metadata and small, clearly justified release-facing corrections.

Useful read-only starting points include:

console
git log --first-parent --oneline <previous-tag>..origin/master
gh release view <previous-tag> --repo vtjeng/MIPVerify.jl
gh pr view <number> --repo vtjeng/MIPVerify.jl --json title,body,commits,files,url

3. Research the release changes

Research every inventory entry against its committed diff, implementation, tests, commit history, and any linked evidence. Use subagents when parallel review materially improves coverage: give substantive changes focused ownership, batch trivial related changes when appropriate, and work in waves when concurrency is limited. Do not ask research subagents to edit files or GitHub.

Require a compact result with:

  • purpose and user-facing outcome;
  • behavior, compatibility, or schema changes;
  • correctness and failure-mode implications;
  • performance evidence when relevant, including the scope needed to interpret a publishable claim;
  • tests, continuous integration (CI), dependency, or maintainer-only scope;
  • proposed release-note section and the inventory entries it represents;
  • exact claims that need an independent accuracy check.

Maintain the complete change inventory even when several entries become one bullet. Retain purely internal housekeeping in the inventory and mark it as intentionally omitted from the notes.

4. Draft and verify the release notes

  1. Read the release-note style reference linked above.
  2. Review recent successful releases, then choose the closest precedent for tone and level of detail.
  3. Group PRs only when they serve the same user-facing goal. When one bullet contains distinct changes, map each PR to its change in the opening sentence.
  4. Choose sentence-case sections from the purposes represented in the current release. Omit empty sections and do not preserve an old release's structure when it no longer fits.
  5. Scale review depth to the release. Independently check risky correctness, compatibility, and performance claims against code and evidence; for a substantial release, also use focused passes for coverage, placement, and readability.
  6. Resolve every finding and show the complete copy-ready draft to the user before posting it.
  7. End the Registrator comment with the repository's visible AI collaboration disclosure.

Do not let a concise rewrite weaken a safety claim, merge separate benchmark experiments, or imply that unrelated work shares one goal. If removing an unverified claim leaves an accurate, useful bullet, omit the claim. Otherwise keep the draft explicitly blocked. Never publish provisional wording as fact.

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

5. Create and validate the release PR

  1. Create a branch named like agent/cut-<version> from current origin/master in a clean worktree.
  2. Bump version in Project.toml.
  3. Correct stale release-facing documentation only after checking it against [compat]; do not change compatibility merely to match prose.
  4. Inspect the full diff and verify the package version with Julia:
console
julia --project -e 'using Pkg; println(Pkg.project().version)'
git diff --check
  1. Run proportionate local checks, then rely on the full set of pull-request checks before merge.
  2. Commit as Cut <version> with the required Assisted-by trailer, push the branch, and open a draft PR titled Cut <version> with the visible disclosure.
  3. Record the exact head SHA and CI run. Require every check expected by the current workflows and branch protection to pass; do not rely on an old release's check list.

6. Merge the release PR

  1. Reconfirm that the PR diff contains only the intended version/documentation changes, the head SHA has not changed, all checks pass, and the approved release notes still match the code being released.
  2. Mark the PR ready.
  3. Squash-merge it to match repository precedent. Use the final subject Cut <version> (#<pr>) and explicitly preserve applicable AI trailers in the squash body.
  4. Resolve the resulting master commit SHA from the merged PR. Do not assume it equals the branch head.
  5. Verify on that exact commit:
    • Project.toml contains the intended version;
    • any documentation correction is present;
    • the commit subject and trailers are correct;
    • the changed-file list is still the expected release diff.

7. Register the merged commit

Put the approved text in a temporary file and post it as a commit comment on the verified merge SHA. Read the file through gh api to preserve newlines and Markdown.

console
gh api --method POST repos/vtjeng/MIPVerify.jl/commits/<merge-sha>/comments \
  -F body=@<release-notes-file>

The file must begin exactly:

markdown
@JuliaRegistrator register

Release notes:

Verify the returned comment URL and body. Wait for JuliaRegistrator to reply with the JuliaRegistries/General PR before advancing to registry monitoring. Do not repost while the bot is pending.

8. Monitor registration and publication

  1. Open the General PR and confirm its version, source commit, and embedded release notes match the approved release.
  2. Watch registry-consistency and automerge checks. A blocked or pending state can reflect a normal queue or automerge gate, so inspect the checks and bot comments before treating it as a failure.
  3. Wait for the General PR to merge. Do not merge it manually.
  4. Confirm .github/workflows/TagBot.yml is present and wait for TagBot to create v<version> and the GitHub release.
  5. Verify:
    • the General PR is merged;
    • the tag resolves to the exact release merge commit;
    • the GitHub release exists at the expected tag;
    • the rendered release notes preserve the approved headings, bullets, PR references, and disclosure.
  6. Report the release PR, merge commit, Registrator comment, General PR, tag, and GitHub release links.

Failure handling

  • If a required release PR check fails, inspect and fix the failure before merging. Register only after all required release PR checks pass.
  • If JuliaRegistrator reports an error, diagnose the exact version, commit, or metadata problem before posting another request.
  • If a General check fails, report the failing check and evidence. Do not mutate the registry PR unless the user explicitly expands the task.
  • If TagBot does not run after the General merge, inspect the workflow and recent runs first. Ask before manually dispatching TagBot or creating a tag.
  • Never create a second Registrator comment, registry PR, tag, or release merely because automation is slow.

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

Files

SKILL.md and 2 other files (references) in .agents/skills/cut-release of vtjeng/MIPVerify.jl.

  • SKILL.md
  • agents/openai.yaml
  • references/release-notes-style.md

Open the folder on GitHubat commit 7a24fd7

Compare with similar skills

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

Cut Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cut Release this skillvtjeng/MIPVerify.jl118—~2.5kAutomated safety check: PassMIT
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Rea Changelog Updatemorluto/rea80k—~1.9kAutomated safety check: PassMIT
Mole CLI Release Flowtw93/Mole70k—~2.6kAutomated safety check: PassGPL-3.0
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
Mole Release Notes Publishertw93/Mole70k—~1.9kAutomated safety check: PassGPL-3.0

Similar skills

  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Prepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.

    80k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.

    70k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    70k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Bump

    jamiepine/voicebox

    Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.

    57k GitHub stars~1.1k tokensUpdated 4 days ago
    DevelopmentAuto-check passed

Works with

Categories

Questions about Cut Release

What does Cut Release do?

Prepare and cut MIPVerify.jl releases from version selection through release-note drafting, the release pull request, JuliaRegistrator, the General registry, TagBot, and final verification. jl.jl releases from version selection through release-note drafting, the release pull request, JuliaRegistrator, the General registry, TagBot, and final verification.

When should I use Cut Release?

Cut Release fits situations like: revise MIPVerify release notes; bump the package version; merge a release PR; register a new version.

How do I install Cut Release in Claude Code?

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

How do I install Cut Release in Codex?

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

Can I use Cut 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 vtjeng/MIPVerify.jl --skill cut-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/cut-release, .gemini/skills/cut-release, .github/skills/cut-release and .opencode/skills/cut-release in your project.

What does Cut Release need to run?

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

Does Cut Release access the network?

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

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

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

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.

What are the alternatives to Cut Release?

Skills that share tags, products or a category with Cut Release: Cutting A Release (TriliumNext/Trilium, 38k stars), Rea Changelog Update (morluto/rea, 80k stars), Mole CLI Release Flow (tw93/Mole, 70k stars) and Draft Release Notes (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cut Release?

vtjeng (a GitHub user) maintains it in vtjeng/MIPVerify.jl, which has 118 GitHub stars. The repository was last updated on October 9, 2026.

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