Skip to content
Back to skills

Loop

ASecurity

Run the same task on a recurring cron schedule. Parses interval syntax (5m, 2h, 1d, "*/15 * * * *"), records the schedule, and acknowledges back to the user.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 19, 2026
ai-agentsgoshellbashexpress

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add CocoRoF/geny-executor --skill loop --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Loop?

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

Security grade badge for Loop
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cocorof-loop/badge)](https://www.skillsdirectory.com/skills/cocorof-loop)

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
---
name: Loop
description: Run the same task on a recurring cron schedule. Parses interval syntax (5m, 2h, 1d, "*/15 * * * *"), records the schedule, and acknowledges back to the user.
category: workflow
effort: low
when_to_use: When the user wants something to happen periodically without typing it again — "every 5 minutes check X", "every morning summarise Y", "every Friday at 17:00 run the Z report". Don't use for one-shot tasks; use for genuine recurrence.
allowed_tools:
  - Bash
shell: bash
shell_timeout_s: 5
arguments:
  - interval
  - task
argument_hint: '<interval> "<task description>"  e.g. 5m "check open PRs"'
examples:
  - 'loop every 30m to /verify-build'
  - "every Monday at 9am summarise unread issues"
  - "every hour, check disk usage and warn if >90%"
version: 1.0.0
---

# Loop — schedule a recurring task

You are recording a recurring instruction. The host is responsible
for the actual cron daemon — your job is to (1) parse what the user
asked for, (2) translate it into a canonical cron expression, and
(3) hand it off to the host's scheduler with a clear acknowledgement.

## Inputs

- `${interval}` — when to fire. Three syntaxes accepted:
  - **Compact**: `5m`, `30m`, `1h`, `2h`, `1d`, `12h`. Translate to
    cron.
  - **Cron expression**: `*/5 * * * *`, `0 9 * * 1` — pass through.
  - **Plain English**: "every weekday at 9am", "every 30 minutes",
    "every Monday morning". Convert to cron.
- `${task}` — what to do each tick. Free-form; quote it with
  double-quotes if it contains spaces.

If either is missing, ask once. Don't guess on `task` — a
mis-recorded recurring task is worse than none.

## Translate to cron

Standard 5-field POSIX cron: `minute hour day-of-month month day-of-week`.

Common compact translations:

| Compact | Cron expression | Meaning |
|---|---|---|
| `5m`  | `*/5 * * * *`  | every 5 minutes |
| `15m` | `*/15 * * * *` | every 15 minutes |
| `30m` | `*/30 * * * *` | every 30 minutes |
| `1h`  | `0 * * * *`    | every hour on the hour |
| `2h`  | `0 */2 * * *`  | every 2 hours |
| `4h`  | `0 */4 * * *`  | every 4 hours |
| `12h` | `0 */12 * * *` | every 12 hours |
| `1d`  | `0 0 * * *`    | every day at midnight |
| `1w`  | `0 0 * * 0`    | every Sunday at midnight |

For natural-language inputs, try to be conservative. "Every morning"
defaults to 09:00 unless the user said otherwise. "Every weekday at
5pm" → `0 17 * * 1-5`. If you're not sure, **echo back your
interpretation** and ask the user to confirm before scheduling.

## Hand off to the scheduler

This skill does **not** implement the cron daemon itself — the host
provides one (geny-executor's `cron` extra ships `croniter`-backed
scheduling; Geny exposes `ScheduleCron` / similar tools).

Your job:

1. Show the user the parsed schedule + task in one block:
   ```
   Schedule: <cron expression>  (every <human-readable description>)
   Task:     <task>
   ```
2. Hand the canonical schedule + task off to the host's scheduler.
   In a Geny-style host the next step is calling `ScheduleCron` /
   the equivalent tool with `(cron_expression, task)`. If no such
   tool is in the current tool roster, *don't fake it* — say so:
   "I parsed your request to <cron>. The current session doesn't
   have a scheduler tool wired; here's the canonical form to keep
   for when you set one up."
3. Confirm the schedule was registered with a single short
   sentence, including the cron expression so the user can edit it
   later if needed.

## Constraints

- **No schedule, no acknowledgement.** Don't acknowledge what you
  haven't actually scheduled. If the scheduler call fails, surface
  the failure, don't pretend the recurring task is live.
- **Don't run the task once "to test".** Loop is for recurring
  scheduling, not one-shot execution. If the user wants to verify
  the task works, they should run it directly first.
- **Don't accept "always" or "constantly".** A cron tick of 1
  minute is the practical floor. Push back gently if asked to
  schedule sub-minute work.
- **Don't lose the user's wording.** Show your interpretation
  back; many users have an exact target in mind ("every weekday
  morning" sometimes means 8am, sometimes 9am, sometimes 10am).

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.