{"id":"c216efad-0d9c-43fb-b833-a89be9269773","shortId":"25cVjB","kind":"skill","title":"Dotnet Upgrade","tagline":"Awesome Copilot skill by Github","description":"# Project Discovery & Assessment\n  - name: \"Project Classification Analysis\"\n    prompt: \"Identify all projects in the solution and classify them by type (`.NET Framework`, `.NET Core`, `.NET Standard`). Analyze each `.csproj` for its current `TargetFramework` and SDK usage.\"\n\n  - name: \"Dependency Compatibility Review\"\n    prompt: \"Review external and internal dependencies for framework compatibility. Determine the upgrade complexity based on dependency graph depth.\"\n\n  - name: \"Legacy Package Detection\"\n    prompt: \"Identify legacy `packages.config` projects needing migration to `PackageReference` format.\"\n\n  # Upgrade Strategy & Sequencing\n  - name: \"Project Upgrade Ordering\"\n    prompt: \"Recommend a project upgrade order from least to most dependent components. Suggest how to isolate class library upgrades before API or Azure Function migrations.\"\n\n  - name: \"Incremental Strategy Planning\"\n    prompt: \"Propose an incremental upgrade strategy with rollback checkpoints. Evaluate the use of **Upgrade Assistant** or **manual upgrades** based on project structure.\"\n\n  - name: \"Progress Tracking Setup\"\n    prompt: \"Generate an upgrade checklist for tracking build, test, and deployment readiness across all projects.\"\n\n  # Framework Targeting & Code Adjustments\n  - name: \"Target Framework Selection\"\n    prompt: \"Suggest the correct `TargetFramework` for each project (e.g., `net8.0`). Review and update deprecated SDK or build configurations.\"\n\n  - name: \"Code Modernization Analysis\"\n    prompt: \"Identify code patterns needing modernization (e.g., `WebHostBuilder` → `HostBuilder`). Suggest replacements for deprecated .NET APIs and third-party libraries.\"\n\n  - name: \"Async Pattern Conversion\"\n    prompt: \"Recommend conversion of synchronous calls to async where appropriate for improved performance and scalability.\"\n\n  # NuGet & Dependency Management\n  - name: \"Package Compatibility Analysis\"\n    prompt: \"Analyze outdated or incompatible NuGet packages and suggest compatible versions. Identify third-party libraries that lack .NET 8 support and provide migration paths.\"\n\n  - name: \"Shared Dependency Strategy\"\n    prompt: \"Recommend strategies for handling shared dependency upgrades across projects. Evaluate usage of legacy packages and suggest alternatives in Microsoft-supported namespaces.\"\n\n  - name: \"Transitive Dependency Review\"\n    prompt: \"Review transitive dependencies and potential version conflicts after upgrade. Suggest resolution strategies for dependency conflicts.\"\n\n  # CI/CD & Build Pipeline Updates\n  - name: \"Pipeline Configuration Analysis\"\n    prompt: \"Analyze YAML build definitions for SDK version pinning and recommend updates. Suggest modifications for `UseDotNet@2` and `NuGetToolInstaller` tasks.\"\n\n  - name: \"Build Pipeline Modernization\"\n    prompt: \"Generate updated build pipeline snippets for .NET 8 migration. Recommend validation builds on feature branches before merging to main.\"\n\n  - name: \"CI Automation Enhancement\"\n    prompt: \"Identify opportunities to automate test and build verification in CI pipelines. Suggest strategies for continuous integration validation.\"\n\n  # Testing & Validation\n  - name: \"Build Validation Strategy\"\n    prompt: \"Propose validation checks to ensure the upgraded solution builds and runs successfully. Recommend automated test execution for unit and integration suites post-upgrade.\"\n\n  - name: \"Service Integration Verification\"\n    prompt: \"Generate validation steps to verify logging, telemetry, and service connectivity. Suggest strategies for verifying backward compatibility and runtime behavior.\"\n\n  - name: \"Deployment Readiness Check\"\n    prompt: \"Recommend UAT deployment verification steps before production rollout. Create comprehensive testing scenarios for upgraded components.\"\n\n  # Breaking Change Analysis\n  - name: \"API Deprecation Detection\"\n    prompt: \"Identify deprecated APIs or removed namespaces between target versions. Suggest automated scanning using `.NET Upgrade Assistant` and API Analyzer.\"\n\n  - name: \"API Replacement Strategy\"\n    prompt: \"Recommend replacement APIs or libraries for known breaking areas. Review configuration changes such as `Startup.cs` → `Program.cs` refactoring.\"\n\n  - name: \"Regression Testing Focus\"\n    prompt: \"Suggest regression testing scenarios focused on upgraded API endpoints or services. Create test plans for critical functionality validation.\"\n\n  # Version Control & Commit Strategy\n  - name: \"Branching Strategy Planning\"\n    prompt: \"Recommend branching strategy for safe upgrade with rollback capability. Generate commit templates for partial and complete project upgrades.\"\n\n  - name: \"PR Structure Optimization\"\n    prompt: \"Suggest best practices for creating structured PRs (`Upgrade to .NET [Version]`). Identify tagging strategies for PRs involving breaking changes.\"\n\n  - name: \"Code Review Guidelines\"\n    prompt: \"Recommend peer review focus areas (build, test, and dependency validation). Create checklists for effective upgrade reviews.\"\n\n  # Documentation & Communication\n  - name: \"Upgrade Documentation Strategy\"\n    prompt: \"Suggest how to document each project's framework change in the PR. Propose automated release note generation summarizing upgrades and test results.\"\n\n  - name: \"Stakeholder Communication\"\n    prompt: \"Recommend communicating version upgrades and migration timelines to consumers. Generate documentation templates for dependency updates and validation results.\"\n\n  - name: \"Progress Tracking Systems\"\n    prompt: \"Suggest maintaining an upgrade summary dashboard or markdown checklist. Create templates for tracking upgrade progress across multiple projects.\"\n\n  # Tools & Automation\n  - name: \"Upgrade Tool Selection\"\n    prompt: \"Recommend when and how to use: `.NET Upgrade Assistant`, `dotnet list package --outdated`, `dotnet migrate`, and `graph.json` dependency visualization.\"\n\n  - name: \"Analysis Script Generation\"\n    prompt: \"Generate scripts or prompts for analyzing dependency graphs before upgrading. Propose AI-assisted prompts for Copilot to identify upgrade issues automatically.\"\n\n  - name: \"Multi-Repository Validation\"\n    prompt: \"Suggest how to validate automation output across multiple repositories. Create standardized validation workflows for enterprise-scale upgrades.\"\n\n  # Final Validation & Delivery\n  - name: \"Final Solution Validation\"\n    prompt: \"Generate validation steps to confirm the final upgraded solution passes all validation checks. Suggest production deployment verification steps post-upgrade.\"\n\n  - name: \"Deployment Readiness Confirmation\"\n    prompt: \"Recommend generating final test results and build artifacts. Create a checklist summarizing completion across projects (builds/tests/deployment).\"\n\n  - name: \"Release Documentation\"\n    prompt: \"Generate a release note summarizing framework changes and CI/CD updates. Create comprehensive upgrade summary documentation.\"\n\n---","tags":["dotnet","upgrade","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/dotnet-upgrade","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","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:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T13:40:15.140Z","embedding":null,"createdAt":"2026-04-18T20:25:52.899Z","updatedAt":"2026-04-22T13:40:15.140Z","lastSeenAt":"2026-04-22T13:40:15.140Z","tsv":"'2':328 '8':251,344 'across':153,269,668,736,795 'adjust':159 'ai':714 'ai-assist':713 'altern':278 'analysi':14,185,231,311,455,698 'analyz':33,233,313,479,707 'api':106,200,457,463,478,481,487,514 'appropri':219 'area':493,585 'artifact':789 'assess':10 'assist':129,476,686,715 'async':207,217 'autom':358,364,398,471,617,672,734 'automat':723 'awesom':3 'azur':108 'backward':428 'base':60,133 'behavior':432 'best':558 'branch':351,530,535 'break':453,492,574 'build':148,180,305,315,333,339,348,367,381,393,586,788 'builds/tests/deployment':797 'call':215 'capabl':542 'category-awesome-copilot' 'chang':454,496,575,612,808 'check':387,436,768 'checklist':145,592,661,792 'checkpoint':123 'ci':357,370 'ci/cd':304,810 'class':102 'classif':13 'classifi':23 'code':158,183,188,577 'commit':527,544 'communic':598,628,631 'compat':45,55,230,241,429 'complet':549,794 'complex':59 'compon':97,452 'comprehens':447,813 'configur':181,310,495 'confirm':760,780 'conflict':295,303 'connect':423 'consum':638 'continu':375 'control':526 'convers':209,212 'copilot':4,718 'core':30 'correct':167 'creat':446,518,561,591,662,739,790,812 'critic':522 'csproj':35 'current':38 'dashboard':658 'definit':316 'deliveri':750 'depend':44,52,62,96,226,259,267,286,291,302,589,643,695,708 'deploy':151,434,440,771,778 'deprec':177,198,458,462 'depth':64 'detect':68,459 'determin':56 'discoveri':9 'document':597,601,607,640,800,816 'dotnet':1,687,691 'e.g':172,192 'effect':594 'endpoint':515 'enhanc':359 'ensur':389 'enterpris':745 'enterprise-scal':744 'evalu':124,271 'execut':400 'extern':49 'featur':350 'final':748,752,762,784 'focus':505,511,584 'format':78 'framework':28,54,156,162,611,807 'function':109,523 'generat':142,337,414,543,620,639,700,702,756,783,802 'github':7 'graph':63,709 'graph.json':694 'guidelin':579 'handl':265 'hostbuild':194 'identifi':16,70,187,243,361,461,568,720 'improv':221 'incompat':236 'increment':112,118 'integr':376,404,411 'intern':51 'involv':573 'isol':101 'issu':722 'known':491 'lack':249 'least':93 'legaci':66,71,274 'librari':103,205,247,489 'list':688 'log':419 'main':355 'maintain':654 'manag':227 'manual':131 'markdown':660 'merg':353 'microsoft':281 'microsoft-support':280 'migrat':75,110,255,345,635,692 'modern':184,191,335 'modif':325 'multi':726 'multi-repositori':725 'multipl':669,737 'name':11,43,65,82,111,137,160,182,206,228,257,284,308,332,356,380,409,433,456,480,502,529,552,576,599,626,648,673,697,724,751,777,798 'namespac':283,466 'need':74,190 'net':27,29,31,199,250,343,474,566,684 'net8.0':173 'note':619,805 'nuget':225,237 'nugettoolinstal':330 'opportun':362 'optim':555 'order':85,91 'outdat':234,690 'output':735 'packag':67,229,238,275,689 'packagerefer':77 'packages.config':72 'parti':204,246 'partial':547 'pass':765 'path':256 'pattern':189,208 'peer':582 'perform':222 'pin':320 'pipelin':306,309,334,340,371 'plan':114,520,532 'post':407,775 'post-upgrad':406,774 'potenti':293 'pr':553,615 'practic':559 'product':444,770 'program.cs':500 'progress':138,649,667 'project':8,12,18,73,83,89,135,155,171,270,550,609,670,796 'prompt':15,47,69,86,115,141,164,186,210,232,261,288,312,336,360,384,413,437,460,484,506,533,556,580,603,629,652,677,701,705,716,729,755,781,801 'propos':116,385,616,712 'provid':254 'prs':563,572 'readi':152,435,779 'recommend':87,211,262,322,346,397,438,485,534,581,630,678,782 'refactor':501 'regress':503,508 'releas':618,799,804 'remov':465 'replac':196,482,486 'repositori':727,738 'resolut':299 'result':625,647,786 'review':46,48,174,287,289,494,578,583,596 'rollback':122,541 'rollout':445 'run':395 'runtim':431 'safe':538 'scalabl':224 'scale':746 'scan':472 'scenario':449,510 'script':699,703 'sdk':41,178,318 'select':163,676 'sequenc':81 'servic':410,422,517 'setup':140 'share':258,266 'skill':5 'snippet':341 'solut':21,392,753,764 'source-github' 'stakehold':627 'standard':32,740 'startup.cs':499 'step':416,442,758,773 'strategi':80,113,120,260,263,300,373,383,425,483,528,531,536,570,602 'structur':136,554,562 'success':396 'suggest':98,165,195,240,277,298,324,372,424,470,507,557,604,653,730,769 'suit':405 'summar':621,793,806 'summari':657,815 'support':252,282 'synchron':214 'system':651 'tag':569 'target':157,161,468 'targetframework':39,168 'task':331 'telemetri':420 'templat':545,641,663 'test':149,365,378,399,448,504,509,519,587,624,785 'third':203,245 'third-parti':202,244 'timelin':636 'tool':671,675 'track':139,147,650,665 'transit':285,290 'type':26 'uat':439 'unit':402 'updat':176,307,323,338,644,811 'upgrad':2,58,79,84,90,104,119,128,132,144,268,297,391,408,451,475,513,539,551,564,595,600,622,633,656,666,674,685,711,721,747,763,776,814 'usag':42,272 'use':126,473,683 'usedotnet':327 'valid':347,377,379,382,386,415,524,590,646,728,733,741,749,754,757,767 'verif':368,412,441,772 'verifi':418,427 'version':242,294,319,469,525,567,632 'visual':696 'webhostbuild':193 'workflow':742 'yaml':314","prices":[{"id":"ff338152-08e9-482c-88ac-940aa4005d57","listingId":"c216efad-0d9c-43fb-b833-a89be9269773","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:52.899Z"}],"sources":[{"listingId":"c216efad-0d9c-43fb-b833-a89be9269773","source":"github","sourceId":"github/awesome-copilot/dotnet-upgrade","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/dotnet-upgrade","isPrimary":false,"firstSeenAt":"2026-04-18T21:49:12.898Z","lastSeenAt":"2026-04-22T12:52:11.596Z"},{"listingId":"c216efad-0d9c-43fb-b833-a89be9269773","source":"skills_sh","sourceId":"github/awesome-copilot/dotnet-upgrade","sourceUrl":"https://skills.sh/github/awesome-copilot/dotnet-upgrade","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:52.899Z","lastSeenAt":"2026-04-22T13:40:15.140Z"}],"details":{"listingId":"c216efad-0d9c-43fb-b833-a89be9269773","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"dotnet-upgrade","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/dotnet-upgrade"},"updatedAt":"2026-04-22T13:40:15.140Z"}}