GateDecision

sealed interface GateDecision

The routing decision a gate reaches for a proposition. Exactly five outcomes are possible.

Inheritors

Types

Link copied to clipboard
data class Demote(val toRelation: String, val reason: String) : GateDecision

Persist the proposition, but signal that the relation it asserts should be projected as a weaker predicate (toRelation) because its evidence did not clear the relation's floor. The proposition itself stays canonical and untouched — the consumer applies the relabel when it projects, so a cheap structural signal lands as the modest claim it actually supports.

Link copied to clipboard
data object Persist : GateDecision

Persist the proposition normally.

Link copied to clipboard
data class Reject(val reason: String) : GateDecision

Reject the proposition outright; it should not be persisted.

Link copied to clipboard
data class RouteToReview(val reason: String) : GateDecision

Hold the proposition for human or downstream review rather than persisting it directly.

Link copied to clipboard
data class SkipProjection(val reason: String) : GateDecision

Persist the proposition but exclude it from projection to downstream representations.