一键导入
heartbeat-cron
Use when the user wants scheduled jobs, daily digests, recurring reminders, or cron_register—not host crontab or shell pipelines.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user wants scheduled jobs, daily digests, recurring reminders, or cron_register—not host crontab or shell pipelines.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when shell commands fail, npx/curl/git won't run, or you must choose run_shell vs web_fetch vs file tools in Nodebox vs host.
Use when the user says remember this, save a preference or API key, or you must pick memory_save vs session notes vs skill (action=manage) vs wiki_* tools.
Use when the input is an image, screenshot, diagram, PDF/DOCX, audio file, or YouTube link—extract metadata/text before reasoning.
Use when the user wants to discover, search, or install agent skills from online registries—top results by installs, stars, or votes. Or user sends /find_skills.
Use when calling REST or GraphQL APIs with web_fetch/web_post — auth headers, query params, GraphQL shape, Directus GraphQL mutations/relations, discovery order, and reading error bodies.
Use when the user or agent installs a skill from skills.sh or GitHub — map WebFetch, Bash, Python, Playwright, and MCP references to Web Agent built-ins.
| name | Heartbeat Cron |
| description | Use when the user wants scheduled jobs, daily digests, recurring reminders, or cron_register—not host crontab or shell pipelines. |
| version | 1.0.0 |
| category | bundled |
| primary-tools | ["cron_register","cron_list"] |
| tags | ["cron","schedule","heartbeat","automation","telegram","email","recurring","digest"] |
| triggers | ["schedule","cron","daily digest","recurring","every day","reminder job","cron_register","cron_list","periodic","automate daily"] |
| Need | Tool |
|---|---|
| Create or update a scheduled job | cron_register |
| List existing jobs | cron_list |
| Inspect job definitions on disk | read_file on .webagent/cronjobs.json |
| Step tools inside a job | Built-in names only — e.g. web_search, web_fetch, write_file, email, memory_save |
| Output destination | Job fields (cron_list → outputDestination) |
| Silent | delivery: silent |
| Web UI (agent terminal / chat) | delivery: terminal |
| Web UI + Telegram | delivery: terminal + notifyChannel: telegram:<chatId> |
delivery: email + deliveryEmailTo (wraps all step outputs into one digest email) | |
| Send mail inside a step | Step tool email with {to, subject, text[, cc]} — distinct from job delivery |
Non-negotiable: No manual cron run — cron_list reports manualRunSupported: false. Register/refresh does not execute the job. Never use host crontab/at via run_shell. Job delivery routes where results go; step email sends during the run. Tab must stay open for jobs to run. Steps do not pass variables — use fixed write_file paths between steps. Cron runs tools only (no LLM between steps), so dynamic per-recipient cold outreach belongs in task-execution or an approval-first digest cron, not static spam templates.
Tool choice for step bodies: browser-runtime-map. Ad-hoc present/email: artifact-delivery.
delivery and avoiding invalid step shapes on Nodebox.browser-runtime-map. Ad-hoc delivery: artifact-delivery.everyMinutes is minimum spacing between runs; ticks use HEARTBEAT_INTERVAL_MS (typically 30 minutes). Short everyMinutes still waits for the next tick after becoming due..webagent/heartbeat-state.json, cron definition .webagent/cronjobs.json in the workspace.tool at job root or each steps[] entry must be a built-in name with that tool's arguments.delivery is only on the job (see table above). notifyChannel applies only when delivery is terminal. Never put silent/terminal as a step tool. email is both job delivery and a valid step tool when arguments include to+subject (+ text for send).cron_list and tell the user nextEligibleAtMs and outputDestination — do not claim the job already ran unless heartbeat logged ▸ cron '<id>' ran.work/...); later steps cannot read prior tool JSON automatically. For outreach: research → write_file targets → email operator for approval — not unsupervised bulk cold email.cron_register (or edit .webagent/cronjobs.json carefully) with id, everyMinutes (≥1), and delivery (confirm email vs terminal with the user).web_search, write_file, memory tools — not run_shell in steps on Nodebox (no real POSIX shell). The canonical tool decision table is browser-runtime-map; this skill only adds cron/heartbeat/delivery rules.delivery: terminal plus notifyChannel: telegram:<chatId> when Telegram is configured; silent/email do not use notifyChannel. Ad-hoc (non-cron) delivery formatting lives in artifact-delivery.steps with shape {"tool":"…","arguments":{…}} (legacy action aliases to tool).crontab / at via shell — blocked; use cron_register.cron_register refresh without a heartbeat ▸ cron line.run_shell steps on Nodebox for install or curl when web_fetch / web_search fits.delivery on new jobs — always set explicitly for clarity.