← ClaudeAtlas

mir-backend-dotnetlisted

Make It Right (.NET runtime tier). CLR/CoreCLR reliability footguns shared across every .NET backend framework. Covers: runtime version currency (.NET 10 is the current LTS; 8 and 9 leave support 10 Nov 2026), sync-over-async deadlock and thread-pool starvation (.Result/.Wait()/.GetAwaiter().GetResult()), ConfigureAwait(false) in library code, ValueTask misuse, IDisposable/IAsyncDisposable discipline and HttpClient socket/DNS exhaustion, DbContext thread-safety and lifetime, DI captive dependency (Scoped or Transient injected into Singleton) with ValidateScopes only running in Development, CancellationToken propagation, BackgroundService host-kill semantics, the DATAS server-GC default, trimming/Native AOT reflection breakage, and CLR-level security (BinaryFormatter removal, ProcessStartInfo.ArgumentList, Path.Combine traversal, SSRF via HttpClient redirects, NuGet lockfile and package source mapping). Chains: mir-backend -> this -> framework module. TRIGGER when the backend runtime is .NET / CLR — any C# or
anantbhandarkar/make-it-right · ★ 15 · API & Backend · score 81
Install: claude install-skill anantbhandarkar/make-it-right
# /mir-backend-dotnet · Make It Right (.NET runtime) The middle tier. `mir-backend` decides **what is correct** (any language). The framework module (e.g. `mir-backend-dotnet-aspnetcore`) knows the **library's mechanics**. This tier owns what's true for **all .NET backends because they run on the CLR** — the async model, thread pool, DI container, and object lifetime rules that ASP.NET Core, gRPC services, background workers, and SignalR hubs all inherit. **Runtime assumed (verified 13 Aug 2026):** **.NET 10** — the current LTS, shipped Nov 2025, supported to Nov 2028. Latest patch is **10.0.11 (11 Aug 2026)**; the corresponding .NET 9 / .NET 8 patches are **9.0.19** and **8.0.30**. **.NET 8 (LTS) and .NET 9 (STS) both reach end of support on 10 Nov 2026** — the same day, because STS moved to a 24-month window. After that date neither gets security fixes. A new service targeting `net8.0` or `net9.0` today is a migration item with under three months of runway, not a default; say so at Gate 0 rather than accepting the TFM silently. .NET 11 is the next STS (expected Nov 2026) and is in preview as of this writing — do not target it in production. Load order: `mir-backend` → `mir-backend-dotnet` → `<framework module>`. ## The CLR footguns AI walks into (framework-agnostic) ### 1. Sync-over-async — the classic deadlock and thread-pool starvation trap Calling `.Result`, `.Wait()`, or `.GetAwaiter().GetResult()` on a `Task` or `ValueTask` from synchronous code is the #1 async