skills/merge/SKILL.md
Merge the current feature branch into main and (optionally) clean up the branch and worktree. Prefers fast-forward (--ff-only) for linear history; falls back to a merge commit (--no-ff) when the branch has diverged or the user wants the merge commit preserved. Interactive cleanup at the end. USE WHEN asked to "merge to main", "merge and cleanup", "integrate the feature branch", or "finish this branch" — i.e. a direct local merge with no review gate. For PR-based delivery (push → open a PR → link a work item → clean up after merge), use the `ship` skill instead.
npx skillsauth add julianobarbosa/claude-code-skills mergeInstall 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.
Combine merge-and-cleanup and merge-to-main into one flow. Default to fast-forward; preserve a merge commit when fast-forward isn't possible or the user asks for one. Always interactive about deleting branches and worktrees.
git rev-parse --abbrev-ref HEAD returns main (or master), stop and report — there's nothing to merge.FEATURE=$(git rev-parse --abbrev-ref HEAD).git checkout maingit pull --ff-only origin maingit merge --ff-only "$FEATURE"git merge --no-ff "$FEATURE".
git push origin main.$FEATURE (local + remote) and any associated worktree?"
$FEATURE (git worktree list | grep -F "$FEATURE"), cd to the main repo dir first, then git worktree remove <path>.git branch -d "$FEATURE" (use -D only if user explicitly confirms — -d refuses if branch isn't merged, which is the safety we want).git push origin --delete "$FEATURE" (ignore failure if branch was never pushed).--no-verify. If a pre-push hook fails, fix the underlying issue; don't bypass.cd to the main repo working directory first.git merge reports a conflict, stop and surface it to the user — they decide.git pull --ff-only on main fails if main has diverged locally (e.g., you committed directly to main). That's a different problem — surface it; don't paper over with --rebase.git branch -d refuses on unmerged branches. That refusal is your safety net — never automatically promote to -D.git push origin --delete exits non-zero if the remote branch doesn't exist. That's fine in this flow (branch was local-only) — log and continue.git checkout will surprise you.development
End-to-end branch delivery: commit (no AI attribution) → push → open a pull request → ensure a Board work item exists (create one per task, assigned to the configured user, if none) and link it → after merge, clean up branch and worktree. Auto-detects the platform from the remote — Azure Repos + Boards (azure-devops-node-api SDK; OAuth Bearer push fallback via `az`) or GitHub (Octokit; `gh` for auth). Scripts are TypeScript, run via `bun`. Use whenever asked to "ship", "ship it", "ship this branch", "open a PR", "push and open a PR", "raise a PR", "deliver this", "send this for review", or "create a PR and link the work item" — and when a direct push to main is blocked and the change needs to go through a PR instead.
testing
Brief description of what this skill does. Include specific triggers - when should Claude use this skill? Example triggers, file types, or keywords that indicate this skill applies.
tools
Manage and troubleshoot PATH configuration in zsh. Use when adding tools to PATH (bun, nvm, Python venv, cargo, go), diagnosing "command not found" errors, validating PATH entries, or organizing shell configuration in .zshrc and .zshrc.local files.
tools
Zabbix monitoring system automation via API and Python. Use when: (1) Managing hosts, templates, items, triggers, or host groups, (2) Automating monitoring configuration, (3) Sending data via Zabbix trapper/sender, (4) Querying historical data or events, (5) Bulk operations on Zabbix objects, (6) Maintenance window management, (7) User/permission management