Skip to content

Violation detection while writing

When you’re writing or editing a policy, PolicyBot can check the text against every other published policy in your tenant, looking for conflicts and redundancies. This is the violation detection sidebar — optional, on-demand, and usually faster than running it in your head.

You’re most likely to want this when:

  • Your tenant already has a lot of policies and you’re worried a new one might contradict something that exists.
  • You’re reviewing a change someone else made and want a second opinion.
  • You’ve published a policy and want to check whether another policy you wrote months ago now says the opposite.

From the policy create or edit form, click Check Policy in the top toolbar. A panel slides out on the right with live results.

The panel keeps updating as you edit. There’s usually a ~1–3 second delay between the last keystroke and a refreshed result.

Results are grouped into three categories:

The text you’re writing directly contradicts an active policy. Example: your tenant already has a policy saying “all client data must be stored in the US” and you’re writing one that says “client data may be stored in the EU for EU clients.”

Each hard violation card shows:

  • The conflicting policy (clickable to open it in a new tab).
  • Matched text — which part of what you’re writing triggered the conflict.
  • Why it conflicts — a one-sentence PolicyBot explanation.
  • Severity and confidence — how high-stakes this conflict is and how sure PolicyBot is.

The text overlaps significantly with an existing policy, or is redundant, or is ambiguously phrased. This isn’t a contradiction — just a nudge that you might not need this new policy, or that the wording needs tightening.

Minor improvements — add an example, clarify a scope, replace vague language. Purely advisory.

For each finding you can:

  • Click the card — highlights the matched text in the body.
  • 👍 / 👎 — mark the detection as useful or not. This feedback trains the model over time and also silences false-positive detections from recurring on the same policy for you.
  • Dismiss — removes the card from this session. It’ll re-appear if you re-open the policy and the text still matches.
  • Only published, active policies are used for comparison.
  • Drafts and archived policies are ignored.
  • Policies outside their effective window (expired or not-yet-effective) are ignored.
  • The check respects your tenant boundary — it never compares against another organization’s policies.
  • The check is not instant — there’s a round-trip to the AI service. Typical latency is 2–5 seconds on tenants with <100 policies; up to ~30 seconds with thousands of policies.
  • The timeout is 30 seconds. If the check times out, you’ll see partial results or an error — re-open the sidebar to retry.
  • There’s no persistent “violations report” — results are recomputed every time you open the sidebar.
  • It doesn’t save a record of detected conflicts to the policy or its history. If you want a record, copy the finding into a comment.
  • It doesn’t block you from publishing. Even with a hard violation open in the sidebar, you can still click Save & publish. PolicyBot’s job is to inform — the publish decision is yours.
  • It doesn’t check against draft versions of other policies. Two Policy Editors drafting contradictory policies won’t be caught until one of them publishes.