Refactor skill loading protocol in copilot-instructions Clarified session setup: only two reactive skills are pre-loaded, with three user-gated skills now lazy-loaded on demand. Updated documentation to add "AUTHORITY, RULE SCOPE, AND SKILL INVOCATION" section, revised skill trigger descriptions, and adjusted `[LOADED_DOCS: ...]` prefix logic. Documented docs-archive as a lazy-loaded skill. Added settings.local.json for local file removal permissions. No code logic changes—documentation and protocol only. |
||
|---|---|---|
| .. | ||
| .github | ||
| Areas/Admin | ||
| Components | ||
| Controllers | ||
| Domains | ||
| Factories | ||
| Filters | ||
| Helpers | ||
| Infrastructure | ||
| Mapping | ||
| Migrations | ||
| Models | ||
| Services | ||
| Views | ||
| css/devextreme | ||
| docs | ||
| js/devextreme | ||
| FruitBankConst.cs | ||
| FruitBankPlugin.cs | ||
| FruitBankSettings.cs | ||
| Nop.Plugin.Misc.FruitBankPlugin.csproj | ||
| NuGet.config | ||
| README.md | ||
| logo.jpg | ||
| plugin.json | ||
README.md
Nop.Plugin.Misc.AIPlugin (FruitBank nopCommerce Plugin)
@project { type = "nopcommerce-plugin" own-dep-projects = [ "Mango.Nop.Core, Mango.Nop.Services (in NopCommerce.Common/4.70/Libraries)" ] }
For Mango.Nop library docs see
NopCommerce.Common/4.70/Libraries/README.mdFor FruitBankHybridApp domain rules see the FruitBankHybridApp solution's.github/copilot-instructions.mdFor core measurement system rules and common domain traps, see:../../../../FruitBankHybridApp/FruitBank.Common/docs/GLOSSARY.md
Server-side nopCommerce plugin for FruitBank, a fruit and vegetable wholesaler. Manages supplier inbound delivery (receiving), warehouse weighing (net/gross/pallet/tare weights), outbound order measurement, inventory stocktaking, AI services, and Billingo invoicing. Runs inside nopCommerce 4.80.9 (net9.0).
Project file: Nop.Plugin.Misc.FruitBankPlugin.csproj
Documentation
| Document | Topic |
|---|---|
docs/SCHEMA.md |
Authoritative domain model in TOON format — all entities, DTOs, enums, relationships |
docs/DOMAIN_MODEL.md |
Behavioral docs: weight formula, MeasuringStatus lifecycle, GenericAttribute keys, entity hierarchy overview |
docs/MEASUREMENT.md |
Three measurement workflows (inbound shipping, outbound order, stocktaking), MeasuringStatus lifecycle, pricing, checkout filter |
docs/AI_SERVICES.md |
OpenAI, Cerebras, Replicate providers, FruitBankSettings, file storage, PDF conversion, audio transcription |
docs/DATA_LAYER.md |
FruitBankDbContext, StockTakingDbContext, DbTable repositories, entity mapping, FruitBankEventConsumer |
docs/SIGNALR/README.md |
SignalR endpoints, FruitBankDataController, InnVoice/Billingo integration, FruitBankAttributeService |
Folder Structure
| Folder | Purpose |
|---|---|
Areas/Admin/Controllers/ |
Admin MVC controllers — order, product, shipping, SignalR endpoints, file management |
Areas/Admin/Components/ |
Admin ViewComponents — DevExtreme grids |
Areas/Admin/Models/ |
Admin view models |
Areas/Admin/Views/ |
Admin Razor views |
Components/ |
Public-side ViewComponents |
Controllers/ |
Public-side controllers — FruitBankDataController, CheckoutController |
Domains/DataLayer/ |
DbContexts, DbTable repositories, interfaces |
Domains/EventConsumers/ |
nopCommerce entity event handlers |
Factories/ |
Model factories (order, product, shipping) |
Filters/ |
PendingMeasurementCheckoutFilter |
Infrastructure/ |
PluginNopStartup (DI), RouteProvider, ViewLocationExpander |
Mapping/ |
EF Core entity mapping, PluginBuilder |
Migrations/ |
FluentMigrator database schema |
Models/ |
Shared models — AI chat, MgBase extensions, order/product models |
Services/ |
Business logic — AI, measurement, file storage, invoicing, locking |
Dependencies
Mango.Nop.Core,Mango.Nop.Services(ProjectReferences via../../Libraries/)Nop.Services,Nop.Web(nopCommerce ProjectReferences)- AyCode.Core solution assemblies (DLL HintPaths in .csproj)
- DevExpress ASP.NET Core 25.1.3, DevExtreme 25.1.3
- SignalR, EF Core 9.0, PdfPig, PDFtoImage
Initialization & Quirks
- AcBinary Source Generator Registration: NopCommerce plugins are loaded dynamically via
AssemblyLoadContext, which prevents the .NET runtime from executing[ModuleInitializer]attributes. To ensure the high-performance binary serializers are registered (instead of falling back to slow reflection),PluginNopStartup.ConfigureServicesmust callMango.Nop.Core.AcBinaryForcedInit.ForceRegister().