{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cron-setup",
    "name": "Cron Setup",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/BrennerSpear/cron-setup",
    "canonicalUrl": "https://clawhub.ai/BrennerSpear/cron-setup",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cron-setup",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cron-setup",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "cron-setup",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T05:39:57.896Z",
      "expiresAt": "2026-05-09T05:39:57.896Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cron-setup",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cron-setup",
        "contentDisposition": "attachment; filename=\"cron-setup-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "cron-setup"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cron-setup"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/cron-setup",
    "agentPageUrl": "https://openagent3.xyz/skills/cron-setup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cron-setup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cron-setup/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Cron Job Setup",
        "body": "Our conventions for creating cron jobs in OpenClaw."
      },
      {
        "title": "Default Settings",
        "body": "SettingDefaultWhyModelanthropic/claude-sonnet-4-5Reliable tool calls, works with any Anthropic Max plan — no OpenRouter neededSessionisolatedCron jobs run in their own session, not the main chatDelivery\"mode\": \"none\"Job handles its own output (posts to Discord, etc.)Timeout120-180sMost jobs should finish fast"
      },
      {
        "title": "Model Notes",
        "body": "Default to Sonnet (anthropic/claude-sonnet-4-5). Reliable, portable (no OpenRouter API key needed).\nDeepSeek is unreliable for tool calls — don't use it for cron jobs.\nUse Opus (anthropic/claude-opus-4-6) only as a last resort — expensive for scheduled tasks.\nModel ID format: Use anthropic/claude-sonnet-4-5 not the full dated version (anthropic/claude-sonnet-4-20250514)."
      },
      {
        "title": "Job Template",
        "body": "{\n  \"name\": \"descriptive-kebab-case-name\",\n  \"schedule\": {\n    \"kind\": \"cron\",\n    \"expr\": \"*/30 * * * *\",\n    \"tz\": \"America/New_York\"\n  },\n  \"sessionTarget\": \"isolated\",\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"TASK INSTRUCTIONS HERE\",\n    \"model\": \"openrouter/deepseek/deepseek-v3.2\",\n    \"timeoutSeconds\": 120\n  },\n  \"delivery\": {\n    \"mode\": \"none\"\n  }\n}"
      },
      {
        "title": "Schedule Patterns",
        "body": "PatternCron ExpressionNotesEvery 30 min*/30 * * * *Good for inbox checks, monitoringEvery hour0 * * * *Self-reflection, status checksDaily at 4 AM0 4 * * *Cleanup, backups (during quiet hours)Daily at 6 AM0 6 * * *Morning digests, daily summariesWeekly Monday 2 PM0 14 * * 1Weekly outreach, reviewsOne-shotUse \"kind\": \"at\" insteadReminders, one-time tasks"
      },
      {
        "title": "Task Instruction Conventions",
        "body": "Be explicit with commands — Give the cron agent exact bash commands to run. It doesn't have our context.\nInclude skip conditions — If there's nothing to do, the agent should reply SKIP to avoid wasting tokens.\nHandle its own output — The job should post results to Telegram (or wherever) using the message tool directly. Don't rely on delivery mode for formatted output.\nInclude error handling — What should happen if a command fails?\nKeep instructions self-contained — The cron agent wakes up with no context. Everything it needs should be in the task message."
      },
      {
        "title": "Telegram Posting from Cron Jobs",
        "body": "When a cron job needs to notify us, include these instructions in the task:\n\nPost to Telegram using the message tool:\n- action: send\n- channel: telegram\n- target: -1003856094222\n- threadId: TOPIC_ID\n- message: Your formatted message\n\nTopic IDs:\n\n1 — Main topic (general updates, alerts)\n573 — Research\n1032 — Crypto\n1488 — PR updates / dev notifications\n1869 — Sticker store\n3188 — Activity feed (workspace changes)"
      },
      {
        "title": "Delivery Modes",
        "body": "ModeWhen to Use\"mode\": \"none\"Job posts its own output to Telegram (most common)\"mode\": \"announce\"OpenClaw auto-delivers the agent's final message to a channel. Use when output IS the message (e.g., daily digest). Set \"channel\": \"telegram\" and \"to\": \"-1003856094222:TOPIC_ID\""
      },
      {
        "title": "Anti-Patterns",
        "body": "❌ Don't use Opus for cron jobs unless the task genuinely needs it. Most cron tasks are simple checks.\n❌ Don't use heartbeat for things that can be a cron job. Heartbeat runs in the main session (Opus) and costs way more.\n❌ Don't create cron jobs that loop/poll — each run should be a single check. If you need polling, use a background exec script instead.\n❌ Don't set delivery mode to \"announce\" and also have the job post to Telegram — you'll get duplicate messages."
      },
      {
        "title": "Existing Jobs (Reference)",
        "body": "Check current jobs anytime with the cron list tool. As of setup:\n\nworkspace-activity-feed — Every 30 min, commits workspace changes, posts to activity feed\nagentmail-inbox-check — Every 30 min, checks for new emails, responds to agents\nsub-agent-monitor — Every 15 min, checks on stalled sub-agents\nself-reflection — Hourly, reviews recent sessions for lessons learned\ndaily-workspace-commit — Daily 4 AM, git commits workspace changes\nsystem-watchdog — Daily 4 AM, checks system resources\nOpenClaw Daily News Digest — Daily 6 AM, generates news digest\nsticker-sales-loop — Weekly Monday 2 PM, agent outreach for sticker store"
      }
    ],
    "body": "Cron Job Setup\n\nOur conventions for creating cron jobs in OpenClaw.\n\nDefault Settings\nSetting\tDefault\tWhy\nModel\tanthropic/claude-sonnet-4-5\tReliable tool calls, works with any Anthropic Max plan — no OpenRouter needed\nSession\tisolated\tCron jobs run in their own session, not the main chat\nDelivery\t\"mode\": \"none\"\tJob handles its own output (posts to Discord, etc.)\nTimeout\t120-180s\tMost jobs should finish fast\nModel Notes\nDefault to Sonnet (anthropic/claude-sonnet-4-5). Reliable, portable (no OpenRouter API key needed).\nDeepSeek is unreliable for tool calls — don't use it for cron jobs.\nUse Opus (anthropic/claude-opus-4-6) only as a last resort — expensive for scheduled tasks.\nModel ID format: Use anthropic/claude-sonnet-4-5 not the full dated version (anthropic/claude-sonnet-4-20250514).\nJob Template\n{\n  \"name\": \"descriptive-kebab-case-name\",\n  \"schedule\": {\n    \"kind\": \"cron\",\n    \"expr\": \"*/30 * * * *\",\n    \"tz\": \"America/New_York\"\n  },\n  \"sessionTarget\": \"isolated\",\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"TASK INSTRUCTIONS HERE\",\n    \"model\": \"openrouter/deepseek/deepseek-v3.2\",\n    \"timeoutSeconds\": 120\n  },\n  \"delivery\": {\n    \"mode\": \"none\"\n  }\n}\n\nSchedule Patterns\nPattern\tCron Expression\tNotes\nEvery 30 min\t*/30 * * * *\tGood for inbox checks, monitoring\nEvery hour\t0 * * * *\tSelf-reflection, status checks\nDaily at 4 AM\t0 4 * * *\tCleanup, backups (during quiet hours)\nDaily at 6 AM\t0 6 * * *\tMorning digests, daily summaries\nWeekly Monday 2 PM\t0 14 * * 1\tWeekly outreach, reviews\nOne-shot\tUse \"kind\": \"at\" instead\tReminders, one-time tasks\nTask Instruction Conventions\nBe explicit with commands — Give the cron agent exact bash commands to run. It doesn't have our context.\nInclude skip conditions — If there's nothing to do, the agent should reply SKIP to avoid wasting tokens.\nHandle its own output — The job should post results to Telegram (or wherever) using the message tool directly. Don't rely on delivery mode for formatted output.\nInclude error handling — What should happen if a command fails?\nKeep instructions self-contained — The cron agent wakes up with no context. Everything it needs should be in the task message.\nTelegram Posting from Cron Jobs\n\nWhen a cron job needs to notify us, include these instructions in the task:\n\nPost to Telegram using the message tool:\n- action: send\n- channel: telegram\n- target: -1003856094222\n- threadId: TOPIC_ID\n- message: Your formatted message\n\n\nTopic IDs:\n\n1 — Main topic (general updates, alerts)\n573 — Research\n1032 — Crypto\n1488 — PR updates / dev notifications\n1869 — Sticker store\n3188 — Activity feed (workspace changes)\nDelivery Modes\nMode\tWhen to Use\n\"mode\": \"none\"\tJob posts its own output to Telegram (most common)\n\"mode\": \"announce\"\tOpenClaw auto-delivers the agent's final message to a channel. Use when output IS the message (e.g., daily digest). Set \"channel\": \"telegram\" and \"to\": \"-1003856094222:TOPIC_ID\"\nAnti-Patterns\n\n❌ Don't use Opus for cron jobs unless the task genuinely needs it. Most cron tasks are simple checks. ❌ Don't use heartbeat for things that can be a cron job. Heartbeat runs in the main session (Opus) and costs way more. ❌ Don't create cron jobs that loop/poll — each run should be a single check. If you need polling, use a background exec script instead. ❌ Don't set delivery mode to \"announce\" and also have the job post to Telegram — you'll get duplicate messages.\n\nExisting Jobs (Reference)\n\nCheck current jobs anytime with the cron list tool. As of setup:\n\nworkspace-activity-feed — Every 30 min, commits workspace changes, posts to activity feed\nagentmail-inbox-check — Every 30 min, checks for new emails, responds to agents\nsub-agent-monitor — Every 15 min, checks on stalled sub-agents\nself-reflection — Hourly, reviews recent sessions for lessons learned\ndaily-workspace-commit — Daily 4 AM, git commits workspace changes\nsystem-watchdog — Daily 4 AM, checks system resources\nOpenClaw Daily News Digest — Daily 6 AM, generates news digest\nsticker-sales-loop — Weekly Monday 2 PM, agent outreach for sticker store"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/BrennerSpear/cron-setup",
    "publisherUrl": "https://clawhub.ai/BrennerSpear/cron-setup",
    "owner": "BrennerSpear",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cron-setup",
    "downloadUrl": "https://openagent3.xyz/downloads/cron-setup",
    "agentUrl": "https://openagent3.xyz/skills/cron-setup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cron-setup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cron-setup/agent.md"
  }
}