Communitygithub.com

Cron Dispatch

Agende qualquer script para execução recorrente no Windows (Agendador de Tarefas) ou Linux (cron) — registre, liste e remova jobs com um único comando, com registro em log e proteção contra execuções sobrepostas.

O que é Cron Dispatch?

Cron Dispatch é uma skill que permite programar a execução automática de scripts no Windows (Agendador de Tarefas) e Linux (cron) de forma consistente e portátil. Ela resolve o problema comum de precisar configurar agendamentos diferentes em cada sistema operacional, oferecendo um padrão único que funciona em ambos. A skill gera os comandos de registro, lista e remoção de tarefas, garantindo que o script seja executado a partir do diretório do projeto, que a saída seja registrada em arquivo de log, e que execuções lentas não se acumulem (usando `flock` no Linux e `-MultipleInstances IgnoreNew` no Windows). É útil para desenvolvedores que trabalham em ambientes mistos (Windows e Linux) e precisam agendar scripts Python, Node, shell, entre outros. A skill referencia scripts auxiliares (`setup_task.ps1` e `cron_linux.sh`) e é indicada para uso em projetos de automação pessoais ou de produção, evitando a necessidade de serviços de nuvem para agendamento local.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/baronguyen001/ai-automation-skills/tree/HEAD/skills/cron-dispatch

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Cron Dispatch faz?

Use esta skill quando um script precisar ser executado sem supervisão em um agendamento e o mesmo padrão tiver que funcionar tanto em uma máquina Windows de desenvolvimento quanto em um servidor Linux. Ela fornece configuração pronta para copiar e colar no Agendador de Tarefas do Windows e no cron do Linux, além de registro em log e proteção contra sobreposição, para que uma execução lenta nunca se acumule sobre o próximo ciclo.

Quando invocar

  • O usuário diz: "execute isso todas as noites" / "configure um cron job" / "agende um script" / "windows task scheduler"
  • O código na conversa usa: um script autônomo (Python, Node, shell) que deve ser acionado por um temporizador, em vez de manualmente.

Quando NÃO invocar

  • O trabalho pertence a um serviço ou loop de eventos já existente e sempre ativo, não a um agendador do sistema operacional.
  • O usuário deseja um agendador gerenciado em nuvem (cron do GitHub Actions, funções em nuvem) em vez de uma máquina local.

Exemplo concreto

Entrada do usuário:

Execute meu scraper.py todos os dias às 9h no Windows agora, e me forneça a linha cron do Linux para o servidor mais tarde.

Saída:

# Windows: registra uma tarefa diária às 09:00 (executa a partir da raiz do repositório)
powershell -ExecutionPolicy Bypass -File assets/setup_task.ps1 `
  -TaskName "scraper-diario" `
  -Command "python" `
  -Arguments "E:\proj\scraper.py" `
  -Time "09:00"
# Linux: mesmo job, diário às 09:00, com log, sem sobreposição
0 9 * * * cd /srv/proj && flock -n /tmp/scraper.lock python scraper.py >> /srv/proj/cron.log 2>&1

Padrão a ser aplicado

  1. Escolha uma expressão de agendamento e traduza-a tanto para gatilhos do Agendador de Tarefas quanto para uma linha cron de 5 campos.
  2. Sempre execute o script a partir do diretório do projeto para que caminhos relativos sejam resolvidos.
  3. Anexe a saída padrão e a saída de erro a um arquivo de log; nunca dependa de um console que ninguém está monitorando.
  4. Proteja contra sobreposição (flock no Linux, -MultipleInstances IgnoreNew no Windows) para que uma execução longa não duplique.
  5. Registre, liste e remova usando um nome de tarefa estável, para que a reexecução da configuração permaneça idempotente.

Referência: assets/setup_task.ps1, assets/cron_linux.sh.

Fonte

Destilado do uso em produção nos projetos de automação do autor. v1.0.0. Veja também: [[pipeline-orchestrator]], [[telegram-alerter]].

→ Construa o bot executável completo com Trawlkit.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

baronguyen001/ai-automation-skills

Turn a run's list of result dicts into a schema'd CSV and a Markdown table from one column spec - declare columns once, emit both, with stable ordering and safe escaping, stdlib only, no pandas. Use when the user asks to write results to CSV, export a report, make a markdown summary table, or save a run's output as a spreadsheet.

baronguyen001/ai-automation-skills

Strip HTML to clean plain text with the standard library only (no BeautifulSoup/lxml): drops script/style, turns block tags into line breaks, and collapses whitespace. Use when the user wants readable text from an HTML page/email, to clean scraped HTML before sending it to an LLM, or to build a text index from web content.

baronguyen001/ai-automation-skills

Persist records between scheduled runs as append-only JSON Lines (one object per line) with streaming reads and optional key-based dedup, stdlib only. Use when the user wants to log run results to JSONL, append events to a file, dedup records by id across runs, or keep a simple durable history without a database.

baronguyen001/ai-automation-skills

Extract text and simple table-like rows from a PDF for downstream AI without OCR binaries. Use when the user asks to read a PDF, turn a PDF into text, pull simple tables from statements/reports, or feed PDF content into an LLM pipeline.

baronguyen001/ai-automation-skills

Rotate a pool of HTTP/SOCKS proxies with round-robin selection, failure tracking, and a cooldown that benches dead proxies before retrying. BYO proxy list via env - none are shipped. Use for rotate proxies, spread requests across proxies, avoid IP bans, retry through a different proxy, or proxy health check.

baronguyen001/ai-automation-skills

Parse an RSS 2.0 or Atom feed into normalized item dicts (title, link, id, published, summary) with the standard library only - no feedparser. Use when the user asks to read an RSS/Atom feed, poll a blog/news feed, extract feed entries, or watch a site that publishes a feed.

baronguyen001/ai-automation-skills

Upload and download run artifacts from S3-compatible storage with BYO bucket and credentials from env. Use when the user asks to store scraper output, archive reports, publish artifacts to object storage, fetch a prior run file, or use MinIO/R2/Spaces/S3 without hardcoding credentials.

baronguyen001/ai-automation-skills

Draft a short-form TikTok/Reels/Shorts or long-form video script from a topic and creator persona file - hook variants, beat-structured body, CTA, b-roll cues, caption overlays, and [STORY]/[NUMBER] slots so the model never fabricates personal facts. Use for write a video script, tiktok script, youtube script, or /shortform-script.

baronguyen001/ai-automation-skills

Give scheduled scripts memory between runs with one SQLite file - a seen-set for dedup, a key/value cursor to resume where you left off, and order-preserving new-item filtering. Use for dedup across runs, don't re-alert the same item, remember the last id, resume a scraper, or persist state between cron runs.

Habilidades Relacionadas