Found during /lex-lead deep review of commit 969fe09.
Problem
Every other catalog/import in this codebase is namespaced behind a domain operations property:
project.SemanticDomains.ImportCatalog()
project.Anthropology.ImportCatalog()
project.Phonemes.ImportCatalog()
The new methods (ImportLocalizedLists, ImportLocalizedListsForEnabledWS) hang directly off FLExProject as peers of OpenProject / CloseProject -- breaking that convention.
Localized lists do span multiple domains (SemDom + AnthroList + LexDb), but a project.LocalizedLists (or project.Lists) operations property would preserve the discovery model and keep the API user-centric (CLAUDE.md "User-Centric Not Technology-Centric").
Why it matters
- Users won't find these methods via tab-completion under
project.SemanticDomains. where they conceptually belong
- Adds two top-level methods to
FLExProject instead of one accessor, growing the discovery surface
- The convention is well-established; deviating without strong reason cements the inconsistency
progress=None parameter pattern is established on *Operations.ImportCatalog but not on FLExProject itself — namespacing also fixes that (mentioned below)
Proposed correction
Introduce a new LocalizedListsOperations (or ListsOperations) class that owns these methods:
project.LocalizedLists.Import(language_code)
project.LocalizedLists.ImportForAllAnalysisWritingSystems() # better name, see naming issue
FLExProject exposes them via a lazy @property LocalizedLists accessor that returns the operations instance, mirroring how SemanticDomains is wired.
Found by
lex-author P0 review of 969fe09
Related
- See the naming issue (
ImportLocalizedListsForEnabledWS is encoded-style) -- both fixes ride together
Found during /lex-lead deep review of commit 969fe09.
Problem
Every other catalog/import in this codebase is namespaced behind a domain operations property:
project.SemanticDomains.ImportCatalog()project.Anthropology.ImportCatalog()project.Phonemes.ImportCatalog()The new methods (
ImportLocalizedLists,ImportLocalizedListsForEnabledWS) hang directly offFLExProjectas peers ofOpenProject/CloseProject-- breaking that convention.Localized lists do span multiple domains (SemDom + AnthroList + LexDb), but a
project.LocalizedLists(orproject.Lists) operations property would preserve the discovery model and keep the API user-centric (CLAUDE.md "User-Centric Not Technology-Centric").Why it matters
project.SemanticDomains.where they conceptually belongFLExProjectinstead of one accessor, growing the discovery surfaceprogress=Noneparameter pattern is established on*Operations.ImportCatalogbut not onFLExProjectitself — namespacing also fixes that (mentioned below)Proposed correction
Introduce a new
LocalizedListsOperations(orListsOperations) class that owns these methods:FLExProjectexposes them via a lazy@property LocalizedListsaccessor that returns the operations instance, mirroring howSemanticDomainsis wired.Found by
lex-author P0 review of 969fe09
Related
ImportLocalizedListsForEnabledWSis encoded-style) -- both fixes ride together