oad/release

A release workflow for choosing a version number, preparing release changes, creating release notes, and handling GitHub releases.

In plain words
What is it for?
Use it for feature, bug-fix, maintenance, documentation, test, or breaking-change releases, including related issue searches and release preparation.
Why use it?
It bases the version bump on the actual code changes, checks the worktree, and requires confirmation before changing the version.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/evoelsewhere/evoflux/release
Any agent
npx skills add evoelsewhere/evoflux --skill release
Clone the repo
git clone --depth 1 https://github.com/evoelsewhere/evoflux

Made for: Claude Code, Codex.

Per session 24 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,748 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00024 $0.03748
Opus 5 $0.00012 $0.01874
Sonnet 5 $0.00005 $0.00750
Haiku 4.5 $0.00002 $0.00375

Measured 2d ago against content hash c68f69a087f7, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

oad/release scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.evoflux/skills/oad/release/SKILL.md · 301 lines

How it starts

The opening of the file, as written. The whole thing — 301 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Steps

  1. Version target:
  • Read app/version.txt.
  • Determine the bump from the actual diff content, not the branch name:
    • Feature or new capability: bump minor, e.g. 1.0.0 -> 1.1.0.
    • Bug fix, maintenance, docs, tests, or internal-only change: bump patch, e.g. 1.0.0 -> 1.0.1.
    • Patch-only releases stay patch-only: continue incrementing the patch number, e.g. 1.0.5 -> 1.0.6; do not bump minor just because there have been several patches.
    • Breaking change: ask whether a major bump is intended.
  • Propose the calculated version and confirm with the user before applying it.
  • Branch prefix (feat/, fix/, chore/) is not signal — judge from diff content.
  1. Worktree check:
  • Stop if dirty.
git status --short
  1. Related GitHub issues:
  • Before confirming the release, search for issues related to the actual diff and intended release notes. Do not rely only on branch names or commit subjects.
git branch --show-current
git log --oneline --no-merges main..HEAD
gh issue list --repo khuonghung/evoflux --state open --search "<keyword from diff or feature area>" --limit 20
gh issue list --repo khuonghung/evoflux --state all --search "<keyword from diff or feature area> in:title,body" --limit 20
gh issue view <issue-number> --repo khuonghung/evoflux --comments --json number,title,state,labels,body,comments
  • Triage each related issue as included/fixed, partially included, not included, or unrelated.
  • If the release fully fixes or ships an issue, include Fixes #<issue-number> or Closes #<issue-number> in the release PR body so GitHub closes it on merge; use Refs #<issue-number> when the release is related but should not close it.
  • Tag included issues when useful for tracking. Prefer an existing milestone/label convention if present; otherwise create and apply a version label:
gh label create "included-in-v<version>" --repo khuonghung/evoflux --description "Included in v<version>" --color "0E8A16" || true
gh issue edit <issue-number> --repo khuonghung/evoflux --add-label "included-in-v<version>"
  • Add a short issue comment when the relationship is not obvious, especially for partial inclusion or when using Refs instead of Fixes:
gh issue comment <issue-number> --repo khuonghung/evoflux --body "Included in the v<version> release PR: <pr-url>."
  1. Documentation readiness:
  • Before confirming the release, check whether the diff requires documentation updates. At minimum inspect the canonical feature catalogue and the current architecture/reference pages for touched areas.
git diff --name-only main..HEAD
git diff --stat main..HEAD -- documents/features documents/architecture documents/reference documents/development README.md
  • For user-visible features, behavior changes, install/update changes, or removed/deprecated functionality, update documents/features/README.md first; it is the canonical feature catalogue.
  • Update the affected current-state pages under documents/features/, documents/architecture/, documents/reference/, or documents/development/. Use documents/plans/ only for design plans, not as the implemented contract.
  • Update related files as needed, such as README.md, installation docs, agent/team docs, operation docs, and localized in-app Help for the affected area.
  • If no documentation changes are needed, record the rationale in the release PR body (for example: Docs: no user-facing behavior changed).
  • Include documentation updates in the feature branch before the version bump PR is created; do not leave release-blocking docs fixes until after publishing.
  1. Confirm release:

