Best for
- Building or reviewing C / .NET backend services
- Choosing between ASP.NET Core API styles (controller, minimal API, background worker)
- Implementing data access with EF Core, Dapper, or MongoDB
vasilyu1983/AI-Agents-public/frameworks/shared-skills/skills/software-csharp-backend/SKILL.md
Applies C# and .NET backend standards. Use when shaping API boundaries, data access, resilience, observability, or security defaults.
Decision brief
Applies C# and . NET backend standards.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Declared | Source record | Install path and trigger |
| Claude Code | Declared | Source record | Install path and trigger |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/software-csharp-backend"Inspect the Agent Skill "software-csharp-backend" from https://github.com/vasilyu1983/AI-Agents-public/blob/53f6cb73ea53a2646e3e7d4665062ad66f3683ac/frameworks/shared-skills/skills/software-csharp-backend/SKILL.md at commit 53f6cb73ea53a2646e3e7d4665062ad66f3683ac. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Classify the requested change (new feature, refactor, bug fix, review). 2. Choose runtime shape before implementation details. Load references/scenario-guides.md and, for HTTP services, references/aspnet-core-api-patterns.md. 3. Apply language and coding standards. Load refer…
1. Start from data/sources.json (official docs, release notes, support policies). 2. Run a targeted web search for the specific .NET component. 3. Prefer official Microsoft docs over blogs for versions and support windows.
Route other tasks: - NUnit fixture design, WireMock/Testcontainers setup, or flake reduction → $qa-testing-nunit - nuke/Build.cs, CI target sequencing, or artifact publication → $ops-nuke-cicd - Legacy ILogger or Serilog rewrite automation → $dev-structured-logs
Building or reviewing C / .NET backend services
General backend patterns (Node.js, Python, Go, Rust) → software-backend
Permission review
The documentation includes network, browsing, or remote request actions.
Use web search/web fetch to verify current external facts, versions, pricing, deadlines, regulations, or platform behavior before final answers.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 82 | Source | Repository attention, not individual Skill quality |
| Compatibility | 2 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
| Decision | Default | Notes |
|---|---|---|
| Runtime | .NET 10 + C# 14 (LTS, GA Nov 2025, supported through ~Nov 2028) | .NET 8 LTS ends Nov 10, 2026 — verify current dates at dotnet support policy; treat continued .NET 8 targeting as a tracked migration, not a comfortable steady state |
| API style | Minimal API for new endpoints | Controllers for large CQRS surface with many filters/action results |
| Persistence (SQL, write-heavy) | EF Core | Use Dapper when query shapes are complex and hand-tuned SQL wins |
| Persistence (SQL, query-heavy) | Dapper | Pair with EF Core for write path if aggregates exist |
| Persistence (document) | MongoDB driver | Use when schema variability is genuine, not habitual |
| Background worker | IHostedService / BackgroundService | Add lease, graceful shutdown, and poison-message handling from day one |
| Resilience | Microsoft.Extensions.Resilience (Polly v8) | Standard pipeline: retry → circuit breaker → timeout |
| OpenAPI | Built-in ASP.NET Core OpenAPI (Microsoft.AspNetCore.OpenApi) | Do not add Swashbuckle unless repo already uses it |
Route other tasks:
$qa-testing-nunitnuke/Build.cs, CI target sequencing, or artifact publication → $ops-nuke-cicdILogger or Serilog rewrite automation → $dev-structured-logsdev-structured-logsreferences/scenario-guides.md and, for HTTP services, references/aspnet-core-api-patterns.md.references/csharp-language-practices.md and references/dotnet-coding-standards.md.references/backend-architecture-principles.md and references/modular-architecture-principles.md.references/data-access-patterns.md; if EF Core is selected, load references/efcore-persistence-patterns.md.references/reliability-and-resilience.md and references/resilience-policy-defaults.md.references/testing-practices.md.references/observability-standards.md, and for API/runtime deployment defaults load references/runtime-ops-checklist.md. If the service is distributed or cloud-native by design, also load references/scenario-guides.md for the Aspire-oriented profile.references/security-baseline.md.BuildAll, LocalUnitTest, ApiTest (when relevant), and TestAll; use $ops-nuke-cicd for pipeline-target edits.references/code-review-checklist.md.C# backend task
-> Identify API, worker, data access, or service boundary
-> Confirm .NET version, hosting model, DI, and persistence choices
-> Design validation, auth, errors, retries, and observability
-> Implement bounded slice with unit and integration tests
-> Check EF, async, cancellation, and deployment traps
-> Run focused verification and capture follow-up risks
references/csharp-language-practices.md.references/dotnet-coding-standards.md.references/backend-architecture-principles.md.references/modular-architecture-principles.md.references/aspnet-core-api-patterns.md.references/data-access-patterns.md.references/efcore-persistence-patterns.md.references/scenario-guides.md.references/reliability-and-resilience.md and references/resilience-policy-defaults.md.references/runtime-ops-checklist.md..NET Framework/netstandard2.0 and modern .NET, read references/version-compatibility-notes.md.references/testing-practices.md.references/observability-standards.md.references/security-baseline.md.references/code-review-checklist.md.$ops-nuke-cicd.| Do | Avoid |
|---|---|
| Keep application services small and explicit about dependencies | Coupling domain logic directly to HTTP, DB driver types, or framework-specific classes |
| Return deterministic domain/application results for expected failures | Swallowing exceptions or replacing root causes with vague error messages |
Pass CancellationToken through every async layer and external call | Letting cancellation stop at the controller while downstream calls continue |
Model options with IOptions<T> validation; fail fast on invalid startup config | Binding configuration directly into services without options validation |
| Choose API style intentionally; keep middleware ordering explicit | Mixing minimal APIs, controllers, and bespoke endpoint frameworks without a clear error-shape policy |
| Use built-in ASP.NET Core OpenAPI and ProblemDetails before adding third-party wrappers | Adding Swashbuckle or MediatR when built-in plumbing is sufficient |
| Keep persistence choices aligned to use-case shape, not team habit | Using retries without timeout and idempotency guarantees |
| Make telemetry and security checks part of definition of done | Shipping endpoints without structured logs, traces, metrics, and health signals |
| Write tests at unit and integration seams separately | Mixing unit and integration concerns in the same test fixture |
| — | Using async void outside event handlers |
| — | Sharing one DbContext instance across concurrent operations/threads |
| — | Captive dependencies (singleton depending on scoped service) |
new HttpClient() per call or per request instead of resolving it through IHttpClientFactory/AddHttpClient<T> — this exhausts sockets under load (new HttpClient() disposed per call) or goes DNS-stale (one long-lived static instance) if done by hand.DOTNET_GCHeapHardLimit/DATAS (Dynamic Adaptation to Application Sizes — opt-in on .NET 8, default-on from .NET 9) or switch to Workstation GC for high-density, low-CPU hosting; keep Server GC for dedicated, CPU-bound API pods.clean architecture layers that are mostly pass-through wrappers with no boundary or policy value.dev-structured-logs → Structured logging migrationWhen users ask version-sensitive questions about .NET, C#, or ASP.NET Core, verify current information before answering.
data/sources.json (official docs, release notes, support policies).Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.
Frequently asked questions
Applies C# and . NET backend standards.
The source record exposes this install command: npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/software-csharp-backend". Inspect the command and pinned source before running it.
The pinned source record declares support for: codex, claude code.
Static rules flagged network in the source; the page lists the matching lines and excerpts.
Alternatives
vasilyu1983/AI-Agents-public
Configures Claude Code hooks and Codex hooks.json/notify callbacks. Use when adding guardrails, preflight, audit trails, worktree automation, or budget enforcement.
vasilyu1983/AI-Agents-public
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.
vasilyu1983/AI-Agents-public
Guides multi-GPU pre-training: DDP, FSDP2, ZeRO, tensor/pipeline/expert parallelism, fp8/Muon. Use when scaling a run, training MoE, or reproducing GPT-2 on rented GPUs.
vasilyu1983/AI-Agents-public
Scans public GitHub repos for agent skills, dev practices, and code patterns. Use when enriching skills, setting team policy, or researching a build domain.