dotnet-design-pattern-review
Review the C#/.NET code for design pattern implementation and suggest improvements.
Summary
- Purpose
- Assess how a C#/.NET codebase applies design patterns, architectural boundaries, and platform best practices.
- When to use
- Use it when evaluating a C#/.NET solution for pattern correctness and concerns such as maintainability, testability, performance, or security.
- Outputs
- It provides a review with specific, actionable recommendations and makes no code changes.
Upstream changes (3, latest included 2026-02-19)
caab1f6 Convert all prompts to skills and update plugin manifests Added the .NET/C# design-pattern review skill, including its review checklist and improvement focus areas. 2f9c96d Fix deprecated 'mode' attribute in prompt files by renaming to 'agent' (#441) Renamed the prompt frontmatter field from `mode` to `agent`, retaining the value `agent`. e1c7c7a Add 18 new prompts files (#56) Added a .NET/C# design-pattern review prompt with required patterns, review criteria, and improvement focus areas. npx skills add "lettucebo/Skills#v2.2.0@dotnet-design-pattern-review" --full-depth ⚠ Available after v2.2.0 is published
.NET/C# Design Pattern Review
Review the C#/.NET code in ${selection} for design pattern implementation and suggest improvements for the solution/project. Do not make any changes to the code, just provide a review.
Required Design Patterns
- Command Pattern: Generic base classes (
CommandHandler<TOptions>),ICommandHandler<TOptions>interface,CommandHandlerOptionsinheritance, staticSetupCommand(IHost host)methods - Factory Pattern: Complex object creation service provider integration
- Dependency Injection: Primary constructor syntax,
ArgumentNullExceptionnull checks, interface abstractions, proper service lifetimes - Repository Pattern: Async data access interfaces provider abstractions for connections
- Provider Pattern: External service abstractions (database, AI), clear contracts, configuration handling
- Resource Pattern: ResourceManager for localized messages, separate .resx files (LogMessages, ErrorMessages)
Review Checklist
- Design Patterns: Identify patterns used. Are Command Handler, Factory, Provider, and Repository patterns correctly implemented? Missing beneficial patterns?
- Architecture: Follow namespace conventions (
{Core|Console|App|Service}.{Feature})? Proper separation between Core/Console projects? Modular and readable? - .NET Best Practices: Primary constructors, async/await with Task returns, ResourceManager usage, structured logging, strongly-typed configuration?
- GoF Patterns: Command, Factory, Template Method, Strategy patterns correctly implemented?
- SOLID Principles: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion violations?
- Performance: Proper async/await, resource disposal, ConfigureAwait(false), parallel processing opportunities?
- Maintainability: Clear separation of concerns, consistent error handling, proper configuration usage?
- Testability: Dependencies abstracted via interfaces, mockable components, async testability, AAA pattern compatibility?
- Security: Input validation, secure credential handling, parameterized queries, safe exception handling?
- Documentation: XML docs for public APIs, parameter/return descriptions, resource file organization?
- Code Clarity: Meaningful names reflecting domain concepts, clear intent through patterns, self-explanatory structure?
- Clean Code: Consistent style, appropriate method/class size, minimal complexity, eliminated duplication?
Improvement Focus Areas
- Command Handlers: Validation in base class, consistent error handling, proper resource management
- Factories: Dependency configuration, service provider integration, disposal patterns
- Providers: Connection management, async patterns, exception handling and logging
- Configuration: Data annotations, validation attributes, secure sensitive value handling
- AI/ML Integration: Semantic Kernel patterns, structured output handling, model configuration
Provide specific, actionable recommendations for improvements aligned with the project's architecture and .NET best practices.