Baixe um laboratório. Mantenha seu trabalho separado.
Um exercício, um kit de aprendizado, um workspace descartável. Comece com o material de que você precisa em vez de clonar todas as linguagens, instalar todas as dependências ou copiar a solução final do instrutor.
[!TIP] Primeira visita? Escolha 01 — Contexto e interface abaixo. Você precisa do Node 24 para os testes locais; o acesso ao Copilot é separado. Não é necessário repositório do GitHub nem assinatura em nuvem para o exercício local.
| Seu objetivo | Comece aqui |
|---|---|
| Instalar ferramentas ou preparar contas pessoais | Pré-requisitos e contas, incluindo os três sistemas operacionais para a CLI |
| Praticar um cenário profissional | Um dos kits práticos abaixo |
| Seguir a trilha de aprendizagem com fantasia | Um dos kits de aventura abaixo |
| Entender a sequência primeiro | Mapa do currículo |
| Escolher um runtime ou resolver problemas de configuração | Guia do ambiente |
| Verificar um download | Somas de verificação e inventário dos kits |
O que um kit contém
| Arquivo ou pasta | Para que serve |
|---|---|
KIT-START.md |
Runtime, raiz do espaço de trabalho, comando da verificação inicial e estado inicial esperado |
KIT-LESSON.md |
Cópia das instruções completas do exercício |
| Arquivos originais do projeto | Código inicial, testes existentes, dados sintéticos e configuração |
.workshop/ |
Pré-requisitos locais, orientações de configuração e imagens incluídas na lição |
KIT-MANIFEST.json |
Tamanhos e hashes SHA-256 de cada arquivo |
KIT-VERIFY.cjs |
Verificação de integridade antes de alterar o projeto inicial |
KIT-LICENSE.txt |
Licença que acompanha o material redistribuído |
Os kits excluem o diretório reference do instrutor, o histórico do Git, as dependências, os caches e os arquivos do ambiente local. Eles não incluem contas, runtimes nem credenciais. A lição e o código canônicos permanecem em inglês dentro do pacote; o site de aprendizado também oferece visualizações de leitura em espanhol e português brasileiro. As referências oficiais externas ainda precisam de conexão com a Internet.
[!IMPORTANT] Um starter não é um aplicativo concluído. Algumas verificações iniciais falham deliberadamente. Siga o estado esperado em
KIT-START.md; um runtime ausente, um erro de importação ou uma execução de testes vazia não são uma reprodução bem-sucedida de uma falha intencional.
1. Selecione e baixe
No site de aprendizado, um link ZIP baixa o arquivo diretamente. No GitHub, se o link abrir uma pré-visualização do arquivo, selecione Download raw file. Baixe o inventário de checksums correspondente da mesma revisão inspecionada.
Kits práticos
As cinco guias de preparação reutilizam o kit de exercício associado; elas não precisam de cinco arquivos duplicados. Escolha a variante C# ou Python para os laboratórios com par de linguagens, não ambas ao mesmo tempo.
| Laboratório | Download | Primeira verificação local |
|---|---|---|
| 01 — Contexto e interface | 01-interface.zip | Testes de saudação |
| 02 — Analisar C# | 02-csharp.zip | Testes da biblioteca |
| 02 — Analisar Python | 02-python.zip | Testes da biblioteca |
| 03 — Desenvolver C# | 03-csharp.zip | Testes da biblioteca existente |
| 03 — Desenvolver Python | 03-python.zip | Testes da biblioteca existente |
| 04 — xUnit | 04-xunit.zip | Testes do serviço existente |
| 04 — pytest | 04-pytest.zip | Linha de base unittest sem dependências |
| 05 — Refatorar C# | 05-csharp.zip | Testes de caracterização |
| 05 — Refatorar Python | 05-python.zip | Testes de caracterização |
| 06 — Protótipo de compras | 06-prototype.zip | Testes do domínio do carrinho, não a finalização da UI |
| 07 — Duplicação | 07-duplication.zip | Build do projeto selecionado |
| 08 — Funções grandes | 08-functions.zip | Build do projeto de console |
| 09 — Regras de decisão | 09-conditionals.zip | Build do projeto de preços |
| 10 — Perfilamento delimitado | 10-profiling.zip | Build do analisador; sem teste de carga |
| 11 — Issues | 11-issues.zip | A linha de base passa; a regressão começa em vermelho |
| 12 — Remediação de segredos | 12-secrets.zip | Testes de política offline |
| 13 — Greenfield | 13-greenfield.zip | Falha intencional de armazenamento inacabado |
| 14 — Funcionalidade brownfield | 14-brownfield.zip | O contrato antigo passa; a funcionalidade começa em vermelho |
| 15 — Personalização | 15-customization.zip | Testes de inventário |
| 16 — Copilot SDK | 16-sdk.zip | Testes de aplicativo offline |
| 17 — Modernização | 17-modernization.zip | Linha de base CSV; a migração começa em vermelho |
Kits de aventura
Cada kit contém o laboratório, seu verificador e as instruções da aventura. Um verificador rejeita um exercício inacabado, salvo indicação contrária na tabela. A descoberta do host e as integrações ao vivo exigem evidência separada.
| Nível | Download | O que o trabalho local estabelece |
|---|---|---|
| Fundamentos | portals-of-nexus.zip | Mapeamento de papel, harness, destino e ambiente |
| Fundamentos | context-mirrors.zip | Linha de base de sequência para experimentos controlados |
| Básico | tempora-loop.zip | Comportamento de convergência delimitada |
| Básico | eldoria-laws.zip | Contrato de instruções do repositório |
| Intermediário | algora-skills.zip | Estrutura focada de skills |
| Intermediário | stellaris-agents.zip | Perfil de agente personalizado e definição de handoff |
| Intermediário | stonevale-guardrails.zip | Política de comandos determinística |
| Avançado | cartographer-mcp.zip | Troca MCP local somente leitura |
| Avançado | lumoria-graph.zip | Percurso de dependências sem ciclos |
| Avançado | mythos-parallel.zip | Execução paralela de tarefas e resultados ordenados |
| Superfícies | cloud-citadel.zip | Contrato delimitado de tarefa na nuvem, não uma execução na nuvem |
| Superfícies | terminal-gate.zip | Analisador seguro de comandos, não autenticação de CLI |
| Superfícies | automaton-foundry.zip | Estrutura do SDK e plano de avaliação; a execução ao vivo fica separada |
| Capstone | convergence-of-three-realms.zip | Contrato rastreável de fluxo de trabalho entre ambientes |
2. Verifique e extraia no seu sistema
Escolha um projeto ou unidade de trabalho existente com espaço suficiente. Os caminhos abaixo são exemplos: substitua-os pelo seu local de trabalho aprovado. Nunca extraia sobre um repositório existente. No Mac compartilhado do workshop, use a unidade de trabalho T9.
| Sistema | Verifique o ZIP baixado | Extraia para um diretório novo |
|---|---|---|
| Windows PowerShell | Get-FileHash .\01-interface.zip -Algorithm SHA256 |
Clique com o botão direito no ZIP → Extrair tudo; escolha uma nova pasta da unidade de trabalho |
| macOS | shasum -a 256 01-interface.zip |
Finder → clique duas vezes no ZIP dentro do diretório da unidade de trabalho escolhido |
| Linux | sha256sum 01-interface.zip |
Gerenciador de arquivos → Extrair aqui, no diretório da unidade de trabalho escolhido |
Compare o hash completo com a entrada em SHA256SUMS.txt. Um hash vindo de um arquivo compactado não confiável não autentica esse arquivo. Revise o repositório e a origem do download antes de executar qualquer código.
Abra a pasta extraída e leia KIT-START.md. Ele especifica se o VS Code deve abrir a raiz do kit ou starter/. Use Arquivo → Abrir pasta em uma nova janela. Não deixe outro repositório em um workspace com vários roots.
Ponto de controle: você consegue encontrar a fonte, a lição e o manifesto no disco fora do visualizador do ZIP. Se o Node 24 estiver instalado, node KIT-VERIFY.cjs na raiz do kit verifica se a extração preservou os arquivos empacotados.
3. Execute apenas a linha de base selecionada
- Leia o requisito de runtime em
KIT-START.md. - Selecione o interpretador ou SDK correspondente. Não instale todas as stacks de linguagem.
- Use o diretório de trabalho impresso ao lado do comando da linha de base.
- Registre o comando, os testes descobertos, o código de saída e a saída real.
- Compare o resultado com sucesso esperado ou falha intencional do starter.
- Continue com
KIT-LESSON.md: conceitos, Ask, Plan, Agent, verificações negativas e revisão.
Os testes de contrato locais não precisam de autenticação do Copilot. Um agente ao vivo, CLI, SDK ou exercício na nuvem pode exigir acesso à conta e consumir uso. Mantenha isso separado.
Use o VS Code ou o Insiders a partir do kit extraído
-
Leia o valor do espaço de trabalho em
KIT-START.md. Os kits práticos devem ser abertos na raiz do kit; as personalizações das aventuras devem ser abertas emstarter/. -
Use File > Open Folder (Arquivo > Abrir Pasta) na edição escolhida ou abra um terminal nesse espaço de trabalho e execute um dos comandos do editor:
code .Para usar o Insiders:
code-insiders . -
Confira a conta do GitHub e o perfil ativos nessa edição. Revise a Confiança no Espaço de Trabalho (Workspace Trust) e as personalizações fornecidas antes de autorizar ferramentas.
-
Siga as etapas de Ask, Plan, Agent e revisão da lição. Em um terminal no diretório
starter/de uma aventura, o verificador está um diretório acima:node ../verify.jsSe estiver na raiz do kit da aventura:
node verify.js
Esses dois comandos são alternativas conforme o diretório de trabalho, não dois testes diferentes. Os kits práticos usam a verificação inicial indicada no próprio guia de primeira execução. Não substitua um teste específico da linguagem pelo verificador de uma aventura.
Use o Copilot CLI a partir do kit extraído
-
Conclua a instalação e a autenticação da CLI para seu sistema operacional. Não é necessário instalar o VS Code para trabalhar com código somente pelo terminal.
-
Abra um terminal na raiz do kit extraído. Para uma aventura, entre primeiro no diretório
starter/; para um kit prático, permaneça na raiz do kit:cd starterExecute o comando de mudança de diretório somente para uma aventura. Depois, inicie o agente independente:
copilot -
Use primeiro o prompt de investigação da lição sem fazer alterações. Depois, solicite um plano com o escopo de arquivos, verificações positivas e negativas e a restauração. Essas são responsabilidades, não uma promessa de controles idênticos aos do VS Code na CLI.
-
Aprove somente a alteração revisada. Não conceda acesso a todo o repositório pai nem desative as solicitações de permissão para facilitar um teste.
-
Mantenha um terminal comum separado para os testes. Execute os comandos de
KIT-START.mda partir do diretório indicado; não cole comandos de teste no agente como se isso fosse um resultado de execução no terminal. -
Revise o diff e as saídas reais. Se você inicializou o Git na raiz do kit, estes comandos somente de leitura mostram as alterações:
git status --short git diff -
Registre a interface, a versão, as permissões e as limitações efetivamente usadas nas suas evidências. Encerre a sessão de aprendizagem ao terminar; não deixe um agente sem supervisão com autoridade ampla.
| Interface da lição | O que o trabalho somente pelo terminal pode e não pode comprovar |
|---|---|
| Verificações locais de código e contratos em todos os kits | Execute as verificações declaradas de estado inicial e implementação com o runtime exigido |
| Tarefas de interface do VS Code, testes no editor e depurador | Testes na CLI não comprovam interação com o editor; conclua essas tarefas no VS Code ou marque-as como não realizadas |
| Instruções, skills, agentes personalizados e MCP | Revise os arquivos localmente; a descoberta, as permissões de ferramentas e as transferências entre agentes devem ser verificadas no host específico documentado |
| Portal do Terminal | O verificador do analisador não comprova que uma sessão real do Copilot CLI se autenticou ou executou |
| Lições de SDK e agente de nuvem | Verificações offline não comprovam inferência autenticada, atribuição remota de tarefa ou um pull request; conclua o fluxo real separado somente com acesso autorizado |
O mesmo projeto inicial pode atender a diferentes ambientes sem tornar suas capacidades intercambiáveis. Não é necessário crédito do Azure para essas verificações locais nem para a autenticação do GitHub Copilot CLI.
4. Crie um repositório local, se necessário
Execute estes comandos dentro da raiz do kit extraído, depois de inspecionar seus arquivos:
git init -b training
git status --short
Revise a lista de arquivos. Exclua dependências, arquivos de ambiente e dados de runtime no .gitignore local antes do stage. Se o Git precisar de identidade, configure-a apenas para este repositório, com seu próprio nome e e-mail aprovados.
git config user.name "YOUR NAME"
git config user.email "YOUR APPROVED EMAIL"
git add .
git commit -m "Record untouched learning baseline"
Os dois valores de identidade são marcadores de posição, não comandos para copiar sem alteração. Criar esta linha de base local não cria um repositório no GitHub.
5. Publique opcionalmente no seu próprio repositório do GitHub
[!CAUTION] Publicar transfere arquivos para o GitHub. Revise as licenças e cada arquivo em stage. Nunca envie credenciais, dados pessoais reais nem material privado do instrutor. Um repositório privado é um padrão sensato, não permissão para enviar segredos.
- Faça login no GitHub com sua conta autorizada.
- Selecione New repository e escolha um proprietário que você tenha permissão para usar.
- Insira um nome de treinamento exclusivo e escolha a visibilidade apropriada.
- Deixe desmarcada a inicialização com README, licença e
.gitignore: o kit local já tem arquivos e um commit. - Crie o repositório vazio e copie sua URL HTTPS.
- Na raiz do kit, inspecione
git remote -v. Se já houver umorigin, pare e confirme qual repositório ele identifica; não o substitua automaticamente. - Adicione a URL copiada e envie a branch de treinamento:
git remote add origin https://github.com/YOUR-OWNER/YOUR-TRAINING-REPOSITORY.git
git push -u origin training
Substitua os marcadores de URL. Use o fluxo de autenticação aprovado pelo GitHub; não coloque um token de acesso na URL nem em um documento. Verifique a branch e os arquivos no GitHub. Uma atribuição de agente na nuvem ou um pull request é uma ação posterior, revisada separadamente.
Encerrar, solucionar problemas e redefinir
| Sintoma | Próxima ação |
|---|---|
| Um arquivo está faltando após a extração | Baixe novamente e compare o hash do arquivo; não invente um substituto |
KIT-VERIFY.cjs falha após editar |
Esperado quando os hashes mudam; use os testes da lição para obter evidência de implementação |
| Comando não encontrado | Instale ou selecione apenas o runtime nomeado pelo kit escolhido |
| Python não encontra um módulo | Verifique o diretório de trabalho library do kit e o interpretador |
| Uma personalização não é descoberta | Abra a raiz especificada, incluindo starter/ quando necessário |
| O GitHub rejeita o push | Verifique proprietário, URL, autenticação e branch; não faça force-push |
| Um recurso avançado não está disponível | Registre o bloqueio e use a alternativa local ou em papel documentada |
- Mantenha o arquivo original como linha de base limpa.
- Salve o diff, as verificações executadas e as limitações.
- Pare apenas os processos e sessões criados para o exercício.
- Extraia para um diretório novo e não usado para outra tentativa.
- Feche apenas os recursos remotos de propriedade do exercício depois de revisar o que deve ser preservado.
Reprodutibilidade para mantenedores
A partir do checkout do currículo, execute npm run build:kits depois de alterar uma lição empacotada, fixture ou imagem. npm run check:kits rejeita artefatos ausentes ou desatualizados. O gerador usa a biblioteca padrão do Node, entradas ordenadas, timestamps ZIP fixos, licenças incluídas, manifestos de arquivos e inventário SHA-256. Ele nunca executa código do aluno. Isso é reprodutibilidade para o formato de pacote declarado, não uma certificação de segurança.
As entradas ZIP usam o método STORE sem compressão, de modo que as somas de verificação não dependem da biblioteca de compressão do runtime. Os pacotes são maiores que os ZIPs comprimidos, mas preservam os mesmos arquivos extraídos e bytes determinísticos nos ambientes compatíveis.