# Architecture Reviewer Memory

## Project Structure Confirmed
- Feature packages: `apps/mobile/packages/features/<app>/<feature>/`
- 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()`)
