list-pending — Claude Code command: what it does, how to install
Lists review actions blocked during the current session. Use it to find a tool call that needs manual approval before retrying.
/plugin marketplace add wshobson/agents
/plugin install review-agent-governance@claude-code-workflowsWhat list-pending does
This slash command scans the active Claude Code session for tool calls stopped by the review-governance PreToolUse hook. It keeps the newest N entries, with 10 used by default, and shows the tool plus its command or file path. After choosing an item, approve it with /approve-review "<reason>" and retry the original call.
The command does not read or modify ./review-receipts/. protect-mcp 0.7.4 creates a receipt only when a tool call runs, so a rejected call is visible in the session rather than in the receipt file. Earlier sessions cannot be searched. A call made while ./.review-approved exists bypasses the block and will not appear here.
What it helps with
- list blocked review actions in the active session
- inspect a Bash or Write call before approval
- limit the output to the latest N blocks
- identify the tool stopped by the policy
Example prompts for the agent
- Run
/review-agent-governance:list-pendingand show the review actions blocked in this session. - Use
/review-agent-governance:list-pending --last 5to display the five latest blocks. - Find the blocked call I should approve before retrying it.
How to install list-pending
1Plugin marketplace
/plugin marketplace add wshobson/agents/plugin install review-agent-governance@claude-code-workflows2Manually: put the files in place
.claude/commands/list-pending.mdCall it with /list-pending. For all projects use ~/.claude/commands/
Manually: put the files in place
~/.codex/prompts/list-pending.mdCall it with /prompts:list-pending. Codex marks this format deprecated in favour of skills
Manually: put the files in place
.github/prompts/list-pending.prompt.mdManually: put the files in place
.gemini/commands/list-pending.tomlGemini stores commands as TOML: the prompt text goes into the prompt field
Questions about list-pending
How do I install list-pending in Claude Code?
Add the marketplace with /plugin marketplace add wshobson/agents, install the plugin using /plugin install review-agent-governance@claude-code-workflows, then use .claude/commands/list-pending.md.
What does list-pending do?
It reports review-surface tool calls blocked in the active session and keeps the newest N entries. Each result includes the tool name and its command or file path.
Why does list-pending omit blocks from earlier sessions?
A denied call never runs, so protect-mcp 0.7.4 does not create a receipt for it. The command can therefore inspect only denials recorded in the current session.
Source text
list-pending.md · MIT
--- description: "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/." argument-hint: "[--last N]" --- # 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: ```bash npx [email protected] 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`
© Tom Farley · MIT · wshobson/agents