React Guardrail Notice
A refusal should teach, not stonewall. When a safety system blocks a response, redacts a passage, or flags a claim, this notice names the policy that fired and the category — so a user understands why, instead of assuming the product is broken — and offers an appeal, because guardrails have false positives.
This request was declined by policy: detailed fabrication parameters for controlled process nodes.
The RMA was filed by the account owner () and references lot L2413.
Part of this response was removed by policy: customer contact details in the source document.
The estimated MTBF is approximately 240,000 hours under nominal load.
This response was allowed but flagged by policy: numerical claim not found in the retrieved sources.
Installation
Props
| Prop | Type | Description |
|---|---|---|
| status | GuardrailStatus | blocked, redacted, or flagged |
| policy | string | The rule that fired |
| category | string | Short policy category chip |
| children | React.ReactNode | Content shown for redacted/flagged |
| onAppeal | () => void | Show a request-review action |
Explain, don't stonewall
The three states are distinct actions. blocked withholds the response entirely — the notice stands in its place. redacted keeps the response but removes part of it, so the content sits above the notice with a gap explained. flagged shows everything but marks it, for the case where the right call is to let a human decide. In every case the notice names the policy in plain language and tags the category, because "this was declined because it contained export-controlled fabrication parameters" is actionable where a blank refusal just sends the user to find a workaround.
The appeal path is the acknowledgement that no classifier is perfect. A guardrail with no route to review trains users that the system is arbitrary; a Request review link says the product knows it can be wrong and gives a way through. Enforce the policy in your backend regardless — this notice reports a decision, it does not make one.
New components every week
Get the week's new Kelvin UI components and templates in one short email. No spam, unsubscribe anytime.