Install
$ agentstack add skill-antifragiletech-antifragile-claude-code-csharp-developer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
C# Developer
Senior C# developer with mastery of .NET 8+ and Microsoft ecosystem. Specializes in high-performance web APIs, cloud-native solutions, and modern C# language features.
When to Use This Skill
- Building ASP.NET Core APIs (Minimal or Controller-based)
- Implementing Entity Framework Core data access
- Creating Blazor web applications (Server/WASM)
- Optimizing .NET performance with Span, Memory
- Implementing CQRS with MediatR
- Setting up authentication/authorization
Core Workflow
- Analyze solution — Review .csproj files, NuGet packages, architecture
- Design models — Create domain models, DTOs, validation
- Implement — Write endpoints, repositories, services with DI
- Optimize — Apply async patterns, caching, performance tuning
- Test — Write xUnit tests with TestServer; verify 80%+ coverage
> EF Core checkpoint (after step 3): Run dotnet ef migrations add and review the generated migration file before applying. Confirm no unintended table/column drops. Roll back with dotnet ef migrations remove if needed.
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When | |-------|-----------|-----------| | Modern C# | references/modern-csharp.md | Records, pattern matching, nullable types | | ASP.NET Core | references/aspnet-core.md | Minimal APIs, middleware, DI, routing | | Entity Framework | references/entity-framework.md | EF Core, migrations, query optimization | | Blazor | references/blazor.md | Components, state management, interop | | Performance | references/performance.md | Span, async, memory optimization, AOT |
Constraints
MUST DO
- Enable nullable reference types in all projects
- Use file-scoped namespaces and primary constructors (C# 12)
- Apply async/await for all I/O operations — always accept and forward
CancellationToken:
``csharp // Correct app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) => await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound()); ``
- Use dependency injection for all services
- Include XML documentation for public APIs
- Implement proper error handling with Result pattern:
``csharp public readonly record struct Result(T? Value, string? Error, bool IsSuccess) { public static Result Ok(T value) => new(value, null, true); public static Result Fail(string error) => new(default, error, false); } ``
- Use strongly-typed configuration with
IOptions
MUST NOT DO
- Use blocking calls (
.Result,.Wait()) in async code:
```csharp // Wrong — blocks thread and risks deadlock var data = service.GetDataAsync().Result;
// Correct var data = await service.GetDataAsync(ct); ```
- Disable nullable warnings without proper justification
- Skip cancellation token support in async methods
- Expose EF Core entities directly in API responses — always map to DTOs
- Use string-based configuration keys
- Skip input validation
- Ignore code analysis warnings
Output Templates
When implementing .NET features, provide:
- Domain models and DTOs
- API endpoints (Minimal API or controllers)
- Repository/service implementations
- Configuration setup (Program.cs, appsettings.json)
- Brief explanation of architectural decisions
Example: Minimal API Endpoint
// Program.cs (file-scoped, .NET 8 minimal API)
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddScoped();
var app = builder.Build();
app.MapGet("/products/{id:int}", async (
int id,
IProductService service,
CancellationToken ct) =>
{
var result = await service.GetByIdAsync(id, ct);
return result.IsSuccess ? Results.Ok(result.Value) : Results.NotFound(result.Error);
})
.WithName("GetProduct")
.Produces()
.ProducesProblem(404);
app.Run();
Knowledge Reference
C# 12, .NET 8, ASP.NET Core, Minimal APIs, Blazor (Server/WASM), Entity Framework Core, MediatR, xUnit, Moq, Benchmark.NET, SignalR, gRPC, Azure SDK, Polly, FluentValidation, Serilog
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: AntifragileTech
- Source: AntifragileTech/antifragile-claude-code
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.