Incantory
Sign in
Text promptMITNot scanned

List Pending

List the review actions that the review-governance policy blocked in this session. protect-mcp 0.7.4 writes no receipt for a denied call, so the list comes from the session, not from ./review-receipts/.

wshobson/agentsv10 stars · 0 forks · 0 makes≈580 tokens

List Pending Reviews

List the review-surface actions that the review-governance policy blocked in the current Claude Code session. These are candidates for human approval via /approve-review.

protect-mcp 0.7.4 writes a receipt only for a tool call that ran. A denied call never runs, so it has no receipt, and ./review-receipts/receipts.jsonl cannot show denials. The PreToolUse hook blocks a denied call with exit code 2, and Claude Code shows that block in the session, so the session is where denials are visible.

Usage

/list-pending
/list-pending --last 5

What this does

  1. Looks back through the current session for tool calls that a PreToolUse hook blocked.
  2. Keeps the most recent N (default 10).
  3. Prints each one with the tool name and the command or file path.

It cannot list denials from earlier sessions, because protect-mcp 0.7.4 does not log them.

Check a command against the policy

To check whether a specific command is denied right now, run the policy evaluation in a shell. Exit 2 means the policy denies it, and exit 0 means it is allowed:

npx protect-mcp@0.7.4 evaluate --policy ./review-governance.cedar \
  --tool Bash --input '{"command":"gh pr review 42 --approve"}'

The evaluation ignores the approval flag, so it shows what the policy does when no approval window is open.

What to show the user

Blocked in this session (most recent first, top 10):

  Bash   gh pr review 42 --approve --body 'LGTM'
  Write  .github/workflows/ci.yml
  Bash   gh issue comment 18 --body '...'

To approve one of these and retry, run:
  /approve-review "<reason>"
Then retry the original tool call.

When there are no denials

No tool call was blocked in this session.

This is the common state. It means either the agent has not attempted any review-surface actions, or the approval flag has been present for every attempt.

Notes

  • The command reads the session only. It does not read or change ./review-receipts/.
  • A call made while ./.review-approved exists skips the policy, so it is never blocked and never appears here.

References

  • Approve an action: /approve-review "<reason>"
  • Verify the signed receipts: the "Verifying the receipts" section of the review-agent-setup skill
  • Plugin README: ../README.md