Compare commits
22 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
1ccf8f3be3 | |
|
|
a5365dd735 | |
|
|
e9fc609523 | |
|
|
e9c6efbb90 | |
|
|
3f21389bde | |
|
|
ce631560dc | |
|
|
7321b0a3cd | |
|
|
e3f04cd396 | |
|
|
6743d5f14f | |
|
|
318d0c2936 | |
|
|
b4fa372ad8 | |
|
|
44501fefc1 | |
|
|
f3bc1fe077 | |
|
|
956d8fecb3 | |
|
|
debad7f745 | |
|
|
02ffd733b3 | |
|
|
a29035b196 | |
|
|
f5ff1e1ded | |
|
|
7e988b9361 | |
|
|
2a32233b6d | |
|
|
c47c0ddc9f | |
|
|
3d341b6568 |
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(rm \"C:/Users/Fullepi/.claude/projects/H--Applications-Mango-Source-FruitBank/memory/feedback_doc_structure_meta_protocol.md\" \"C:/Users/Fullepi/.claude/projects/H--Applications-Mango-Source-FruitBank/memory/MEMORY.md\")"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,17 @@
|
||||||
|
CRITICAL: Your FIRST action in every session MUST be reading `.github/copilot-instructions.md`. Execute ALL session-start instructions found there before responding to any user query. It is the single source of truth for this repo.
|
||||||
|
|
||||||
|
## SEQUENTIAL EXECUTION OVERRIDE
|
||||||
|
The AI AGENT CORE PROTOCOL in copilot-instructions.md requires STRICT SEQUENTIAL execution. This OVERRIDES your default parallelization behavior. Do NOT parallelize doc reads with code searches. The sequence is:
|
||||||
|
1. Read copilot-instructions.md → process its rules FULLY
|
||||||
|
2. Read ALL docs/ .md files listed in the protocol → wait for completion
|
||||||
|
3. Output [LOADED_DOCS: ...] prefix
|
||||||
|
4. ONLY THEN respond to the user's query or search code
|
||||||
|
|
||||||
|
## Tool mapping for AI AGENT CORE PROTOCOL
|
||||||
|
The copilot-instructions.md references Copilot tool names. Map them to Claude Code tools:
|
||||||
|
- `get_file` / `file_search` → `Read`, `Glob`, `Grep`
|
||||||
|
- `code_search` / `get_symbols_by_name` / `find_symbol` → `Grep`, `Glob`
|
||||||
|
- `replace_string_in_file` / `edit_file` → `Edit`
|
||||||
|
- `create_file` → `Write`
|
||||||
|
|
||||||
|
Follow the protocol using YOUR tools. The rules (LOADED_DOCS prefix, hard-gate, no-re-read, context recovery, explicit consent) apply equally to Claude Code.
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 18
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 18.0.11222.15
|
VisualStudioVersion = 17.14.36804.6
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{E4ACA93B-D3DE-4557-B069-F1DB42925A4B}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{E4ACA93B-D3DE-4557-B069-F1DB42925A4B}"
|
||||||
EndProject
|
EndProject
|
||||||
|
|
@ -87,6 +87,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nop.Plugin.Misc.MangoCore",
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Nop.Data", "..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Data\Mango.Nop.Data.csproj", "{EE44B558-F1DA-433A-BD4C-D275986A4679}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Nop.Data", "..\NopCommerce.Common\4.70\Libraries\Mango.Nop.Data\Mango.Nop.Data.csproj", "{EE44B558-F1DA-433A-BD4C-D275986A4679}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{4403A2FE-7929-44A4-8701-60B3F759D400}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
..\NopCommerce.Common\4.70\Libraries\docs\ARCHITECTURE.md = ..\NopCommerce.Common\4.70\Libraries\docs\ARCHITECTURE.md
|
||||||
|
..\NopCommerce.Common\4.70\Libraries\docs\CONVENTIONS.md = ..\NopCommerce.Common\4.70\Libraries\docs\CONVENTIONS.md
|
||||||
|
..\NopCommerce.Common\4.70\Libraries\docs\GLOSSARY.md = ..\NopCommerce.Common\4.70\Libraries\docs\GLOSSARY.md
|
||||||
|
..\NopCommerce.Common\4.70\Libraries\README.md = ..\NopCommerce.Common\4.70\Libraries\README.md
|
||||||
|
..\NopCommerce.Common\4.70\Libraries\CLAUDE.md = ..\NopCommerce.Common\4.70\Libraries\CLAUDE.md
|
||||||
|
..\NopCommerce.Common\4.70\Libraries\.github\copilot-instructions.md = ..\NopCommerce.Common\4.70\Libraries\.github\copilot-instructions.md
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints\Mango.Sandbox.EndPoints.csproj", "{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints\Mango.Sandbox.EndPoints.csproj", "{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints.Tests", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints.Tests\Mango.Sandbox.EndPoints.Tests.csproj", "{B8491E5C-DBB5-1594-052E-744D78D7A4DE}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Sandbox.EndPoints.Tests", "Tests\Mango.Sandbox\Mango.Sandbox.EndPoints.Tests\Mango.Sandbox.EndPoints.Tests.csproj", "{B8491E5C-DBB5-1594-052E-744D78D7A4DE}"
|
||||||
|
|
@ -94,6 +104,7 @@ EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5881709D-780C-402A-9627-928B25AE712B}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{5881709D-780C-402A-9627-928B25AE712B}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
build_fruitbank.bat = build_fruitbank.bat
|
build_fruitbank.bat = build_fruitbank.bat
|
||||||
|
.github\copilot-instructions.md = .github\copilot-instructions.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
|
|
@ -583,6 +594,7 @@ Global
|
||||||
{3E893AC2-29F1-48FC-B33F-F73C6EE2BE90} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26}
|
{3E893AC2-29F1-48FC-B33F-F73C6EE2BE90} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26}
|
||||||
{3976CB1D-8080-4B84-8C01-1F98BFCAF2B3} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26}
|
{3976CB1D-8080-4B84-8C01-1F98BFCAF2B3} = {0742FDF3-0F2E-4C64-9521-E58A7FF2ED26}
|
||||||
{EE44B558-F1DA-433A-BD4C-D275986A4679} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
{EE44B558-F1DA-433A-BD4C-D275986A4679} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
||||||
|
{4403A2FE-7929-44A4-8701-60B3F759D400} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
|
||||||
{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C} = {E8FC6874-E230-468A-9685-4747354B92FF}
|
{D22DB269-2490-4A3D-B0B4-2CD2BB626F9C} = {E8FC6874-E230-468A-9685-4747354B92FF}
|
||||||
{B8491E5C-DBB5-1594-052E-744D78D7A4DE} = {E8FC6874-E230-468A-9685-4747354B92FF}
|
{B8491E5C-DBB5-1594-052E-744D78D7A4DE} = {E8FC6874-E230-468A-9685-4747354B92FF}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a backorder mode
|
///// Represents a backorder mode
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum BackorderMode
|
//public enum BackorderMode
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// No backorders
|
// /// No backorders
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
NoBackorders = 0,
|
// NoBackorders = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Allow qty below 0
|
// /// Allow qty below 0
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
AllowQtyBelow0 = 1,
|
// AllowQtyBelow0 = 1,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Allow qty below 0 and notify customer
|
// /// Allow qty below 0 and notify customer
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
AllowQtyBelow0AndNotifyCustomer = 2,
|
// AllowQtyBelow0AndNotifyCustomer = 2,
|
||||||
}
|
//}
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a download activation type
|
///// Represents a download activation type
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum DownloadActivationType
|
//public enum DownloadActivationType
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// When order is paid
|
// /// When order is paid
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
WhenOrderIsPaid = 0,
|
// WhenOrderIsPaid = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Manually
|
// /// Manually
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Manually = 10,
|
// Manually = 10,
|
||||||
}
|
//}
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a gift card type
|
///// Represents a gift card type
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum GiftCardType
|
//public enum GiftCardType
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Virtual
|
// /// Virtual
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Virtual = 0,
|
// Virtual = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Physical
|
// /// Physical
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Physical = 1,
|
// Physical = 1,
|
||||||
}
|
//}
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a low stock activity
|
///// Represents a low stock activity
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum LowStockActivity
|
//public enum LowStockActivity
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Nothing
|
// /// Nothing
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Nothing = 0,
|
// Nothing = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Disable buy button
|
// /// Disable buy button
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
DisableBuyButton = 1,
|
// DisableBuyButton = 1,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Unpublish
|
// /// Unpublish
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Unpublish = 2,
|
// Unpublish = 2,
|
||||||
}
|
//}
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a method of inventory management
|
///// Represents a method of inventory management
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum ManageInventoryMethod
|
//public enum ManageInventoryMethod
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Don't track inventory for product
|
// /// Don't track inventory for product
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
DontManageStock = 0,
|
// DontManageStock = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Track inventory for product
|
// /// Track inventory for product
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
ManageStock = 1,
|
// ManageStock = 1,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Track inventory for product by product attributes
|
// /// Track inventory for product by product attributes
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
ManageStockByAttributes = 2,
|
// ManageStockByAttributes = 2,
|
||||||
}
|
//}
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,17 +1,17 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a product type
|
///// Represents a product type
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum ProductType
|
//public enum ProductType
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Simple
|
// /// Simple
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
SimpleProduct = 5,
|
// SimpleProduct = 5,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Grouped (product with variants)
|
// /// Grouped (product with variants)
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
GroupedProduct = 10,
|
// GroupedProduct = 10,
|
||||||
}
|
//}
|
||||||
|
|
@ -1,27 +1,27 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a recurring product cycle period
|
///// Represents a recurring product cycle period
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum RecurringProductCyclePeriod
|
//public enum RecurringProductCyclePeriod
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Days
|
// /// Days
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Days = 0,
|
// Days = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Weeks
|
// /// Weeks
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Weeks = 10,
|
// Weeks = 10,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Months
|
// /// Months
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Months = 20,
|
// Months = 20,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Years
|
// /// Years
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Years = 30,
|
// Years = 30,
|
||||||
}
|
//}
|
||||||
|
|
@ -1,27 +1,27 @@
|
||||||
namespace Nop.Core.Domain.Catalog;
|
//namespace Nop.Core.Domain.Catalog;
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// Represents a rental product period (for prices)
|
///// Represents a rental product period (for prices)
|
||||||
/// </summary>
|
///// </summary>
|
||||||
public enum RentalPricePeriod
|
//public enum RentalPricePeriod
|
||||||
{
|
//{
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Days
|
// /// Days
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Days = 0,
|
// Days = 0,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Weeks
|
// /// Weeks
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Weeks = 10,
|
// Weeks = 10,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Months
|
// /// Months
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Months = 20,
|
// Months = 20,
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// Years
|
// /// Years
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
Years = 30,
|
// Years = 30,
|
||||||
}
|
//}
|
||||||
|
|
@ -26,7 +26,7 @@ public class DevAdminSignalRHubSandbox : AcWebSignalRHubWithSessionBase<SignalRT
|
||||||
: base(configuration, new Logger<DevAdminSignalRHubSandbox>(logWriters.ToArray()))
|
: base(configuration, new Logger<DevAdminSignalRHubSandbox>(logWriters.ToArray()))
|
||||||
{
|
{
|
||||||
SerializerOptions = new AcBinarySerializerOptions();
|
SerializerOptions = new AcBinarySerializerOptions();
|
||||||
DynamicMethodCallModels.Add(new AcDynamicMethodCallModel<SignalRAttribute>(testSignalREndpoint));
|
DynamicMethodRegistry.Register(testSignalREndpoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
//protected override Task SendMessageToClient(IAcSignalRHubItemServer sendTo, int messageTag, ISignalRMessage message, int? requestId = null)
|
//protected override Task SendMessageToClient(IAcSignalRHubItemServer sendTo, int messageTag, ISignalRMessage message, int? requestId = null)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Conventions
|
||||||
|
|
||||||
|
> For core framework conventions see `AyCode.Core/docs/CONVENTIONS.md`.
|
||||||
|
> For Mango.Nop library conventions see `Mango.Nop Libraries/docs/CONVENTIONS.md`.
|
||||||
|
|
||||||
|
## XML Documentation
|
||||||
|
|
||||||
|
`<summary>` — brief, developer-facing, readable in VS IntelliSense tooltip. NO implementation details, NO wire-format / byte-level / perf specifics — those live in `docs/TOPIC/*.md`. Add `<example>` only when usage is non-obvious; otherwise omit.
|
||||||
Loading…
Reference in New Issue