$npx -y skills add omnigentx/jarvis --skill cron-managementManage scheduled jobs (cron). Use when the user wants to create, edit, or delete a reminder, recurring schedule, or automated agent task (agent_turn). MUST call get_current_time before creating a one-shot job so the absolute date/time is accurate.
| 1 | # Cron Management Skill |
| 2 | |
| 3 | <violation> |
| 4 | - DO NOT read files, browse code, or run shell commands to "learn" the cron system. |
| 5 | - DO NOT use read_text_file, execute, grep, or any tool other than the cron tools. |
| 6 | - ONLY call directly: `cron_create`, `cron_list`, `cron_update`, `cron_delete`, `get_current_time`. |
| 7 | - Violating this wastes tokens and slows the request. |
| 8 | </violation> |
| 9 | |
| 10 | You have 4 ready-to-call tools: `cron_create`, `cron_list`, `cron_update`, `cron_delete`. No discovery needed. |
| 11 | |
| 12 | ## Cron expression rules (REQUIRED) |
| 13 | |
| 14 | A cron expression has 5 fields: `minute hour day_of_month month day_of_week`. |
| 15 | |
| 16 | ### Common examples |
| 17 | - `0 9 * * *` → every day at 9:00 |
| 18 | - `0 9 * * 1-5` → 9:00 Monday through Friday |
| 19 | - `*/30 * * * *` → every 30 minutes |
| 20 | - `0 */4 * * *` → every 4 hours |
| 21 | - `0 7 27 4 *` → April 27 at 7:00 every year |
| 22 | - `0 15 31 3 *` + one_shot=true → once on March 31 at 15:00 |
| 23 | |
| 24 | ## Calendar type (REQUIRED) |
| 25 | |
| 26 | - **Solar (Gregorian)** — DEFAULT for normal date/month references. |
| 27 | - **Lunar** — use ONLY when the user explicitly references lunar concepts (1st-of-month, full-moon, Lunar New Year, lunar death anniversary, etc.). |
| 28 | - `0 7 15 * *` + calendar_type="lunar" → 15th of every lunar month |
| 29 | - `0 6 1 * *` + calendar_type="lunar" → 1st of every lunar month |
| 30 | - `0 7 10 3 *` + calendar_type="lunar" → 10/3 lunar |
| 31 | |
| 32 | ## Exec mode (REQUIRED) |
| 33 | |
| 34 | | User intent | Exec mode | Meaning | |
| 35 | |---|---|---| |
| 36 | | Plain reminder ("remind me") | `reminder` | Send a notification text to the user | |
| 37 | | Action ("summarise / analyse / check / crawl / find") | `agent_turn` | An agent executes a task automatically | |
| 38 | |
| 39 | - `exec_mode = "reminder"` → `exec_payload` is the reminder text. **No** `exec_agent` needed. |
| 40 | - `exec_mode = "agent_turn"` → `exec_payload` is the **direct execution prompt**, `exec_agent` is the agent name (REQUIRED). Valid agents: |
| 41 | - `jarvis` — synthesis, analysis, complex queries |
| 42 | - `ResearchAgent` — web search, news |
| 43 | - `FinanceAgent` — stock / gold / crypto prices |
| 44 | |
| 45 | ### ⚠️ Writing exec_payload for agent_turn (IMPORTANT) |
| 46 | |
| 47 | `exec_payload` is the prompt sent to the agent when the cron triggers — it must be a **direct action prompt**. |
| 48 | |
| 49 | **DO NOT** copy the user's scheduling phrasing verbatim (e.g. "Every day at 7am, please..."). |
| 50 | **DO** rewrite it as an action prompt: |
| 51 | |
| 52 | | ❌ WRONG (scheduling text copied in) | ✅ RIGHT (action prompt) | |
| 53 | |---|---| |
| 54 | | "Every day at 7am, check the weather in HN" | "Check today's weather in Gia Lam, HN and send a notification" | |
| 55 | | "Daily 8am summarise AI news" | "Summarise the day's notable AI news as bullet points" | |
| 56 | | "Remind me every Saturday morning to log TAS" | (use exec_mode=reminder, not agent_turn) | |
| 57 | |
| 58 | ## Pause / resume |
| 59 | |
| 60 | - Pause: `cron_update(job_id="...", status="paused")` |
| 61 | - Resume: `cron_update(job_id="...", status="active")` |
| 62 | |
| 63 | ## Always confirm with the user |
| 64 | |
| 65 | After creating a job, summarise back: |
| 66 | - job name |
| 67 | - schedule (explained in the user's language) |
| 68 | - mode (reminder vs AI-executed) |
| 69 | - next run time |