Interface: OrderRule
Defined in: src/batteries/validation/types.ts:52
Relative order required between two primitive kinds.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
after | OrderingPrimitiveKind | Primitive that must occur after OrderRule.before. | src/batteries/validation/types.ts:60 |
before | OrderingPrimitiveKind | Primitive that must occur first. | src/batteries/validation/types.ts:58 |
id | string | Stable identifier used in violations and advisory configuration. | src/batteries/validation/types.ts:56 |
onlyLatestGroup? | boolean | When 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 |