Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
GitHub Copilot modernization agent provides managed, end-to-end modernization workflows called scenarios. Each scenario guides you through a specific type of activity in practical C++ modernization work. This page documents the available scenarios and skills so you can understand what the agent can do for your project.
Scenarios
A scenario is a managed workflow that guides you through a specific type of modernization activity.
How scenarios are discovered
You don't need to memorize scenario names. The agent detects your project type and suggests the relevant scenario automatically.
To list the scenarios the agent supports, ask "What scenarios are available for my project?" in the GitHub Copilot chat window.
Available scenarios
| Scenario | Project type | Description | Example prompt |
|---|---|---|---|
| MSVC Build Tools upgrade (MSBuild) | .sln, .vcxproj |
Upgrades MSBuild-based projects (.sln, .vcxproj) to a newer version of MSVC Build Tools and resolves upgrade-related build issues. |
"Upgrade my projects to use the latest, installed version of the MSVC Build Tools" |
| MSVC Build Tools upgrade (CMake) | CMake | Resolves upgrade-related build issues in your CMake-based projects after configuring the project with a newer version of MSVC Build Tools. | "Resolve any build issues caused by upgrading my project to use the newer MSVC Build Tools" |
Note
If you'd like to propose or upvote other modernization scenarios, visit Developer Community.
MSVC Build Tools upgrade (MSBuild)
This scenario handles the complete upgrade workflow for MSBuild-based C++ projects:
- Retargeting: Updates project settings to target the latest, installed MSVC Build Tools and Platform Toolset.
- Build analysis: Builds the solution and catalogs all errors and warnings introduced by the upgrade.
- Updating code: Replaces deprecated APIs, addresses conformance issues, and helps with breaking changes.
- Validation: Rebuilds to confirm all issues are resolved.
For example, this scenario addresses issues like:
- Deprecated CRT functions, for example,
sprintftosprintf_s. - C++ conformance changes, for example, stricter template parsing.
- Standard library changes between MSVC versions, such as removed, experimental namespaces (e.g.
std::tr1). - Warning-as-error promotions in newer toolsets.
- Linker errors for APIs removed from the Windows SDK.
MSVC Build Tools upgrade (CMake)
This scenario handles upgrade workflows for CMake-based C++ projects:
- Build analysis: Builds the project and catalogs all errors and warnings introduced by the upgrade.
- Updating code: Replaces deprecated APIs, addresses conformance issues, and helps with breaking changes.
- Validation: Rebuilds to confirm all issues are resolved.
For example, this scenario addresses issues like:
- Deprecated CRT functions, for example,
sprintftosprintf_s. - C++ conformance changes, for example, stricter template parsing.
- Standard library changes between MSVC versions, such as removed, experimental namespaces (e.g.
std::tr1). - Warning-as-error promotions in newer toolsets.
- Linker errors for APIs removed from the Windows SDK.
Scenario persistence
Each active scenario gets its own folder at .github/upgrades/{scenarioId}. The scenario folder contains the plan, task progress, your preferences, and execution logs. The folder becomes part of your Git repository.
Skills
Skills are smaller, targeted modernization capabilities that the agent uses within a scenario. When the agent encounters a specific pattern during an upgrade, it loads the relevant skill with detailed instructions.
Skills load automatically based on what the agent detects in your codebase. You don't need to manage skill loading.
Note
There are currently no additional skills specific to C++ modernization scenarios.