csharp-developer
Skill18 starsChanged 5 months agoMITView on GitHub
Use when building C# applications with .NET 8+, ASP.NET Core APIs, or Blazor web apps. Builds REST APIs using minimal or controller-based routing, configures database access with Entity Framework Core, implements async patterns and cancellation, structures applications with CQRS via MediatR, and scaffolds Blazor components with state management. Invoke for C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR.
We split this skill into the rules it gives an agent
6 rules. 0 are common, 4 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 55
Use file-scoped namespaces and primary constructors (C# 12)
- Distinctive: line 62
Use dependency injection for all services
- Very specific: line 72
Use strongly-typed configuration with IOptions<T>
- Very specific: line 75
Use blocking calls (.Result, .Wait()) in async code:
- Distinctive: line 86
Use string-based configuration keys
- Distinctive: line 92
When implementing .NET features, provide:
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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
<T>, Memory<T> - 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 <Name>and review the generated migration file before applying. Confirm no unintended table/column drops. Roll back withdotnet ef migrations removeif 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<T>, 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:// 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:
public readonly record struct Result<T>(T? Value, string? Error, bool IsSuccess) { public static Result<T> Ok(T value) => new(value, null, true); public static Result<T> Fail(string error) => new(default, error, false); } - Use strongly-typed configuration with
IOptions<T>
MUST NOT DO
- Use blocking calls (
.Result,.Wait()) in async code:// 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<IProductService, ProductService>();
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<ProductDto>()
.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
Other versions9 projects use a version of this.
Word for word · 1
- PIXARTSeu/Synapse★ 9100% same
Edited · 4
- Jeffallan/claude-skills★ 12k95% same
- zacklecon/claude-skills★ 379% same
- hu465/claude-skills-★ 095% same
- usmanmubarak1/ClaudeSkilledAgents★ 074% same
Wrote their own version · 4
- jshsakura/awesome-opencode-skills★ 30same name
- vmikhailov/code-explorer★ 16same name
- belokonm/claude-supercode-skills★ 11same name
- marttp/my_agent_skills_I_use★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use fintech-engineer, react-specialist and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
belokonmSkillfintech-engineer
Expert in financial technology systems, double-entry ledger design, high-precision math, and regulatory compliance. Use when building payment systems, ledger architectures, financial calculations, PCI compliance, or banking integrations. Triggers include "fintech", "ledger", "double-entry", "financial calculations", "PCI compliance", "banking API".
Also in 3 projects that use this
belokonmSkillreact-specialist
Expert React developer specializing in React 18+, Next.js ecosystem, and modern React patterns. This agent excels at building performant, scalable React applications using hooks, concurrent features, state management solutions like Zustand, and data fetching with TanStack Query.
Also in 3 projects that use this
- +3 more from belokonm
In this repository83 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .codex/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- source-command-fix-buildSkill
- fine-tuning-expertSkill
- ml-pipelineSkill
- rag-architectSkill
- spark-engineerSkill
- api-designerSkill
- architecture-designerSkill
- code-documenterSkill
- debugging-wizardSkill
- feature-forgeSkill
- fullstack-guardianSkill
- graphql-architectSkill
- legacy-modernizerSkill
- microservices-architectSkill
- database-optimizerSkill
- postgres-proSkill
- sql-proSkill
- dotnet-core-expertSkill
- angular-architectSkill
- flutter-expertSkill
- nextjs-developerSkill
- react-expertSkill
- react-native-expertSkill
- senior-frontendSkill
- ui-ux-pro-maxSkill
- vue-expert-jsSkill
- vue-expertSkill
- cpp-proSkill
- golang-proSkill
- rust-engineerSkill
- cli-developerSkill
- cloud-architectSkill
- devops-engineerSkill
- kubernetes-specialistSkill
- mcp-developerSkill
- monitoring-expertSkill
- sre-engineerSkill
- terraform-engineerSkill
- websocket-engineerSkill
- java-architectSkill
- kotlin-specialistSkill
- javascript-proSkill
- nestjs-expertSkill
- typescript-proSkill
- spring-boot-engineerSkill
- spring-boot-engineer_znSkill
- laravel-specialistSkill
- php-proSkill
- competitive-analysisSkill
- meeting-notesSkill
- prd-templateSkill
- stakeholder-updateSkill
- user-research-synthesisSkill
- django-expertSkill
- fastapi-expertSkill
- pandas-proSkill
- python-proSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

