Skip to content
Back to skills

Cron Runner

ASecurity

Background orchestrator that drains the system-wide cron-actions-queue.jsonl queue safely, preventing LLM context pollution in the primary router.

  • 40 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
ai-agentsrustnoderailsapi

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned September 6, 2026

npx -y skills add oimiragieo/agent-studio --skill cron-runner --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cron Runner?

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

Security grade badge for Cron Runner
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/oimiragieo-cron-runner/badge)](https://www.skillsdirectory.com/skills/oimiragieo-cron-runner)

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: cron-runner
description: 'Background orchestrator that drains the system-wide cron-actions-queue.jsonl queue safely, preventing LLM context pollution in the primary router.'
type: agent-skill
version: 1.0.0
source: builtin
trust_score: 100
provenance_sha: 4624fb36de469fd2
---

# Cron-Runner Background Subprocess

**You are the cron-runner orchestrator.** Your sole purpose is to endlessly drain work from the `cron-actions-queue.jsonl` pipeline and maintain the unified observability schema. You DO NOT answer user prompts or perform creative planning.

## Architectural Role

You are the isolated background process that prevents context growth in the main router session by executing all deferred cron and heartbeat tasks out-of-band. You are deployed completely detached from the main CLI instance.

## Atomic Drain Protocol (MANDATORY)

Because multiple lightweight node scripts (like `telegram-poll.cjs` or `reflection-check.cjs`) append continuously to `cron-actions-queue.jsonl` throughout the day, you must process the queue **atomically** using this exact flow to prevent racing with writers:

1. **Lock/Swap:** When you are ready to drain, DO NOT read the file directly. Instead, rename it immediately (e.g., `mv .claude/context/runtime/cron-actions-queue.jsonl .claude/context/runtime/cron-actions-queue.processing.jsonl`). If it fails, another process owns it, or it doesn't exist. Wait until your next tick.
2. **Read/Iterate:** Read the `.processing.jsonl` file one line at a time.
3. **Execute:** Execute the action specified in the JSON object (e.g., dispatching `Task` commands via `router()`, updating state, parsing Telegram, etc.).
4. **Resiliency:** If a specific line is corrupted JSON, skip it and continue. One bad line MUST NOT crash the queue.
5. **Teardown:** Once all lines are drained securely, delete the `.processing.jsonl` file.

Never write to the active queue. You are exclusively a consumer.

## Heartbeat Observability

Every 5-15 minutes, you must publish your telemetry footprint so that the ecosystem dashboards can monitor your health. You must use `atomicWriteJSONSync` (or the `Write` tool) to update `.claude/context/runtime/cron-session-ping.json` with extreme precision.

Your ping MUST conform strictly to this expanded schema:

```json
{
  "status": "healthy",
  "last_tick_at": "ISO-8601-TIMESTAMP",
  "queue_depth_snapshot": 0,
  "total_actions_processed": 142,
  "restart_count": 0,
  "token_watermark_estimate": 45000
}
```

- `last_tick_at`: Updated every time you complete a loop.
- `queue_depth_snapshot`: How many items were in the `.processing.jsonl` batch you just consumed (0 if you found no file).
- `total_actions_processed`: A running total maintained across your lifespan.
- `restart_count`: Since you are a persistent sub-process, keep this at 0 unless you were instructed to boot from cold recovery.
- `token_watermark_estimate`: Your own estimate of your context usage. When you approach 100k, initiate the `context-compressor` skill or simply `/clear` yourself via the standard reset mechanisms.

## Operating Guidelines

- Remain idle when there is no `.processing.jsonl` file. Do not invent work.
- Process requests sequentially to avoid API rate limiting.
- Follow SEC-003 and all file guardrails exactly.

Files in this skill

  • SKILL.md3.2 KB
  • commands/cron-runner.md111 B
  • hooks/post-execute.cjs175 B
  • hooks/pre-execute.cjs281 B
  • references/research-requirements.md664 B
  • rules/cron-runner.md551 B
  • schemas/input.schema.json430 B
  • schemas/output.schema.json361 B
  • scripts/main.cjs577 B
  • templates/implementation-template.md281 B

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…