Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add YoungjaeDev/my-claude-plugins/plugin install devWrote 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.
[](https://agentmods.dev/skills/youngjaedev/my-claude-plugins/post-merge)<a href="https://agentmods.dev/skills/youngjaedev/my-claude-plugins/post-merge"><img src="https://agentmods.dev/badge/skills/youngjaedev/my-claude-plugins/post-merge/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/youngjaedev/my-claude-plugins/post-merge"><img src="https://agentmods.dev/badge/skills/youngjaedev/my-claude-plugins/post-merge.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00186 | $0.08690 |
| Opus 5.5 | $0.00074 | $0.03476 |
| Sonnet 5.5 | $0.00037 | $0.01738 |
| Haiku 4.5 | $0.00019 | $0.00869 |
Grade B, and why
post-merge scanned grade B with 1 finding 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 13d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
- **Recurring leftover**: before printing, grep the older archives (`.claude/state/archive/review-loop-*.json` and the pre-rename `cr-fix-*.json`, excluding this PR) for the same finding. A leftover that surfaces a secon How it starts
The opening of the file, as written. The whole thing — 336 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Post-Merge
Local cleanup after a PR is merged. One run takes a merged PR from leftover-review surface → branch cleanup → issue close → repo About check → commit. It records no lessons: those go to /retro in the session that built the change. Follow project guidelines in @CLAUDE.md and @AGENTS.md throughout.
Guidelines
- Worktree mode. post-merge runs from the main repo or from the PR's worktree. Every step works on the main repo: git calls run as
git -C "$MAIN_REPO"and repo paths resolve under$MAIN_REPO/, in the steps below and inreferences/.MAIN_REPO=$(dirname "$(git rev-parse --path-format=absolute --git-common-dir)")gives the same answer from either place, so re-derive it in any fresh shell. Inside a worktree (IN_WT=1) Step 1 copies the worktree's review-loop state into the main repo's archive, Step 4 leaves the branch alone (the worktree still has it checked out), and Step 11 prints the one command that removes the worktree and the branch. post-merge never removes the worktree itself: on Windows a worktree removed from inside itself is only half deleted. - Non-default base. For a PR into a branch CodeRabbit does not auto-review, review-loop on the
auto/pr-botsource posts@coderabbitai reviewitself, unless the repo setreviews.auto_review.enabled: false(plugins/dev/skills/review-loop/SKILL.mdStep 2); Step 3 below checks out that base like any other. It also changes what the merge did to the linked issues: GitHub honours a closing keyword only on a merge into the default branch, so a non-default base leaves every one of them open with no signal on the PR page — Step 5 is what catches that, and it runs on every PR. ghis the authoritative merge signal. Step 1'sgh pr view ... state=MERGEDis the single source of truth for "did this land", and Step 3.5 asks gh the same question (gh pr list --head <branch>) for every other worktree's branch. No step decides "merged" by comparing git SHAs.- SHA comparison proves "nothing unique", never "merged".
git log <base>..<branch>,git cherryandgit rev-list --left-rightread as unmerged after a squash merge (base gets one new SHA) or a rebase merge (branch SHAs rewritten), so none of them answers "did it land". Step 3.5 runsgit cherryonly after gh has said merged, to show the branch holds no commit the PR did not deliver, and settles whatever cherry still lists by content: the branch's files against the PR's merge commit. If unsure content landed, diff content, not SHAs (Step 4). - Leftover-review surface (Step 1.5) is informational. The run reads review-loop's state file (
.claude/state/review-loop-<PR>.json, else the latest.claude/state/archive/copy, else the same under the pre-renamecr-fix-prefix) to surface autonomously-deferred or cap/timeout-stopped findings after the merge, but never blocks cleanup. It always prints oneleftover-reviews: …checkpoint line so a skip can't pass unnoticed.gh/jq/Readonly → identical under Claude and Codex. - Codex partial-execution.
/docs:readmeand/docs:changelog(Steps 9, 9.5) are commands, which Codex does not load; under Codex do the same edit by hand from thedocs:doc-guidesskill and note it. Every other step runs identically on both runtimes. - Interactive input is capability-aware. Every prompt and confirmation below, each
AskUserQuestionmention included, is a gate rather than a tool name:AskUserQuestionunder Claude Code,request_user_inputunder Codex where exposed, otherwise one concise blocking question asked before the irreversible action (git rm,git worktree remove,git push origin --delete,gh repo edit). Full policy:AGENTS.md→ "Cross-runtime interactive input policy". - Run record. Step 1 opens
.claude/state/post-merge-<PR>.jsonand every step appends its outcome, so a silent skip becomes visible; Step 10 finalizes it. Mechanism, per-step skip reasons, and the finalize block:references/run-record.md.
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 13d ago Changed · +84 lines · +34 tokens per session fc9a37695002
- 23d ago Changed · +2 lines · -1 tokens per session 4175dda8113e
- 25d ago Changed · -61 lines · -1 tokens per session c3982d7a67df
- 1mo ago Changed · +22 lines f021b5397560
- 1mo ago Changed · +2 lines · +8 tokens per session ccc9907c2aa4
- 1mo ago Changed · -60 lines · -21 tokens per session e1864e6330b7
- 1mo ago Changed · +6 lines · -93 tokens per session 9012155a4220
- 2mo ago First seen · 341 lines · 260 tokens per session scan B 6c6e88f313a0
post-merge is a skill published in the GitHub repository YoungjaeDev/my-claude-plugins (2 stars, last pushed today), licensed MIT. It adds 186 tokens to every session and 8,690 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
merge-batch
Prepare and merge an owner-selected PR batch with contributor credit and exact-candidate admission. Use for a pasted PR list; combined focused validation is diagnostic, and every actual landing still requires its applicable checks and authorization.
prowler-commit
Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.
gh-auth-isolation
Safely manage multiple GitHub identities (EMU + personal) in agent workflows.
comet-github
A routing guide for Comet-related GitHub work. It directs requests about pull requests, issues, CI failures, ideas, and fixes to the appropriate review or implementation process.
github-skill
Work with GitHub via the gh CLI — clone repositories, create/list/merge pull requests, create/list issues, and run any other gh command (API calls, workflow runs, releases, repo administration). List operations return parsed JSON.
release-helper
Ensures configuration and code changes are released correctly. Use PROACTIVELY whenever you edit config.json, change any setting, or fix a configuration bug in this project, so the change reaches production.