push-pr

push-pr is a skill for Claude Code from rjmurillo/ai-agents. It costs 81 tokens per session (3,305 once invoked), scanned A, original, MIT.

A Git workflow skill that commits changes, creates or switches branches, pushes them to a remote repository, and opens a pull request. A pull request is a request for teammates to review and merge a set of changes.

In plain words
What is it for?
Use it to turn the current working-tree changes into a conventional commit, push the branch, and complete the repository's pull-request template with change, test, and security details.
Why use it?
It removes the repetitive steps of preparing a branch and filling in a pull request from the current changes.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: reads .claude/ paths.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the project-toolkit plugin — 125 skills, 25 commands, 33 agents, 5 hooks shipped together

Good fit Use it to turn the current working-tree changes into a conventional commit, push the branch, and complete the repository's pull-request template with change, test, and security details.

Compare 6 skills from other repositories ↓
Install

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.

Claude Code
/plugin marketplace add rjmurillo/ai-agents
Claude Code
/plugin install project-toolkit

Made for: Claude Code.

Or install project-toolkit, the plugin that ships this one along with the rest of its 125 skills, 25 commands, 33 agents, 5 hooks.

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 push-pr

README.md
[![agentmods](https://agentmods.dev/badge/skills/rjmurillo/ai-agents/push-pr/github.svg)](https://agentmods.dev/skills/rjmurillo/ai-agents/push-pr)
Your own site
<a href="https://agentmods.dev/skills/rjmurillo/ai-agents/push-pr"><img src="https://agentmods.dev/badge/skills/rjmurillo/ai-agents/push-pr/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.

agentmods 80×15 button for push-pr

Your own site · 80×15
<a href="https://agentmods.dev/skills/rjmurillo/ai-agents/push-pr"><img src="https://agentmods.dev/badge/skills/rjmurillo/ai-agents/push-pr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 81 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,305 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00081 $0.03305
Opus 5.5 $0.00032 $0.01322
Sonnet 5.5 $0.00016 $0.00661
Haiku 4.5 $0.00008 $0.00331

Measured 3d ago against content hash de42b7c97362, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

push-pr 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 3d 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.

.claude/skills/push-pr/SKILL.md · 214 lines

How it starts

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

Push PR

Commit, push, and open a pull request whose body is adapted from the real diff rather than copied from the template.

Migrated from .claude/commands/push-pr.md under ADR-064, which makes skills the single user-invocable surface. The scoped allowed-tools grant, the identity-hardened python3 -I form, and both vendor-portability declarations carry over unchanged: they are the security contract, not formatting.

Triggers

push and open a PR, open a pull request, push this branch, commit and push

Context

  • Current git status: !git status
  • Current git diff (staged and unstaged changes): !git diff HEAD
  • Current branch: !git branch --show-current

Process

Based on the above changes:

  1. Create a new branch if on main.

    1. Determine the type of change that maps to a conventional commit type followed by a 3-5 word description (for example, fix/parser-log-enrichment).
  2. Read @.github/PULL_REQUEST_TEMPLATE.md. Step 3 seeds it into the body file; use this copy only when the seeded file holds the marker alone.

  3. Run the secure path allocator:

    python3 -I "${COPILOT_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-.claude}}/skills/github/scripts/pr/new_pr.py" --prepare-body-file
    
    • On Windows the allocator refuses to run. Follow the Windows PR Body Fallback section below for steps 3, 4, 5, and 7.
    • Copy the returned path exactly. Do not store it in a shell variable because each tool call runs in a fresh shell.
    • The file starts with the line <!-- replace with PR body -->, followed by the repository PR template. Use the Edit tool to fill the template sections in that exact file, then delete the marker line. A body that still contains the marker text anywhere is rejected.
    • If the file holds only the marker, the repository has no usable template. Replace it with the template you read in step 2, adapted to the change.
    • Fill in all sections with actual change information from git diff
    • Replace placeholder comments with substantive content
    • Check appropriate Type of Change boxes based on actual changes
    • List specific files changed, test coverage added, security impacts
    • Do NOT leave template comments like <!-- Brief description --> unfilled
    • Do NOT copy the template verbatim - adapt every section to your changes
    • Include an ## Acceptance criteria heading with - [ ] or * [ ] bullets. The Validate Spec Coverage job reads these from the PR body, not the linked issue. When the PR links a spec or an issue, an unchecked box or a missing section makes the deterministic check report FAIL, and that FAIL does not block the merge, so check a box only once the criterion is actually met. Numbered criteria are not recognized.
  4. Check the title and body file before the push, which can take minutes:

Read the full file on GitHub · 214 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. 3d ago Changed · +78 lines de42b7c97362
  2. 4d ago Changed · +13 lines c2cf351e6e67
  3. 5d ago Changed · +2 lines 65ad8fdde8fa
  4. 6d ago Changed b27189e0cd83
  5. 22d ago Changed · +6 lines 0cc8bb4c1164
  6. 24d ago Changed f9c67b825ac8
  7. 1mo ago Changed · +49 lines · +70 tokens per session 5ca2fe0f1f9f
  8. 1mo ago First seen · 66 lines · 11 tokens per session scan A b9708c2a8962

Subscribe to this mod's changes

push-pr is a skill published in the GitHub repository rjmurillo/ai-agents (48 stars, last pushed today), licensed MIT. It adds 81 tokens to every session and 3,305 once invoked, about $0.0003 per session on Opus 5.5. 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-09-05.

Related

Other skills, from other repositories

github-automation

GitHub workflow automation, PR management, issue tracking, and code review coordination. Integrates with GitHub Actions and repository management. Use when: PR creation, code review, issue management, release automation, workflow setup. Skip when: local-only changes, non-GitHub repositories.

ruvnet/ruflo · 61 tokens

git-workflow

Use this skill for anything related to Git and version control workflows. Trigger when the developer asks for help with commit messages, PR descriptions, pull request reviews, branching strategies, changelog generation, release notes, code review etiquette, or Git conventions. Keywords: commit, PR, pull request…

jamestorrevillas/dev-skills · 78 tokens

github-pr-workflow

Prepare a GitHub pull request from a feature branch — branch hygiene, commit shape, title/body, verification notes, screenshots for UI work, and replies to review comments.

paperclipai/paperclip · 39 tokens

agent-github-modes

Agent skill for github-modes - invoke with $agent-github-modes.

ruvnet/ruflo · 21 tokens

git-workflow

Use when naming or scoping a branch, writing or fixing a commit message, picking the gitmoji for a commit, untangling history (rebase versus merge versus squash), or cutting a versioned release — the portable git-convention layer for any repo. Covers gitmoji + Conventional Commits, SemVer tags, branch hygiene…

ericrisco/rsc-harness · 127 tokens

document

Run /document pr | changelog | release-note | postmortem (or let it ask) to write the human facing prose about a change. Drafts from the real commits and diff, writing to the right place. Does not write code, tests, or specs.

jsmastery-pro/skills · 65 tokens