skills/release/SKILL.md
Cut a software release and maintain a tiered compatibility policy. Use when the user wants to release, ship a version, bump the version, tag a release, write a changelog, or update COMPATIBILITY. Config-driven via release.config.json; bumps version files, runs a readiness gate, updates COMPATIBILITY.md tiers and deprecations, tags (→ release workflow), and reports closed issues. Teaches the underlying standards as it runs.
npx skillsauth add glebis/claude-skills releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A config-driven release orchestrator. Mechanics live in scripts/release.py
(unit-tested, stdlib-only); this file is the workflow you (or an agent) follow.
Read reference/config-schema.md for release.config.json and
reference/standards.md for why each step exists.
Scope honesty: reference-tested on a Tauri + Rust + SvelteKit repo (Cull). Other stacks are supported by config, not yet validated. Treat first runs on a new stack as a dry run (see "Dry run" below) until you trust it.
The user says "release", "ship it", "cut a version", "bump version", "tag a
release", "update the changelog/COMPATIBILITY". Requires a release.config.json
at the repo root (scaffold from templates/release.config.json.tmpl).
A version only means something once you declare what you promise to keep
working. release.config.json → surfaces[] is that declaration; each surface
has a tier (experimental → preview → stable) and a compatibility mode.
Only stable surfaces carry the promise. Breaking a stable surface forces a
major bump — the engine enforces this. (Standards: see reference/standards.md.)
/release <patch|minor|major> — run the steps below. On an unfamiliar repo, do a
dry run first (see below). When the user asks to "explain", expand each step's
why into a short lesson from reference/standards.md.
Preconditions. The configured releaseBranch (default main, in
worktree if set) is checked out, clean, and synced with origin. Abort
clearly otherwise. — why: a release tag must point at a known-good, pushed tree.
Version. python3 scripts/release.py --config <cfg> plan <kind> prints the
new version + tag. It asserts the version files currently agree. Show old → new.
— why: SemVer math; 0.x lets minors break (pre-1.0). [[Semantic Versioning (SemVer)]]
Readiness gate. Run cfg.gate then each cfg.extraGate[]. All must exit 0
(fmt, clippy, tests, license audit, prod build, golden contract tests). Block on
failure. — why: this is a Production-Readiness Review. [[Production Readiness Review]]
Changelog. Collect commit subjects since the last tag
(git log <lastTag>..HEAD --format=%s) and draft a section — the engine's
draft_changelog buckets them into Added/Changed/Fixed (Keep a Changelog).
Insert under the top of CHANGELOG.md; hand-curate the user-facing lines.
— why: humans read changelogs; conventional commits seed them. [[Keep a Changelog]]
Compatibility review. Open cfg.compatibility.path (COMPATIBILITY.md). Ask:
stable surface? If yes, the required bump is
major — re-run with major or the release is invalid. (Enforced by
enforce_bump.) Stamp "Last updated: <new version> (<date>)".
— why: tiers + deprecation windows are how you evolve without lying. [[Kubernetes API Deprecation Policy]]Bump & commit. python3 scripts/release.py --config <cfg> bump <kind> writes
every version file; refresh cfg.lockfiles (e.g. cargo update -p <crate> or a
build). Commit chore(release): v<new> including CHANGELOG + COMPATIBILITY.
Tag & push. git tag v<new> and push the tag (→ the repo's release
workflow) and the branch. Confirm the tag trigger exists before the first
release (grep -A3 '^on:' .github/workflows/*.yml).
Report. Print the tag, the release-workflow URL, and issues closed since the
last tag (if cfg.issueTracker is set, e.g. bd) — those are the release notes.
There is no --dry-run flag — a dry run is steps 1–5 done without mutating:
run python3 scripts/release.py --config <cfg> plan <kind> (pure: prints the
version/tag, writes nothing) and optionally run cfg.gate to check readiness.
Do NOT run bump, commit, or tag. The bump subcommand is the only engine
command that writes (version files only); commit/tag/push are git steps you take
in step 6–7, never the engine.
plan → run gate → edit CHANGELOG + COMPATIBILITY → bump → commit → tag → push.
The engine is just scripts/release.py; everything else is git.
The readiness gate runs golden/contract tests (cfg.extraGate). Start with one
(a DB round-trip), then add export and API contract tests. See the consuming
repo's docs/CONTRACTS.md and reference/standards.md. [[Pact — Consumer-Driven Contract Testing]]
development
Create Tufte-inspired data reports and infographic dashboards as standalone HTML files. Uses EB Garamond for text, Monaspace Argon for numbers, Chart.js for interactive charts, and inline SVG sparklines. Produces publication-quality reports with 2-column narrative+data layouts, status dashboards, scroll animations, and responsive mobile support. Use this skill whenever the user wants to create a data report, activity dashboard, infographic, personal analytics page, health tracker visualization, or any document that combines narrative text with interactive charts and tables. Also triggers for "make a report like Tufte", "create an infographic", "build a dashboard", "visualize my data", or requests for beautiful data-driven documents.
development
Sync and manage bilingual (EN/RU) library content for agency-docs. Use when adding, updating, or reviewing library articles. Handles translation, sync checks, and Russian stylistic review.
development
This skill should be used to watch a long-running background job (ffmpeg/media encode, qmd or other embedding/vector-DB run, batch agent/LLM pipeline, or a real-browser/agent-browser daemon) until it finishes or wedges, then deliver a verdict (done, needs-attention, or blocked) plus the exact next command, without burning dozens of manual poll commands. Triggers on "babysit this job", "watch this until it's done", "ping me when the encode/embed/batch finishes", "is this background process stuck", "monitor this ffmpeg/qmd run", or any request to wait on a long-running process and be told when it's complete or hung.
development
Use when the user wants Claude Code, Codex, or other AI coding/business agents to work together as peers. This skill should be used whenever the user mentions coordinating Claude Code and Codex, agent handoffs, multi-agent workflows, parity, respect, pushback between agents, deciding which agent should lead, or turning a business/code workflow into a two-agent operating model.