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.
A skill your agent uses when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub.
$ npx skills add danshapiro/kilroy --skill release-kilroy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install danshapiro/kilroy release-kilroy --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/release-kilroy .claude/skills/release-kilroy && rm -rf skills-srcUse ~/.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/
Install the "release-kilroy" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroy into .claude/skills/release-kilroy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-kilroy", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add danshapiro/kilroy --skill release-kilroy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install danshapiro/kilroy release-kilroy --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/release-kilroy .agents/skills/release-kilroy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-kilroy" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroy into .agents/skills/release-kilroy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-kilroy", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danshapiro/kilroy --skill release-kilroy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install danshapiro/kilroy release-kilroy --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/release-kilroy .cursor/skills/release-kilroy && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-kilroy" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroy into .cursor/skills/release-kilroy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-kilroy", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/danshapiro/kilroy.git --path skills/release-kilroy--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add danshapiro/kilroy --skill release-kilroy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install danshapiro/kilroy release-kilroy --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/release-kilroy .gemini/skills/release-kilroy && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-kilroy" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroy into .gemini/skills/release-kilroy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-kilroy", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install danshapiro/kilroy release-kilroyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add danshapiro/kilroy --skill release-kilroy -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/release-kilroy .github/skills/release-kilroy && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-kilroy" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroy into .github/skills/release-kilroy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-kilroy", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add danshapiro/kilroy --skill release-kilroy -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install danshapiro/kilroy release-kilroy --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/danshapiro/kilroy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/release-kilroy .opencode/skills/release-kilroy && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-kilroy" agent skill from https://github.com/danshapiro/kilroy/tree/main/skills/release-kilroy into .opencode/skills/release-kilroy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-kilroy", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-kilroyA skill your agent uses when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub.
Release Kilroy is an agent skill from danshapiro/kilroy. Use when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub.
Its SKILL.md is about 2k 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 GitHub. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b55fb0f. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitgobrewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Kilroy loads about 2k tokens when it runs. Until then it costs about 31 tokens; SKILL.md has 797 words of instructions outside code blocks.
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.
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.
The full file from danshapiro/kilroy at commit b55fb0f, republished under its MIT licence (© danshapiro). 797 words, ~1,962 tokens.
.claude/skills/release-kilroy/SKILL.md (or your agent's skills folder).Invoke this skill before cutting a release. Never release without explicit user request.
Before anything: if something seems off (discontinuous version jump like 0.5→2.0, failing tests, broken code), stop and confirm with the user.
Release notes are user-facing, not code-facing. Write from the perspective of someone running Kilroy pipelines, not someone reading the git log.
Two sections, in this order:
"New things you can do" — Features that let users do something they couldn't before. Each item: what it is + why you'd care. Priority-ordered (most impactful first).
"Things that got better" — Improvements to existing functionality. Same format: what changed + why it matters. Priority-ordered.
# 1. Get the full commit list
git log v<PREV>..HEAD --oneline --no-merges
# 2. Get the diffstat for scope
git diff v<PREV>..HEAD --stat | tail -5
# 3. For commits that touch user-facing code, read the diffs
git show <hash> --stat # what files changed?
git show <hash> # read the diff if unclear from commit message
# 4. Walk through commits and ask: "What can the user now DO differently?"For the first release (no previous tag), derive notes from the full project history or a user-specified starting commit.
## What's New
### New things you can do
- **Run pipeline stages in parallel** — Fan-out nodes execute concurrently with
deterministic fan-in collection. Halves wall-clock time for independent stages.
- **Resume from CXDB** — Interrupted runs can resume from the execution database,
not just local logs. Works across machines.
### Things that got better
- **Conditional routing is more reliable** — Edge conditions evaluate consistently
even when upstream stages produce unexpected output shapes.
- **Stale binary detection** — Kilroy warns before running if the binary doesn't
match HEAD, preventing silent behavior mismatches.Kilroy uses semver. The canonical version lives in internal/version/version.go as var Version = "X.Y.Z". This is the version all builds see — source, binary, and Homebrew. goreleaser also injects it from the git tag at build time via ldflags (belt and suspenders).
Bump this file as part of release prep (step 5). The CI workflow verifies that version.go matches the git tag — a mismatch fails the release.
Decide the bump with the user, but offer a recommendation:
This is the last step before mechanical release, and requires user approval.
Review README.md against the current state of the product. Read the relevant source code to verify claims — don't trust the README or your memory alone.
For each section:
Present the proposed README changes to the user for approval before proceeding to release steps.
All work happens on a release branch in a worktree — main is untouched until the final atomic fast-forward.
# From the main repo
git fetch origin
git checkout main
git pull --ff-only origin main
git worktree add .worktrees/release-vX.Y.Z -b release/vX.Y.Z main
cd .worktrees/release-vX.Y.Z
go mod download# In the worktree
go test ./...All tests must pass. If any fail, fix them on the release branch before proceeding.
# Build from the release branch
go build -o ./kilroy ./cmd/kilroy
# Validate all demo pipelines still parse and pass validation
shopt -s globstar
for f in demo/**/*.dot; do
./kilroy attractor validate --graph "$f" || exit 1
donescripts/e2e.sh
scripts/check-ergonomics-docs.sh
scripts/check-using-kilroy-skill.shAll of these are committed to the release branch:
internal/version/version.go to the new versionRELEASE_NOTES.md in the repo root (following the guidelines above). The GitHub Actions workflow passes --release-notes=RELEASE_NOTES.md to goreleaser, which publishes it as the GitHub release body. This file is committed (not gitignored) so it is present at the tagged commit.release: vX.Y.Z# Back in the main repo working directory
git merge --ff-only release/vX.Y.ZIf --ff-only fails, go back to the worktree and rebase onto main until it can fast-forward.
git push origin main
git tag -a vX.Y.Z -m "vX.Y.Z"
git push origin vX.Y.Z
# GoReleaser takes over from here via GitHub Actions:
# - Runs go test ./...
# - Builds cross-platform binaries (linux/darwin/windows x amd64/arm64)
# - Creates GitHub release with archives and checksums
# - Updates Homebrew formula in Formula/kilroy.rbbrew tap danshapiro/kilroy
brew install kilroy
kilroy --version # should print the new versiongit worktree remove .worktrees/release-vX.Y.Z
git branch -d release/vX.Y.Zgo test ./... passes before merging© danshapiro, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/release-kilroy of danshapiro/kilroy.
Open the folder on GitHubat commit b55fb0f
Release Kilroy 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release Kilroy this skilldanshapiro/kilroy | 222 | — | ~2k | Automated safety check: Pass | MIT | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Draft Release Notesjamiepine/voicebox | 57k | — | ~941 | Automated safety check: Pass | MIT | |
| Mole Release Notes Publishertw93/Mole | 70k | — | ~1.9k | Automated safety check: Pass | GPL-3.0 | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT |
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.
tw93/Mole
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.
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.
tw93/Mole
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.
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.
jfernandez/bpftop
Cut a new versioned release of bpftop — pick the version, open a version-bump PR, sign-tag the merge commit on main, and draft GitHub release notes in the project's established format.
danshapiro/kilroy
A skill your agent uses when converting a spec, requirements document, or goal statement into a Definition of Done with acceptance criteria and integration test scenarios
danshapiro/kilroy
A skill your agent uses when authoring or repairing Kilroy run config YAML/JSON files, including DOT-to-provider backend alignment and runtime policy defaults.
danshapiro/kilroy
A skill your agent uses when authoring or repairing Kilroy Attractor DOT graphs from requirements, with template-first topology, routing guardrails, and validator-clean output.
danshapiro/kilroy
To diagnose active, stuck, or failed Kilroy Attractor runs, inspect run artifacts (manifest.json, live.json, checkpoint.json, final.json, progress.ndjson), resolve run IDs/log roots, identify…
danshapiro/kilroy
A skill your agent uses when bootstrapping a new project repository for Kilroy Attractor from a clean directory using existing spec, DoD, graph, and run config artifacts.
danshapiro/kilroy
Operate Kilroy Attractor pipelines end-to-end: ingest English requirements into DOT graphs, validate graph semantics, run and resume pipelines with run config files, configure provider backends…
Works with
Categories
A skill your agent uses when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub. Release Kilroy is an agent skill from danshapiro/kilroy. Use when preparing a Kilroy release — writing release notes, tagging, and publishing via goreleaser on GitHub.
Release Kilroy fits situations like: preparing a Kilroy release — writing release notes; publishing via goreleaser on GitHub.
Run `npx skills add danshapiro/kilroy --skill release-kilroy -a claude-code`. Or copy the skill folder (skills/release-kilroy in danshapiro/kilroy) into .claude/skills/release-kilroy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add danshapiro/kilroy --skill release-kilroy -a codex`. Or copy the skill folder (skills/release-kilroy in danshapiro/kilroy) into .agents/skills/release-kilroy in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add danshapiro/kilroy --skill release-kilroy -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-kilroy, .gemini/skills/release-kilroy, .github/skills/release-kilroy and .opencode/skills/release-kilroy in your project.
Going by SKILL.md and its folder, Release Kilroy needs the command-line tools its instructions call (git, go and brew).
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.
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.
Release Kilroy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release Kilroy: Cutting A Release (TriliumNext/Trilium, 38k stars), Mole CLI Release Flow (tw93/Mole, 70k stars), Draft Release Notes (jamiepine/voicebox, 57k stars) and Mole Release Notes Publisher (tw93/Mole, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
danshapiro (a GitHub user) maintains it in danshapiro/kilroy, which has 222 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on April 27, 2026.
Source: danshapiro/kilroy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.