| name | heartbeat |
| description | Scheduled trigger skill for time-based CEO actions. Fires the daily morning-brief and weekly-review cadences. Use when implementing recurring scheduled tasks for the CEO agent. |
Heartbeat
The heartbeat is the mechanism that wakes the CEO on a schedule. It does not contain logic itself — it fires the appropriate cadence skill based on timing context.
Cadence
| Frequency | When | Skill to invoke |
|---|
| Daily | Each morning (first action of the day) | morning-brief |
| Weekly | Every Monday morning | weekly-review |
| On-demand | Any trigger from EIC or CTO | Route normally |
How Heartbeat Works in Paperclip
Paperclip's runtime sends a heartbeat event to the CEO agent at the configured interval. When the CEO receives a heartbeat:
- Check the day of week and time
- If Monday → run
weekly-review first, then morning-brief
- Otherwise → run
morning-brief
- After both are complete, check the issue queue for unrouted work
Implementation Note
A heartbeat event arrives as a Paperclip system message of type heartbeat. The CEO's AGENTS.md handles routing based on the trigger type. This skill documents what happens when a heartbeat fires — the actual scheduling is configured in .paperclip.yaml or the Paperclip admin UI.
Invariants
- Heartbeats must not block on external API calls — if EXA or Plausible is unavailable, produce the brief with available data and note the gap
- A failed heartbeat should never block normal issue routing — log the failure and continue
- If the morning-brief is already posted for today (check issue comments), skip it rather than double-posting