Context
From concept-and-spec.md §3:
[OPEN] — DSL grammar formalization. The shape above is illustrative; v0.2 will publish a JSON Schema for the DSL with a reference parser.
Both SDKs already ship Phase β policy DSL evaluators against the illustrative shape, but the grammar isn't yet pinned down by schema. That makes it hard for third parties to build their own evaluator or for the spec to evolve without breaking interop.
Goal
Promote the illustrative DSL to a formal grammar:
- Publish
schemas/policy-dsl.json (JSON Schema Draft 2020-12) that constrains the DSL surface — operators, value types, comparison semantics, composition rules.
- Document the evaluation order in
decisions/0002-dsl-grammar.md (or whatever the next ADR number is) — short-circuit semantics, conflict resolution between rules, default-deny vs. default-allow.
- Confirm the existing test vectors still pass; expand them to cover any newly-pinned edge cases.
Comment period
This is a substantive spec change — 2-week public comment period per GOVERNANCE.md.
Why this matters
- Third-party evaluators need a contract to implement against.
- The CTS Go policy evaluator (tracked separately) needs this before it can be cross-validated.
Pointers
Context
From concept-and-spec.md §3:
Both SDKs already ship Phase β policy DSL evaluators against the illustrative shape, but the grammar isn't yet pinned down by schema. That makes it hard for third parties to build their own evaluator or for the spec to evolve without breaking interop.
Goal
Promote the illustrative DSL to a formal grammar:
schemas/policy-dsl.json(JSON Schema Draft 2020-12) that constrains the DSL surface — operators, value types, comparison semantics, composition rules.decisions/0002-dsl-grammar.md(or whatever the next ADR number is) — short-circuit semantics, conflict resolution between rules, default-deny vs. default-allow.Comment period
This is a substantive spec change — 2-week public comment period per GOVERNANCE.md.
Why this matters
Pointers