cron-tuner · v1.0.0 · 2026-08-30 · sha256 4872af1b0af7126a
cron-tuner v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/4872af1b0af7126a.
---
name: cron-tuner
version: 1.0.0
type: skill
author: Lukas Geiger
created: 2026-08-01
updated: 2026-08-23
language: de
visibility: public
standalone: true
anthropic_compatible: true
category: infrastructure
tags: [cadence, scheduler, cooldown, backoff, self-tuning, cron]
status: active
dependencies:
tools: []
services: []
protocols: []
python: []
description: Selbstjustierende Takt-Regelschleife für wiederkehrende Agenten-Scans. Nutzen, wenn ein geplanter Scan sein Intervall bei Aktivität schärfen und bei Stille abkühlen soll, ohne Operator-Eingriff.
---
<img src="banner.png" width="100%" alt="cron-tuner banner">
# cron-tuner — selbstjustierende Takt-Regelschleife
Eine **selbstjustierende** Regelschleife für wiederkehrende, zeitplangetriebene
Arbeit (Cron-Jobs, geplante Aufgaben, Timer). Statt eines festen Intervalls
passt der Job seinen eigenen Takt an: er schärft bei Arbeit und kühlt bei
Stille ab. Host- und plattformneutral; das Muster funktioniert mit jedem
Scheduler.
## Wann nutzen
- Ein wiederkehrender Scan (Mailbox-Watch, Sync-Yard-Scan, Queue-Poll) soll
während eines aktiven "Match" schnell reagieren und in Leerlaufphasen
günstig bleiben.
- Die Anpassung soll **auditierbar** sein (eine State-Datei) statt implizit
in einer Konversation oder im Kopf einer Person.
## Konzepte
- **Regelschleife**: messen → entscheiden → handeln → persistieren. Jeder
Lauf endet mit dem Schreiben seines States; jeder Lauf beginnt mit dessen
Lesen.
- **Aktivierung**: neue Arbeit gefunden → direkt auf das schnellste
Intervall springen.
- **Cooldown-Leiter**: leere Läufe rücken eine Leiter herab; jede Stufe
gilt nur, wenn sich das Intervall tatsächlich ändert.
- **Deckel**: niemals über ein definiertes Maximalintervall hinaus
entspannen.
## Referenzschema
| Bedingung | Neues Intervall |
|---|---|
| neue Arbeit gefunden | schnellstes (z. B. 15 min) |
| 4 aufeinanderfolgende leere Läufe | 30 min |
| 6 aufeinanderfolgende leere Läufe | 1 h |
| jeder weitere leere Lauf | verdoppeln (2 h, 4 h, 8 h) |
| Deckel | 24 h (niemals höher) |
Die Schwellen auf die Arbeitslast abstimmen; die Verdopplung einfach und den
Deckel explizit halten.
## State-Datei (Pflicht)
Eine kleine JSON-Datei je Worker, z. B. `cron-tuner-state.json`:
```json
{
"empty_runs": 0,
"interval_minutes": 15,
"note": "cron-tuner state"
}
```
Regeln:
1. **Datei, nicht Gedächtnis.** Der Zähler muss Kontext-Kompaktierung,
Session-Neustarts und Operator-Wechsel überleben und für Menschen und
andere Agenten einsehbar sein. Den Takt nicht in der Konversationshistorie
verfolgen.
2. **Nur bei Änderung neu schreiben.** Den State bei jedem Lauf persistieren,
aber den geplanten Job nur ersetzen, wenn sich das Intervall tatsächlich
ändert.
3. **Neuer Job = neuer Zeitplan, gleicher State.** Ein Taktwechsel bedeutet,
den alten Job zu löschen und einen neuen mit dem neuen Intervall
anzulegen; der Zähler läuft weiter.
## Betriebsregeln
- **Arbeit entscheidet, nicht Stimmung.** Nur beobachtete Ankünfte ändern
den Takt — niemals Erwartungen oder Näherungen.
- **Anti-Herden-Offsets.** Volle-Stunde- und Halbe-Stunde-Marken für das
schnellste Intervall meiden (z. B. Minuten 7/22/37/52), damit Flotten
nicht im Gleichschritt feuern.
- **Fail-Safe:** Verstummt ein Partnersystem, gilt die normale
Vakanz-/Abwesenheitsregel — der Tuner eskaliert nie in Poll-Fluten.
- **Belege:** Jeder Taktwechsel wird mit Grund, altem und neuem Intervall
protokolliert.
## Erweiterbarkeit (Registry der Loop-Typen)
Der Skill ist die Heimat für weitere selbstjustierende Loop-Typen über die
Zeit:
- **cooldown** (dieses Schema: Stille → langsamer)
- **backoff** (Fehler → langsamer, Erfolg → schneller)
- **burst** (Ankunfts-Spitze → temporärer Schnellmodus mit explizitem Ende)
- **wake-assist** (externe Wake-Nachricht → sofortiger Lauf außerhalb des
Zyklus)
Neue Loop-Typen bekommen hier ein Unterkapitel plus ihr eigenes
State-Datei-Schema.