Auditoria e verificação da trilha prática
Escopo da auditoria: todos os 25 guias importados de preparação/exercícios, seus conceitos e fixtures de apoio e a integração com Awesome Copilot Adventures. O novo laboratório 17 é um exercício numerado de modernização, não uma aventura.
Encaminhamento por laboratório
| Laboratório | Descoberta no conteúdo importado | Melhoria aplicada |
|---|---|---|
| Configuração C# | Edições globais de feeds, suposições de versão, compilação tratada como verificação | Verificação de destino/runtime, cópia isolada, descoberta explícita de testes |
| Configuração Python | Configuração de interpretador/pacotes sem escopo e cotas fixas de plano | Raiz de importação, ambiente isolado, sem garantias de cotas |
| Configuração Copilot | Capturas antigas/extensões tratadas como evidências de acesso | Fluxo atual de entrada, papel/destino e verificação com solicitação inofensiva |
| Configuração Spec Kit | Nome “Dev Kit”, suposições antigas de layout e riscos de sobrescrita | Layout de skills fixado na v1.0.4, distinção do modo de comandos, inicialização revisada |
| Configuração SDK | Aplicação .NET externa e confusão entre identidades da CLI/editor | Fixture Node que prioriza o modo offline e autenticação separada da aplicação |
| 01 Interface | Coordenadas de interface e previsões determinísticas de respostas | Pequeno contrato de saudação, comparação de contexto e asserção negativa |
| 02 C# | Explicações genéricas e alegações de recuperação de toda a base de código | Rastreamento das fontes, DI/modelo de dados e documentação executável |
| 02 Python | Ambiguidade da raiz de importação e alegações genéricas sobre camadas | Construção real em Python, limitações do JSON e relações dos dados |
| 03 C# | Fluxo público/remoto obrigatório; disponibilidade de título/exemplar ambígua | Contrato local da funcionalidade e casos de empréstimo ativo por exemplar |
| 03 Python | Mesmas suposições de publicação; executor incorreto/garantias de resposta | Raiz de importação correta e casos de aceitação BOOK-1..6 |
| 04 xUnit | Interface verde gerada usada como evidência | Testes de componente do repositório real, JSON isolado e verificações de mutação |
| 04 pytest | Descoberta de testes confundida com correção | Ponto real de isolamento do repositório, verificações de coleta e asserção deliberadamente errada |
| 05 C# | Refatoração equiparada a melhoria | Caracterização de caixa, ordenação, preenchimento e persistência |
| 05 Python | Alterações de compreensão/ordenação sem contrato de mutação | sorted versus semântica no próprio objeto, duplicatas/empates/IDs ausentes |
| 06 Protótipo | PRD inteiro copiado para instruções; aparência implicava correção | PRD pequeno, centavos inteiros, lista de verificação de interface acessível e servidor local |
| 07 Duplicação | Mecanismos semelhantes de pedidos/devoluções tratados como regras idênticas | Tabela real de políticas de frete, limites e preservação de efeitos colaterais |
| 08 Funções grandes | Grandes reescritas geradas e transcrições desatualizadas | Uma extração, sequência de compensação e verificação negativa da liberação |
| 09 Condições | Eliminação de aninhamento sem tabela de decisão | Igualdade, sobreposição, tetos, ordem e comportamento explícito de entrada inválida |
| 10 Análise de desempenho | Melhorias prometidas, distribuição paralela, subtração especulativa de atrasos | Carga pequena, limite nomeado, amostras brutas e permissão de resultados inconclusivos |
| 11 Issues | Aplicação externa vulnerável/importação/fluxo obrigatório e encerramento em massa | Bug local de igualdade, evidências de falha/aprovação, fluxo remoto revisado opcional |
| 12 Segredos | Exposição/teste público e encerramento sem autoridade do provedor | Simulação sem credenciais que começa pela revogação e verificações de ordem das etapas |
| 13 Projeto novo | Stack presumida somente .NET, sem validação de URL, flags de CLI fabricadas | Contrato RSS, caminhos Node/TypeScript, adaptações de stack e nomes reais de integração |
| 14 Projeto existente | Dependência de repositório externo/LocalDB e escopo de upload sem controle | Linha de base incluída, alteração somente de metadados, ator confiável e pontos de controle de compatibilidade |
| 15 Personalização | target: cloud, ferramentas presumidas e precedência de instruções |
Limites reais de papel/harness, limitação de prompts a Local e transferências com escopo |
| 16 SDK | Aplicação longa para copiar/colar, ferramentas de escrita automáticas e alternativas que parecem sucesso | Ferramenta somente leitura testada, ator confiável, política de negação, ciclo de vida e execução real opcional |
| 17 Modernização | Novo caso solicitado | Contrato CSV para SQLite, reconciliação de dados, proteção contra sobrescrita, consulta somente leitura e reversão |
Decisões de integração
- Manter os nomes originais dos arquivos de laboratório e os metadados
labpara rastreabilidade. - Publicar um catálogo
/hands-on/distinto no site raiz. - Remover configurações aninhadas concorrentes de Jekyll/compilação e instruções obsoletas de publicação, mantendo a licença MIT e a atribuição.
- Usar o script de preparação de fixtures em vez de clones obrigatórios das fontes originais.
- Manter capturas de tela como referências históricas identificadas, não como orientações atuais de interface.
- Validar arquivos novos/não rastreados no escopo, além dos arquivos rastreados; respeitar as exclusões do Git.
- Manter implementações executáveis de referência fora das cópias de preparação dos participantes.
Limites de verificação
As formas de evidência a seguir são diferentes e devem ser relatadas separadamente:
| Verificação | Comprova | Não comprova |
|---|---|---|
| Verificações de conteúdo/links | Estrutura obrigatória e fontes locais resolvíveis | Que um modelo real seguiu as instruções |
| Validação/renderização de diagramas | Paleta, acessibilidade, sintaxe e diagramas legíveis | Que o sistema modelado foi executado |
| Contratos das fixtures Node | Comportamento local da aplicação/ferramenta | Inferência autenticada do SDK |
| Suíte de migração Python | Compatibilidade da fixture e casos selecionados de falha/reversão | Durabilidade de produção ou segurança de gravações concorrentes |
| Compilação/testes C# | Projetos selecionados compilam e seus testes executam | Correção/segurança completas de produção |
| Exercícios reais opcionais | Somente as observações reais registradas | Disponibilidade universal de funcionalidades/modelos |
Falhas deliberadas dos projetos iniciais
O teste de regressão do laboratório 11, o armazenamento do laboratório 13, a funcionalidade do laboratório 14 e a migração do laboratório 17 estão intencionalmente incompletos. Uma verificação do repositório deve confirmar a falha esperada e o sucesso da referência do instrutor; pular os casos ou aceitar qualquer travamento não é suficiente.
Fundamentação nas fontes
A referência do Copilot lista páginas oficiais do GitHub/Microsoft. A referência do Spec Kit registra a versão fixada e uma discrepância na documentação/layout da origem resolvida com base na implementação da integração. O estilo dos diagramas registra a documentação do GitHub e do Mermaid usada para a configuração monocromática e acessível.
Verificação executada em 2026-09-07
| Superfície | Comando ou método | Resultado observado |
|---|---|---|
| Verificações do repositório | npm test |
Links/conteúdo, contratos da trilha prática e testes existentes do repositório passaram |
| Inventário da trilha prática | node scripts/check-hands-on.js |
26 guias e seus metadados de catálogo/fixtures verificados |
| Estilo dos diagramas | node scripts/check-diagrams.js |
30 diagramas dos tipos fluxo, sequência, estado, classe e ER verificados |
| Renderização de diagramas | Mermaid CLI 11.15.0 existente, um navegador, fundo branco | Todos os 30 renderizados; cada SVG contém título/descrição; nenhum literal hexadecimal de cor cromática |
| Orquestração prática em Node | node --test --test-concurrency=1 scripts/hands-on.test.js |
16 verificações passaram, incluindo falhas esperadas dos projetos iniciais e referências do instrutor |
| Modernização Python | HANDS_ON_REFERENCE=1 python -m unittest test_legacy test_modernization -v |
10 testes passaram; compatibilidade CSV, inteiros grandes exatos, esquema/dados e pontos de controle de falha e reversão exercitados |
| Modernização incompleta | Mesma suíte de modernização com o projeto inicial | Resultado diferente de zero com o erro documentado de migração não implementada |
| Cópias da biblioteca Python | python -m unittest discover -s tests -p "test_*.py" -v em library de cada cópia |
Laboratórios 02/03/04: 4 testes cada; laboratório 05: 8 testes passaram |
| Trilha pytest | python -m pytest -q -p no:cacheprovider tests no laboratório 04 |
4 testes passaram com pytest 9.0.3 instalado |
| Cópias da biblioteca C# | dotnet test em cada projeto de teste, -m:1, compilação compartilhada desabilitada |
Laboratórios 02/03/04: 17 testes cada; laboratório 05: 19 testes passaram no .NET 10 |
| Compilações de console/demonstração C# | Um projeto de entrada selecionado por vez | Dez projetos de entrada compilados sem erros; avisos existentes de nulabilidade permanecem em algumas fixtures |
| Testes opcionais da loja | dotnet test somente em ContosoOnlineStore.Tests |
16 testes passaram; nenhum benchmark ou cenário de carga foi executado |
| Sintaxe JS/TS | Verificações de sintaxe do Node; remoção nativa de tipos para a referência TS | 25 arquivos-fonte analisados; isso não foi uma verificação estática de tipos TypeScript |
| YAML/frontmatter | Analisador YAML existente do Ruby | Site/fluxo/frontmatter analisados sem erros de sintaxe |
| URLs de referência | Solicitações HTTPS sequenciais | O 404 inicial da documentação do navegador foi corrigido para a referência verificada de acessibilidade do Edge |
Uma revisão independente somente leitura também encontrou e motivou duas correções:
- O inicializador Windows da fixture de funções grandes referenciava uma solução inexistente. Agora ele compila o projeto de console real com configurações de compilação delimitadas. O inicializador em lote foi revisado, mas não executado no Windows.
- O
SUMde 64 bits com sinal do SQLite restringia o contrato legado de inteiros do Python. A referência agora armazena texto decimal validado, converte-o em inteiros na leitura e reconcilia com a aritmética de inteiros do Python. Um teste de regressão cobre tanto valores agregados quanto individuais além do intervalo de 64 bits com sinal.
O endpoint primário v3 do NuGet apresentou falha de TLS durante a restauração neste ambiente. O
endpoint oficial v2 (https://www.nuget.org/api/v2/) funcionou. A substituição foi
local ao comando; nenhuma configuração global de feed ou desvio de verificação de certificados foi usado.
Arquivos gerados, perfil do navegador, caches de pacotes e logs foram direcionados à área de
trabalho T9. A validação foi executada sequencialmente com contagens delimitadas de processos.
A primeira invocação do .NET imprimiu seu aviso de configuração de certificado de primeira execução; as execuções
seguintes desabilitaram explicitamente a geração automática de certificados. Nenhum comando de confiança de
certificado nem limpeza de certificados compartilhados foi realizado.
Execução real de agentes Copilot/Spec Kit, inferência do SDK, issues reais na nuvem, revogação no provedor e migrações de produção não foram executadas. Exigem autorização separada e não podem ser deduzidas dos testes de contratos locais. Adaptações para outras linguagens são identificadas como projetos, a menos que uma referência executável esteja incluída.
Nenhum resultado de capturas de tela importadas ou tabelas antigas de tempos foi reutilizado como evidência.