promote-production

Promote the main trunk to the production branch via fast-forward merge with version tagging.

Updated Aug 25, 2026
One-click install
npx skills add https://github.com/mobiustripper42/jig --skill promote-production-mobiustripper42
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: promote-production
Source: https://github.com/mobiustripper42/jig/tree/main/.claude/skills/promote-production
Command: npx skills add https://github.com/mobiustripper42/jig --skill promote-production-mobiustripper42

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Shipping a release to production requires coordinating version bumps, changelogs, git tags, and branch merges in the right order, and mistakes like diverged branches or double-bumped versions break deploys. This Skill automates the entire main-to-production promotion as a single guarded workflow. ## Core Features & Use Cases - Guarded fast-forward promotion: Verifies origin/production exists, the working tree is clean, and production is an ancestor of main before merging, stopping with clear guidance when any gate fails. - Automatic release versioning: Patch-bumps the version in package.json, prepends a CHANGELOG.md entry from shipped commits, tags the release, and pushes — while skipping the bump when main HEAD already carries a fresh v* tag. - Project-specific pre-promote gates: Reads the project's CLAUDE-context.md for custom checks such as staging QA confirmation before shipping. - Use Case: After merging several feature PRs into main and QA-ing staging, run the promotion to cut release v1.4.2, fast-forward production to it, and trigger the host's production deploy. ## Quick Start Promote main to production and cut the release for everything merged since the last deploy.

Frequently Asked Questions about promote-production

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I promote main to a production branch in git?

Fetch both branches, verify production is an ancestor of main with git merge-base --is-ancestor, then check out production and run git merge --ff-only origin/main followed by git push origin production. This Skill automates those steps plus version tagging.

How do I automate version bumping and tagging on release?

Run npm version patch --no-git-tag-version to bump package.json, prepend a CHANGELOG.md entry listing shipped commits, commit as a release, then create and push a v-prefixed git tag. The Skill performs this automatically unless main HEAD already carries a fresh v* tag.

What happens if the production branch has diverged from main?

The promotion stops and shows the diverging commits via git log origin/main..origin/production. You choose between merging production back into main first or aborting to resolve manually; the Skill never auto-resolves divergence.

Does this work if my repo has no version in package.json?

Yes. Unversioned projects skip the bump entirely and simply promote whatever v* tag already points at main HEAD, or none. The gate checks the version field itself, so private version-less manifests are handled correctly.

Why does the promotion stop before merging?

Common causes are a missing origin/production branch, uncommitted changes in the working tree, unconfirmed staging QA, or production having diverged from main. Each stop includes a specific message explaining the gate that failed and how to fix it.