Skip to content
Product

Five capabilities, one decision contract

Each could have been a product on its own. Because they share one decision contract they do more together: the signal a guardrail produces is policy's input, policy's constraint intersects routing's candidate list, and the decision that comes out is written to a trace.

The shared contract

These are not five loosely coupled services. All of them read the same request context and write into the same decision pool; constraints intersect and obligations union. No layer can widen a boundary another layer drew — the ordering and the merge rules are defined in one place.

  1. 1The guardrail pipeline reads the prompt and writes signals
  2. 2Policy consumes the signals and makes the decision
  3. 3Routing intersects the candidate list with the decision's constraint
  4. 4The prompt version becomes part of the decision
  5. 5Everything that results is written to the decision trace

If you don't know which to start with

We usually start with the policy engine: running your own rule set in shadow mode and measuring divergence is the fastest way to see where everything else fits.