# FiscalFlow Agent Routing Prefer retrieval-led reasoning over pretraining for .NET work. Workflow: skim existing FiscalFlow patterns -> consult dotnet-skills by name -> implement smallest change -> verify build. ## Backend Layers **Domain** (`src/FiscalFlow.Core/`): Entities, value objects, domain events, interfaces. - Skills: modern-csharp-coding-standards, type-design-performance **Application** (`src/FiscalFlow.Application/`): CQRS commands/queries via MediatR, DTOs, validation pipelines. - Skills: api-design, modern-csharp-coding-standards **Infrastructure** (`src/FiscalFlow.Infrastructure/`): EF Core repositories, event store, external service clients. - Skills: efcore-patterns, database-performance, dependency-injection-patterns **Integrations** (`src/FiscalFlow.Integrations/`): Accounting system providers. - Key interface: `IAccountingSystem` in `Accounting/IAccountingSystem.cs` - New providers: implement IAccountingSystem, register via DI in `Extensions/DependencyInjection.cs` - Skills: api-design, csharp-concurrency-patterns (retry/resilience) **API** (`src/FiscalFlow.Api/`): Controllers, middleware, Swagger configuration. - Skills: api-design ## Frontend React 18 + TypeScript + Vite + TailwindCSS: - State: Zustand stores in `frontend/src/stores/` - API: Client layer in `frontend/src/api/` - Pages: `frontend/src/pages/` (Login, Register, Upload, Review, Connect, Settings, History) - Components: `frontend/src/components/` (Layout, Auth, UI) ## Testing - Unit: xUnit + Moq + FluentAssertions in `tests/FiscalFlow.UnitTests/` - Integration: WebApplicationFactory in `tests/FiscalFlow.IntegrationTests/` - Frontend: Vitest (unit), Playwright (E2E) - Quality: dotnet-slopwatch (after substantial code), crap-analysis (after test changes) ## Domain Terms - **Provider**: An accounting system integration (Fortnox, Visma, Hogia) - **Connection**: OAuth2 session linking a user to a provider - **Invoice lifecycle**: Upload -> OCR -> SupplierMatch -> VoucherGenerate -> Import - **Voucher**: Accounting entry created in the external accounting system - **SupplierCache**: Locally cached supplier list from the connected accounting system