batch-script-progress
Faz seu agente mostrar o progresso de tarefas longas em scripts. É útil para saber o que está acontecendo e se tudo está funcionando bem.
O que ela faz
Esta ferramenta ajuda a adicionar informações sobre o progresso de scripts que processam muitos itens (como arquivos ou dados). Ela mostra o que está acontecendo, o que foi concluído e se algo falhou, sem mudar o resultado principal do script.
Quando usar
- ✓Ao criar scripts que processam muitos arquivos em lote.
- ✓Quando você precisa saber o andamento de operações longas.
- ✓Para entender quais itens falharam em uma grande operação.
Exemplo do que pedir para a IA
“Adicione relatórios de progresso a este script Python que processa todos os arquivos em uma pasta.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa seu script para entender como ele funciona e onde adicionar mensagens sobre o início, progresso, falhas individuais e um resumo final. Essas mensagens são enviadas para um canal separado (geralmente stderr) para não atrapalhar a saída principal do script.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill batch-script-progressOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/batch-script-progress/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Progresso de Script Batch
Torne scripts batch gerados observáveis enquanto eles rodam, sem alterar seu contrato de processamento. Defina a saída de início, progresso periódico, falha por item e resumo final junto com fluxos de resultado e status de saída. Uma biblioteca de barra de progresso sozinha não estabelece este contrato.
1. Corrija o contrato existente
Leia o script, chamadores e testes próximos antes de editar. Identifique:
- Unidade de entrada, total conhecido ou desconhecido, e se a enumeração é preguiçosa.
- Formato e consumidores de stdout existentes, versão do runtime e execução interativa versus redirecionada.
- Política de continuar em caso de erro ou falhar rapidamente, regras de retentativa, regras de pular, limites de transação e comportamento de cancelamento.
- Códigos de saída existentes e o que os chamadores tratam como sucesso.
Preserve essas decisões. Não adicione retentativas, paralelismo, dependências ou uma nova política de falha apenas para adicionar saída de progresso. Se falhas parciais atualmente retornam zero, reporte o resultado parcial honestamente enquanto mantém esse contrato de saída. Se o contrato estiver ausente ou contraditório, peça a decisão que altera o comportamento; não a tome silenciosamente.
2. Defina o contrato de saída antes da implementação
Escolha um vocabulário e campos pequenos e estáveis, reutilizando o logger do repositório onde for adequado:
- Início: nome da operação, total ou desconhecido explícito, e contadores iniciais. Emita antes da enumeração cara; a descoberta em si pode precisar de progresso.
- Progresso: processado, bem-sucedido, falhou, pulado, total ou desconhecido, e tempo decorrido. Adicione um identificador de item atual sanitizado apenas quando for útil.
- Falha de item: identificador seguro, categoria de falha ou motivo sanitizado, e se o processamento continuará. Emita quando observado, independentemente do intervalo de progresso normal.
- Resumo: concluído, parcial, falhou ou cancelado; contadores finais; tempo decorrido; contagem conhecida de não processados, se disponível; e o status de saída exigido pelo contrato existente.
Defina processed = succeeded + failed + skipped para itens que atingiram um resultado terminal. Mantenha itens em andamento e não iniciados separados. Conte cada item uma vez; tentativas de retentativa não são itens processados adicionais. Não rotule um item como bem-sucedido antes de seu commit, gravação ou reconhecimento exigido. Se uma transação reverter, reporte o trabalho revertido em vez de reivindicar sucesso duradouro.
Para um total desconhecido, reporte contagens sem uma porcentagem fabricada, ETA ou contagem restante. Não materialize um fluxo apenas para contá-lo. Para zero itens, emita início e resumo com contagens zero; nunca divida por zero.
3. Escolha fluxos de saída e cadência
Reserve o stdout para o resultado estabelecido legível por máquina, objetos de pipeline ou protocolo. Coloque progresso e diagnósticos em um canal separado; stderr é o padrão portátil para scripts CLI autônomos. A saída de stderr sozinha não implica falha: os chamadores devem usar o código de saída e o contrato de resultado acordados. Verifique os chamadores que tratam qualquer stderr como falha antes de alterar sua saída. Se o stdout for reservado e o stderr for incompatível, use um logger ou sink compatível existente apenas quando o chamador já o suportar. Não mova o progresso para stdout ou outro fluxo com semântica alterada. Se nenhum canal compatível existir, pare e pergunte se o contrato de saída pode ser alterado, ou reporte que o progresso não pode ser adicionado com segurança.
Use uma cadência limitada, como a cada número configurado de itens ou intervalo decorrido, em vez de registrar incondicionalmente cada item. Emita início, falhas e resumo independentemente dessa cadência. Preserve registros de auditoria por item necessários separadamente. Evite listas de falhas ilimitadas na memória e rastros de pilha repetidos. Redija credenciais, parâmetros de consulta, dados pessoais e caminhos sensíveis antes da formatação; não despeje exceções brutas ou registros de entrada inteiros por padrão.
Use tempo monotônico para intervalos e duração. Garanta que a saída seja descarregada ou drenada para que as notificações cheguem antes da saída. Use registros simples delimitados por nova linha sob redirecionamento; habilite reescrita de terminal ou cores apenas para um TTY apropriado. Mantenha os significados dos campos de log consistentes entre as linguagens, não necessariamente sua formatação exata ou bibliotecas.
…
Perguntas frequentes
O que é um 'contrato de processamento'?
É o acordo sobre como o script deve funcionar, incluindo o que ele recebe, o que ele produz e como ele informa sucesso ou falha.
Por que não usar barras de progresso comuns?
Barras de progresso visuais são para interfaces de usuário. Esta ferramenta foca em fornecer informações claras e estruturadas para scripts que rodam em segundo plano ou em lote, sem alterar o que o script faz.
O que acontece se um item falhar?
A ferramenta pode relatar qual item falhou, por quê, e se o script continuará. Isso ajuda a identificar problemas específicos sem parar toda a operação.
Detalhes
Descrição original do autor
Design and verify runtime output when creating or modifying Python, PowerShell, or Node.js scripts that process multiple files, records, or API requests. Use for batch scripts, bulk operations, silent long-running loops, progress reporting, per-item failures, final counts, stdout separation, or exit-status consistency. Not for UI progress bars, monitoring infrastructure, or progress updates in the
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5034
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark
Ajuda seu agente a medir a velocidade e a performance do código. É útil para garantir que as coisas estão rápidas e para encontrar problemas de lentidão.
affaan-m/ECC
content-hash-cache-pattern
Faz seu agente usar hashes de conteúdo para cachear resultados de processamento de arquivos. Isso evita processamento repetido e invalida o cache automaticamente quando o conteúdo muda. Útil para acelerar tarefas lentas.
affaan-m/ECC
parallel-execution-optimizer
Faz seu agente acelerar tarefas complexas dividindo-as em partes menores e executando-as em paralelo. Garante que tudo seja verificado ao final.
affaan-m/ECC