About the implementation and examples
Engineering notes draw on author-supplied MailTrace development reports through 13 October 2026. They describe the documented revision, including local work, rather than independently verified live deployment. Experiment designs and architecture proposals describe work to evaluate. Examples are educational, use synthetic data and are not copied production code.
Use families as navigation vocabulary
The reviewed design defines contact, complaints, safeguarding, housing, records, legal, therapy, financial_support, education, medical, case_management and other. A versioned mapping connects detailed historical labels to these broader families. Unknown labels remain reviewable instead of being forced into a convenient category.
A case may contain three separate records requests and two different complaints about contact arrangements. They can share a family while remaining distinct issues, with their own sources, dates and status. Conversely, one concrete issue may involve several themes. A primary family is a navigation choice, not a complete statement of meaning.
Count issues within families instead of collapsing them
This synthetic example contains three issues but only two families. The grouping changes how a list is presented; it does not merge the issue records or their evidence memberships.
from collections import Counter
issues = [
{"id": "request-a", "family": "records"},
{"id": "request-b", "family": "records"},
{"id": "complaint-a", "family": "complaints"},
]
counts = Counter(issue["family"] for issue in issues)
assert counts == {"records": 2, "complaints": 1}
assert len({issue["id"] for issue in issues}) == 3Measure clarity without rewarding fewer rows
A smaller sidebar is not automatically better. If combining rows hides a missed response, the product has reduced visible complexity by losing useful information. Evaluation should ask whether users can find a specific request and all its evidence, not simply whether the number of labels decreased.
Migration should therefore preserve original records, map labels explicitly and require review for ambiguous reorganisations. Saved issue names can improve over time while source links and history remain stable. The twelve-family vocabulary is a way to make the product easier to browse; the number of issues should follow the evidence.