{
  "version": 1,
  "jobs": [
    {
      "id": "069adca9-cce9-4afc-87fb-a6aae0d8887e",
      "name": "Nightly Github Backup",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775050180402,
      "updatedAtMs": 1775404835246,
      "schedule": {
        "kind": "cron",
        "expr": "0 2 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run nightly workspace backup. Execute: cd ~/.openclaw/workspace-oliver && git add -A && git commit -m \"Nightly backup $(date +%Y-%m-%d)\" && git push origin main. Report back: files changed, commit hash, success or fail."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last",
        "to": "-1003807597926:9",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775491200000,
        "lastRunAtMs": 1775404800007,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 35239,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "f66397f6-385e-496d-bf20-16f67f838ed0",
      "agentId": "oliver",
      "name": "Monday Compliance Check",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775050876323,
      "updatedAtMs": 1775052961118,
      "schedule": {
        "kind": "cron",
        "expr": "0 8 * * 1"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Monday SOUL.md compliance check. Re-read SOUL.md and AGENTS.md. Confirm: decision boundaries intact, financial limits unchanged, anti-loop rules active, security rules present. Output compliance table. Flag any drift from original spec.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:9",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775426400000
      }
    },
    {
      "id": "9171151e-de5f-4f46-9395-082b141e6479",
      "agentId": "oliver",
      "name": "Weekly Security Scan",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775051100190,
      "updatedAtMs": 1775408434272,
      "schedule": {
        "kind": "cron",
        "expr": "0 3 * * 1"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run weekly security scan. Execute: bash ~/.openclaw/workspace-oliver/scripts/security-scan.sh. Read the output report. Flag any CRITICAL issues to Shay. Auto-fix permissions: find ~/.openclaw/workspace-oliver -name \"*.env\" -exec chmod 600 {} \\; Report summary table: issue type, severity, status.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:9",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1776013200000,
        "lastRunAtMs": 1775408400008,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 34264,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "2e815dc3-56aa-4036-bd85-0e7d1fc09161",
      "agentId": "oliver",
      "name": "Morning Briefing",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775051886267,
      "updatedAtMs": 1775419281605,
      "schedule": {
        "kind": "cron",
        "expr": "0 6 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Read SOUL.md, USER.md, MEMORY.md. You are Oliver, I am Shay. Morning briefing: #1 revenue action today, health check vs baseline, one potent business or investing insight. Tables where possible. Also run: gog gmail search 'is:unread newer_than:1d' --max 10 and gog calendar events primary --from [today 00:00 UTC] --to [today 23:59 UTC]. Include any unread important emails and today's calendar events in the briefing. Also check OpenRouter spend: curl https://openrouter.ai/api/v1/auth/key with the API key in TOOLS.md. If yesterday's spend exceeded $5 USD, flag it as a warning in the briefing. If it exceeded $10, flag as critical.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:1",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775505600000,
        "lastRunAtMs": 1775419200008,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 81597,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "ed0f8d46-e677-4a93-a0d5-fd43c6eb7669",
      "agentId": "oliver",
      "name": "Weekly Scorecard",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775052023267,
      "updatedAtMs": 1775386833309,
      "schedule": {
        "kind": "cron",
        "expr": "0 21 * * 0"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "1. Read DECISIONS.md and count decisions made this week vs last week\n2. Read MEMORY.md for current bottleneck status\n3. Read workspace-scout/memory/ for latest research score\n4. Check health log from this week if available\n5. Calculate commitment completion rate from any tasks mentioned in daily memory files\n6. Output as a formatted table scorecard to Wealth & Investing topic",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:5",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775991600000,
        "lastRunAtMs": 1775386800011,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 33298,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "412a91b8-cbed-476c-ad8b-a388a427b665",
      "agentId": "oliver",
      "name": "Daily Memory Log",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775053989924,
      "updatedAtMs": 1775390450396,
      "schedule": {
        "kind": "cron",
        "expr": "0 22 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Create today's daily memory file at memory/YYYY-MM-DD.md (use actual date). Log: what revenue actions happened today, any decisions made, health status vs targets, what is the #1 priority tomorrow. Then update the Active Bottleneck line in MEMORY.md.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:9",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775476800000,
        "lastRunAtMs": 1775390400009,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 50387,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "6f54cb17-2d79-49e3-bed5-541df252d1c8",
      "agentId": "oliver",
      "name": "Cron Health Check",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775054291537,
      "updatedAtMs": 1775336445088,
      "schedule": {
        "kind": "cron",
        "expr": "0 7 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Check all cron jobs via the dashboard. Review lastRunAt for each job. Flag any job that hasn't run within its expected window. Report as table: job name, last run, status, action taken.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:9",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775422800000,
        "lastRunAtMs": 1775336400009,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 45079,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "97d78d84-0700-4584-aacd-80463b591701",
      "agentId": "oliver",
      "name": "Morning AI Intel",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775057776238,
      "updatedAtMs": 1775415640005,
      "schedule": {
        "kind": "cron",
        "expr": "0 5 * * 1-5"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "You are Oliver. Scan for the most potent AI developments from the last 24 hours relevant to Shay's world: agentic AI, ecom automation, AI business models, new tools that create leverage, prompt engineering breakthroughs, model releases. Use Tavily web search. Filter ruthlessly — only include things Shay can actually use or that threaten/create opportunity in his space. Format as a clean briefing: headline, 2-sentence summary, why it matters for Shay. Max 5 items. No fluff. Post to Telegram General topic.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:1",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775502000000,
        "lastRunAtMs": 1775415600010,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 39995,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "287d9011-4305-4842-b9ca-32c3950a511e",
      "agentId": "scout",
      "name": "Market Signal Scan",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775057882080,
      "updatedAtMs": 1775390534787,
      "schedule": {
        "kind": "cron",
        "expr": "0 22 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "You are Scout. Run broad market signal scan for AU ecom opportunities. Search: Reddit (r/entrepreneur, r/ecommerce, r/ausfinance, r/supplements), Google Trends AU, Amazon AU bestsellers and rising products, Facebook Ad Library for supplement brands. Look for: recurring complaints, underserved audiences, products with demand but weak competition, pricing gaps, viral health trends. Score each using Signal Stack Layer 2 from BUSINESS.md. Surface only 7.0+ scores as a summary table. Save to memory/scout-signals-$(date +%Y-%m-%d).md. Post summary to Telegram.",
        "model": "ollama/qwen2.5:14b-scout",
        "thinking": "off"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:10",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775476800000,
        "lastRunAtMs": 1775390450396,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 84391,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0,
        "lastDelivered": true
      }
    },
    {
      "id": "d9bd7a76-3653-4f8d-9ee5-80281b6ed6f8",
      "agentId": "oliver",
      "name": "Daily Cost Report",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775116728315,
      "updatedAtMs": 1775343716852,
      "schedule": {
        "kind": "cron",
        "expr": "0 9 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Check OpenRouter usage and cost from yesterday. Report: total tokens used, cost in AUD, which agent used most, and whether we're on track for monthly budget. Deliver to Alerts & Logs topic.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:9",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775430000000,
        "lastRunAtMs": 1775343600010,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 116842,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "9cedc82a-ad08-4955-ad96-8fa297873908",
      "agentId": "oliver",
      "name": "Morning Email Triage",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775117291787,
      "updatedAtMs": 1775419312633,
      "schedule": {
        "kind": "cron",
        "expr": "0 6 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Check oliveraibot@gmail.com inbox. Triage emails from last 24 hours. Flag anything urgent, draft replies for anything needing response, delete obvious spam. Report summary to General topic. Wait for SEND confirmation before sending any reply.",
        "model": "openrouter/anthropic/claude-sonnet-4-5",
        "thinking": "minimal"
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:1",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775505600000,
        "lastRunAtMs": 1775419281605,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 31028,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "c41e001c-c6e9-4305-8eef-6c6d8a3c76e7",
      "agentId": "scout",
      "name": "Scout Signal Scan",
      "enabled": true,
      "deleteAfterRun": false,
      "createdAtMs": 1775302811470,
      "updatedAtMs": 1775394353178,
      "schedule": {
        "kind": "cron",
        "expr": "0 23 * * *"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "CRITICAL: You MUST save your output to a file FIRST before posting to Telegram. Use the write tool. File path: ~/.openclaw/workspace-scout/memory/scout-research-$(date +%Y-%m-%d).md — confirm file exists before proceeding.\n\nYou are Scout. Read MEMORY.md and BUSINESS.md. Identify ONE high-value research topic: an ecom product gap in AU market, supplement/wellness opportunity, competitor weakness, or business model testable under $500.\n\nExecute Karpathy overnight research method:\n1. Define the core market gap question\n2. Break into 8-12 sub-queries: search volume, competition strength, AU market size, margin potential, pain intensity, competitor weaknesses, pricing gaps, underserved audiences\n3. Post research plan to Telegram before starting\n4. Run each sub-query using web_search and Tavily\n5. Compile all findings\n6. Identify contradictions — where data disagrees with conventional wisdom\n7. Score using Signal Stack Layer 2 from BUSINESS.md\n8. Write 1-page executive brief with exactly 3 actionable insights executable within 72 hours\n9. MANDATORY: Write full report to file first, confirm it exists\n10. Post executive brief to Telegram Overnight Research topic\n\nOnly surface 7.0+. Kill anything below.",
        "model": "ollama/qwen2.5:14b-scout",
        "thinking": "off",
        "timeoutSeconds": 900
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "-1003807597926:10",
        "bestEffort": false
      },
      "state": {
        "nextRunAtMs": 1775480400000,
        "lastRunAtMs": 1775394000012,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 353166,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0,
        "lastDelivered": true
      }
    }
  ]
}