Expand description
Friction ladder — Addendum A §3 and §6.3.
§The invariant
Every command carries a RiskDirection. Only Increases is
gated. Reduces is always instant. Neutral is passthrough.
Applying a friction gate to a Reduces command is a compile
error (see [FrictionGate::apply]). See ADR-014.
This is the single most important invariant in the crate graph. Violating it means a tired operator at 2 AM can’t kill their positions. That outcome is not allowed to be reachable from any code path in this repository.
Structs§
- Friction
Gate - A gate applied in front of a command. The generic
Dbinds toRiskDirectionat the type level so only risk-increasing commands can be gated. - Increases
- Phantom marker type representing
RiskDirection::Increasesat the type level. Used to parameterizeFrictionGate. - Risk
Context - Engine-reported risk context the classifier/friction layer consults to escalate TILT → L3 or L4.
Enums§
- Friction
Level - The friction escalator’s current level.
- Risk
Direction - Classification of a command’s effect on operator risk.
Traits§
- Gateable
Direction - Sealed marker trait that lists the directions a gate may apply
to. Only
Increasesimplements it. Attempting to parameterizeFrictionGatewithReducesorNeutralfails at compile time.