Build a useful investigation brief
Build paired fixtures
Create fixtures from real-shaped examples: two representations that should match, two values that must remain distinct, and one ambiguous pair. Include source, type, casing, whitespace, and separators. Label expected identity explicitly so a passing normalization does not hide a false merge.
Trace transformations
Follow each fixture through parsing, trimming, case conversion, lookup, join construction, persistence, and export. Capture the value at every boundary and note where type changes or truncation occurs. Use the same code revision and query shape for comparable results.
Challenge the explanation
Test whether the observed outcome follows from representation, source mapping, reused keys, or a genuinely ambiguous entity. Vary one input property at a time and compare match cardinality. If the evidence only proves correlation, state the missing source or historical observation explicitly.
What to carry forward
An investigation is useful when it includes labeled fixtures, boundary values, join results, code or query revision, and a conclusion tied to observed changes. Recommend a smallest reversible normalization or a clarification request. Leave unresolved identity pairs out of automatic repair and name their review owner.
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