Aglet

Prevent Duplicate Column Identity Mistakes

The useful lesson is that a column heading is a label, not always a unique identifier. Preserve the representation that collapsed distinct columns and explain the supported disambiguation rule. Keep visual naming and execution identity connected so a future preview redesign cannot quietly reintroduce the same ambiguity.

Keep the lesson for the next incident

  1. Document the source identity rule

    Explain how source columns remain distinct when headings repeat or normalize to the same text. State which identity the confirmed mapping persists and when a changed file requires review. Include unsupported layouts and their error behavior so support guidance does not promise automatic recovery where no unambiguous mapping exists.

  2. Keep distinct-value fixtures

    Retain two repeated headings with obviously different source values and known destination assignments. Include a normalized collision and a reordered variant. Document why each matters so future fixture simplification does not remove the one condition that exposes a label-keyed dictionary or a stale source-position mapping.

  3. Review mapping representation changes

    Assign a review when column labels, normalization, mapping serialization, or file replacement behavior changes. Compare the exact values through execution, not just the preview. Track confirmed merged-column outcomes separately from general mapping confusion so a successful status cannot hide a recurrence of silent value loss.

What to carry forward

Close with a stable source-identity contract, readable duplicate-label fixtures, and an owner for mapping representation changes. Preserve any producer limitation in guidance. The next maintainer should be able to follow two equally named columns to different destinations without guessing from a generated display suffix.

Technical background: DuckDB documentation.

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