Agent skill

Make Release

by atgreen in atgreen/cl-tuition

Cut a new tuition release — verify release notes, tuition.asd version, README currency, a clean tree, and a green test suite, then tag vX.Y.Z and push so CI builds the GitHub release.

MITAuto-check passedDevelopment

Install Make Release

skills CLI
$ npx skills add atgreen/cl-tuition --skill make-release -a claude-code

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

GitHub CLI
$ gh skill install atgreen/cl-tuition make-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/atgreen/cl-tuition.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/make-release .claude/skills/make-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
make-release
GitHub stars
149
Token cost
~1.3k tokens
SKILL.md length
631 words
Files
2 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Cut a new tuition release — verify release notes, tuition.asd version, README currency, a clean tree, and a green test suite, then tag vX.Y.Z and push so CI builds the GitHub release.

  • Works in 6 steps: Run the deterministic pre-flight checks → Run the test suite → Review release-notes and README content… → …
  • The user says make a release
  • SKILL.md covers Golden rules and Procedure
  • Runs Shell scripts from its folder; calls git, gh and bash

What it does

Make Release is an agent skill from atgreen/cl-tuition. Cut a new tuition release — verify release notes, tuition.asd version, README currency, a clean tree, and a green test suite, then tag vX.Y.Z and push so CI builds the GitHub release. Use when the user says "make a release", "cut a release", "tag a version", "ship a release", or runs /make-release.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/preflight.sh`).

It sits in Development, covering Changelog and release notes, Test generation and Technical documentation. It works with GitHub. The repository describes itself as: A Common Lisp library for building TUIs. The licence is MIT.

When your agent uses it

  • The user says make a release
  • Runs /make-release

Example prompts

  • “make a release”
  • “cut a release”
  • “tag a version”
  • “/make-release”

Requirements

  • A Bash shell

Workflow steps

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

  1. Run the deterministic pre-flight checks
  2. Run the test suite
  3. Review release-notes and README content (judgment)
  4. Confirm
  5. Tag and push
  6. Report

What it can do on your machine

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

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • gh
    • bash

    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 gh, 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

Make Release loads about 1.3k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 631 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from atgreen/cl-tuition at commit 899df5e, republished under its MIT licence (© atgreen). 631 words, ~1,348 tokens.

Download SKILL.mdSave it as .claude/skills/make-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
make-release
description
Cut a new tuition release — verify release notes, tuition.asd version, README currency, a clean tree, and a green test suite, then tag vX.Y.Z and push so CI builds the GitHub release. Use when the user says "make a release", "cut a release", "tag a version", "ship a release", or runs /make-release.

make-release

Release a new version of tuition. In this repo a release is driven entirely by a git tag: pushing a v* tag triggers .github/workflows/release.yaml, which builds a source tarball and creates the GitHub release using doc/release-notes/RELEASE-NOTES-<version>.md as the release body. Your job is to make sure everything lines up before the tag exists, then create and push it.

The version comes from :version in tuition.asd; the tag is v<version>.

Golden rules

  • Never tag or push without explicit user confirmation. Pushing the tag publishes a release — it is outward-facing and hard to reverse.
  • Do not bump the version or write release notes as part of tagging. Those are deliberate pre-release commits. If they are missing, stop and help the user prepare them, then start over with a clean tree.
  • Tag the committed HEAD. The working tree must be clean so the tag captures exactly what was reviewed.
  • If any check is BLOCKED/FAILED, stop and report — do not work around it.

Procedure

1. Run the deterministic pre-flight checks

Run the bundled script and show the user its full output:

bash
bash .claude/skills/make-release/scripts/preflight.sh

It reads the version, checks the git state (clean tree, branch, in sync with origin), that the v<version> tag does not already exist locally or on origin, and that doc/release-notes/RELEASE-NOTES-<version>.md exists, is non-empty, is committed, and references the version.

  • Exit 1 (BLOCKED): report the [FAIL] items and stop. Common cases and fixes to offer:
    • Uncommitted changes → the version bump and/or release notes probably aren't committed yet. Help the user commit them (on master or via a PR), then re-run from step 1.
    • Tag already exists / version not greater than latest → the version wasn't bumped. Offer to bump :version in tuition.asd and create the matching RELEASE-NOTES-<version>.md, commit, then restart.
    • Missing release notes → offer to draft RELEASE-NOTES-<version>.md from the commits since the last tag (see step 3), following the format of the previous file in doc/release-notes/.
  • Exit 0 with [WARN] items: surface them and factor them into step 4.
2. Run the test suite

CI runs the unit tests on Linux/macOS/Windows and the example tests on Linux. Reproduce the unit tests locally; they must be 100% green:

bash
sbcl --non-interactive \
  --eval '(asdf:load-system "tuition/tests")' \
  --eval '(handler-case (progn (tuition-tests:run-tests) (format t "~%RELEASE-TESTS-OK~%")) (error (e) (format t "~%RELEASE-TESTS-FAIL: ~a~%" e) (sb-ext:exit :code 1)))'

Require RELEASE-TESTS-OK and Fail: 0. If anything fails, stop — do not release. Optionally also run ./test-examples.sh (slower; needs a PTY and the ocicl deps) to mirror CI's example check.

Show full SKILL.md (249 more words)Show less
3. Review release-notes and README content (judgment)

The script only checks that files exist — you must confirm they are accurate.

List what changed since the last release and check it is reflected:

bash
LAST=$(git tag -l 'v*' | sed 's/^v//' | sort -V | tail -1)
git log --no-merges --oneline "v${LAST}..HEAD"
  • Read doc/release-notes/RELEASE-NOTES-<version>.md and confirm every notable user-facing change above is described, and that it omits CI/CD-only changes (repo convention).
  • Skim README.md for anything the new features made stale (component lists, examples, option names, the current version). Point out gaps; offer to fix them (which means a new commit → restart from step 1 with a clean tree).

Summarize your findings for the user.

4. Confirm

Present a concise summary and get an explicit yes before doing anything irreversible:

  • version and tag (vX.Y.Z)
  • release-notes file that will become the release body
  • test result
  • any outstanding [WARN] items or README/notes caveats
  • whether the branch also needs pushing (preflight flags unpushed commits)

Ask the user to confirm tagging and pushing. Do not continue without a clear affirmative.

5. Tag and push

Only after confirmation. If preflight reported unpushed commits, push the branch first so origin/master matches the tag:

bash
git push origin master        # only if the branch was ahead of origin
git tag -a "v<version>" -m "Release v<version>"
git push origin "v<version>"

Use an annotated tag. Substitute the real version for <version>.

6. Report

The tag push starts .github/workflows/release.yaml. Tell the user the release is building and link the run:

Offer to watch it to completion:

bash
gh run watch $(gh run list --workflow=release.yaml --limit 1 --json databaseId --jq '.[0].databaseId') --exit-status

If the run fails, help diagnose (a common cause is a release-notes filename that doesn't match the tag version). To undo a mistaken tag before the release finishes: git push origin :refs/tags/v<version> and git tag -d v<version>.

© atgreen, 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 1 other file (scripts) in .claude/skills/make-release of atgreen/cl-tuition.

  • SKILL.md
  • scripts/preflight.sh

Open the folder on GitHubat commit 899df5e

Compare with similar skills

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

Make Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Make Release this skillatgreen/cl-tuition149—~1.3kAutomated safety check: PassMIT
Ccb GitHubSeemSeam/claude_codex_bridge3.6k—~4.9kAutomated safety check: PassCustom licence
Releasesol4k/sol4k135—~949Automated safety check: PassApache-2.0
Verify Releaseillegalstudio/elephc603—~2.5kAutomated safety check: PassMIT
Releaseemanuelcasco/pi-mono-extensions106—~2.3kAutomated safety check: PassMIT
Add Changeloggambitph/Stackable350—~1.5kAutomated safety check: PassGPL-3.0

Similar skills

  • Ccb GitHub

    SeemSeam/claude_codex_bridge

    Maintain this CCB project's GitHub-facing release and npm publication surface.

    3.6k GitHub stars~4.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release

    sol4k/sol4k

    Bump the sol4k library version everywhere, open a release PR, and draft GitHub release notes.

    135 GitHub stars~949 tokensUpdated 10 days ago
    DevelopmentAuto-check passed
  • Verify Release

    illegalstudio/elephc

    Pre-release verification that first requires a complete release-changelog audit, then checks README, docs, roadmap, test coverage, examples, and the full test suite for regressions.

    603 GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Release

    emanuelcasco/pi-mono-extensions

    Release a new version of pi-extensions: bump individual package versions (independent mode), update CHANGELOGs and READMEs, create per-package git tags, publish a GitHub release, and publish…

    106 GitHub stars~2.3k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Add Changelog

    gambitph/Stackable

    Adds or updates a WordPress plugin changelog entry in readme.txt from the project's Release Roadmap for a confirmed plugin version.

    350 GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Official

    Writes and maintains .NET preview, RC and GA release notes from a scored features.json, working with sibling skills for change data, API diffs, code sample checks and review.

    22k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check passed

Works with

Categories

Questions about Make Release

What does Make Release do?

Cut a new tuition release — verify release notes, tuition.asd version, README currency, a clean tree, and a green test suite, then tag vX.Y.Z and push so CI builds the GitHub release. Make Release is an agent skill from atgreen/cl-tuition.Z and push so CI builds the GitHub release.

When should I use Make Release?

Make Release fits situations like: the user says make a release; runs /make-release.

How do I install Make Release in Claude Code?

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

How do I install Make Release in Codex?

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

Can I use Make 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 atgreen/cl-tuition --skill make-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/make-release, .gemini/skills/make-release, .github/skills/make-release and .opencode/skills/make-release in your project.

What does Make Release need to run?

Going by SKILL.md and its folder, Make Release needs a shell for the scripts in its folder and the command-line tools its instructions call (git, gh and bash). Our summary lists: A Bash shell.

Does Make Release access the network?

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

Is Make 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Make Release use?

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

About 1.3k tokens (SKILL.md is roughly 5.4k 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 Make Release?

Skills that share tags, products or a category with Make Release: Ccb GitHub (SeemSeam/claude_codex_bridge, 3.6k stars), Release (sol4k/sol4k, 135 stars), Verify Release (illegalstudio/elephc, 603 stars) and Release (emanuelcasco/pi-mono-extensions, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Make Release?

atgreen (a GitHub user) maintains it in atgreen/cl-tuition, which has 149 GitHub stars. The repository was last updated on September 13, 2026.

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