Hetu.
Platform / Verification guard

Nothing reaches the agent until it passes every check.

One shared service, called by all three tiers, so verification stays auditable in one place. Failing a single check refuses the conclusion rather than downgrading it.

01The serviceSection 1 of 3

One shared service, called by every tier.

The first failure ends the call. Nothing downstream runs, and the label is not quietly downgraded.

The guard

one shared service
Temporal ordering
Magnitude consistency
Gate validity
Sample-size floorn=3 of 5
Label match · not reached

Conclusion refused

The first failure ends the call. Nothing downstream runs, and the label is not quietly downgraded.

  • Action held
  • Falsification test returned
  • Written to the log

Five checks in sequence, called by every tier, so there is one place to audit what verification did.

02The checksSection 2 of 3

Five checks. What each one asserts, and what happens on failure.

Temporal ordering

The stated cause's timestamp precedes the stated effect's. Causes cannot postdate effects.

Refuse

Refuse to render. Surface both timestamps.

Magnitude consistency

The claimed attribution, applied to the real baseline, produces an effect size within tolerance of the observed anomaly.

Refuse

Refuse to render. Surface the mismatch.

Gate validity

The conclusion isn't sitting downstream of an active data-integrity fault on the same entity.

Suppress

Suppress. Surface the upstream fault instead.

Sample-size floor

Every metric cited in the conclusion clears the minimum viable threshold for its decision type.

Refuse

Refuse to render. Name the thin metric.

Label match

The rendered language matches the computed confidence label exactly.

Regenerate

Block at narration. Regenerate with correct framing.

i

Confounder detection is not a guard check — it runs inside Tier 2, before attribution, so a declared policy change or macro event suppresses the attribution rather than reaching the guard at all.

03Refusal loggingSection 3 of 3

A refusal is a record, not a gap.

Every refusal is written with the check that failed, the values that failed it, the tier that produced the candidate conclusion, and the falsification test that would settle the question. Refusals are queryable and countable per decision type.

That count is the most useful diagnostic in the system. A decision type refusing 40% of the time is telling you exactly where the graph is underspecified, and it is telling you before an agent acts on the gap rather than after.

Next

Then decide what the agent is allowed to do unsupervised.

A verified conclusion and an authorised action are two different questions.