data2dsl

Ticket 062: Harmonize float and percentage comparison semantics between comparator and validator (F11)

Goal and scope

Fix audit finding F11: DeterministicComparator in data2dsl_comparator.py allowed float / percentage epsilon tolerances (1e-9 / 1e-6), whereas contract validator validate.py enforced exact canonical equality _canonical_value(left) == _canonical_value(right). Harmonize the comparator and validator semantics so that:

  1. Exact equality policies (float-exact, percentage-exact) produce MATCH if and only if values are strictly canonically equal or within agreed contract precision.
  2. The validator in data2dsl_contract_v0/validate.py and DeterministicComparator in data2dsl_comparator.py agree on MATCH/CONFLICT outcomes for all float and percentage values.

SESSION_EXECUTION_AUTHORIZATION recorded from user prompt.

Acceptance criteria

Participants