Spaces:
Sleeping
Sleeping
| # 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. | |