Ready to release <version>. Proceed? (yes / no)

  1. Version PR:
  • Reuse the existing feature branch when present; do not spin a fresh release/ branch on top of it.
  • Update all eight release-facing version files in lockstep, and include any generated lockfile version updates:
    • app/version.txt — source of truth, drives release.yml, release-desktop.yml, and tag names.
    • pyproject.toml — wheel/sdist version published to PyPI.
    • uv.lock — regenerated by uv sync, contains the new project version.
    • web/package.json — frontend package version (informational; not published).
    • desktop/src-tauri/tauri.conf.json — drives desktop artefact filenames (EVOFLUX_<ver>_*.dmg, .msi, .deb, .AppImage) and the About-panel version in the desktop app.
    • desktop/src-tauri/Cargo.tomlenv!("CARGO_PKG_VERSION") in main.rs reads from here for the desktop About panel; keep it equal to tauri.conf.json or the version-consistency check fails.
  • Why this matters: app/version.txt drives the tag name both release workflows use (v<X.Y.Z>), but bundled artefacts and app metadata read from the Tauri/Cargo files. If you bump only the Python/web/desktop files, CI fails because artefacts carry stale filenames or About-panel metadata. This actually happened on 1.0.8 for desktop artefact filenames — see the post-mortem commit in v1.0.8's history.
  • If uv sync, cargo, or local tooling updates desktop/src-tauri/Cargo.lock for package versions, include those lockfiles in the release commit too.
  • Metadata-only title: chore: bump version to <version>.
  • User-facing change title: describe change, append range.
  • Example: Fix frontend update restart (v0.3.3 -> v0.3.4).
  • PR body must be a bullet list summarizing the included user-facing changes, not a single generic sentence.

Read the full file on GitHub · 301 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 301 lines · 24 tokens per session scan A c68f69a087f7

Subscribe to this mod's changes

oad/release is a skill published in the GitHub repository evoelsewhere/evoflux (5 stars, last pushed 5d ago), licensed Apache-2.0. It adds 24 tokens to every session and 3,748 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

kane-cli

Browser automation + AI test authoring via kane-cli - run browser objectives, generate & refine test scenarios/cases from a description, design requirement-linked test suites from a PRD/spec (assurance), parse NDJSON output, inspect logs, save runnable test.md. Use for any task requiring a real browser (navigate…

LambdaTest/kane-cli · 159 tokens

rove

Use when controlling Rove tasks, parallel coding attempts, hosted agent sessions, task lifecycle, or the daemon-owned issue tracker from a shell. Also the ONLY channel for messaging another agent session on this machine — rove api send, never a peer/MCP side channel.

Sma1lboy/rove · 56 tokens

E2E Testing Nori Skillsets Subcommands

Use when you need to interactively test a nori-skillsets CLI subcommand end-to-end via tmux, with full filesystem isolation.

tilework-tech/nori-skillsets · 39 tokens

release

Autonomously cut a Rove (@sma1lboy/rove) release end-to-end — detect the semver bump from pending changesets (flagging an upstream minor you didn't intend), run the release gates, bump/tag/push via scripts/release.sh, then poll the GitHub Actions Release workflow with gh until npm publish completes, diagnosing CI…

Sma1lboy/rove · 155 tokens

hyperframes-cli

HyperFrames CLI dev loop. Use when running npx hyperframes init, add, catalog, capture, lint, validate, inspect, layout, snapshot, preview, play, render, publish, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, or remove-background, or when troubleshooting the…

Sma1lboy/rove · 101 tokens

changelog-generator

Draft Rove release notes as Changesets. Writes user-facing entries as .changeset/.md files for @sma1lboy/rove (consumed into packages/kobe/CHANGELOG.md at release time). Use when the user asks for "changelog", "release notes", "what changed", "add a changeset", or before cutting a version. Enforces Rove's no-soft-wrap…

Sma1lboy/rove · 101 tokens