{"id":"54d4fee3-6160-4580-b236-0bc285dcf17b","shortId":"JK9kCm","kind":"skill","title":"dotnet-design-pattern-review","tagline":"Review the C#/.NET code for design pattern implementation and suggest improvements.","description":"# .NET/C# Design Pattern Review\n\nReview 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.\n\n## Required Design Patterns\n\n- **Command Pattern**: Generic base classes (`CommandHandler<TOptions>`), `ICommandHandler<TOptions>` interface, `CommandHandlerOptions` inheritance, static `SetupCommand(IHost host)` methods\n- **Factory Pattern**: Complex object creation service provider integration\n- **Dependency Injection**: Primary constructor syntax, `ArgumentNullException` null checks, interface abstractions, proper service lifetimes\n- **Repository Pattern**: Async data access interfaces provider abstractions for connections\n- **Provider Pattern**: External service abstractions (database, AI), clear contracts, configuration handling\n- **Resource Pattern**: ResourceManager for localized messages, separate .resx files (LogMessages, ErrorMessages)\n\n## Review Checklist\n\n- **Design Patterns**: Identify patterns used. Are Command Handler, Factory, Provider, and Repository patterns correctly implemented? Missing beneficial patterns?\n- **Architecture**: Follow namespace conventions (`{Core|Console|App|Service}.{Feature}`)? Proper separation between Core/Console projects? Modular and readable?\n- **.NET Best Practices**: Primary constructors, async/await with Task returns, ResourceManager usage, structured logging, strongly-typed configuration?\n- **GoF Patterns**: Command, Factory, Template Method, Strategy patterns correctly implemented?\n- **SOLID Principles**: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion violations?\n- **Performance**: Proper async/await, resource disposal, ConfigureAwait(false), parallel processing opportunities?\n- **Maintainability**: Clear separation of concerns, consistent error handling, proper configuration usage?\n- **Testability**: Dependencies abstracted via interfaces, mockable components, async testability, AAA pattern compatibility?\n- **Security**: Input validation, secure credential handling, parameterized queries, safe exception handling?\n- **Documentation**: XML docs for public APIs, parameter/return descriptions, resource file organization?\n- **Code Clarity**: Meaningful names reflecting domain concepts, clear intent through patterns, self-explanatory structure?\n- **Clean Code**: Consistent style, appropriate method/class size, minimal complexity, eliminated duplication?\n\n## Improvement Focus Areas\n\n- **Command Handlers**: Validation in base class, consistent error handling, proper resource management\n- **Factories**: Dependency configuration, service provider integration, disposal patterns\n- **Providers**: Connection management, async patterns, exception handling and logging\n- **Configuration**: Data annotations, validation attributes, secure sensitive value handling\n- **AI/ML Integration**: Semantic Kernel patterns, structured output handling, model configuration\n\nProvide specific, actionable recommendations for improvements aligned with the project's architecture and .NET best practices.","tags":["dotnet","design","pattern","review","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest"],"capabilities":["skill","source-github","skill-dotnet-design-pattern-review","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/dotnet-design-pattern-review","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 33270 github stars · SKILL.md body (3,140 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:10.251Z","embedding":null,"createdAt":"2026-04-18T20:25:29.948Z","updatedAt":"2026-05-18T18:52:10.251Z","lastSeenAt":"2026-05-18T18:52:10.251Z","tsv":"'/.net':9,25 'aaa':228 'abstract':86,97,104,221 'access':94 'action':332 'ai':106 'ai/ml':320 'align':336 'annot':313 'api':247 'app':148 'appropri':272 'architectur':142,341 'area':281 'argumentnullexcept':82 'async':92,226,305 'async/await':164,200 'attribut':315 'base':57,286 'benefici':140 'best':160,344 'c':8,24 'chang':43 'check':84 'checklist':123 'clariti':254 'class':58,287 'clean':268 'clear':107,209,260 'code':10,26,46,253,269 'command':54,130,178,282 'commandhandl':59 'commandhandleropt':62 'compat':230 'complex':71,276 'compon':225 'concept':259 'concern':212 'configur':109,175,217,296,311,329 'configureawait':203 'connect':99,303 'consist':213,270,288 'consol':147 'constructor':80,163 'contract':108 'convent':145 'core':146 'core/console':154 'correct':137,184 'creation':73 'credenti':235 'data':93,312 'databas':105 'depend':77,195,220,295 'descript':249 'design':3,12,19,30,52,124 'dispos':202,300 'doc':244 'document':242 'domain':258 'dotnet':2 'dotnet-design-pattern-review':1 'duplic':278 'elimin':277 'error':214,289 'errormessag':121 'except':240,307 'explanatori':266 'extern':102 'factori':69,132,179,294 'fals':204 'featur':150 'file':119,251 'focus':280 'follow':143 'generic':56 'gof':176 'handl':110,215,236,241,290,308,319,327 'handler':131,283 'host':67 'icommandhandl':60 'identifi':126 'ihost':66 'implement':14,32,138,185 'improv':17,35,279,335 'inherit':63 'inject':78 'input':232 'integr':76,299,321 'intent':261 'interfac':61,85,95,193,223 'invers':196 'kernel':323 'lifetim':89 'liskov':191 'local':115 'log':171,310 'logmessag':120 'maintain':208 'make':41 'manag':293,304 'meaning':255 'messag':116 'method':68,181 'method/class':273 'minim':275 'miss':139 'mockabl':224 'model':328 'modular':156 'name':256 'namespac':144 'net':159,343 'net/c':18 'null':83 'object':72 'open/closed':190 'opportun':207 'organ':252 'output':326 'parallel':205 'parameter':237 'parameter/return':248 'pattern':4,13,20,31,53,55,70,91,101,112,125,127,136,141,177,183,229,263,301,306,324 'perform':198 'practic':161,345 'primari':79,162 'principl':187 'process':206 'project':155,339 'proper':87,151,199,216,291 'provid':48,75,96,100,133,298,302,330 'public':246 'queri':238 'readabl':158 'recommend':333 'reflect':257 'repositori':90,135 'requir':51 'resourc':111,201,250,292 'resourcemanag':113,168 'respons':189 'resx':118 'return':167 'review':5,6,21,22,50,122 'safe':239 'secur':231,234,316 'segreg':194 'select':28 'self':265 'self-explanatori':264 'semant':322 'sensit':317 'separ':117,152,210 'servic':74,88,103,149,297 'setupcommand':65 'singl':188 'size':274 'skill' 'skill-dotnet-design-pattern-review' 'solid':186 'solution/project':38 'source-github' 'specif':331 'static':64 'strategi':182 'strong':173 'strongly-typ':172 'structur':170,267,325 'style':271 'substitut':192 'suggest':16,34 'syntax':81 'task':166 'templat':180 'testabl':219,227 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'type':174 'usag':169,218 'use':128 'valid':233,284,314 'valu':318 'via':222 'violat':197 'xml':243","prices":[{"id":"7ad21788-b4c9-4f80-868c-1bf18a855311","listingId":"54d4fee3-6160-4580-b236-0bc285dcf17b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:29.948Z"}],"sources":[{"listingId":"54d4fee3-6160-4580-b236-0bc285dcf17b","source":"github","sourceId":"github/awesome-copilot/dotnet-design-pattern-review","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/dotnet-design-pattern-review","isPrimary":false,"firstSeenAt":"2026-04-18T21:49:11.556Z","lastSeenAt":"2026-05-18T18:52:10.251Z"},{"listingId":"54d4fee3-6160-4580-b236-0bc285dcf17b","source":"skills_sh","sourceId":"github/awesome-copilot/dotnet-design-pattern-review","sourceUrl":"https://skills.sh/github/awesome-copilot/dotnet-design-pattern-review","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:29.948Z","lastSeenAt":"2026-05-07T22:40:17.194Z"}],"details":{"listingId":"54d4fee3-6160-4580-b236-0bc285dcf17b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"dotnet-design-pattern-review","github":{"repo":"github/awesome-copilot","stars":33270,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-05-18T01:26:59Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"5d9ded0c58cb5efd1e9eb5efbf278e9860f7be52","skill_md_path":"skills/dotnet-design-pattern-review/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/dotnet-design-pattern-review"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"dotnet-design-pattern-review","description":"Review the C#/.NET code for design pattern implementation and suggest improvements."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/dotnet-design-pattern-review"},"updatedAt":"2026-05-18T18:52:10.251Z"}}