Skip to content
Back to skills

Automation Scheduler

ASecurity

Usar cuando se crean, gestionan o ejecutan automatizaciones programadas: morning briefs, weekly reports, PR stale checks, dependency scans, memory consolidation, drift audits. Triggers: programa una tarea, automatiza esto, crea una automatizacion, scheduled task, ejecuta cada dia, /automations, init-defaults.

  • 50 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgobashazuredevops

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add gonzalezpazmonica/savia --skill automation-scheduler --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Automation Scheduler?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Automation Scheduler
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gonzalezpazmonica-automation-scheduler/badge)](https://www.skillsdirectory.com/skills/gonzalezpazmonica-automation-scheduler)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
layer: peripheral
name: automation-scheduler
description: "Usar cuando se crean, gestionan o ejecutan automatizaciones programadas: morning briefs, weekly reports, PR stale checks, dependency scans, memory consolidation, drift audits. Triggers: programa una tarea, automatiza esto, crea una automatizacion, scheduled task, ejecuta cada dia, /automations, init-defaults."
metadata:
  savia.maturity: beta
---

# automation-scheduler

Pipeline: LIST, CREATE, TEST, MONITOR, MANAGE.

## Default Tasks

6 tareas predefinidas via savia-automations.sh init-defaults:

| Tarea | Schedule | Skill | Agente |
|-------|----------|-------|--------|
| morning-brief | 0 9 * * 1-5 | sprint-management | azure-devops-operator |
| pr-stale-check | 0 10 * * * | none | azure-devops-operator |
| drift-daily | 0 7 * * * | none | drift-auditor |
| memory-consolidation | 0 2 * * * | savia-memory | memory-agent |
| weekly-report | 0 8 * * 5 | weekly-report | none |
| dependency-cve-scan | 0 8 * * 1 | dependency-scanner | none |

## Schedule

- Cron de 5 campos (min hora dia-mes mes dia-semana): `*`, listas `1,3`, rangos
  `1-5`, pasos `*/15` y `9-17/4`, nombres `jan`, `mon-fri`. Dia-semana 0 y 7 = domingo.
- Si dia-mes y dia-semana estan restringidos, basta con que case uno (semantica de cron).
- Formas humanas: `daily`, `daily HH:MM`, `weekly <dia> HH:MM`.
- Una fecha ISO (`2026-10-05T09:00`) crea una tarea `once`: se ejecuta una vez.
- Las horas son hora local (como el cron del sistema; respeta `TZ`) o la zona IANA
  de `--timezone`. `next_run` se guarda en UTC y se compara como fecha.
- `create` rechaza con exit 2 un cron invalido, uno que no dispara en 4 anos o una
  zona `--timezone` desconocida (tambien en tareas `once`).
- Tras cambiar el parser, `savia-automations.sh compute` recalcula `next_run`
  de las tareas existentes.

## Scoped Approvals

Cada tarea declara always_allowed_tools. Estado real: el runner aun NO invoca la
skill ni el agente; escribe las instrucciones en el fichero de salida y registra
el run como `recorded`, nunca `completed`. `validate_scoped_approvals` existe pero
nadie la llama.

## Estados de un run

| Estado | Significado | `run` sale con |
|---|---|---|
| `running` | en curso | — |
| `recorded` | instrucciones registradas, sin ejecutar skill ni agente | 0 |
| `completed` | ejecucion real terminada (reservado: hoy ningun runner lo emite) | 0 |
| `error` | fallo, incluido un directorio de salida imposible o un runner sin resultado | 1 |
| `cancelled` | cancelado | 1 |

`run`, `run-due`, `history` y `list` anaden `(not executed)` a todo `recorded`;
`run-due` resume `N/M tasks processed, R recorded without execution`.

## Politicas

- Run-once-catch-up: runs perdidos se ejecutan al reiniciar
- Skip-on-overlap: una tarea en ejecucion no se lanza otra vez
- Max concurrent: 3 runs simultaneos
- Tick interval: 30s por defecto

## Goals durables y heartbeats claimed-due (lección SE-347 / PMA)

- **Goals** (`bash scripts/savia-goals.sh`): objetivo con presupuesto
  (tokens + wall-clock) y estado durable en `~/.savia/goals/`. Regla: SOLO
  `complete` marca éxito (`goal.complete()` es el único final válido);
  `progress` acumula tokens/segundos/continuations; `abandon` para cerrar sin
  éxito. Usa goals en tareas largas (overnight, migraciones, releases).
- **Heartbeats claimed-due** (`savia-goals.sh heartbeat claim-due`): un tick
  pendiente NO se reentrega tras crash (si un runner murió tras marcar
  `last_claimed`, otro runner no lo reclama de nuevo); ticks perdidos
  **coalescen** (solo se entrega el más reciente). Añade heartbeats con
  `heartbeat add --every <secs> --prompt <text>` para tareas de larga duración.

## Data

- Tasks: .savia/automations/tasks.json
- Runs: .savia/automations/runs/{task_id}/
- Output: output/automations/{task_id}/{run_id}.md
- Goals/heartbeats: ~/.savia/goals/ (savia-goals.sh)

## CLI Reference

Exit: 0 ok · 1 tarea/run no encontrado o run fallido · 2 uso incorrecto o schedule invalido.
`SAVIA_AUTOMATIONS_DIR` y `SAVIA_AUTOMATIONS_OUTPUT` cambian datos y salida.

savia-automations.sh list [--enabled] [--due]
savia-automations.sh show <task-id>
savia-automations.sh create --name <n> --schedule <cron|ISO> --instructions <text> [--timezone <IANA>]
savia-automations.sh run <task-id>
savia-automations.sh run-due [--max N]
savia-automations.sh compute
savia-automations.sh disable|enable <task-id>
savia-automations.sh delete <task-id>
savia-automations.sh history <task-id> [--last N]
savia-automations.sh output <task-id> <run-id>
savia-automations.sh init-defaults

Files in this skill

  • DOMAIN.md1.7 KB
  • SKILL.md2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…