Expand description
The policy document: what a community declares, and what the validator refuses (§5, §6, §12).
Policies are UNTRUSTED input — a community you join hands your CPU a document to evaluate — so every cap is enforced here at validation, never at evaluation. A rejected policy is INERT (it evaluated nothing), which is a reported state rather than a silent skip: an empty subject list must never read as “everyone is clean”.
Modules§
- code
- The validator’s closed code list. A policy failing several checks reports the FIRST code in this order, so a multiply-invalid policy still produces one deterministic set of bytes.
Structs§
- ArmedBy
- A rule fires only after the named rule (same policy) convicted.
- Exempt
- Exemptions remove TARGETS, never corpus statistics: exempt content and members stay in every aggregate input (cohort sizes, thinness denominators, tenure, volume) and are barred only from being cited or convicted.
- Exempt
Patterns - Policy
- Ratio
- Rule
- Rung
- One rung of an escalation ladder. Severity, weight and piercing are declared PER RUNG — the rule is a ladder and the engine reports which rung fired.
- Shields
- Tiers
- Trusted
Bar - Standing, earned three ways. Thresholds live in the POLICY (a locally tunable shield would make two mods convict differently under identical hashes), and every input is a shared fact — tenure from the guestbook, roles from the stamped roster, activity over the DECLARED window — so two clients compute the same standing.
- Window
Enums§
- ArmScope
- Enforcement
- Exempt
Kind - Match
- Phase-1 rule types. Each entry states its admissible scopes and basis; the validator rejects anything the spec does not define, so an undefined rule type can never evaluate as a silent no-op.
- Normalize
- Normalizer names (the frozen bundle, §7.4).
skeletondeletes separators, which is why it refuses word boundaries and domain exemptions.