Heartbeat & Reminder Scheduler
Use this skill when the user wants to schedule recurring agent tasks, automated check-ins, or simple reminders.
1. Choosing the Right Mechanism
When the user asks to schedule something, choose the appropriate system:
HEARTBEAT.md (Workspace-Scoped, Permanent): Use this for structured, workspace-bound recurring agent prompts (e.g., weekly project summaries, morning inbox triage, or build-status checks). These are checked into Git, shared with other team members/agents in the workspace, and support global text guidelines.
- Database Reminders (Personal, Transient): Use this for personal, lightweight, or one-shot conversational reminders (e.g., "remind me to check X in 2 hours" or "remind me about Y tomorrow"). This is done purely through the
reminder_schedule tool, bypassing files and manual syncing.
2. Modifying the Heartbeat (HEARTBEAT.md)
When updating workspace-scoped heartbeat checks:
Step 1: Read the Existing Config
Open and inspect HEARTBEAT.md at the workspace root to check for existing cron checks.
- If the file does not exist, initialize it with a markdown title and the YAML front-matter fences.
Step 2: Formulate the Cron Check
Construct the cron check dictionary with the following schema keys:
name: Unique, lowercase, and strictly no whitespace (e.g., morning_pulse).
cron: A valid 5-field cron trigger string (validated at parse time).
prompt: The self-contained instruction/prompt for the agent when it fires.
Step 3: Write to File
- Write or update the check in the YAML front matter of
HEARTBEAT.md.
- Preserve all pre-existing checks.
- Optional: If the user provides general guidance on how checks should behave (e.g., "ignore emails from automated senders"), append it to the markdown body below the front matter so the agent reads it contextually when any check executes.
Step 4: Instruct the User to Sync
The agent does not have direct sync tool permissions. Once the file is updated, tell the user:
"I've successfully updated HEARTBEAT.md with your new schedule. Please click the Sync button in the Settings UI (or send a POST to /api/v1/heartbeat/sync) to activate the new schedules in the job database."
3. Scheduling Database Reminders
When the user wants simple reminders (one-shot or chat-only recurring tasks):
- Use
reminder_list to check if a similar schedule already exists.
- Invoke
reminder_schedule with a descriptive name, prompt, and either cron_expression or fire_at.
- Inform the user of success and print the registered Job UUID.
1---2name: heartbeat3description: Manage and schedule recurring workspace heartbeats and database-bound reminders.4---56# Heartbeat & Reminder Scheduler78Use this skill when the user wants to schedule recurring agent tasks, automated check-ins, or simple reminders.910## 1. Choosing the Right Mechanism1112When the user asks to schedule something, choose the appropriate system:1314* **`HEARTBEAT.md` (Workspace-Scoped, Permanent)**: Use this for structured, workspace-bound recurring agent prompts (e.g., weekly project summaries, morning inbox triage, or build-status checks). These are checked into Git, shared with other team members/agents in the workspace, and support global text guidelines.15* **Database Reminders (Personal, Transient)**: Use this for personal, lightweight, or one-shot conversational reminders (e.g., *"remind me to check X in 2 hours"* or *"remind me about Y tomorrow"*). This is done purely through the `reminder_schedule` tool, bypassing files and manual syncing.1617---1819## 2. Modifying the Heartbeat (`HEARTBEAT.md`)2021When updating workspace-scoped heartbeat checks:2223### Step 1: Read the Existing Config24Open and inspect `HEARTBEAT.md` at the workspace root to check for existing cron checks.25* If the file does not exist, initialize it with a markdown title and the YAML front-matter fences.2627### Step 2: Formulate the Cron Check28Construct the cron check dictionary with the following schema keys:29* `name`: Unique, lowercase, and **strictly no whitespace** (e.g., `morning_pulse`).30* `cron`: A valid 5-field cron trigger string (validated at parse time).31* `prompt`: The self-contained instruction/prompt for the agent when it fires.3233### Step 3: Write to File34* Write or update the check in the YAML front matter of `HEARTBEAT.md`.35* Preserve all pre-existing checks.36* Optional: If the user provides general guidance on *how* checks should behave (e.g., *"ignore emails from automated senders"*), append it to the markdown body below the front matter so the agent reads it contextually when any check executes.3738### Step 4: Instruct the User to Sync39The agent does not have direct sync tool permissions. Once the file is updated, tell the user:40> "I've successfully updated `HEARTBEAT.md` with your new schedule. Please click the **Sync** button in the Settings UI (or send a POST to `/api/v1/heartbeat/sync`) to activate the new schedules in the job database."4142---4344## 3. Scheduling Database Reminders4546When the user wants simple reminders (one-shot or chat-only recurring tasks):471. Use `reminder_list` to check if a similar schedule already exists.482. Invoke `reminder_schedule` with a descriptive name, prompt, and either `cron_expression` or `fire_at`.493. Inform the user of success and print the registered Job UUID.