Built Word Documents (.docx):
Spensara Overview (.docx)
Capability Assessment (.docx)
Brink POS Ingestion Analysis (.docx)
The Borg Ingestion Architecture (.docx)
Categories
Agent Tooling (71)
Automation workflows, orchestration references, and developer tooling guides.
- .agents/skills/agent-browser/references/authentication.md
- .agents/skills/agent-browser/references/commands.md
- .agents/skills/agent-browser/references/profiling.md
- .agents/skills/agent-browser/references/proxy-support.md
- .agents/skills/agent-browser/references/session-management.md
- .agents/skills/agent-browser/references/snapshot-refs.md
- .agents/skills/agent-browser/references/video-recording.md
- .agents/skills/agent-browser/SKILL.md
- .agents/skills/aspire-deployment/references/aws.md
- .agents/skills/aspire-deployment/references/azure.md
- .agents/skills/aspire-deployment/references/cicd.md
- .agents/skills/aspire-deployment/references/docker-compose.md
- .agents/skills/aspire-deployment/references/javascript.md
- .agents/skills/aspire-deployment/references/kubernetes.md
- .agents/skills/aspire-deployment/references/preflight.md
- .agents/skills/aspire-deployment/SKILL.md
- .agents/skills/aspire-monitoring/references/diagnostics-bridge.md
- .agents/skills/aspire-monitoring/references/monitoring.md
- .agents/skills/aspire-monitoring/references/playwright-handoff.md
- .agents/skills/aspire-monitoring/SKILL.md
- .agents/skills/aspire-orchestration/references/agent-workflows.md
- .agents/skills/aspire-orchestration/references/app-commands.md
- .agents/skills/aspire-orchestration/references/detection.md
- .agents/skills/aspire-orchestration/references/resource-management.md
- .agents/skills/aspire-orchestration/references/safety-guardrails.md
- .agents/skills/aspire-orchestration/SKILL.md
- .agents/skills/aspire/references/aspire-13-3-breaking-changes.md
- .agents/skills/aspire/SKILL.md
- .agents/skills/aspireify/references/apphost-wiring.md
- .agents/skills/aspireify/references/csharp-authoring.md
- .agents/skills/aspireify/references/docker-compose.md
- .agents/skills/aspireify/references/full-solution-apphosts.md
- .agents/skills/aspireify/references/javascript-apps.md
- .agents/skills/aspireify/references/opentelemetry.md
- .agents/skills/aspireify/references/scan-and-propose.md
- .agents/skills/aspireify/references/service-defaults.md
- .agents/skills/aspireify/references/typescript-authoring.md
- .agents/skills/aspireify/references/validation.md
- .agents/skills/aspireify/SKILL.md
- .agents/skills/caveman-compress/README.md
- .agents/skills/caveman-compress/SECURITY.md
- .agents/skills/caveman-compress/SKILL.md
- .agents/skills/caveman-help/README.md
- .agents/skills/caveman-help/SKILL.md
- .agents/skills/caveman-stats/README.md
- .agents/skills/caveman-stats/SKILL.md
- .agents/skills/caveman/README.md
- .agents/skills/caveman/SKILL.md
- .agents/skills/csharp-developer/SKILL.md
- .agents/skills/dotnet-inspect/SKILL.md
- .agents/skills/efcore-data-layer/SKILL.md
- .agents/skills/git/SKILL.md
- .agents/skills/microsoft-code-reference/SKILL.md
- .agents/skills/microsoft-docs/SKILL.md
- .agents/skills/microsoft-skill-creator/references/skill-templates.md
- .agents/skills/microsoft-skill-creator/SKILL.md
- .agents/skills/skill-creator/references/output-patterns.md
- .agents/skills/skill-creator/references/workflows.md
- .agents/skills/skill-creator/SKILL.md
- .agents/skills/tunit-testing/references/aspire-integration.md
- .agents/skills/tunit-testing/references/aspnetcore-integration.md
- .agents/skills/tunit-testing/references/assertions.md
- .agents/skills/tunit-testing/references/data-driven.md
- .agents/skills/tunit-testing/references/infrastructure-and-troubleshooting.md
- .agents/skills/tunit-testing/references/lifecycle-hooks.md
- .agents/skills/tunit-testing/SKILL.md
- AGENTS.md
- backend/AGENTS.md
- backend/tests/AGENTS.md
- Front/AGENT.md
- opencode.jsonc
name: csharp-developer description: This skill should be used by AI agents to assist with C# development tasks, including writing, reviewing, and debugging C# code.
C# Developer Skill
Build, Test, and Development Commands
dotnet restore: restores all solution packages. If you encounter issues after package installation or update, try runningdotnet restore --no-cacheto clear the local cache.dotnet build *.sln: builds all project in the solution. You can use "TreatWarningsAsErrors" while running build as a good way to make sure there are no warnings in projects. Always perform build after backend changes.dotnet format: applies code style from.editorconfigand analyzers. If this command fails without a clear reason - usedotnet format --verify-no-changesthat will output errors that couldn't be fixed automatically.
Coding Style & Naming Conventions
- Language: C# 14 on .NET SDK
10.x(seeglobal.json). - Style: enforced via
.editorconfigand analyzers; keep code warning-free (TreatWarningsAsErrors=true during validation). - Indentation: 4 spaces; use expression-bodied members when clear; prefer
readonly/sealed. - Implementation: if a public interface is exposed, the implementation class should be
internal sealed. - Naming: PascalCase for types/methods, camelCase for locals/parameters,
_camelCasefor private fields; namespaces match folder and project names. - GUID Generation: When creating GUIDs that will be saved to the database, always use
Guid.CreateVersion7()instead ofGuid.NewGuid(). UUIDv7 provides better database performance due to sequential ordering.
- Modern C#::
- Primary constructors:
public sealed class Foo(IBar bar) : IFoo. - Collection initializers:
opt.OAuthScopes([.. settings.Scopes.Keys]);. - Pattern matching:
if (obj is IFoo foo) { /* ... */ }. - Records for immutables:
public record Employee(int Id, string Name);. - Null checks:
if (obj is null)/if (obj is not null).
C# Language Features
The framework leverages modern C# features consistently:
- Primary Constructors: Use for dependency injection in services and controllers:
csharp
public sealed class EmployeeContextModule(IEmployeeContextProvider employeeContextProvider, IAuthInfoProvider authInfoProvider) : IBusinessObjectModule- Collection Initializers: Use for initializing arrays and lists:
csharp
opt.OAuthScopes([.. swaggerOpenApiOAuthSettings.Scopes.Keys]);- Pattern Matching: Use for concise type checks and casting:
csharp
if (obj is IEmployeeContextProvider employeeContextProvider)
{
// Use employeeContextProvider
}- Records: Use for immutable data structures:
csharp
public record Employee(int Id, string Name);- For records where all properties are required, use primary constructors instead of property syntax:
csharp
// Good: Primary constructor for required properties
public sealed record RunStatistics(
int TotalRuns,
int CompletedRuns,
int FailedRuns);
// Bad: Property syntax for simple required properties
public sealed record RunStatistics
{
public required int TotalRuns { get; init; }
public required int CompletedRuns { get; init; }
}isandis notoperator used for null checks:
csharp
if (obj is not null)
{
// Do something with obj
}
if (obj is null)
{
// Handle null case
}