Refactor docs: topic folders, navigation, protocol sync

- Restructured documentation: added `docs/README.md` to each sub-project, moved LOGGING and SIGNALR docs into dedicated subfolders with their own `README.md`.
- Updated all cross-references to use new topic folder paths and canonical AyCode.Core doc locations.
- Updated `.csproj` files to auto-include all Markdown docs and project-level `README.md` files.
- Removed obsolete single-file docs, replaced with structured content in topic folders.
- Enforced AI Agent Protocol: session setup, output prefix, no-re-read, and mandatory `docs-check` skill after code changes.
- Added domain-critical reminders and navigation guidance to relevant `README.md` files.
This commit is contained in:
Loretta 2026-04-25 07:24:39 +02:00
parent 7faad25b23
commit 13e96ea7af
6 changed files with 62 additions and 10 deletions

File diff suppressed because one or more lines are too long

View File

@ -668,12 +668,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="docs\SCHEMA.md" /> <None Include="docs\**\*.md" />
<None Include="docs\DOMAIN_MODEL.md" /> <None Include="**\README.md" Exclude="$(DefaultItemExcludes);docs\**" />
<None Include="docs\MEASUREMENT.md" />
<None Include="docs\AI_SERVICES.md" />
<None Include="docs\DATA_LAYER.md" />
<None Include="docs\SIGNALR_ENDPOINTS.md" />
</ItemGroup> </ItemGroup>
<!-- This target execute after "Build" target --> <!-- This target execute after "Build" target -->
@ -686,4 +682,4 @@
</ItemGroup> </ItemGroup>
<Copy SourceFiles="@(PdfiumFiles)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" /> <Copy SourceFiles="@(PdfiumFiles)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
</Target> </Target>
</Project> </Project>

View File

@ -24,7 +24,7 @@ Project file: `Nop.Plugin.Misc.FruitBankPlugin.csproj`
| `docs/MEASUREMENT.md` | Three measurement workflows (inbound shipping, outbound order, stocktaking), MeasuringStatus lifecycle, pricing, checkout filter | | `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/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/DATA_LAYER.md` | FruitBankDbContext, StockTakingDbContext, DbTable repositories, entity mapping, FruitBankEventConsumer |
| `docs/SIGNALR_ENDPOINTS.md` | SignalR endpoints, FruitBankDataController, InnVoice/Billingo integration, FruitBankAttributeService | | `docs/SIGNALR/README.md` | SignalR endpoints, FruitBankDataController, InnVoice/Billingo integration, FruitBankAttributeService |
## Folder Structure ## Folder Structure

View File

@ -2,7 +2,7 @@
> Part of `Nop.Plugin.Misc.FruitBankPlugin`. See `README.md` for project overview. > Part of `Nop.Plugin.Misc.FruitBankPlugin`. See `README.md` for project overview.
> For entity model see `docs/DOMAIN_MODEL.md`. > For entity model see `docs/DOMAIN_MODEL.md`.
> For SignalR endpoints see `docs/SIGNALR_ENDPOINTS.md`. > For SignalR endpoints see `docs/SIGNALR/README.md`.
> For core measurement system rules and common domain traps, see: `../../../../../FruitBankHybridApp/FruitBank.Common/docs/GLOSSARY.md` > For core measurement system rules and common domain traps, see: `../../../../../FruitBankHybridApp/FruitBank.Common/docs/GLOSSARY.md`
Three parallel measurement workflows share the same weight formula and `MeasuringStatus` lifecycle. Three parallel measurement workflows share the same weight formula and `MeasuringStatus` lifecycle.

View File

@ -0,0 +1,31 @@
# Nop.Plugin.Misc.AIPlugin (FruitBank plugin) documentation
Topic documentation for the FruitBank-specific NopCommerce plugin (Layer 3 — consumer).
## Reference docs (flat)
- [`AI_SERVICES.md`](AI_SERVICES.md) — AI-related service integrations
- [`DATA_LAYER.md`](DATA_LAYER.md) — Data access specifics for this plugin
- [`SCHEMA.md`](SCHEMA.md) — Database schema (Toon format — LLM-optimized)
- [`DOMAIN_MODEL.md`](DOMAIN_MODEL.md) — Business domain behavior
- [`MEASUREMENT.md`](MEASUREMENT.md) — Weight measurement logic (NetWeight formula, MeasuringStatus lifecycle)
## Topic folders
- [`SIGNALR/`](SIGNALR/README.md) — SignalR endpoints exposed by this plugin (project-specific variant)
## Navigation
Per the AI Agent Core Protocol (folder navigation rule), start from this README when browsing `docs/`. Single-file reference docs remain flat; project-specific variants of framework topics (like SIGNALR) live in named subfolders.
## Critical reminders (inherited from domain)
- **`MeasuringStatus.Finnished`** is an intentional typo — do NOT "fix" the spelling (database-level value).
- **Weight formula**: `NetWeight = GrossWeight - PalletWeight - (TrayQuantity * TareWeight)`.
- **MeasuringStatus lifecycle**: NotStarted(0) → Started(10) → Finnished(20) → Audited(30).
## See also
- **Parent framework** (Mango.Nop.Core): `../../../Libraries/Mango.Nop.Core/docs/README.md`
- **Client-side app**: `../../../../FruitBankHybridApp/docs/README.md`
- **Host (nopCommerce deployment)**: `../../../../../FruitBank/` (see `.github/copilot-instructions.md` for scope)