Crew-written markdown documents
Project documentation and wiki files
cron/cron-jobs.md
Purpose: Single source of truth for every active cron job in the crew. Source data:
~/.openclaw/cron/jobs.json(master) +~/.openclaw/workspace/cron/jobs.json(workspace copy) Last updated: 2026-05-10 (t-1015: auto-dispatch → 5m, agent-poll-oscar added) Maintained by: Kelly 🌺 Related:
- — failure detection, triage, post-mortems
- — daily learning aggregation
- Cron job state — runtime state including last run, next run, consecutive errors
- — historical health tracking (deprecated)
| Field | Value |
|---|---|
| Job ID | 4695c6ea-ea22-4d33-9f15-f42f4acefc02 |
| Name | morning-digest |
| Agent | main (Robbie 🧐) |
| Schedule | Daily at 09:00 SGT (0 9 * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 |
| Enabled | ✅ Yes |
| Success indicator | WhatsApp message delivered with task summary, blockers, and recent failures |
| Last run status | ✅ OK (69s) |
| Description | Generates a crew digest (task summary, blockers, failed runs, upcoming jobs) and sends it to Maxime's WhatsApp. Max 20 lines, plain text, no markdown. |
| Field | Value |
|---|---|
| Job ID | acfc08aa-a69b-4a57-9304-007450ce1fb0 |
| Name | kelly-daily-docs-review |
| Agent | Kelly 🌺 |
| Schedule | Daily at 03:00 SGT (0 3 * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | None (posts to Discord #kelly) |
| Enabled | ✅ Yes |
| Success indicator | All watched repos reviewed; docs updated or confirmed current; lastReviewedSha updated; summary written to daily memory file |
| Last run status | ✅ OK (473s) |
| Description | Kelly's primary job — reviews all watched repos for code changes, updates or creates docs, commits changes, and logs the summary. Timeout: 1200s. |
| Field | Value |
|---|---|
| Job ID | 00f508b5-823c-4a34-ab7c-3b4a48bb534f |
| Name | kelly-weekly-index-sweep |
| Agent | Kelly 🌺 |
| Schedule | Sunday at 02:00 SGT (0 2 * * 0 Asia/Singapore) |
| Session target | Isolated |
| Delivery | None (posts to Discord #kelly) |
| Enabled | ✅ Yes |
| Success indicator | docs/INDEX.md verified, all projects checked, new projects added, baseline doc check complete |
| Last run status | ⚪ Not yet run (created 2026-05-08, first Sunday is 2026-05-10) |
| Description | Weekly cross-project index maintenance: verify INDEX.md accuracy, add new projects, flag broken paths, check baseline docs exist. Timeout: 600s. |
| Field | Value |
|---|---|
| Job ID | e2bcff6e-f35f-4dca-be0f-d302d45128c7 |
| Name | kelly-task-qc-15min |
| Agent | Kelly 🌺 |
| Schedule | Every 15 minutes (*/15 * * * * Asia/Singapore) |
| Session target | Isolated (light context) |
| Delivery | WhatsApp → +6580860085 (only if tasks were QC'd) |
| Enabled | ✅ Yes |
| Success indicator | Scans all inbox/needs_review tasks; QC found nothing OR tasks quality-gated to reviewState: kelly_done + status set to backlog + relayed to Robbie |
| Last run status | ✅ OK (freshly registered 2026-05-09) |
| Description | Scans all task files for those with status: inbox (need QC) or status: needs_review (errant). Fixes: truncated titles, missing tags, missing priority, auto-triage suggested_assignee, priority mismatches (title says P0/P1 but priority field says P2). Sets reviewState: kelly_done, reviewRequested: true, fixes status to backlog. Relays to Robbie via WhatsApp if any were processed. Timeout: 300s, light context. |
| Field | Value |
|---|---|
| Job ID | 6745d740-ec5d-4970-a15c-18b3c591e675 |
| Name | mission-control-git-sync |
| Agent | main (Robbie 🧐) |
| Schedule | Daily at 02:00 SGT (0 2 * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 (announce) |
| Enabled | ✅ Yes |
| Success indicator | Git auto-commit + push completes; or clean exit with "No changes to commit" |
| Last run status | ✅ OK (15s) |
| Description | Staged-file git sync for /home/maxime/projects/mission-control. Runs git add -A, commits with changelog, and pushes to Max-src/mission-control.git main. |
| Field | Value |
|---|---|
| Job ID | 46198197-c281-490d-8c81-4d0114b84f9d |
| Name | workspace-daily-sync |
| Agent | main (Robbie 🧐) |
| Schedule | Daily at 02:00 SGT (0 2 * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | None (failure notification only via WhatsApp) |
| Enabled | ✅ Yes |
| Success indicator | Backup script runs cleanly; ~/.openclaw-backup/.last-sync.json has status=ok |
| Last run status | ✅ OK (16s) |
| Description | Full workspace backup via scripts/backup-sync.sh: rsync mirroring, config sanitization, secret scan, git commit+push to Max-src/openclaw-workspace. Timeout: 300s. |
| Field | Value |
|---|---|
| Job ID | 08d840e5-0938-485a-ac74-46c81fd10ac1 |
| Name | vera-code-review-2h |
| Agent | Vera 🔍 |
| Schedule | Every 2 hours (0 */2 * * * Asia/Singapore, staggerMs: 900000) |
| Session target | Isolated |
| Delivery | Discord → #chris channel (1502183280676438016) |
| Enabled | ✅ Yes |
| Success indicator | New commits reviewed and posted to Discord; or silent exit if no new commits |
| Last run status | ✅ OK (12s) |
| Description | Checks mission-control main for new commits since last review. If there are changes, does a full code review and posts findings to Discord #chris. Staggered 15min from the hour to avoid contention. Timeout: 300s, light context. |
| Field | Value |
|---|---|
| Job ID | 4e0cc4ea-b5a7-4997-bb93-6d9fae2384d1 |
| Name | vera-weekly-quality-deep-dive |
| Agent | Vera 🔍 |
| Schedule | Sunday at 10:00 SGT (0 10 * * 0 Asia/Singapore, staggerMs: 1800000) |
| Session target | Isolated |
| Delivery | Discord → #chris channel (1502183280676438016) |
| Enabled | ✅ Yes |
| Success indicator | Weekly quality report posted to Discord #chris with recurring issues surfaced |
| Last run status | ⚪ Not yet run |
| Description | Scans task completions, run logs, and mission-control commits for the past week. Surfaces recurring code quality patterns. Staggered 30min from the hour. Timeout: 600s, light context. |
| Field | Value |
|---|---|
| Job ID | 3c8e9a65-9813-4ec2-a533-07cc6980bcd6 |
| Name | task-pipeline-audit |
| Agent | Vera 🔍 |
| Schedule | Daily at 03:00 SGT (0 3 * * * Asia/Singapore) |
| Session target | Isolated (light context) |
| Delivery | Announce (last channel) |
| Enabled | ✅ Yes |
| Success indicator | Script runs cleanly; legacy statuses normalized; warnings flagged; errors escalated to Robbie |
| Last run status | ⚪ Not yet run (created 2026-05-09) |
| Description | Runs scripts/task-pipeline-audit.py --fix daily at 03:00 SGT. Scans all task files for skipped pipeline stages (done without prior in_progress), unknown/invalid statuses (needs_review, running, etc.), and auto-normalizes legacy statuses (success→done, failed→in_progress, completed→done). If errors found (tasks stuck with truly invalid states), escalates to Robbie via WhatsApp. Timeout: 120s, light context. |
| Field | Value |
|---|---|
| Job ID | 1cc33ed4-d499-43f2-94c0-1551e3693507 |
| Name | oscar-daily-cost-check |
| Agent | Oscar 🔥 |
| Schedule | Daily at 08:00 SGT (0 8 * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 (best effort) |
| Enabled | ✅ Yes |
| Success indicator | Cost check script output delivered to Maxime's WhatsApp |
| Last run status | ✅ OK (13s) |
| Description | Runs python3 /home/maxime/.openclaw/workspaces/oscar/cost-check.py and delivers the stdout to Maxime. Light context. Timeout: 120s. |
| Field | Value |
|---|---|
| Job ID | b0ba16bc-7fac-4025-864d-b443cc024bca |
| Name | daily-reflection-aggregate |
| Agent | Debbie 🦑 |
| Model | deepseek/deepseek-chat (DeepSeek Flash) |
| Schedule | Daily at 23:30 SGT (30 23 * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 (best effort) |
| Enabled | ✅ Yes |
| Success indicator | All agents' reflections read; daily summary written to team-management/reflections/daily/; learning.md and patterns.md updated; WhatsApp summary sent |
| Last run status | ❌ Failed — timeout (120s). Agent instruction set is complex (600s timeout needed). |
| Description | Reads each agent's daily reflection file, produces a consolidated crew learning summary, updates patterns.md and learning.md, and relays a WhatsApp summary. Uses DeepSeek Flash model (t-313: rerouted from Qwen — analysis-heavy task requires coherent multi-file summaries). Timeout: 600s, light context. Note: Last run timed out at 120s — timeout may need adjustment. |
| Field | Value |
|---|---|
| Job ID | 814c3663-750b-4a36-8130-e05fd90ebdf4 (master) / f1a0e1c4-f97b-4fea-8b54-f6572be0c37c (workspace copy) |
| Name | fallback-monitor-hourly |
| Agent | Debbie 🦑 |
| Schedule | Every hour (0 * * * * Asia/Singapore, staggerMs: 300000) |
| Session target | Isolated |
| Delivery | None (sends WhatsApp alerts for new fallback events) |
| Enabled | ✅ Yes |
| Success indicator | Script runs; new fallback events are alerted via WhatsApp; summary appended to /tmp/mc-daily-summary.log |
| Last run status | ⚪ Not yet run (added 2026-05-09, first run pending) |
| Description | Runs scripts/fallback-monitor.py to scan task run logs for API rate-limit/fallback events. Reads state/fallback-state.json, delivers pending alerts via WhatsApp, marks them delivered. Staggered 5min from the hour. Timeout: 120s. |
| Field | Value |
|---|---|
| Job ID | 0c99eea3-5b44-41c0-9daa-51e4f14efa83 (master) / d6820459-1f31-40f9-a930-69891342a65f (workspace copy) |
| Name | rate-limit-recovery-probe |
| Agent | Debbie 🦑 |
| Schedule | Every 15 minutes (*/15 * * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | None (sends WhatsApp alerts on recovery detection) |
| Enabled | ✅ Yes |
| Success indicator | Script runs; recovered models detected and alerted; summary appended to /tmp/mc-daily-summary.log |
| Last run status | ✅ OK (25s) |
| Description | Runs scripts/rate-limit-recovery.py to probe rate-limited models. When a model recovers, sends WhatsApp alert and clears recovery status in fallback-state.json. |
| Field | Value |
|---|---|
| Job ID | a6023281-6620-44e4-a396-72862868dcae |
| Name | review-flag-scan-1h |
| Agent | Debbie 🦑 |
| Schedule | Every hour (0 * * * * Asia/Singapore, staggerMs: 300000) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 (best effort, only if review-flagged tasks found) |
| Enabled | ✅ Yes |
| Success indicator | Scans all tasks for reviewRequested=true; reports to WhatsApp if any found; silent exit (NO_REPLY) if none |
| Last run status | ✅ OK (16s) |
| Description | Checks every task file for reviewRequested=true in frontmatter. If any found, delivers report via WhatsApp. Staggered 5min from the hour to avoid collision with fallback monitor. |
| Field | Value |
|---|---|
| Job ID | c02a97f3-b4a1-4464-be1c-6b7e2c25b412 |
| Name | adoption-verifier-hourly |
| Agent | Debbie 🦑 |
| Schedule | Every hour (0 * * * * Asia/Singapore, staggerMs: 300000) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 (announce, best effort; only sends if tasks reopened) |
| Enabled | ✅ Yes |
| Success indicator | Pending adoption checks scanned; tasks with real output detected stay done; tasks without output reopened as blocked and alerted to WhatsApp |
| Last run status | ⚪ Not yet run (added 2026-05-09, first run pending) |
| Description | Runs scripts/adoption-verifier.py run-pending to scan all pending adoption checks (process-design tasks marked done ~24h prior). For each: detects real process output (related tasks, files in reflections/state/reports/, enabled cron jobs). If output found → verified. If none → reopens task as blocked and alerts WhatsApp. Staggered 5min from the hour. Timeout: 60s. |
Related:
scripts/adoption-verifier.pyscripts/adoption-on-complete.sh (called during task lifecycle stage 6 to schedule checks)state/adoption-checks.jsonreflections/patterns.md (process design ≠ process adoption)| Field | Value |
|---|---|
| Job ID | 9e548caf-9a7c-4815-9743-2eb7308b4b98 |
| Name | team-health-every-15min |
| Agent | Debbie 🦑 |
| Model | deepseek/deepseek-chat (DeepSeek Flash) |
| Schedule | Every 15 minutes (*/15 * * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | WhatsApp → +6580860085 (announce, best effort; only sends if stale_alert_hours threshold exceeded or failures detected) |
| Enabled | ✅ Yes |
| Success indicator | Health checks run every 15min independently of any session. Stale tasks, backlog rot, blocked tasks, unassigned tasks, and failures detected. WhatsApp alerts sent when stale_alert_hours (default 48h) exceeded. Quiet hours (23:00-08:00 SGT) respected. State logged to Debbie's daily memory and state/team-health-state.json. |
| Last run status | ⚪ Not yet run (created 2026-05-09, first run pending) |
| Description | Runs the team health check protocol: fetch all tasks via API, scan for stale tasks (>24h todo, >72h backlog), blocked dependencies, unassigned tasks, and recent failures. Alerts WhatsApp when stale_alert_hours (48h) threshold is breached. Uses DeepSeek Flash model (t-313: rerouted from Qwen — analysis-heavy task needs root cause understanding). Runs every 15min with 120s timeout, isolated session. Previously embedded in Robbie's heartbeat — now a dedicated cron. |
These jobs are either disabled (enabled: false), one-shot (deleteAfterRun: true), or have been superseded. Listed for audit completeness.
| Name | Agent | Schedule | Notes |
|---|---|---|---|
cron-health-opus | Debbie | Every 30 min (0,30 * * * *) | Disabled. Previously compared Opus vs Qwen health check quality. Superseded by fallback-monitor-hourly. |
cron-health-qwen | Debbie | Every 30 min (15,45 * * * *) | Disabled. Counterpart to cron-health-opus, Qwen side. |
t040-review-trigger | Debbie | One-shot (2026-05-08T14:00Z) | Executed and auto-deleted. Compared Opus vs Qwen after 24h. |
📋 Review task t-092 | Kelly | One-shot (2026-05-08T06:44Z) | Disabled. Auto-review of newly created tasks. Failed (edit permission). |
📋 Review task t-109 | Kelly | One-shot (2026-05-08T10:22Z) | Disabled. Same pattern — task review. Failed (edit permission). |
📋 Review task t-120 | Kelly | One-shot (2026-05-08T10:36Z) | Disabled. Same pattern. Failed (gateway restart during run). |
📋 Review task t-121 | Kelly | One-shot (2026-05-08T10:38Z) | Disabled. Same pattern. Failed (gateway restart during run). |
📋 Review task t-142 | Kelly | One-shot (2026-05-08T12:36Z) | Disabled. Same pattern. Failed (edit permission). |
📋 Review task t-145 | Kelly | One-shot (2026-05-08T12:53Z) | Disabled. Same pattern. Failed (edit permission). |
📋 Review task t-146 | Kelly | One-shot (2026-05-08T13:07Z) | Disabled. Same pattern. Failed (gateway drain during restart). |
📋 Review task t-175 | Kelly | One-shot (2026-05-08T18:01Z) | Disabled. Same pattern. Failed (edit permission). |
discord-task-watch | Debbie | Every 60s | Disabled. Previously watched Discord channels and created tasks from messages. |
| Field | Value |
|---|---|
| Job ID | c3c1893f-714b-45d3-8f0b-5ee806fa28ce |
| Name | auto-work-dispatch |
| Agent | Debbie 🦑 |
| Schedule | Every 5 minutes (every 5m) |
| Session target | Isolated (light context) |
| Delivery | None |
| Enabled | ✅ Yes |
| Success indicator | Calls POST /api/tasks/auto-dispatch; responds with ok=true and dispatch report |
| Description | Central auto-dispatch engine. Runs every 5min to check backlog for ready tasks, auto-assigns by agent capacity, unblocks dependent tasks, and age-escalates stale backlog items. Updated from 15m → 5m in t-1015. Timeout: 120s, light context. |
| Field | Value |
|---|---|
| Job ID | fd838e8e-583b-44ce-be0d-c1aabf0963fc |
| Name | agent-poll-oscar |
| Agent | Oscar 🔥 |
| Schedule | Every 5 minutes (every 5m) |
| Session target | Isolated (light context) |
| Delivery | None |
| Enabled | ✅ Yes |
| Success indicator | Oscar self-polls backlog; picks up highest-priority task if idle |
| Description | Oscar self-poll for backlog checking. Every 5min, Oscar checks his task backlog for ready work (monitoring, reporting, trend analysis). Created in t-1015 — Oscar previously had no agent poll. Timeout: 120s, light context. |
Time-of-day view showing which crons run at the same time.
00:00 ──────────────────────────────────────────────────────────
01:00 ──────────────────────────────────────────────────────────
02:00 ── mission-control-git-sync ── workspace-daily-sync
03:00 ── kelly-daily-docs-review ── task-pipeline-audit
04:00 ──────────────────────────────────────────────────────────
05:00 ──────────────────────────────────────────────────────────
06:00 ──────────────────────────────────────────────────────────
07:00 ──────────────────────────────────────────────────────────
08:00 ── oscar-daily-cost-check
09:00 ── morning-digest
10:00 ── (Sunday only) vera-weekly-quality-deep-dive
── (Sunday only) kelly-weekly-index-sweep (at 02:00)
...
22:00 ──────────────────────────────────────────────────────────
23:30 ── daily-reflection-aggregate
Every 5 minutes:
:00 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
:05 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
:10 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar ── agent-poll-debbie
:15 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar ── agent-poll-kelly ── kelly-task-qc-15min ── rate-limit-recovery-probe ── team-health-every-15min
:20 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
:25 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
:30 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar ── agent-poll-debbie ── agent-poll-vera
:35 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
:40 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar ── agent-poll-debbie
:45 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar ── agent-poll-kelly ── kelly-task-qc-15min ── rate-limit-recovery-probe ── team-health-every-15min
:50 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
:55 ── auto-work-dispatch ── agent-poll-chris ── agent-poll-oscar
Hourly crons (on the hour):
:00 ── fallback-monitor-hourly ── review-flag-scan-1h ── adoption-verifier-hourly [all staggered 5min]
Every 2 hours:
Even hours (:00) ── vera-code-review-2h [staggered 15min]
| Field | Value |
|---|---|
| Job ID | 7ec73442-4e13-492b-ac49-9a470fb4110f |
| Name | first-run-verifier |
| Agent | Debbie 🦑 |
| Schedule | Every 15 minutes (*/15 * * * * Asia/Singapore) |
| Session target | Isolated |
| Delivery | None (alerts written to disk as JSON files) |
| Enabled | ✅ Yes |
| Description | Snapshot cron registry → detect new jobs → schedule verification task at (first_run + 1h) → check run history when due → alert if 0 runs found. Bootstrap mode ignores jobs created >48h ago on first run to avoid mass-flagging existing jobs. |
Script location: ~/.openclaw/workspace/scripts/first-run-verifier.py
State file: ~/.openclaw/workspace/state/first-run-verifier-state.json
Alert directory: ~/.openclaw/workspace/state/alerts/
Log file: /tmp/first-run-verifier.log
Does NOT verify these jobs (human-created): 8 "📋 Review task t-NNN" jobs + discord-task-watch.
Failure mode: If the script itself fails, the cron will show an error in its run log. The state file tracks last_run_status and the script will retry failed verification scheduling on subsequent runs. If a verification cron detects 0 runs for a job, it writes an alert JSON file to state/alerts/ for pickup by the WhatsApp delivery pipeline.
| Job | What "success" looks like | Escalation if failure |
|---|---|---|
| morning-digest | WhatsApp delivered with crew summary | Missed digest = 📋 Tier 2 failure (Robbie investigates) |
| kelly-daily-docs-review | Docs updated/confirmed, SHA advanced | Missed review = 📋 Tier 2 (no immediate impact, caught next day) |
| kelly-weekly-index-sweep | INDEX.md verified | Missed sweep = 📋 Tier 2 (caught next Sunday) |
| kelly-task-qc-15min | Backlog tasks QCd or none found | Missed sweep = 📋 Tier 2; unprocessed tasks pile up in backlog until next cycle or manual review |
| mission-control-git-sync | Git push completes | Consecutive 3 failures = Tier 3 (WAKE Maxime per FAILURE-HANDLING.md §2) |
| workspace-daily-sync | Backup sync status=ok | Script handles escalation (streak ≥3 = WhatsApp alert); Tier 3 if persistent |
| vera-code-review-2h | New commits reviewed & posted | Missed review = 📋 Tier 2 (no immediate impact) |
| vera-weekly-quality-deep-dive | Quality report posted to Discord | Missed = 📋 Tier 2 |
| task-pipeline-audit | Script runs cleanly; legacy statuses normalized; warnings flagged; errors escalated | Missed = 📋 Tier 2 (tasks with skipped stages accumulate silently); errors (script itself fails) = Tier 3 (pipeline integrity gap) |
| oscar-daily-cost-check | Cost data delivered to WhatsApp | Missed = 📋 Tier 2 |
| daily-reflection-aggregate | Summary written + patterns updated | Timeout (as seen) = 📋 Tier 2; check if timeoutSeconds needs adjustment |
| fallback-monitor-hourly | Alerts delivered, log appended | 🔴 Missed rate-limit alerts = Tier 2 (log gap) / Tier 3 if model unavailable |
| rate-limit-recovery-probe | Recoveries detected & alerted | 🔴 Missed recovery = Tier 2; recovered models stay in fallback state unnecessarily |
| review-flag-scan-1h | Review-flagged tasks reported | Missed = 📋 Tier 2 (low urgency since Maxime can check manually) |
| auto-work-dispatch | Central dispatch runs every 5min, auto-assigns backlog tasks | Missed = 📋 Tier 2; backlog tasks won't auto-dispatch until next cycle. Consecutive 5 failures = Tier 3 (dispatch is core pipeline). |
| agent-poll-oscar | Oscar self-polls backlog every 5min, picks up tasks | Missed = 📋 Tier 2; Oscar won't pick up new tasks autonomously. Consecutive 5 failures = Tier 3. |
| team-health-every-15min | Health checks run every 15min, alerts sent when thresholds breached | Missed = 📋 Tier 2; stale tasks won't be caught until next cycle or manual check. Consecutive 5 failures = Tier 3 (health monitoring is a safety net). |
| first-run-verifier | New cron jobs detected and verification scheduled; due checks find runs or write alerts | Script failure = 📋 Tier 2 (missing new-cron-verification coverage until fixed). Consecutive 3 failures = Tier 3 (safety net for silent never-fires is down). |
| adoption-verifier-hourly | Pending adoption checks scanned; reopened tasks alerted to WhatsApp | Missed = 📋 Tier 2; process-design tasks stay 'done' without actual adoption. Consecutive 3 failures = Tier 3 (adoption verification is a quality gate). |
Failure Handling: See
Reflection Cycle: See
daily-reflection-aggregate (Debbie, 23:30 SGT)Cron Job State: See ~/.openclaw/cron/jobs-state.json
Cron Health Log: See
jobs-state.md cross-references. Update the schedule overlap map.daily-reflection-aggregate), update its timeoutSeconds in the job definition.~/.openclaw/cron/jobs.json every time cron jobs are added or removed. Full audit weekly as part of Kelly's weekly index sweep.~/.openclaw/cron/jobs.json is authoritative. The workspace copy at ~/.openclaw/workspace/cron/jobs.json is a synced snapshot and may lag.On this page