Spaces:
Running
0010 Shared Normalization Contract
Date: 2026-07-13
Status
Accepted
Context
Interpreter, Scribe scoring, training scoring, and both lexical retrievers carried local normalization implementations. Their names overlapped, but their contracts differed: the Interpreter normalizes units, Vietnamese number words, and relative dates; scoring compares case-insensitively without semantic conversion; lexical retrieval additionally folds diacritics and punctuation.
Decision
Create the installable shared/carepath_shared package. Move the Interpreter
normalizer there unchanged as normalize_text, and make every former local
normalizer a direct import from this package. Keep the existing scoring and
retrieval semantics as the separately named normalize_for_metrics and
normalize_for_match functions, rather than silently changing metric scores or
term matching.
Consequences
- Normalization algorithms have one owner and one characterization suite.
- Existing module import paths remain compatible.
- A future semantic consolidation must explicitly revise the characterization suite and evaluation baseline; it is not part of this restructure.