Free Claude Code plugin · MIT

Ship Claude Code PRs
that actually get merged.

A pre-PR quality gate for Claude Code. Catches AI code smells, security issues, and attribution leaks before you push.

Free forever · MIT · No account · 100% local · Zero telemetry

~ prguard — zsh
$ /ship

🔍 PRGuard running on diff (main...HEAD)

🧬 AI fingerprints      ❌ 3 issues
   • app/api/users.ts:42  — generic throw new Error("Failed to fetch")
   • app/lib/format.ts:14 — comment // Initialize the array — remove
   • tests/users.test.ts   — test names use "should X when Y"

🔒 Security             ✅ clean
✅ Test coverage        ⚠️  1 function untested
🏷️  Attribution leaks    ✅ clean
🎨 Style match          ✅ matches recent PRs
📊 Change scope         ✅ 127 LOC, focused

Fix 3 fingerprint issues and 1 coverage gap → re-run /ship

Your Claude Code PR got rejected.

The code works. Tests pass. But the reviewer says “this looks AI-written”. Here's what they spotted:

  • Co-Authored-By: Claude stuck in a commit trailer
  • Defensive try/catch around code that can't throw
  • Comments like // Initialize the variable
  • Generic throw new Error("Failed to fetch data")
  • PR body with headers the repo never uses
  • Zero tests for the new code path

PRGuard catches all of it. Before you push.

Six checks. Confidence-scored. No noise.

Every finding gets a 0–100 score. Anything below 80 filtered out — so you only see what a real reviewer would block on.

🧬

AI fingerprints

10 patterns scanned against your repo's own style — defensive try/catch, generic errors, template PR bodies.

🔒

Security

Secrets, SQL injection, XSS, unsafe deserialization, weak crypto. Confidence-scored, no false positives.

Test coverage

Every new function checked for tests. Regression tests flagged missing on bug-fix commits.

🏷️

Attribution leaks

Claude/Anthropic/AI strings anywhere in diff or commit trailer? Blocked before push.

🎨

Style match

Samples your last 5 merged PRs. Warns if commit style or PR body diverges from repo norm.

📊

Change scope

Warns on >400 LOC or unrelated directories touched. No more 'while I'm here' refactors.

Install in 30 seconds.

Clone into your Claude Code plugins folder:

bash
$ git clone https://github.com/Islam0953/prguard ~/.claude/plugins/prguard

Then in any Claude Code session:

claude code
/ship

Requires Claude Code CLI. No config file needed — /ship works out of the box and self-calibrates on first run via /ship-setup.

FAQ

Does this replace code review?+

No. A human reviewer still catches things PRGuard won't — domain logic, product decisions, architecture. PRGuard catches the mechanical stuff that wastes reviewer time.

What languages does it work with?+

Language-aware checks cover TypeScript, JavaScript, Python, Go, Rust, Swift, Ruby, Java, PHP. Fingerprint, attribution, and scope checks work on any text.

Does it run automatically?+

Only if you want. Run /ship manually before git push, or add a pre-commit hook. Nothing is forced.

Does it send my code anywhere?+

No. 100% local via Claude Code. Zero telemetry. No account. Nothing leaves your machine.

Why 'PRGuard'?+

Because the goal is to guard your PRs against the mechanical smells that get them rejected — before you push, not after a reviewer points them out.