design: Condition has And/Not but no Or #5

Open
opened 2026-06-11 15:37:59 +02:00 by yorunikakeru · 0 comments
Owner

`IR.Condition` exposes `And` and `Not` only. `Or` is expressible as `Not (And (Not a) (Not b))` but that's hostile to intent.json diffability/readability (the spec sells intent.json as human-readable) and to the Watcher, which has to evaluate three extra nodes.

Small, contained change: add `Or Condition Condition` + wire tag "or", extend DSL with `(<||>)`, bump IR version per policy. Worth doing before the Rust deserializer exists — afterwards every sum extension costs a cross-repo coordination round.

\`IR.Condition\` exposes \`And\` and \`Not\` only. \`Or\` is expressible as \`Not (And (Not a) (Not b))\` but that's hostile to intent.json diffability/readability (the spec sells intent.json as human-readable) and to the Watcher, which has to evaluate three extra nodes. Small, contained change: add \`Or Condition Condition\` + wire tag "or", extend DSL with \`(<||>)\`, bump IR version per policy. Worth doing before the Rust deserializer exists — afterwards every sum extension costs a cross-repo coordination round.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
FrogOS/IR#5
No description provided.