demonstrate-tool-rejectionlisted
Install: claude install-skill systempromptio/systemprompt-demo
# Demonstrate Tool Rejection
Show a tool call being **refused**, and show that the refusal is a fact in the
audit log rather than a promise in a system prompt. A capability can sit in the
catalog, be visible to the model, be attempted in good faith — and still be
impossible to use, because policy decides, not the agent's judgement.
## When to Use
Use this when someone asks "what happens when the agent tries something it
shouldn't?", or wants to see a refusal that is enforced rather than asked for.
## What makes this different from a refusal
A model declining to do something is a preference; it can be argued with, and it
fails silently when the model is wrong. This is not that. The call is issued,
suspends at the gate, and is denied by a policy that never consults the model.
There is no prompt phrasing that gets past it.
The order is fixed and not negotiable: **policy first, human second.** When a
human approval card appears, it appears only for calls policy has already
cleared. A person can be more restrictive than policy, never less.
## How to Use
### 1. Establish the baseline
First show that the hub works and that the agent is not simply broken:
```
mcp__systemprompt__list_topics {}
```
This clears every stage and records an `allow`.
### 2. Attempt the refused tool
The hub exposes `fetch_remote_docs`, which would fetch documentation from the
public internet. This deployment does not permit outbound egress, so
`fetch_remote` is a blocked pattern in `tool_blockli