diff --git a/.claude/agent-memory/architecture-reviewer/MEMORY.md b/.claude/agent-memory/architecture-reviewer/MEMORY.md index d23f742e..5db3c49a 100644 --- a/.claude/agent-memory/architecture-reviewer/MEMORY.md +++ b/.claude/agent-memory/architecture-reviewer/MEMORY.md @@ -18,12 +18,56 @@ - `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 +## Known Staff App Issues (full scan 2026-03-19) +- [recurring_violations.md](recurring_violations.md) - Detailed violation patterns + +### Critical +- ProfileCubit calls repository directly (no use cases, no interface) +- BenefitsOverviewCubit calls repository.getDashboard() directly (bypasses use case) +- StaffMainCubit missing BlocErrorHandler mixin +- firebase_auth imported directly in auth feature repos (2 files) + +### High (Widespread) +- 53 instances of `context.read<>()` without `ReadContext()` wrapper +- ~20 hardcoded Color(0x...) values in home/benefits widgets +- 5 custom TextStyle() in faqs_widget and tax_forms +- 8 copyWith(fontSize:) overrides on UiTypography +- ~40 hardcoded SizedBox spacing values +- Hardcoded nav labels in staff_nav_items_config.dart +- Zero test files across entire staff feature tree + ## Design System Tokens - Colors: `UiColors.*` - Typography: `UiTypography.*` - Spacing: `UiConstants.space*` (e.g., `space3`, `space4`, `space6`) - App bar: `UiAppBar` +## Known Client App Issues (full scan 2026-03-19) + +### Critical +- Reports feature: All 7 report BLoCs call ReportsRepository directly (no use cases) +- OneTimeOrderBloc, PermanentOrderBloc, RecurringOrderBloc call _queryRepository directly for loading vendors/hubs/roles +- OneTimeOrderBloc._onSubmitted has payload building business logic (should be in use case) +- ClientMainCubit missing BlocErrorHandler mixin +- firebase_auth imported directly in authentication and settings feature repos (2 packages) + +### High (Widespread) +- 17 hardcoded Color(0x...) across reports, coverage, billing, hubs +- 11 Material Colors.* usage (coverage, billing, reports) +- 66 standalone TextStyle() (almost all in reports feature) +- ~145 hardcoded EdgeInsets spacing values +- ~97 hardcoded SizedBox dimensions +- ~42 hardcoded BorderRadius.circular values +- 6 unsafe Modular.to.pop() calls (settings, hubs) +- BlocProvider(create:) used in no_show_report_page for Modular.get singleton +- Zero test files across entire client feature tree +- 2 hardcoded user-facing strings ("Export coming soon") +- 9 files with blanket ignore_for_file directives (reports feature) + +### Naming Convention Violations +- CoverageRepository, BillingRepository, ReportsRepository missing "Interface" suffix +- IViewOrdersRepository uses "I" prefix instead of "Interface" suffix + ## Review Patterns (grep-based checks) - `Color(0x` for hardcoded colors - `TextStyle(` for custom text styles