merge

merge is a command for coding agents from kastheco/claude-plugins. It costs 0 tokens per session (629 once invoked), scanned A, original, MIT.

A command for merging an approved GitHub pull request, which is a proposed set of code changes for review.

In plain words
What is it for?
Use it to find a pull request, wait for or investigate checks, merge it, and clean up the finished work.
Why use it?
It checks that the request is open, conflict-free, and passing its automated checks before merging it and deleting its branch.

Command

Part of the kas plugin — 1 skill, 9 commands, 4 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/kastheco/claude-plugins/merge
Clone the repo
git clone --depth 1 https://github.com/kastheco/claude-plugins

Or install kas, the plugin that ships this one along with the rest of its 1 skill, 9 commands, 4 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for merge

README.md
[![agentmods](https://agentmods.dev/badge/commands/kastheco/claude-plugins/merge.svg)](https://agentmods.dev/commands/kastheco/claude-plugins/merge)
Your own site
<a href="https://agentmods.dev/commands/kastheco/claude-plugins/merge"><img src="https://agentmods.dev/badge/commands/kastheco/claude-plugins/merge.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 629 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.00629
Opus 5 $0.00000 $0.00315
Sonnet 5 $0.00000 $0.00126
Haiku 4.5 $0.00000 $0.00063

Measured 4d ago against content hash c5a491f6c56b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

merge scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/kas/commands/merge.md · 90 lines

How it starts

The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/kas:merge - Merge PR

Finalize and merge a pull request after work is complete and approved.

Arguments

  • $ARGUMENTS - Optional: PR number or PR URL

Instructions

1. Resolve Target PR

# If argument provided, resolve it
# Otherwise check current branch for open PR
gh pr view $ARGUMENTS --json number,headRefName,title,state,mergeable,url

If no PR found or ambiguous, ask user which PR to merge.

2. Validate Merge Eligibility

Check the PR JSON response:

  • state must be OPEN
  • headRefName must not be main
  • mergeable must be MERGEABLE

If conflicts exist (mergeable = CONFLICTING), abort:

Cannot merge: PR has conflicts. Please resolve conflicts first.

3. Check CI Status

gh pr checks <PR#> --json name,status,conclusion
Status Action
All COMPLETED + SUCCESS Proceed to step 4
Any COMPLETED + FAILURE Attempt auto-fix (check logs, re-run). If can't fix, ask user.
Any IN_PROGRESS Wait with progress indication (max 5 min, check every 30s)

If CI doesn't pass after waiting/fixing, ask user for guidance.

4. Merge PR

gh pr merge <PR#> --merge --delete-branch

5. Cleanup Worktree (if applicable)

# Check if in worktree
WORKTREE_PATH=$(pwd)
if [[ "$WORKTREE_PATH" == *"/.worktrees/"* ]]; then
  MAIN_REPO=$(git rev-parse --path-format=absolute --git-common-dir | sed 's/\.git$//')
  cd "$MAIN_REPO"
  git worktree remove "$WORKTREE_PATH" --force
fi

6. Verify and Report

gh pr view <PR#> --json state,mergedAt

Provide summary:

  • PR merged: #{number} - {title}
  • Worktree cleaned: Yes/No/N/A
  • Branch deleted: Yes

Rules

  • NEVER merge to main directly - always use PR workflow
  • NEVER skip CI checks - wait or ask user
  • ALWAYS use --merge flag (preserve branch history)
  • ALWAYS delete remote branch after merge (--delete-branch)
  • If in worktree, MUST clean it up after merge

Error Handling

Error Action
No PR found Ask user to specify PR
Merge conflicts Abort, tell user to resolve conflicts first
CI failing Attempt auto-fix, then ask user
CI timeout (>5 min) Ask user whether to wait more or proceed
Worktree removal fails Log warning, continue

Read the full file on GitHub · 90 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 90 lines · 0 tokens per session scan A c5a491f6c56b

Subscribe to this mod's changes

merge is a command published in the GitHub repository kastheco/claude-plugins (2 stars, last pushed 4mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 629 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.