Agent skill · software engineering · jeremylongshore

promote

Runs the full release workflow for the current project. Commits any uncommitted changes, pushes to remote, creates and merges a PR if on a feature branch, determines the next semver version from conventional commits, creates an annotated git tag and GitHub release with generated notes, cleans up merged branches, and returns to a clean main. Use when the user says promote, ship, release, commit and push, tag and release, or get back to main.

Why this skill is useful

Adds an executable script that automates the entire release workflow, including versioning, tagging, and GitHub release creation.

What it needs

Requires gh installed locally. About 4k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.

What this skill does

Promote Changes Runs the full release workflow from current working state to a tagged GitHub release on main. Current branch: !git branch --show-current 2>/dev/null echo "unknown" Git status: !git status --short 2>/dev/null echo "not a git repo" Last tag: !git describe --tags --abbrev=0 2>/dev/null echo "none" Recent commits since last tag: Next version (calculated from commits above): Step 0: Pre-flight checks Check for untracked .env files that could be accidentally staged: If any .env files would be staged: Step 1: Commit any uncommitted changes If the git status above shows uncommitted or untracked changes: 1. Review the diff: git diff and git diff --cached 2. Stage changes selectively — prefer tracked files: git add -u, then review and add any intentional new files individually. Avoid git add -A unless the user explicitly confirms. 3. Draft a conventional commit message from the changes — lead with a type prefix (feat:, fix:, docs:, chore:, etc.) and a concise summary 4. Commit using a heredoc so multi-line messages format correctly If there is nothing uncommitted, skip to Step 2. Step 2: Push Push the current branch to remote: Step 3: Merge to main (feature branch only) Skip this step if already on main (or the repo's default branch). If on a feature branch: 1. Scan commits since the last tag for issue references: Look for Closes #N, Fixes #N, Resolves #N (case-insensitive). Collect all issue numbers found. If none are found: 2. Create a PR targeting main, including closing keywords in the body so GitHub closes the issues automatically on merge: Omit the Closes lines if no issues were identified. 3. Enable auto-merge (squash preferred): 4. Poll until merged: 5. Switch to main and pull: Step 4: Confirm next version The next version is pre-calculated in the context block above using these semver rules: Commit subject with !: (e.g. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills jeremylongshore/promote

View the source on GitHub

Browse the @skills marketplace