cristoslc avatar

Swain Release

A release automation skill that reads your git history and project structure to figure out versioning conventions, generates human-readable changelogs from conventional commits, bumps version files, and creates tags. It works generically across repos rather than hardcoding assumptions, supports trunk+release branch workflows, and lets you drop in a project-specific override file to customize behavior. The changelog generation is opinionated: it synthesizes commits into thematic narratives instead of dumping raw git logs, distinguishing between shipped features, work-in-progress, roadmap items, and internal improvements. Useful when you want consistent release mechanics without hand-editing changelogs or remembering which files hold version numbers. The session check integration means it plays nice with the broader swain workflow system.

skills.sh installs
126
GitHub stars
2
last updated
Aug 21, 2026

Install

$ npx -y skills add cristoslc/swain --skill swain-release --agent claude-code

Installs into .claude/skills of the current project.

Files

Release

Before proceeding with any state-changing operation, check for an active session:

REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
bash "$REPO_ROOT/.agents/bin/swain-session-check.sh" 2>/dev/null

If the JSON output has "status" other than "active", inform the operator: "No active session — start one with /swain-init?" Proceed if they dismiss.

Cut a release by detecting the project's versioning context, generating a changelog, bumping versions, and tagging. Works across any repo by reading context from git history and project structure rather than hardcoding assumptions.

Override file

Before starting, read .agents/release.override.skill.md if it exists. This is a freeform markdown file authored by the project owner whose instructions layer on top of this skill — its contents take precedence where they conflict. It can narrow defaults, specify version file locations, set tag formats, add pre/post-release steps, or anything else.

If no override exists, proceed with context detection alone.

Workflow

1. Gather context

Sponsors

Details

Repository
github.com/cristoslc/swain
Categories
Git & Pull Requests, Release Management
First seen
Jun 3, 2026

More from cristoslc/swain

All 6
1cristoslc avatarswain-updatecristoslc/swainUpdate swain skills to the latest version. Use when the user says 'update swain', 'upgrade swain', 'pull latest swain', 'reinstall swain', 'refresh skills', or 125skills.sh installs
2mblode avatarbabysit-prmblode/agent-skillsAutonomous PR monitor — polls every 2 minutes for merge conflicts, CI/CD failures across GitHub Actions, Buildkite, Vercel, and Fly.io, review comments, and mer124skills.sh installs
3dotCMS avatartriagedotCMS/coreTriage GitHub issues using the AI triage pipeline. Fetches the next issue from the "Needs Triage" project column (or a specific issue), creates an agent team to0skills.sh installs
4electron avatarelectron-chromium-upgradeelectron/electronGuide for performing Chromium version upgrades in the Electron project. Use when working on the roller/chromium/main branch to fix patch conflicts during `e syn0skills.sh installs
5exercism avatarfixexercism/websiteFix a GitHub issue end-to-end — fetches issue, creates worktree, plans and implements fix, runs validation, opens PR, cleans up.0skills.sh installs
6github avataraws-cost-optimizegithub/awesome-copilotAnalyze AWS resources used in the app (IaC files and/or resources in a target account/region) and optimize costs - creating GitHub issues for identified optimiz0skills.sh installs