Imported from robbertF2P/Sandbox (
AGENTS.md). Install upstream withnpx skills add robbertF2P/Sandbox. Copyright stays with the author.
Agent instructions
Shared guidance for AI coding agents (Cursor, GitHub Copilot, Claude Code, and others).
Start here
New to this repo? Read the sandbox-starter-kit skill first (.cursor/skills/sandbox-starter-kit/SKILL.md) or docs/ai-starter-kit.md.
Skills layout
| Path | Used by |
|---|---|
.cursor/skills/ |
Cursor (source of truth) |
.github/skills/ |
GitHub Copilot |
.agents/skills/ |
Cross-tool Agent Skills convention |
Each skill is a folder with a SKILL.md file (YAML frontmatter + markdown body).
After editing skills in .cursor/skills/, run:
./scripts/sync-agent-skills.sh
Starter kit (read first)
| Skill | Purpose |
|---|---|
sandbox-starter-kit |
Repo map, skill router, delivery workflow, quality gates |
platform-logging |
Platform.Serilog.Logging NuGet + MSBuild props |
platform-correlation |
CorrelationId / UseCase across HTTP, Akka, events, SignalR |
Available skills
SandBox platform
sandbox-starter-kit— entry point for AI-assisted work in this monorepoplatform-logging— central Serilog (Seq, App Insights, xUnit sink)platform-correlation— end-to-end use-case tracingtailwind-ui-styling— Tailwind v4 utility-first styling with@floorganise/css
Domain & architecture
domain-driven-design— Evans DDD foundationsimplementing-domain-driven-design— Vernon DDD implementationdomain-specific-languages— Fowler DSL design and implementationspecification-pattern— Specification + Repository; Ardalis.Specification; avoid IQueryable leakage
.NET
dotnet-core-csharp-development— C# / ASP.NET Core conventions (docs/coding-standards/csharp-coding-standards.md)angular-frontend-development— Angular / Nx frontend conventions (docs/coding-standards/angular-coding-standards.md)tailwind-ui-styling— Tailwind v4 utility-first styling with@floorganise/cssdotnet-ef-core— Entity Framework Coreimmutable-domain-ef-core— immutable aggregates with EF Core (With* helpers, graph reconciliation)akka-net— Akka.NET (repo patterns)reactive-applications-akka-net— Anthony Brown reactive systems / Akka.NET bookfunctional-programming-csharp— functional patterns in C#csharp-enum-best-practices— enum design, status outcomes, smart-class evolution (Horvat / Coding Helmet)
Copilot-specific always-on notes: .github/copilot-instructions.md
Platform 2.0 module composition (F2P refactor)
When working on monolith modularization or new bounded-context modules (in the external F2P repo with Copilot or Claude Code):
- No ABP in new extracted modules — no
Volo.Abp.*,AbpModule, orAbpDbContext. - Register modules with
IServiceCollectionextension methods (Add<Context>Module, layer-specificAdd*helpers). - Map endpoints with
WebApplicationextensions (Map<Context>Endpoints). - Host (
Program.cs) is the only composition root — explicit, grep-able service registration. - Bridge legacy ABP via
[StranglerAdapter]in Infrastructure; do not extendAbpModulefor new code. - V2 frontend:
@floorganise/css(Tailwind + Floorganise tokens) on every frontend module; shared widgets from@floorganise/ui— no per-module design systems. - Workflow orchestration: Akka.NET actor pipelines for integrations, tenant customization packs, and legacy strangler bridges — see
platform-actor-standard.md. - Object mapping: avoid AutoMapper in new modules; explicit mapping preferred. AutoMapper only for simple profiles with unit tests calling
AssertConfigurationIsValid()— seemodule-composition-di.mdanddocs/coding-standards/csharp-coding-standards.md.
Details: docs/monolith-modularization/module-composition-di.md · Architecture overview: docs/monolith-modularization/platform-architecture-overview.md · Plan: docs/monolith-modularization/foundation-and-pilot-plan.md · Frontend: docs/monolith-modularization/platform-frontend-standard.md · UI customization: docs/monolith-modularization/platform-ui-customization-standard.md · Pack blueprint: docs/monolith-modularization/platform-pack-blueprint.md · Legacy Text*/Bool* fields: docs/monolith-modularization/tenant-workflow-fields-deepdive-instructions.md · Actors: docs/monolith-modularization/platform-actor-standard.md · Auth: docs/monolith-modularization/platform-authentication-standard.md · Agent rules: docs/monolith-modularization/agent-instructions-snippet.md (copy to monolith as agent-rules.md + .github/copilot-instructions.md).
SandBox uses Cursor for brainstorming and skill authoring (.cursor/skills/). The monolith does not need Cursor — use the agent snippet for Copilot and Claude.