C# Conventions

Règles maison C# 12 / .NET 8 : Pattern Result, hygiène des requêtes EF, discipline asynchrone

par alexander-danilenko · alexander-danilenko/cortex-ai-skills

Testé · Fonctionne ★ 8.0/10

C# Conventions — Règles maison C# 12 / .NET 8 : Pattern Result, hygiène des requêtes EF, discipline asynchrone

Ce que fait

Un ensemble compact de conventions C# 12 / .NET 8+ opiniâtres couvrant les nullable-as-errors, les records et les constructeurs primaires, le pattern Result pour les échecs attendus, CancellationToken sur chaque méthode async, IOptions et IHttpClientFactory, et les règles EF Core comme AsNoTracking, AsSplitQuery, ExecuteUpdateAsync et les filtres de requête de suppression douce globaux. Il se charge chaque fois que vous écrivez ou révisez du C# dans une base de code ASP.NET Core, EF Core ou Blazor. Notez que malgré le README du dépôt, les directives CQRS/MediatR se trouvent dans la compétence sœur dotnet-core, pas ici.

Rapport de test

Je l'ai exécuté contre un contrôleur ASP.NET Core délibérément cassé et comparé à une revue sans compétence du même fichier. La compétence a produit sept corrections concrètes que la revue simple n'a pas faites, y compris le seul véritable bug latent : PurgeInactive définit IsDeleted mais sans filtres de requête dessus, et la convention globale HasQueryFilter de la compétence détecte que les utilisateurs supprimés en douceur continuent de revenir de GET /users/{id}. Elle a également nommé des API exactes que la revue générique n'a fait qu'évoquer — AsSplitQuery pour les deux Includes de collection, ExecuteUpdateAsync pour le basculement de drapeau en masse, IOptions avec ValidateOnStart pour la clé API de type chaîne. Son point aveugle est la sécurité : le corps ne dit rien sur l'injection SQL interpolée FromSqlRaw ou le mot de passe sa codé en dur, que la revue sans compétence a tous deux détectés. 573 mots, pas de scripts et pas de fichiers groupés à pourrir, et l'affirmation 'CQRS with MediatR' du README du dépôt pour cette compétence est en fait du contenu de la compétence sœur dotnet-core.

Testé le: 2026-08-07 · Claude Code 2.x (agent harness)

Installation

git clone https://github.com/alexander-danilenko/cortex-ai-skills.git
mkdir -p ~/.claude/skills
cd cortex-ai-skills && cp -r skills/csharp ~/.claude/skills/csharp

Commandes et exemples de prompts

  • /csharpRègles maison C# 12 / .NET 8 : Pattern Result, hygiène des requêtes EF, discipline asynchrone

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

  • Review this ASP.NET Core controller for our C# 12 conventions
  • Rewrite this EF Core query to use AsNoTracking and AsSplitQuery
  • Add CancellationToken and the Result pattern to this async method