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

Ilustração conceitual original (SVG)
| 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
-
Crie
.github/copilot-instructions.mdcom uma descrição breve do projeto: quantidades inteiras, valores de retorno imutáveis, somente biblioteca padrão e testes direcionados. -
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. -
Inspecione a interface/referências atuais de descoberta de personalizações para o host escolhido.
-
Anexe um arquivo de teste e pergunte quais orientações se aplicam.
-
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
-
Em Local, crie um prompt usando
agent: aske 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. -
Invoque-o e registre como ele difere das instruções automáticas.
-
Crie um
check-evidence/SKILL.mdcom frontmatternameedescription, seguido de etapas para selecionar/executar verificações existentes e relatar evidências reais. -
Inspecione a descoberta de skills no Copilot harness quando disponível.
-
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
- Peça ao planejador que especifique
findBySku(sku)com casos de encontrado, ausente, inválido e isolamento de cópias. - Revise o plano e o prompt de transferência preenchido previamente antes de enviar.
- Deixe Agent implementar somente essa funcionalidade e seus testes.
- Revise em uma sessão limpa com apenas leitura/busca.
- Execute pessoalmente o arquivo completo de testes da pequena fixture.
- 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.