# Architecture Reviewer Memory ## Project Structure Confirmed - Feature packages: `apps/mobile/packages/features///` - Domain: `apps/mobile/packages/domain/` - Design system: `apps/mobile/packages/design_system/` - Core: `apps/mobile/packages/core/` - Data Connect: `apps/mobile/packages/data_connect/` - `client_orders_common` is at `apps/mobile/packages/features/client/orders/orders_common/` (shared across order features) ## BLoC Registration Pattern - BLoCs registered with `i.add<>()` (transient) per CLAUDE.md -- NOT singletons - This means `BlocProvider(create:)` is CORRECT (not `BlocProvider.value()`) - `SafeBloc` mixin exists in core alongside `BlocErrorHandler` ## Known Pre-existing Issues (create_order feature) - All 3 order BLoCs make direct `_service.connector` calls for loading vendors, hubs, roles, and managers instead of going through use cases/repositories (CRITICAL per rules, but pre-existing) - `firebase_data_connect` and `firebase_auth` are listed as direct dependencies in `client_create_order/pubspec.yaml` (should only be in `data_connect` package) - All 3 order pages use `Modular.to.pop()` instead of `Modular.to.popSafe()` for the back button ## Design System Tokens - Colors: `UiColors.*` - Typography: `UiTypography.*` - Spacing: `UiConstants.space*` (e.g., `space3`, `space4`, `space6`) - App bar: `UiAppBar` ## Review Patterns (grep-based checks) - `Color(0x` for hardcoded colors - `TextStyle(` for custom text styles - `Navigator.` for direct navigator usage - `import.*features/` for cross-feature imports (must be zero) - `_service.connector` in BLoC files for direct data connect calls - `Modular.to.pop()` for unsafe navigation (should be `popSafe()`)