Provide model-agnostic operating instructions for AI agents working in this repository.
Use this file before making or reviewing repository changes. Use the review skills in skills/ when the task matches their domain.
- Use
skills/reviews/architecture-review/SKILL.mdfor design, layering, dependency, module boundary, public contract, and maintainability reviews. - Use
skills/reviews/security-review/SKILL.mdfor authentication, authorization, input handling, secrets, cryptography, sensitive data, and trust-boundary reviews. - Use
skills/reviews/dotnet-review/SKILL.mdfor C#, .NET, ASP.NET Core, MongoDB repository usage, NuGet, MSBuild, and .NET test reviews. - Use
skills/reviews/database-review/SKILL.mdfor migrations, schema, indexes, queries, transactions, ORM mappings, and data integrity reviews. - Use
skills/reviews/mongodb-review/SKILL.mdfor MongoDB collections, filters, projections, indexes, repository queries, aggregations, updates, and data migrations. - Use
skills/plugins/plugin-module/SKILL.mdfor GrandNode plugins and modules, including provider plugins, themes, API modules, migrations, and installer behavior. - Use
skills/plugins/plugin-shipping/SKILL.mdfor shipping rate calculation plugins (IShippingRateCalculationProvider), GetShippingOptions, ShippingOption, ShippingRateCalculationType, and IShipmentTracker. - Use
skills/plugins/plugin-payment/SKILL.mdfor payment method plugins (IPaymentProvider), Standard vs Redirection flow, ProcessPayment, Capture, Refund, Void, and PaymentTransaction status. - Use
skills/plugins/plugin-widget/SKILL.mdfor widget plugins (IWidgetProvider), GetWidgetZones, view components, widget zone names, and GDPR consent gating. - Use
skills/plugins/plugin-discount-rules/SKILL.mdfor discount rule plugins (IDiscountProvider, IDiscountRule), CheckRequirement, DiscountRule.Metadata, and rule configuration controllers. - Use
skills/template-creation/SKILL.mdfor Razor views, layouts, partials, view components, plugin views, theme overrides, Vue-in-Razor templates, PDF templates, and DotLiquid message templates. - Use
skills/frontend-bundle-workflow/SKILL.mdfor Vue/Vite build, theme CSS changes, when to runnpm run build, bundle output files, and committing bundles alongside source. - Use
skills/admin-area-changes/SKILL.mdfor admin-facing changes that may affect Main Admin, Store Owner, Vendor, shared admin models, permissions, navigation, validation, or scoped data access. - Use
skills/project-structure/SKILL.mdto understand repository structure, technology ownership, layer responsibilities, and how to expand GrandNode consistently. - Use
skills/settings-and-localization/SKILL.mdfor settings classes, store-scoped overrides, ISettingService, localization resources, ITranslationService, IPluginTranslateResource, localized domain entities, and localized admin models. - Use
skills/message-notification/SKILL.mdfor message templates, DotLiquid tokens and drops, IMessageProviderService, queued email lifecycle, LiquidObjectBuilder, MessageTokensAddedEvent plugin extension, and domain event notification handlers. - Use
skills/scheduled-task/SKILL.mdfor scheduled task classes, IScheduleTask, AddKeyedScoped registration, ScheduleTask seed, multi-instance distributed locking, error handling, and task migrations. - Use
skills/permission-navigation/SKILL.mdfor permissions, PermissionSystemName, PermissionActionName, StandardPermission, PermissionProvider, controller authorization attributes, AdminSiteMap entries, and permission or navigation migrations. - Use
skills/best-practices/async.mdfor async/await patterns, CancellationToken, Task vs ValueTask, and blocking anti-patterns. - Use
skills/best-practices/mongodb.mdfor IRepository usage, query patterns, partial updates, and write conventions. - Use
skills/best-practices/performance.mdfor ICacheBase, CacheKey constants, cache invalidation, pagination, and partial field writes. - Use
skills/best-practices/security.mdfor authorization checks, FluentValidation patterns, guard clauses, HTML encoding, and safe MongoDB queries. - Use
skills/best-practices/architecture.mdfor layering rules, DI lifetimes, MediatR commands/queries, and domain events. - Use
skills/best-practices/tests.mdfor MSTest + Moq patterns, test structure, validator testing, and controller test setup. - Use
skills/best-practices/dotnet.mdfor C# idioms: records, guard clauses, result objects, pattern matching, nullable types, and configuration binding. - Use multiple skills when a change crosses domains.
- Read the user's goal before inspecting files.
- Inspect existing repository patterns before proposing changes.
- Keep changes limited to the requested scope.
- Preserve user work and unrelated local changes.
- Prefer existing abstractions, conventions, and test utilities.
- Validate changes with the narrowest meaningful build or test command when execution is available.
- Report commands that were run and any commands that could not be run.
- Provide concrete file references for findings or changes.
- Never overwrite unrelated changes.
- Never invent requirements or repository conventions.
- Never broaden scope without a clear reason.
- Never leave generated, temporary, or diagnostic artifacts unless they are part of the requested output.
Return a concise result that states what changed, what was reviewed, what was validated, and what risk remains.