Rede D'Or São Luiz · Inteli · 08:30 – 13:00
Um fluxo de trabalho de ponta a ponta: da planilha e do CSV ao relatório em markdown e à apresentação em HTML, com skills e agentes declarados no repositório e executados pelo GitHub Copilot.
Diagnóstico respondido pelos participantes entre 20 e 25 de agosto de 2026.
Cada participante apontou até três dificuldades principais; a contagem soma as menções das treze respostas.
Cada bloco constrói uma etapa do mesmo fluxo de trabalho e reserva os minutos finais para você reproduzi-la no repositório do seu projeto.
O problema não está no volume de trabalho, e sim na ausência de registro do que foi feito para chegar ao número apresentado.
A planilha é aberta, filtrada e copiada para uma segunda aba. Os cálculos ficam em fórmulas dentro das células. O achado é escrito no corpo de um e-mail e vira slide na véspera da reunião.
A planilha permanece como fonte. A extração, o critério e a apresentação passam a ser arquivos versionados no mesmo repositório, executados por skills que qualquer pessoa da área invoca.
Transformar um procedimento que hoje existe na cabeça de quem executa em arquivos declarados, que o Copilot lê e que a área revisa.
Entre cada par de artefatos existe um arquivo que se abre, se lê e se confere. É essa passagem intermediária que permite localizar o erro quando o resultado final diverge.
Conta emitida em .xlsx e extrato de itens em .csv, como a área os recebe hoje. Permanecem intocados.
Produzido por script versionado, com colunas declaradas e totais conferidos contra a origem.
Achados escritos em texto, cada um com o endereço da linha e da célula que o sustenta.
Gerada a partir do markdown sobre template versionado, sem redigitação de número.
auditoria-conta/ ├─ .github/ │ ├─ copilot-instructions.md # regras sempre ativas │ ├─ skills/extrair-conta/SKILL.md │ ├─ skills/gerar-deck/SKILL.md │ └─ agents/auditor.agent.md ├─ dados/ # origem recebida, intocada ├─ derivado/ # csv normalizado, gerado ├─ scripts/ # leitores e conferências ├─ notas/ # relatório em markdown └─ deck/ # template e apresentação
A conversa se perde ao fechar a janela e não registra qual versão da regra produziu qual número.
A pasta é entregável: quem a recebe executa a mesma skill, sobre o mesmo dado, e obtém o mesmo resultado. É o que se anexa a um processo quando o número é questionado meses depois.
A decomposição do processo, nesta forma de trabalho, se materializa na divisão do fluxo entre skills. Cada skill é uma etapa com entrada, saída e critério de aceite declarados.
Três lugares, com finalidades distintas. Todos são arquivos de texto versionados junto com o fluxo.
| Arquivo | Onde fica | Quando é aplicado | O que escrever nele |
|---|---|---|---|
| AGENTS.md | Raiz do repositório | Em toda solicitação, sempre | O que o repositório é, o vocabulário da área e as regras que valem para qualquer tarefa. |
| copilot-instructions.md | .github/ |
Em toda solicitação, sempre | Alternativa ao anterior, específica do Copilot. Um dos dois basta; manter os dois duplica a manutenção. |
| *.instructions.md | .github/instructions/ |
Somente nos arquivos que o campo applyTo declara |
Regras de um tipo de arquivo: convenções dos scripts de extração, formato do relatório, padrão do deck. |
// .github/instructions/extracao.instructions.md --- applyTo: "scripts/**/*.py" --- - Ler a origem sem alterá-la; gravar em derivado/. - Declarar as colunas de saída no início do arquivo. - Emitir ao final linhas lidas, linhas gravadas e soma das colunas de valor, para conferir com a origem.
Uma pasta com um arquivo SKILL.md, carregada quando a tarefa corresponde à descrição, ou invocada com barra no chat.
# .github/skills/extrair-conta/SKILL.md --- name: extrair-conta description: Converte a planilha de conta e o extrato de itens em CSV normalizado, com conferência de totais. Use ao receber uma conta nova, antes de qualquer análise. --- 1. Identifique a aba e o intervalo de dados. 2. Use o script em [scripts/extrair.py](./extrair.py). 3. Grave em derivado/, sem alterar a origem. 4. Emita a conferência e pare se ela divergir.
No repositório, em .github/skills/, .claude/skills/ ou .agents/skills/: a skill acompanha o projeto. No perfil, em ~/.copilot/skills/ ou equivalente: acompanha a pessoa.
name — identificador único, em letras minúsculas, números e hífens.
description — o que a skill faz e quando usá-la. É por esse texto que o modelo decide carregá-la sozinho; descrição vaga produz skill que nunca é acionada.
argument-hint — o que informar ao invocar por barra.
user-invocable e disable-model-invocation — controlam a presença no menu de barra e o carregamento automático.
context: fork — executa a skill em subagente próprio, sem misturar o histórico com a conversa principal.
*.prompt.md cumpriam papel semelhante e estão sendo substituídos por skills.Enquanto a skill descreve um procedimento, o agente descreve quem executa: com que instruções, com quais ferramentas e com que modelo.
# .github/agents/auditor.agent.md --- name: Auditor de conta description: Confronta itens cobrados com a tabela de conceitos e registra achados com origem citada. tools: ['search/codebase', 'edit/files'] model: ['Claude Opus 4.5', 'GPT-5.2'] handoffs: - label: Gerar deck do comitê agent: agent prompt: Gere a apresentação do relatório. --- Toda afirmação devolve arquivo e linha de origem. Quando a evidência não existir no repositório, declare a ausência e não estime valor.
O campo tools restringe o que o papel alcança. Um auditor que não dispõe de ferramenta de execução no terminal não altera dado de origem por engano.
O campo handoffs declara a transição seguinte, com o botão que a inicia. É a passagem de bastão entre etapas do fluxo, feita de forma explícita e revisável.
No repositório, em .github/agents/ ou .claude/agents/. No perfil, em ~/.copilot/agents/ ou ~/.claude/agents/.
Os três são arquivos de texto no repositório. A escolha depende de quando o conteúdo precisa estar em vigor.
| Recurso | Está em vigor | Use para | Exemplo no fluxo da manhã |
|---|---|---|---|
| Instrução sempre ativa | Em toda solicitação | Vocabulário, convenções e regras que valem para qualquer tarefa do repositório | "Nunca altere arquivos de dados/; toda saída vai para derivado/." |
| Instrução por padrão de arquivo | Quando o arquivo casa com applyTo |
Convenções de um tipo de artefato | Formato obrigatório dos scripts de extração. |
| Skill | Quando a tarefa corresponde à descrição, ou sob invocação por barra | Procedimento com passos, que se repete a cada caso novo | /extrair-conta e /gerar-deck. |
| Agente | Enquanto estiver selecionado na janela de chat | Papel com ferramentas restritas e critério de qualidade próprio | O auditor, que confronta e cita, sem acesso a execução no terminal. |
A fronteira entre duas skills é o arquivo que uma grava e a outra lê. Onde não existe arquivo intermediário, não existe ponto de verificação.
Entrada, decisão e saída de cada etapa, com quem executa e em que sistema. Registre o praticado, e não o documentado.
Todo ponto em que alguém olha o número antes de seguir adiante é candidato natural a arquivo intermediário.
Regra determinística, julgamento sobre texto ou consulta a várias fontes. A primeira vira script; as outras duas viram skill.
Caminho, formato e critério de aceite. Skill cuja saída não tem endereço declarado não pode ser encadeada.
extrair-conta
entrada: dados/conta.xlsx
saída: derivado/itens.csv
aceite: soma dos valores igual à da origem.
auditar-itens
entrada: derivado/itens.csv e a tabela de conceitos
saída: notas/achados.md
aceite: todo achado com linha de origem.
gerar-deck
entrada: notas/achados.md
saída: deck/comite.html
aceite: nenhum número sem correspondência no markdown.
No caso de giro de leitos, as mesmas três etapas se aplicam sobre o extrato de internações, a regra de tempo de permanência e o painel semanal.
Quinze minutos no seu computador, sobre o processo que você declarou no diagnóstico.
dados, derivado, scripts, notas e deck.dados um arquivo real, ainda que parcial..github/skills/ com SKILL.md.name e description preenchidos./ no chat.Como a planilha entra no fluxo sem que ninguém precise copiar e colar, e como saber que o que saiu corresponde ao que entrou.
O arquivo .xlsx é um formato binário compactado. O que o agente faz com competência é escrever e executar o programa que o abre.
"Leia esta planilha e me diga quais itens estão acima do contrato."
"Escreva um script que leia a aba Itens, normalize as colunas e grave em derivado/itens.csv, emitindo linhas lidas e soma dos valores."
A conferência dentro da própria skill é o que impede que um erro de leitura siga adiante e apareça apenas na apresentação.
# .github/skills/extrair-conta/SKILL.md (corpo) ## Passos 1. Abra a origem indicada e identifique aba e cabeçalho. 2. Use [scripts/extrair.py](./extrair.py); se as colunas não corresponderem, ajuste o mapeamento no topo do script, sem alterar a lógica de leitura. 3. Grave em `derivado/<origem>-<AAAA-MM>.csv`. 4. Emita a conferência e compare com a origem. 5. Se a conferência divergir, pare e relate a divergência. Não prossiga para a análise. ## Colunas de saída `caso_id, item, quantidade, valor_unitario, valor_total, linha_origem, aba_origem`
linha_origem e aba_origem percorrem todo o restante do fluxo. São elas que permitem, no fim da manhã, clicar em um número da apresentação e chegar à célula da planilha que o produziu.
Acrescentá-las custa duas linhas no script. Reconstruí-las depois, quando a diretoria questiona um valor, custa a reabertura de todo o trabalho.
Origem e competência no nome tornam o arquivo autoexplicativo e impedem que a execução do mês seguinte sobrescreva a anterior em silêncio.
A conferência é executada pelo script e lida por você. Nenhuma delas depende de julgamento do modelo.
A separação define o que é reproduzível por construção e o que exige revisão humana a cada execução.
Executa em segundos, custa o mesmo em qualquer volume e devolve sempre o mesmo resultado.
Custa por execução, varia entre execuções e exige registro da origem para ser verificável.
Vinte minutos sobre o arquivo real que você colocou em dados/ no bloco anterior.
SKILL.md.derivado/ cuja soma corresponde à da origem, e a skill reproduz esse arquivo a partir do zero, sem intervenção manual.
Ao voltar, o Bloco 3 parte do arquivo que você gravou em derivado/: deixe o VS Code aberto nele.
Escrever o achado em texto versionado, com o endereço da origem em cada afirmação, e submetê-lo a revisão antes de qualquer publicação.
O relatório em texto é simultaneamente o registro do trabalho, o objeto da revisão e a entrada do deck.
O formato do achado é declarado na skill e verificado na revisão. Achado sem origem é devolvido, e não corrigido por quem revisa.
# notas/achados-2026-09.md ## Achado 003 — quantidade acima do autorizado - Item: material de síntese X - Cobrado: 4 unidades · R$ 8.240,00 - Autorizado: 2 unidades, conforme tabela §12.3 - Diferença: R$ 4.120,00 - Origem: derivado/conta-2026-09.csv, linha 418 - Origem primária: conta.xlsx, aba Itens, linha 1204 - Regra: conceitos.md §12.3 - Status: a confirmar com a equipe assistencial ## Achado 004 — item sem correspondência na tabela - Origem: derivado/conta-2026-09.csv, linha 502 - Evidência da regra: ausente - Status: não classificado; requer decisão humana
Origem — a linha do arquivo derivado. Permite reexecutar a verificação sem refazer a leitura da planilha.
Origem primária — a célula do arquivo recebido. É o que se apresenta a um terceiro que não participou do trabalho.
Status — o achado ainda não é conclusão. Distinguir o confirmado do que depende de verificação impede que uma hipótese circule como fato.
O achado 004 registra que a regra não foi encontrada. Essa é a forma correta de tratar evidência ausente: declará-la, e não estimar o valor provável.
A restrição de ferramentas e a declaração do que é proibido são o que torna o resultado previsível o suficiente para ser revisado por amostragem.
# .github/agents/auditor.agent.md (corpo) Você confronta itens do CSV derivado com a tabela de conceitos e registra achados no formato da skill `auditar-itens`. ## O que você entrega Um achado por divergência, com origem, origem primária, regra aplicada e status. ## O que você alcança Os arquivos de `derivado/` e de `conceitos/`. ## O que lhe é vedado - Estimar valor quando a evidência não existir no repositório; declare a ausência. - Alterar arquivos de `dados/` ou de `derivado/`. - Concluir sobre conduta clínica; o achado é econômico. - Apresentar como confirmado o que depende de verificação.
Duas etapas com critérios de qualidade distintos exigem dois papéis separados. Quem confronta e quem redige a comunicação ao prestador não são o mesmo papel: o primeiro responde por exatidão, o segundo por clareza.
O auditor não dispõe de execução no terminal. A extração já ocorreu no bloco anterior, e retirar essa ferramenta elimina a possibilidade de alteração acidental da origem.
O papel é escolhido no seletor de agentes da janela de chat, e vale enquanto a conversa durar.
O histórico da conversa compete pelo mesmo espaço que os dados e as regras. Conversa longa degrada o resultado sem emitir aviso.
Uma skill que percorre muitos arquivos para produzir uma resposta curta polui a conversa principal com material intermediário.
O campo context: fork no SKILL.md executa a skill em subagente próprio: a conversa principal recebe o resultado, e não o caminho percorrido até ele.
A revisão humana é etapa do fluxo, com critério declarado. Sem critério escrito, a revisão se reduz à leitura superficial do que parece razoável.
| Verificação | Como se faz | Decisão |
|---|---|---|
| Toda afirmação tem origem | Amostra de cinco achados; abrir o arquivo derivado na linha citada. | Achado sem origem é devolvido para refazer, não corrigido na revisão. |
| A origem corresponde ao afirmado | Conferir valor e quantidade da linha citada contra o texto do achado. | Divergência em um achado exige reconferência de todos os demais. |
| A regra citada existe | Abrir a tabela de conceitos no parágrafo indicado. | Regra inexistente indica invenção de referência; interromper e revisar as instruções do papel. |
| A ausência está declarada | Procurar achados com evidência ausente e verificar se houve estimativa. | Estimativa sem lastro é a falha mais grave; ajustar o vedado no arquivo do agente. |
| O status distingue confirmado de hipótese | Leitura da linha de status de cada achado. | Achado sem status não segue para a apresentação. |
Quatorze minutos sobre o arquivo derivado que você gerou antes do intervalo.
.agent.md em .github/agents/.notas/, no formato definido.notas/ em que três achados conferidos apontam para linhas que realmente contêm o que o texto afirma, e em que ao menos uma ausência de evidência está declarada como ausência.
Gerar a apresentação a partir do relatório, sem redigitar número algum, e definir o que se versiona, quem responde e com que periodicidade o repositório é revisto.
O relatório responde pelo que se afirma; o template responde por como aquilo aparece. Alterar um não deveria exigir refazer o outro.
notas/achados.mdOs achados, os valores e as origens. É o que a área revisa e o que responde por exatidão.
Muda a cada competência.
deck/template.htmlEstrutura dos slides, tipografia, cores institucionais e a marcação de navegação. É escrito uma vez e revisado raramente.
Permanece estável entre competências.
deck/comite.htmlArquivo gerado, aberto no navegador e apresentado. Não se edita à mão.
É descartável: refaz-se a partir dos dois anteriores a qualquer momento.
A restrição central está no que a skill proíbe: nenhum número pode aparecer no deck sem existir no relatório.
# .github/skills/gerar-deck/SKILL.md --- name: gerar-deck description: Gera a apresentação do comitê em HTML a partir do relatório de achados, usando o template versionado. Use quando o relatório estiver revisado e for necessário apresentá-lo. --- # Geração da apresentação 1. Leia o relatório indicado em `notas/`. 2. Use [deck/template.html](../../../deck/template.html) como estrutura; não altere o template. 3. Um slide por achado confirmado, na ordem do relatório. 4. Todo número exibido existe no relatório; nenhum valor é calculado nesta etapa. 5. Cada slide cita, em rodapé, a origem do achado. 6. Achado com status não confirmado vai para um slide final de pendências, e não para o corpo. 7. Grave em `deck/` e informe quantos achados entraram.
Um total recalculado na geração do deck pode divergir do relatório revisado, e a divergência aparece na reunião. O total pertence ao relatório, que é onde a revisão ocorreu.
Alterar o template durante a geração faz a forma variar a cada competência, e o que deveria ser comparável entre meses deixa de ser. Ajuste de forma é tarefa própria, feita fora do ciclo mensal.
Separar o confirmado do que depende de verificação evita que a reunião decida sobre hipótese.
A verificação final do fluxo consiste em partir de um número da apresentação e chegar à célula da planilha recebida.
"De onde saiu essa diferença?"
O slide cita o achado que o originou.
O achado cita a linha do arquivo derivado e a regra aplicada.
A coluna de origem conduz à célula recebida do prestador.
Escolha um número qualquer da apresentação e percorra a cadeia diante de outra pessoa. Se o percurso exigir abrir uma conversa antiga, consultar a memória de quem fez ou reabrir um cálculo em célula, a cadeia está rompida naquele ponto.
O repositório deixa de funcionar quando ninguém responde por ele. A designação é parte do desenho, e não consequência dele.
| Artefato | Versiona | Dono | Revisão |
|---|---|---|---|
| Instruções sempre ativas e skills | Sim | Responsável pelo processo na área | A cada mudança de regra de negócio |
| Arquivo do agente | Sim | Responsável pelo processo na área | Sempre que a revisão apontar falha recorrente |
| Scripts de extração | Sim | Quem opera o fluxo | Quando a origem mudar de formato |
| Tabela de conceitos e regras | Sim | Área que responde pela regra | Periodicidade declarada, com data da última revisão no arquivo |
Arquivos recebidos em dados/ | Conforme a política de retenção | Quem recebe do prestador | Não se altera |
| Derivados e apresentação | Opcional; são reproduzíveis | — | Regerados a cada competência |
dados/, verifique o que ele contém. Identificação de paciente, valor contratual e condição comercial seguem a política da Rede D'Or. O fluxo funciona igualmente com a origem mantida fora do repositório, desde que o caminho esteja declarado nas instruções.
Vinte minutos para produzir a entrega e registrar quem responde pelo que foi construído.
Doze verificações que decidem se o repositório continuará funcionando quando outra pessoa o executar, no mês seguinte, sem você ao lado.
Skills e Agentes no VS Code · 24/09/2026 · Prof. Afonso
Ao final do encontro, o participante deve ser capaz de montar no VS Code um repositório que declare, em arquivos versionados, as instruções sempre ativas, as skills e o agente de um fluxo de trabalho do próprio projeto, e de percorrer esse fluxo de ponta a ponta — da planilha e do CSV recebidos ao relatório em markdown com origem citada e à apresentação em HTML gerada a partir dele —, conferindo cada passagem e mantendo a cadeia que liga o número apresentado à célula de origem.
Treinamento de uma manhã em quatro blocos, aberto pelo retrato dos treze projetos da turma. Cada bloco constrói uma etapa do mesmo fluxo de trabalho no VS Code com o GitHub Copilot e reserva os minutos finais para que o participante a reproduza no repositório do próprio projeto, com duas ou três devolutivas em voz alta. Os exemplos percorrem a auditoria de conta hospitalar declarada em Recebíveis, com nota sobre o giro de leitos em Operações. O material de apoio registra os caminhos dos arquivos, os exemplos completos de SKILL.md e de agente, os quatro roteiros de aplicação e o checklist de doze verificações.