Pular para o conteúdo
Skillpedia
Automações40 mil · #5034

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

https://github.com/github/awesome-copilot/blob/main/skills/batch-script-progress/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/batch-script-progress/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-progress

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/batch-script-progress/SKILL.md -o SKILL.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas