Outbound validator + refine loop

Configurable blocking threshold

The outbound validator emits findings with severity levels (info / minor / major / critical). The blocking threshold decides which severities actually block a send vs which just log a finding and let the send go through.

Configurable per-binding + per-template.

The three threshold levels

Threshold Blocks on Use when
block-all Any finding (info+) Strictest. Use for high-risk templates (legal-related sends, payment confirmations).
major+critical (default) major + critical only Balanced. Default for most templates.
critical-only critical only Loosest. Use for high-volume low-stakes templates (Thank-you message, generic FAQ replies).

Per-validator-binding default

Each validator binding (e.g. parking_info_relevance, language_match, factual_accuracy) carries a default threshold set tenant-wide.

Edit defaults in AI Cockpit → Validators → click the binding → Default threshold.

Per-template override

A specific task template can override the binding's default. In the Task Templates editor → Validator behavior:

  • Inherit binding default (most templates).
  • Override → pick a different threshold for THIS template only.

Useful when one template (say, Welcome message) needs critical-only because too many major-rated findings are false positives on welcome-message content.

Per-severity confidence threshold

Each validator finding also carries a confidence score (0-1). The binding's confidence threshold decides when a finding is even reported:

  • Default 0.6 — only findings with confidence > 0.6 surface.
  • Lower to 0.4 → more findings surface (more false positives, more sensitive).
  • Raise to 0.8 → fewer findings (only high-confidence problems block).

Configurable per-validator. The threshold AND severity combine: a major finding with confidence 0.5 doesn't block under default settings (below 0.6 threshold).

Findings classified as non-issue

Some findings are explicitly non-issue — the validator says "I noticed X but X is fine" or returns a truncated finding. these no longer count toward the verdict — only actionable findings produce a block.

Earlier (pre- a disregard finding + a truncated finding could combine to produce a non-clean verdict that blocked a correct send.

Empty-thread-context guard

Before

Disabling a binding entirely

Operator can pause a validator binding from the UI: AI Cockpit → Validators → PAUSE. The binding stops running until resumed.

Earlier (pre- PAUSE/DELETE/EDIT threw raw DB 23505 errors on platform-shared validators. Fixed; per-tenant override now correctly suppresses the platform default.

Source: the FlatsBratislava operator manual.