csharp

Installation
SKILL.md

C# Conventions

For any BCL or NuGet API surface not pinned down here, resolve signatures with the documentation MCP rather than memory - never by grepping the NuGet cache or decompiled sources.

C# style, structure, and runtime conventions in one place: how code is shaped (naming, layout, syntax) and how it behaves (async, I/O, exceptions, logging, DI). Style is enforced by .editorconfig (Allman braces through the formatting rule IDE0055, file-scoped namespaces through IDE0161) and EnforceCodeStyleInBuild=true.

Formatting, naming, and language-feature style is authoritative in references/csharp-style.md (with the full canonical .editorconfig); the .NET Framework 4.8 delta (the C# 7.3 ceiling, polyfills, the SynchronizationContext async caveat) is references/net-framework-48.md. This file keeps the house rules those do not cover, and where it overlaps them, the style docs win. Above all of these, a project's own .editorconfig and its <docs-path>/code-style/CODE-STYLE.md are higher priority: where a project diverges from these general conventions, follow the project.

Floor: .NET 8 / C# 12. Every rule below assumes at least this target - TimeProvider, UnsafeAccessorAttribute, the static argument throw-helpers, and the C# 12 collection expressions / primary constructors are all in. Where a convention names a newer feature (C# 13 System.Threading.Lock, the C# 14 field keyword), it flags the version inline; treat those as opt-in once the project's target moves up.

Specialized concerns (concurrency, performance / memory layout, design patterns, serialization, DI registration, config binding, DDD, architecture, packaging) route through the .NET router skill where the install has it: load the focused skill it names, and with no router match work from the skills already loaded.

When to use

Installs
17
GitHub Stars
1
First Seen
Jun 21, 2026