By ZainRizvi
Hooks and skills that catch common git/gh footguns: blanket adds, commits on main, amending pushed commits, merging with red CI, and more. Plus skills for clean commits, rebasing, merging PRs, fixing GitHub issues, and read-only repo-health garbage-collection scans.
Use this agent when you need to review code for adherence to project guidelines, style guides, and best practices. This agent should be used proactively after writing or modifying code, especially before committing changes or creating pull requests. It will check for style violations, potential issues, and ensure code follows the established patterns in CLAUDE.md. Also the agent needs to know which files to focus on for the review. In most cases this will recently completed work which is unstaged in git (can be retrieved by doing a git diff). However there can be cases where this is different, make sure to specify this as the agent input when calling the agent. Examples: <example> Context: The user has just implemented a new feature spanning several files. user: "I've added the new authentication feature. Can you check if everything looks good?" assistant: "I'll use the Task tool to launch the code-reviewer agent to review your recent changes." <commentary> Since the user has completed a feature and wants validation, use the code-reviewer agent to ensure the code meets project standards. </commentary> </example> <example> Context: The assistant has just written a new utility function. user: "Please create a function to validate email addresses" assistant: "Here's the email validation function:" <function call omitted for brevity> assistant: "Now I'll use the Task tool to launch the code-reviewer agent to review this implementation." <commentary> Proactively use the code-reviewer agent after writing new code to catch issues early. </commentary> </example> <example> Context: The user is about to create a PR. user: "I think I'm ready to create a PR for this feature" assistant: "Before creating the PR, I'll use the Task tool to launch the code-reviewer agent to ensure all code meets our standards." <commentary> Proactively review code before PR creation to avoid review comments and iterations. </commentary> </example>
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
Use this agent when you need to analyze code comments for accuracy, completeness, and long-term maintainability. This includes: (1) After generating large documentation comments or docstrings, (2) Before finalizing a pull request that adds or modifies comments, (3) When reviewing existing comments for potential technical debt or comment rot, (4) When you need to verify that comments accurately reflect the code they describe. <example> Context: The user is working on a pull request that adds several documentation comments to functions. user: "I've added documentation to these functions. Can you check if the comments are accurate?" assistant: "I'll use the comment-analyzer agent to thoroughly review all the comments in this pull request for accuracy and completeness." <commentary> Since the user has added documentation comments and wants them checked, use the comment-analyzer agent to verify their accuracy against the actual code. </commentary> </example> <example> Context: The user just asked to generate comprehensive documentation for a complex function. user: "Add detailed documentation for this authentication handler function" assistant: "I've added the documentation. Now let me use the comment-analyzer agent to verify that the comments are accurate and helpful for long-term maintenance." <commentary> After generating large documentation comments, proactively use the comment-analyzer to ensure quality. </commentary> </example> <example> Context: The user is preparing to create a pull request with multiple code changes and comments. user: "I think we're ready to create the PR now" assistant: "Before creating the pull request, let me use the comment-analyzer agent to review all the comments we've added or modified to ensure they're accurate and won't create technical debt." <commentary> Before finalizing a PR, use the comment-analyzer to review all comment changes. </commentary> </example>
Use this agent when reviewing code changes in a pull request to identify silent failures, inadequate error handling, and inappropriate fallback behavior. This agent should be invoked proactively after completing a logical chunk of work that involves error handling, catch blocks, fallback logic, or any code that could potentially suppress errors. Examples: <example> Context: the user has just finished implementing a new feature that fetches data from an API with fallback behavior. user: "I've added error handling to the API client. Can you review it?" Assistant: "Let me use the silent-failure-hunter agent to thoroughly examine the error handling in your changes." <Task tool invocation to launch silent-failure-hunter agent> </example> <example> Context: the user has created a PR with changes that include try-catch blocks. user: "Please review PR #1234" Assistant: "I'll use the silent-failure-hunter agent to check for any silent failures or inadequate error handling in this PR." <Task tool invocation to launch silent-failure-hunter agent> </example> <example> Context: the user has just refactored error handling code. user: "I've updated the error handling in the authentication module" Assistant: "Let me proactively use the silent-failure-hunter agent to ensure the error handling changes don't introduce silent failures." <Task tool invocation to launch silent-failure-hunter agent> </example>
Use this agent when you need to review a pull request for test coverage quality and completeness. This agent should be invoked after a PR is created or updated to ensure tests adequately cover new functionality and edge cases. Examples: <example> Context: the user has just created a pull request with new functionality. user: "I've created the PR. Can you check if the tests are thorough?" assistant: "I'll use the test-analyzer agent to review the test coverage and identify any critical gaps." <commentary> Since the user is asking about test thoroughness in a PR, use the Task tool to launch the test-analyzer agent. </commentary> </example> <example> Context: A pull request has been updated with new code changes. user: "The PR is ready for review - I added the new validation logic we discussed" assistant: "Let me analyze the PR to ensure the tests adequately cover the new validation logic and edge cases." <commentary> The PR has new functionality that needs test coverage analysis, so use the test-analyzer agent. </commentary> </example> <example> Context: Reviewing PR feedback before marking as ready. user: "Before I mark this PR as ready, can you double-check the test coverage?" assistant: "I'll use the test-analyzer agent to thoroughly review the test coverage and identify any critical gaps before you mark it ready." <commentary> the user wants a final test coverage check before marking PR ready, use the test-analyzer agent. </commentary> </example>
Implement a fix for a GitHub issue with iterative code review. Use when given a GitHub issue URL or number to fix. Fetches the issue, implements the fix, runs tests, then uses /review-agent for iterative review until no valid feedback remains.
Read-only repo-health scan. Use when running a manual repo-health pass to surface duplicated code. Finds blocks of more than 30 lines duplicated across the repo with at least 80% similarity, scores each candidate, and files one tracker issue per real finding. Never edits source. Tracker-agnostic.
Run all repo-health garbage-collection scans in parallel. Dispatches each `gc-*` subvariant in its own sub-agent so the scans run isolated and without polluting each other's context, then reports a per-scan summary count. Use when running a manual repo-health pass; subvariants currently include `gc-stale-todos` and `gc-duplicated-blocks`.
Read-only repo-health scan. Use when running a manual repo-health pass to surface stale tech-debt markers. Finds `TODO`/`FIXME`/`XXX`/`HACK` comments where `git blame` shows the introducing commit is more than 30 days old, then files one tracker issue per finding with the original commit's sha/author/date/subject. Never edits source. Tracker-agnostic.
Use when committing changes to git, before running commit commands, to ensure explicit file staging, verification, and PR-friendly commit message format
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Uses Bash, Write, or Edit tools
Uses Bash, Write, or Edit tools
Has parse errors
Some configuration could not be fully parsed
Has parse errors
Some configuration could not be fully parsed
A Claude Code plugin that catches common git and gh footguns before they
land. Blocks the moves you regret, nudges the moves you forget, and ships a
handful of git skills (/making-git-commits, /rebase, /merge-pr,
/fix-github-issue), a multi-agent review skill (/review), a
disciplined refactor skill (/refactor), a ratchet-the-harness skill
(/ratchet-harness), and a set of read-only repo-health garbage-collection
scans (/gc-run dispatches all in parallel; /gc-stale-todos and
/gc-duplicated-blocks are also standalone) that codify a clean PR workflow.
Drop it into any git repo. The hooks run only when relevant — outside a git repo, on commands that don't match, or in environments that opt out, they fall through silently.
There are two paths, depending on whether you want the plugin available across all your repos (user-level) or scoped to a specific project (project-level). Either way, the install is a one-time, per-machine action — Claude Code does not silently install plugins from a project's settings without the user's explicit say-so.
claude plugin marketplace add ZainRizvi/git-workflow-guards
claude plugin install git-workflow-guards@git-workflow-guards
That's it. The marketplace and plugin are persisted to ~/.claude/, and every Claude Code session (in any directory) has the plugin enabled.
Check this snippet into your repo's .claude/settings.json:
{
"extraKnownMarketplaces": {
"git-workflow-guards": {
"source": { "source": "github", "repo": "ZainRizvi/git-workflow-guards" }
}
},
"enabledPlugins": {
"git-workflow-guards@git-workflow-guards": true
},
"env": {
"GIT_WORKFLOW_REQUIRED_CHECKS": "Lint"
}
}
Commit it. When a teammate opens the repo with Claude Code for the first time, Claude Code prompts them to trust the marketplace. One click, and the plugin is enabled for that machine — persistent across sessions, no further prompts.
If you'd rather not wait for the prompt, the user-level CLI commands above install the same thing immediately.
If your project doesn't run a CI check named Lint, change GIT_WORKFLOW_REQUIRED_CHECKS to your check names (space- or comma-separated). Leave it empty to disable the merge-blocking hook.
Point Claude Code at a checkout:
claude --plugin-dir ~/code/git-workflow-guards
PreToolUse on Bash:
| Hook | What it does |
|---|---|
strip-redundant-git-C.sh | Denies git -C <dir>. Use cd/pushd instead. |
simplify-git-push.sh | Rewrites git push -u origin <current> → git push. |
warn-no-verify-push.sh | Blocks git push --no-verify unless the command also includes --bypass. |
ban-gh-api-comments.sh | Rewrites gh api repos/.../{pulls,issues}/N/comments to the friendlier gh pr/issue view N --comments. |
block-delete-branch-in-worktree.sh | Strips --delete-branch from gh pr merge when CWD is a worktree (deleting would break the worktree checkout). |
warn-amend-pushed-commits.sh | Blocks git commit --amend when HEAD is already on the remote (would force a push). |
block-blanket-git-add.sh | Blocks git add -A, git add ., git commit -a/-am. List paths explicitly. |
block-commit-on-main.sh | Blocks git commit while on main/master/trunk. Override with CLAUDE_ALLOW_MAIN_WORK=1. |
block-merge-on-red-ci.sh | Blocks gh pr merge when required CI checks aren't green. Configure required checks via GIT_WORKFLOW_REQUIRED_CHECKS (default: empty → hook is a no-op). Override with CLAUDE_ALLOW_RED_MERGE=1. |
warn-on-pr-merge.sh | Warns (does not block) when the agent invokes gh pr merge. Reminder that "merging is a human action" — agents hand off, humans land. Pairs with block-merge-on-red-ci.sh, which still hard-blocks the unsafe case. |
PreToolUse on Edit|Write|MultiEdit|NotebookEdit:
| Hook | What it does |
|---|---|
block-edits-on-main-or-root.sh | Blocks edits while on main/master/trunk or while CWD is the root worktree. Allows edits whose target file path lives in a sibling worktree. Override with CLAUDE_ALLOW_MAIN_WORK=1. |
PostToolUse on Bash:
| Hook | What it does |
|---|---|
remind-ci-after-push.sh | After git push, reminds the agent to poll CI with gh run watch. |
remind-pr-update-after-push.sh | After git push, if the current branch already has an OPEN PR, reminds the agent to consider whether the PR title/description should be updated to reflect the full branch diff. No-op when no PR exists for the branch. |
post-merge-watch-deploy.sh | After gh pr merge, reminds the agent to watch the post-merge deploy run on the target branch. |
Opinionated Claude Code skills for web-app developers: distinctive frontend design, persistent dev browser for stateful exploration, Paddle payments integration, Vercel infrastructure setup, SEO. Pulls in git-workflow-guards transitively for git/PR-workflow guards.
A Claude Code plugin whose only job is to embed OTHER plugins into a target repo as project-local plugins. Reads .claude/embedded-plugins.json in the target repo, clones each source plugin, and drops it under .claude/plugins/ as a wholesale copy. Useful for environments (Claude Code Web, restricted-network CI) where marketplace-based plugin installs are unreliable or impossible.
Skill and reference docs for building Android apps for Meta Portal devices (touch and TV). Covers SDK setup, sideloading, Portal-specific design constraints, and hzdb MCP usage.
npx claudepluginhub zainrizvi/git-workflow-guards --plugin git-workflow-guardsUpstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Comprehensive startup business analysis with market sizing (TAM/SAM/SOM), financial modeling, team planning, and strategic research
v9.44.1 — Patch release for Gemini environment/version detection and qwen auth gating. Run /octo:setup.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications