Claude Marketplaces
SkillsMCP serversMarketplacesDigestTools
Submit

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP servers by category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control
Claude Marketplaces

An independent directory of skills, plugins and MCP servers for Claude Code. Not affiliated with Anthropic.

Browse

  • Skills
  • MCP servers
  • Marketplaces
  • Weekly digest
  • Skill index
  • MCP index
  • Marketplace index

Site

  • About
  • Tools
  • Submit
  • Feedback
  • Privacy
  • llms.txt
  • Plugins reference

Maker

  • Snug
  • Agent Caffeine
  • knobs
  • Wax
  • Vectoys
  • mertduzgun.com
Crafted at
Skills/Git & Pull Requests
wshobson avatar

Review Agent Setup

wshobson/agents

This gates AI agent actions that touch external surfaces like PR reviews, merges, CI configs, and issue comments behind explicit human approval. Every attempt gets an Ed25519-signed receipt whether you allow it or deny it, so you have a cryptographically verifiable audit trail. You drop a flag file or use a slash command to open an approval window, the agent runs its action, then you close the window. It's overkill if your agent is just editing local files, but if you're letting Claude post reviews or push to protected branches and need to prove a human was in the loop, this is the tooling for it. Works alongside protect-mcp for layered policy enforcement.

installs
5.3K
GitHub stars
41.8K
last updated
Aug 21, 2026
View on GitHubSave

Install

$ npx -y skills add wshobson/agents --skill review-agent-setup --agent claude-code

Installs into .claude/skills of the current project.

Files

review-agent-governance — Setup

Gate AI agent review actions (PR reviews, comments, merges, CI edits) behind explicit human approval. Every attempt, approved or denied, produces an Ed25519-signed receipt.

When to use this plugin

Install it in projects where a Claude Code agent:

  • Reviews, comments on, or merges pull requests (gh pr review, gh pr merge)
  • Triages issues (gh issue comment, gh issue close)
  • Publishes releases (gh release create)
  • Modifies CI configuration (.github/workflows/, .gitlab-ci.yml)
  • Pushes to protected branches (main, master, release, production)
  • Posts to external notification surfaces (Slack webhooks, Discord), once you add a rule for the command that posts (the default policy does not gate them)

If the agent is only doing local file edits and running tests, this plugin is overkill. Use protect-mcp for general tool-call policy enforcement and skip this one.

One-time setup

1. Install the plugin

claude plugin install wshobson/agents/review-agent-governance

2. Copy the default policy to your project

cp .claude/plugins/review-agent-governance/policies/review-agent-governance.cedar \
   ./review-governance.cedar

You can edit this file to match your project's specific rules. See ../agents/review-policy-author.md for guidance on authoring review policies.

3. Create a receipts directory and sign key

mkdir -p ./review-receipts
echo "/review-receipts/" >> .gitignore
echo "/review-governance.key" >> .gitignore
echo "/.review-approved" >> .gitignore
if [ ! -e ./review-governance.key ]; then
  d=$(mktemp -d) && npx protect-mcp@0.7.4 init --dir "$d" && mv "$d/keys/gateway.json" ./review-governance.key
fi

protect-mcp 0.7.4 sign does not create the key, so the last command creates it, and it never replaces an existing key. Without a key, the receipts are unsigned. To rotate the key, archive ./review-governance.key and ./review-receipts/receipts.jsonl first, then run the command again. Give auditors the publicKey value from ./review-governance.key. Do not commit the file, because it also holds the private key.

Per-session workflow

The Cedar policy denies review-surface actions unconditionally. To approve a specific action, open an approval window before it and close it after.

Flag file (simplest)

# Before the action you want to approve
touch ./.review-approved

# Let Claude Code run the review / comment / merge

# Immediately after
rm ./.review-approved

Slash command (from within Claude Code)

/approve-review "Reviewing PR #123 authored by contributor X"

This creates ./.review-approved with the given reason embedded as a note, and records the reason in an unsigned approval log under ./review-receipts/approvals/. A follow-up rm is still needed to close the window.

Dry-run everything (force full policy evaluation)

If you want every tool call to go through Cedar with no approval bypass:

export REVIEW_APPROVAL_FLAG=./.never-approve

Any tool call matching a forbid rule will be denied; approved windows have no effect. Useful for CI or for a locked-down audit run.

Verifying the receipts

List all receipts:

ls -la ./review-receipts/

Verify every receipt offline with the public key:

PUB=$(node -p 'JSON.parse(require("fs").readFileSync("./review-governance.key")).publicKey')
npx @veritasacta/verify@0.9.2 --replay-chain ./review-receipts/receipts.jsonl --key "$PUB"

Exit 0 means every receipt verified. Exit 1 means a receipt failed verification, because it was tampered with, the key is wrong, or a line is malformed. Exit 2 means the receipts file could not be read.

A denied call never runs, so it has no receipt. To see what the policy blocked, run this inside Claude Code:

/list-pending

It lists the tool calls that the PreToolUse hook blocked in the current session, with the tool name and the command or path.

Example: approving a PR review

# 1. Human reviews the agent's proposed comment
$ /list-pending
  Blocked in this session:
  - Bash "gh pr review 42 --approve --body 'LGTM'"
  - Bash "gh pr comment 42 --body 'Looking good'"

# 2. Human decides the first one is appropriate, approves it
$ /approve-review "Approving LGTM on PR 42 after visual inspection"
  ./.review-approved created

# 3. Agent retries the action; this time it succeeds
$ agent: gh pr review 42 --approve --body "LGTM"
  [receipt appended to ./review-receipts/receipts.jsonl, decision=allow]

# 4. Human closes the window
$ rm ./.review-approved

The allowed call has a signed receipt that anyone with the public key can verify offline. The denied attempt has no receipt, and the approval log is not signed, so keep both in mind when you show the trail to an auditor.

Composing with protect-mcp

If both plugins are installed, each plugin's hooks/hooks.json registers its own PreToolUse hook, and Claude Code runs both on every tool call:

{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/evaluate.sh" }

Each evaluate.sh reads tool_name and tool_input from the hook payload on stdin (Claude Code sets no TOOL_NAME variable) and evaluates its own policy: ./protect.cedar for protect-mcp and ./review-governance.cedar here.

Both hooks must pass for the tool call to proceed. Cedar deny in either policy blocks it.

Standards

  • Ed25519 — RFC 8032 (digital signatures)
  • JCS — RFC 8785 (deterministic JSON canonicalization)
  • Cedar — AWS's open authorization policy language
  • IETF draft — draft-farley-acta-signed-receipts
SKILL.md on GitHub

Sponsors

SnugThe clipboard manager you and your agent can use, safelyAgent CaffeineClose your lid, come back to finished workWaxBlock anything with supervision, without erasing your iPhoneOpen StepsSponsoredFree and open-source skills that make AI coding agents easier to understand, verify, and control.

Details

Repository
github.com/wshobson/agents
Categories
Git & Pull Requests, Code Review & Quality, AI & Agent Building
First seen
May 16, 2026

More from wshobson/agents

All 174
  • Scan4.7K
  • Recsys Pipeline Architect4.3K
  • Social Publishing3.7K
  • Before You Build3.2K
  • File Conversion3.1K
  • Ai Debt Detector3K
  • Session Guard2.9K
  • Dataset Curation2.7K
  • Eval Harness First2.7K
  • Lora Qlora Recipes2.7K
  • Finetuning Method Selection2.7K
  • Preference Optimization2.7K
  • Quantized Export2.6K
  • Checkpoint Promotion2.6K
  • Grpo Rlvr Training2.6K
  • Trace To Training Data2.6K
  • Pptx Reference Deck Analysis2.6K
  • Vision Sft2.6K
  • Spark Memory Thermal Ops2.6K
  • Spark Training Gotchas2.6K
  • Spark Environment Setup2.6K
  • Typescript Advanced Types93.3K
  • Tailwind Design System70.6K
  • Nodejs Backend Patterns48.8K

Recommended

More Git & Pull Requests
1elevenlabs avatarupdate-skills-from-changelogelevenlabs/skillsUpdate ElevenLabs agent skills from a merged weekly changelog in elevenlabs-dx, then open a pull request in elevenlabs/skills. Trigger after a changelog merges 5.1Kinstalls
2affaan-m avatarflutter-dart-code-reviewaffaan-m/eccLibrary-agnostic Flutter/Dart code review checklist covering widget best practices, state management patterns (BLoC, Riverpod, Provider, GetX, MobX, Signals), D4.9Kinstalls
3affaan-m avatarflutter-dart-code-reviewaffaan-m/everything-claude-codeflutter dart code review4.7Kinstalls
4dpearson2699 avatarapp-store-reviewdpearson2699/swift-ios-skillsAudits App Store submission readiness and rejection risk across current review guidelines, PrivacyInfo.xcprivacy and required-reason APIs, privacy labels, ATT, 4.6Kinstalls
5affaan-m avatarprediction-market-risk-reviewaffaan-m/eccReview prediction-market, basket, oracle, and trading-agent workflows for compliance, safety, data-quality, privacy, and execution risk. Use before any workflow4.4Kinstalls
6giuseppe-trisciuoglio avatarreact-code-reviewgiuseppe-trisciuoglio/developer-kitProvides comprehensive code review capability for React applications, validates component architecture, hooks usage, React 19 patterns, state management, perfor4.3Kinstalls