Awesome CopilotAdventures

Documentação do produto verificada

Personalize o Copilot para uma tarefa delimitada de estoque

Instruções influenciam respostas; não impõem permissões. Um agente personalizado define um perfil de papel/ferramentas; seu metadado target não significa “executar na nuvem”. Selecione a execução pelo controle real de destino da sessão.

Resumo do laboratório

Uma régua, um cartão de tarefa, um estojo de ferramentas e uma pequena estação compartilham uma bancada.

Ilustração conceitual original (SVG)

Combine cada necessidade com o primitivo de personalização menor.

Em resumo Sua rota
Nível e tempo 300; 80 minutos (estimativa de facilitação)
Ação inicial Verifique a descoberta e teste a mudança do inventário separadamente.
Materiais do aluno Baixe 15-customization.zip
Workspace Abra a raiz do kit extraído; execute a baseline de . relativa a essa raiz
Verificação inicial esperada Os testes base fornecidos passam.
Ajuda de configuração Baixe, extraia, Git local e GitHub opcional

[!NOTE] Um arquivo que existe no disco não prova que o host o carregou.

Conceitos · Primeira tarefa · Lista de evidências · Redefinir

Objetivos de aprendizagem

  • Use a menor primitiva de personalização para cada necessidade.
  • Verifique a descoberta a partir da raiz de um workspace descartável.
  • Diferencie instruções, prompts de tarefa, skills e transferências.
  • Implemente uma alteração de estoque sem presumir que a personalização garante correção.

Antes de começar

Prepare 15-customization usando a configuração comum. A fixture de estoque em Node incluída não precisa de instalação de pacotes e substitui um projeto externo obrigatório com Blazor/banco de dados. Uma adaptação de serviço/controlador C# é opcional. Leia a referência de conceitos.

Conceitos e casos de uso

Necessidade Arquivo Verificação
Convenções duradouras .github/copilot-instructions.md Contexto descoberto/aplicado e diff em conformidade
Regras específicas de testes .github/instructions/tests.instructions.md applyTo corresponde aos caminhos dos testes
Tarefa manual de revisão .github/prompts/review-change.prompt.md Invocação em uma sessão Local com suporte
Conhecimento especializado reutilizável de verificação .github/skills/check-evidence/SKILL.md Descoberta e uso relevante
Planejador somente leitura .github/agents/planner.agent.md A lista de ferramentas não tem autoridade de edição/execução
Fluxo de implementação/revisão Transferências entre perfis Uma pessoa revisa o prompt preenchido previamente

Cenário do exercício

A fixture lista categorias de estoque. Adicione uma consulta de item por SKU exato, mantendo o contrato de categorias e retornando cópias. Não adicione persistência, autenticação, implantação na nuvem ou uma aplicação CRUD inteira.

Tarefa 1 - Estabeleça a linha de base e o limite do workspace

node --test --test-concurrency=1 inventory.test.mjs

Abra somente a fixture copiada como raiz do workspace. Capture o papel, harness, modelo e estado de permissões selecionados. Um arquivo de personalização perdido em outro workspace não comprova que foi carregado.

Tarefa 2 - Crie instruções específicas

  1. Crie .github/copilot-instructions.md com uma descrição breve do projeto: quantidades inteiras, valores de retorno imutáveis, somente biblioteca padrão e testes direcionados.

  2. Crie um arquivo específico por caminho:

    ---
    applyTo: "**/*.test.mjs"
    ---
    Use node:test and node:assert/strict. Test invalid and missing IDs.
    A passing test must call production code and assert observable behavior.
    
  3. Inspecione a interface/referências atuais de descoberta de personalizações para o host escolhido.

  4. Anexe um arquivo de teste e pergunte quais orientações se aplicam.

  5. Não crie instruções conflitantes para “testar precedência”: o VS Code não promete uma ordem de combinação. Resolva as contradições explicitamente.

Tarefa 3 - Compare um prompt e uma skill

  1. Em Local, crie um prompt usando agent: ask e ferramentas de leitura/busca:

    ---
    description: Review an inventory change against its acceptance criteria.
    agent: ask
    tools: [read, search]
    ---
    Inspect the selected change and tests. Report missing cases with source paths.
    Do not edit files or claim tests ran unless their output is available.
    
  2. Invoque-o e registre como ele difere das instruções automáticas.

  3. Crie um check-evidence/SKILL.md com frontmatter name e description, seguido de etapas para selecionar/executar verificações existentes e relatar evidências reais.

  4. Inspecione a descoberta de skills no Copilot harness quando disponível.

  5. Não espere que o arquivo de prompt seja executado no Agent Host; não copie todo o texto dele para instruções sempre ativas como solução alternativa.

Tarefa 4 - Defina um planejador e uma transferência delimitada

Crie .github/agents/planner.agent.md:

---
name: inventory-planner
description: Plan a small inventory change without editing source.
tools: [read, search]
handoffs:
  - label: Implement reviewed plan
    agent: agent
    prompt: Implement only the reviewed inventory slice and run its focused tests.
    send: false
---
Inspect current source and tests. State acceptance criteria, files, checks and
non-goals. Do not edit, execute commands, or invent validation results.

Inspecione o perfil e as ferramentas no host. Nomes/aliases de ferramentas e transferências diferem entre superfícies; use o seletor documentado em vez de adicionar nomes de ferramentas presumidos. Não defina target: cloud: esse não é o mecanismo documentado de execução.

Tarefa 5 - Conclua uma alteração revisada

  1. Peça ao planejador que especifique findBySku(sku) com casos de encontrado, ausente, inválido e isolamento de cópias.
  2. Revise o plano e o prompt de transferência preenchido previamente antes de enviar.
  3. Deixe Agent implementar somente essa funcionalidade e seus testes.
  4. Revise em uma sessão limpa com apenas leitura/busca.
  5. Execute pessoalmente o arquivo completo de testes da pequena fixture.
  6. Compare o comportamento real em conformidade com a mera existência de arquivos de instruções.

Verifique seu trabalho

  • As personalizações são descobertas a partir da raiz copiada.
  • Instruções e prompts não são confundidos.
  • O planejador não tem ferramentas de edição/execução.
  • A transferência é revisada por uma pessoa; funcionalidades indisponíveis são registradas.
  • A nova consulta de itens e o comportamento antigo de categorias são testados.
  • Nenhuma personalização é descrita como sandbox ou política determinística.

Solução de problemas

Se o perfil estiver ausente, inspecione raiz do workspace, nome do arquivo e frontmatter. Se uma ferramenta estiver indisponível, escolha um alias com suporte em vez de conceder todas as ferramentas. Se a implementação ignorar uma convenção, inspecione contexto e testes; não alegue que as instruções a impõem automaticamente.

Prática independente

Adapte as mesmas convenções a um serviço de estoque e projeto de teste em C#. Explique quais regras são comuns às stacks e quais padrões de applyTo/nomes de ferramentas devem mudar.

Restauração

Salve evidências de descoberta com informações sensíveis ocultadas. Feche o workspace copiado e suas sessões de agente. Restaure somente as personalizações/fontes do exercício nessa cópia, nunca o diretório compartilhado .github do currículo.

Referências oficiais

Buscar

Busca em português do Brasil. Os caminhos e os exemplos executáveis mantêm o texto original.