Compartilhar via


Os conceitos de modernização do GitHub Copilot

GitHub Copilot realiza a modernização usando uma abordagem estruturada para atualizar e migrar projetos .NET. Entender como o agente funciona, incluindo seus cenários, habilidades, tarefas e fluxo de trabalho, ajuda você a colaborar com o agente com eficiência e obter os melhores resultados.

Dica

Pense no agente como um colega qualificado que entende .NET profundamente, segue um plano estruturado e se adapta aos seus comentários. Quanto mais contexto você fornecer, melhor o agente desempenhará.

O agente como um companheiro de equipe

O agente se destaca na colaboração, não na automação em um vácuo:

  • Deep .NET knowledge: O agente entende arquivos de projeto, dependências do NuGet, alterações interruptivas e padrões de migração em dezenas de tecnologias de .NET para projetos C# e Visual Basic.
  • Fluxo de trabalho estruturado: Cada atualização passa por avaliação, planejamento e execução. Sem alterações aleatórias, sem surpresas.
  • Aprende suas preferências: Quando você diz "sempre use tipos explícitos em vez de var", o agente grava essa preferência scenario-instructions.md e lembra-a entre sessões.
  • Corrigível no meio do voo: Tomou uma decisão errada? Diga ao agente. Ele se adapta e aplica a correção daqui para frente.
  • Explica seu raciocínio: Pergunte "por que você escolheu essa abordagem?" e o agente orienta você através da decisão.

Cenários

Um cenário é um fluxo de trabalho de modernização gerenciado de ponta a ponta. Quando você diz ao agente para "atualizar minha solução para .NET 10", você está disparando o cenário .NET version upgrade.

Como os cenários são descobertos

Você não precisa memorizar nomes de cenário. O agente descobre cenários relevantes automaticamente:

  1. Analisa sua base de código para entender quais tecnologias você está usando, incluindo linguagem, versão da estrutura, bibliotecas e tipos de projeto.
  2. Identifica quais cenários são relevantes para seus projetos.
  3. Classifica cenários por importância e peso. Os mais relevantes aparecem primeiro.

Você também pode perguntar diretamente: "Quais cenários estão disponíveis para minha solução?"

Persistência de cenário

Cada cenário ativo obtém sua própria pasta em .github/upgrades/{scenarioId}/. A pasta de cenário contém o plano, o progresso da tarefa, suas preferências e os logs de execução. A pasta faz parte do repositório Git.

Para obter uma lista completa de cenários, consulte Cenários e referência de habilidades.

O ciclo de vida do fluxo de trabalho

Cada cenário segue o mesmo ciclo de vida: um fluxo de trabalho de três estágios.

Estágio 1: Avaliação

O agente reúne tudo o que precisa antes de iniciar o trabalho:

  • Estrutura de destino: A versão para a qual você está atualizando.
  • Estratégia do Git: O agente sugere a criação de branches e você controla os detalhes: nome do branch, se deseja usar branches por tarefa e momento da confirmação.
  • Modo de fluxo: Automático (o agente controla) ou Guiado (você aprova cada estágio).
  • Parâmetros específicos do cenário: Dependendo do cenário, o agente pode fazer mais perguntas.

O agente inicializa o ambiente de cenário em .github/upgrades/{scenarioId}/.

Em seguida, o agente analisa sua base de código:

  • Grafo de dependências do projeto (ordem topológica)
  • Compatibilidade do pacote NuGet com a estrutura de destino
  • Alterações de API disruptivas
  • Cobertura de teste
  • Fatores de complexidade e risco

O agente salva um relatório de avaliação abrangente para assessment.md.

Com base na avaliação, o agente avalia sua solução e identifica quais decisões de atualização são relevantes. Ele apresenta padrões sensatos e permite que você examine e substitua qualquer opção.

As opções podem incluir:

  • Estratégia de atualização: De baixo para cima, de cima para baixo ou tudo de uma vez.
  • Abordagem de migração do projeto: regravação no local ou lado a lado para aplicativos web; no local ou multidirecionamento para bibliotecas.
  • Modernização da tecnologia: Opções para migração, injeção de dependência, registro em log e configuração do Entity Framework.
  • Gerenciamento de pacotes: Se e quando adotar o Gerenciamento Central de Pacotes.
  • Tratamento de compatibilidade: Como lidar com APIs e pacotes sem suporte.

O agente salva decisões confirmadas em upgrade-options.md.

No modo Guiado, o agente pausa aqui para sua revisão antes de continuar.

Estágio 2: Planejamento

O agente cria o plano de tarefas com base na avaliação e nas opções confirmadas. O planejamento produz três arquivos de chave:

  • plan.md: o plano de atualização com descrições de estratégia e tarefa.
  • scenario-instructions.md: suas preferências, decisões e a memória do agente.
  • tasks.md — A lista ordenada de tarefas que o agente executará.

Estágio 3: Execução

O agente executa tarefas sequencialmente. Para cada tarefa em tasks.md, o agente segue um ciclo: iniciar, executar, validar (compilar e testar) e concluir. Você controla quando e como o agente confirma alterações: por tarefa, por grupo de tarefas ou no final. À medida que o agente funciona, ele atualiza tasks.md com indicadores de status em tempo real para que você possa acompanhar o progresso.

Atualizar Estratégias

Durante o estágio de avaliação, o agente avalia sua solução e recomenda uma destas estratégias:

