coder-csharp-conventions
npx skills add https://github.com/ozerohax/assistagents --skill coder-csharp-conventions
Agent 安装分布
Skill 文档
<skill_overview> Ensure C# code follows Microsoft official guidelines and modern patterns Writing new C# code Reviewing naming conventions Using modern C# features Refactoring legacy C# code Microsoft C# Coding Conventions Microsoft Identifier Naming Framework Design Guidelines (Cwalina & Abrams) </skill_overview> <naming_conventions> <applies_to>Types, namespaces, public members, methods, properties, events, constants, enum values</applies_to> public class UserService { } public void ProcessOrder() { } public string FirstName { get; set; } public const int MaxRetryCount = 3; public enum OrderStatus { Pending, Completed }
public required string Email { get; init; }
}
<options_pattern> // appsettings.json { “Email”: { “SmtpHost”: “smtp.example.com”, “SmtpPort”: 587, “FromAddress”: “noreply@example.com” } } // Configuration class public class EmailSettings { public required string SmtpHost { get; init; } public required int SmtpPort { get; init; } public required string FromAddress { get; init; } } // Registration builder.Services.Configure<EmailSettings>( builder.Configuration.GetSection(“Email”)); // Usage with primary constructor public class EmailService(IOptions<EmailSettings> options) { private readonly EmailSettings _settings = options.Value;
public void Send(string to, string subject, string body)
{
// Use _settings.SmtpHost, etc.
}
} </options_pattern> </dependency_injection> <performance_tips> Use StringBuilder for multiple string concatenations var sb = new StringBuilder(); foreach (var item in items) { sb.AppendLine(item.Name); } return sb.ToString();