Skip to content
1 min read · 279 words

Interface: OrderRule ​

Defined in: src/batteries/validation/types.ts:52

Relative order required between two primitive kinds.

Properties ​

PropertyTypeDescriptionDefined in
afterOrderingPrimitiveKindPrimitive that must occur after OrderRule.before.src/batteries/validation/types.ts:60
beforeOrderingPrimitiveKindPrimitive that must occur first.src/batteries/validation/types.ts:58
idstringStable identifier used in violations and advisory configuration.src/batteries/validation/types.ts:56
onlyLatestGroup?booleanWhen true, evaluate only the current/latest group; earlier malformed historical groups are intentionally ignored, as with Anthropic's current-turn thinking requirement.src/batteries/validation/types.ts:67
scope"adjacent-same-role-group" | "entire-turn"Whether the relationship is local to a role group or spans the whole turn.src/batteries/validation/types.ts:62
severity?"blocking" | "advisory"Whether a violation blocks dispatch. Omitted means advisory. Remarks Advisory is the default because this catalog's rules were derived from vendor DOCUMENTATION, and a live audit against each rule's own native API found that most of them block turn state the vendor accepts (16 of 17 rules measured; only thought-signature-required was confirmed enforced). Documentation describes what a vendor says it requires; only observation shows what it does. Defaulting to advisory keeps the catalog's knowledge — you still learn which primitive broke which vendor's stated contract — without rejecting dispatches the model would have served. Opt into blocking per rule when you have verified the constraint on the surface you dispatch through. See docs/batteries/validation/api-surface-scope.md.src/batteries/validation/types.ts:81
type"order"Discriminator selecting the relative-order evaluator.src/batteries/validation/types.ts:54