Estratégia Mais adequado para Como funciona
De baixo para cima Soluções grandes com grafos de dependência profunda Comece com projetos iniciais (sem dependências), avance para projetos superiores.
De cima para baixo Comentários rápidos sobre o aplicativo principal Comece com o projeto de aplicativo, corrija as dependências conforme necessário.
Tudo de uma vez Soluções pequenas e simples Atualize tudo de uma vez.

Dica

O agente somente apresenta decisões que são relevantes para o seu projeto. Um aplicativo de console simples não vê opções de estrutura da Web e um projeto sem o Entity Framework não vê opções de migração de banco de dados.

Habilidades

As habilidades são recursos de modernização menores e direcionados. Quando o agente encontra o código EF6 durante uma atualização, ele carrega a habilidade de migração de EF6 para EF-Core com instruções detalhadas passo a passo. Invoque uma habilidade diretamente durante uma atualização: "migre os serviços do WCF em meu projeto para o CoreWCF".

O agente vem com mais de 30 habilidades integradas organizadas por domínio:

  • Acesso a dados: EF6 para EF Core (code-first e EDMX), LINQ to SQL e migração do SqlClient
  • Web/ASP.NET: Identity, Global.asax, OWIN, roteamento/filtros/agrupamento MVC e WCF para CoreWCF
  • Serialização: Newtonsoft.Json para System.Text.Json
  • Cloud: Azure Functions em processo para o modelo de trabalho isolado
  • Bibliotecas: ADAL para MSAL, SignalR, SDK do PowerShell e muito mais

As habilidades são carregadas automaticamente com base no que o agente detecta em sua base de código. Você não precisa gerenciar o carregamento de habilidades. Apenas descreva o que você precisa.

Para obter a lista completa, consulte Cenários e referência de habilidades.

Tasks

As tarefas são as unidades atômicas de trabalho em um cenário. Cada tarefa representa uma parte específica e limitada da atualização, como "Atualizar CommonLib de .NET 6 para .NET 10" ou "Migrar o uso do EF6 no DataLayer para o EF Core".

Ciclo de vida da tarefa

As tarefas passam por esses estados:

  • Disponível: Pronto para começar, todas as dependências atendidas.
  • Em andamento: O agente está trabalhando ativamente na tarefa.
  • Concluído: Alterações de código aplicadas, build concluído com sucesso, testes concluídos com sucesso.

Para cada tarefa, o agente:

  1. Carrega habilidades pertinentes e contexto relacionado.
  2. Avalia a complexidade e decide se a tarefa precisa de subtarefas.
  3. Grava um resumo de escopo em tasks/{taskId}/task.md.
  4. Executa alterações de código.
  5. Valida ao executar a construção e os testes.
  6. Registra resultados em tasks/{taskId}/progress-details.md.
  7. Confirma alterações e passa para a próxima tarefa.

Gerenciamento de estado

O agente mantém o estado de operação contínua, permitindo que você possa parar e retomar a qualquer momento. Tudo está em seu repositório em .github/upgrades/{scenarioId}/.

Arquivo Propósito
scenario-instructions.md Suas preferências, decisões e instruções personalizadas. A memória persistente do agente.
upgrade-options.md Decisões de atualização confirmadas
plan.md O plano de atualização com descrições de estratégia e tarefa
tasks.md Painel de progresso visual mostrando o status da tarefa
execution-log.md Log detalhado de todas as alterações e decisões
tasks/{taskId}/task.md Escopo e contexto por tarefa
tasks/{taskId}/progress-details.md Resultados e notas de execução por tarefa

Resumabilidade

Feche o chat, feche o IDE ou volte no dia seguinte. O agente continua de onde parou:

  1. Na sua próxima interação, o agente verifica automaticamente o estado atual do espaço de trabalho.
  2. O agente detecta o cenário existente e mostra o progresso atual, como "3 de 8 tarefas concluídas".
  3. O agente detecta tarefas inativas (interrompidas de uma sessão anterior) e oferece retomar ou reiniciar essas tarefas.
  4. O agente recarrega suas preferências de scenario-instructions.md.

Continuidade entre diferentes IDEs

Como o estado reside no Git, você pode alternar entre o VS Code, Visual Studio e Copilot CLI no meio da atualização. A .github/upgrades/ pasta é o estado compartilhado que ambos os IDEs entendem.

Dica

Envie a pasta para o branch .github/upgrades/. Faça push do branch para um repositório remoto para que os membros da equipe possam ver o progresso ou continuar a atualização em outro computador.

Modos de fluxo

O agente dá suporte a dois modos de fluxo que controlam a quantidade de supervisão que você tem: modo automático e modo guiado.

Modo automático

O agente trabalha em todas as fases (avaliação, planejamento e execução) sem pausar para aprovação. Ele apresenta as principais descobertas e atualizações de progresso, mas continua avançando.

Melhor para usuários experientes, atualizações simples e pequenas soluções.

Modo guiado

O agente pausa em cada limite de estágio para sua revisão:

  • Após a avaliação: "Aqui está o que encontrei. Devo continuar com as opções de atualização?"
  • Após o planejamento: "Aqui está o plano de tarefas. Você quer que eu comece a execução?
  • Antes de dividir tarefas complexas: "Essa tarefa é complexa. Aqui está como eu a dividiria."

Melhor para usuários iniciantes, soluções complexas e quando você deseja aprender o processo.

Alternar modos a qualquer momento

  • Diga "pausar" ou "alternar para guiado" para alternar para o modo Guiado.
  • Diga "continuar" ou "vá em frente" para alternar para o modo Automático.

Dica

Comece com o modo Guiado para sua primeira atualização para entender o fluxo de trabalho e, em seguida, alterne para Automático quando estiver confortável.