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.

Response withheldExport control

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.

Content redactedPII

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.

Flagged for reviewLow confidence

This response was allowed but flagged by policy: numerical claim not found in the retrieved sources.

Installation

npx shadcn@latest add "https://kelvinui.com/registry/guardrail-notice.json"

Props

PropTypeDescription
statusGuardrailStatusblocked, redacted, or flagged
policystringThe rule that fired
categorystringShort policy category chip
childrenReact.ReactNodeContent shown for redacted/flagged
onAppeal() => voidShow 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.