Aglet

Verify Identifier Normalization and Join Safety

Verification for identifiers has two obligations: equivalent representations should behave alike, and distinct entities must stay distinct. Test both sides with boundary examples, compare join cardinality before and after, and inspect downstream references. A clean count alone cannot prove that identity semantics were preserved.

Check whether the outcome improved

  1. Test equivalence rules

    Exercise the accepted casing, whitespace, separators, types, padding, and encoding cases that the rule claims to handle. Pair each with an intentionally different identifier. Confirm the normalized output and expected identity for every fixture, including empty and malformed values.

  2. Compare join behavior

    Run the relevant join or lookup on the same bounded cohort before and after normalization. Compare matched rows, unmatched rows, one-to-many expansions, duplicate keys, and affected aggregates. Inspect changed records directly; matching totals can still conceal a swapped or merged entity.

  3. Check boundary contracts

    Verify storage, URLs, exports, and downstream consumers receive the documented identifier form. Confirm malformed or ambiguous values produce a visible review outcome rather than an invented key. Retain the fixture set and query outputs with the exact revision used for verification.

What to carry forward

Accept the normalization only when equivalent forms join consistently, distinct fixtures remain separate, cardinality changes are explained, and every boundary honors the documented representation. Keep the gate open for untested sources or ambiguous entities. Report the cohort and format limits so later consumers do not overgeneralize.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow