npx claudepluginhub waterplanai/agentic-config --plugin ac-gitThis skill is limited to using the following tools:
Full release workflow: validate changelog, squash commits, create tag, rebase, push, and merge to main.
Finalizes git-flow release: checks branch, runs tests, updates changelog, merges to main/develop, tags, pushes, creates GitHub release, switches to develop.
Automates semver version bumping, changelog generation, git tagging, pushing, and GitHub releases for Node.js, Python, Rust, Go, and generic projects with pre-flight checks and confirmations.
Automates feature branch release pipeline: pre-flight checks, merge main, run tests, pre-landing review, version bump, changelog, bisectable commits, push, and PR creation.
Share bugs, ideas, or general feedback.
Full release workflow: validate changelog, squash commits, create tag, rebase, push, and merge to main.
No arguments required - all values auto-detected.
INVOKE git-safe skill to gain context about safe history rewriting patterns.
INVOKE /milestone with no arguments.
This will:
IMPORTANT: When /milestone prompts "Proceed with push? (yes/no)", answer "no".
We will push after rebase to ensure clean history.
Capture from /milestone output:
VERSION: The version tag created (e.g., v1.2.3)BRANCH: Current branch nameSQUASH_SHA: The squashed commit SHAIf /milestone fails: STOP - show error, do not proceed.
After successful /milestone (declined push):
git fetch origin main
git rev-list HEAD..origin/main --count
If count > 0 (main has new commits), rebase is needed.
git rebase origin/main
If rebase conflicts:
git statusgit rebase --continuegit rebase --abort
TAG_SHA=$(git rev-list -n1 {VERSION} 2>/dev/null)
HEAD_SHA=$(git rev-parse HEAD)
If TAG_SHA != HEAD_SHA:
git tag -d {VERSION}
git tag -a {VERSION} -m "Release {VERSION}"
git push --force-with-lease origin {BRANCH}
Due to squash + rebase, force push is required.
git push origin {VERSION}
If tag already exists on remote (from failed previous attempt):
git push --delete origin {VERSION}
git push origin {VERSION}
STOP HERE and show:
Ready to merge to main:
- Branch: {BRANCH}
- Version: {VERSION}
- Commit: {HEAD_SHA short}
This will:
1. Checkout main
2. Pull latest
3. Fast-forward merge from {BRANCH}
4. Push main
Proceed with merge to main? (yes/no)
Wait for explicit "yes". Any other response = abort merge (release still valid).
git checkout main
git pull origin main
git merge --ff-only {BRANCH}
If fast-forward fails:
Fast-forward merge failed. This means main has diverged.
Options:
(A) Force merge (creates merge commit)
(B) Abort - investigate manually
Choose (A/B):
On "A":
git merge {BRANCH} -m "chore(release): merge {BRANCH} for {VERSION}"
On "B": STOP - checkout back to {BRANCH}.
git push origin main
Display summary:
## Release Complete
### Version Released
- Tag: {VERSION}
- Commit: {FINAL_SHA}
- Message: {commit message first line}
### Commits Included
{list from squash - from /milestone output}
### Branch Status
- Feature branch: {BRANCH} (pushed)
- Main branch: merged and pushed
- Tag: {VERSION} (pushed)
### Remote URLs
- Branch: {remote URL for branch}
- Main: {remote URL for main}
- Release: {remote URL for tag}
### Cleanup (optional)
To delete feature branch:
git branch -d {BRANCH}
git push origin --delete {BRANCH}
| Condition | Action |
|---|---|
| /milestone fails | STOP: Show /milestone error |
| Rebase conflicts unresolved | STOP: Provide manual resolution steps |
| Push fails | STOP: Show error, suggest manual push |
| Fast-forward merge fails | Offer force merge or abort |
| User declines merge | Release is valid, just not merged to main |
# Full auto - no arguments needed
/release
The command will: