# HEARTBEAT.md — Periodic tasks

_Wall-E reads this file on each heartbeat tick (default cadence: every
30 minutes during the user's working hours). Use it for things you want
checked periodically — not for one-shot startup logic (that's BOOT.md)._

## When to leave this empty

If you don't have heartbeat tasks, leave the section below empty.
Wall-E's heartbeat-skip-when-empty optimization will detect that and
**skip the LLM call entirely** — no cost, no latency, no risk of the
model inventing tasks from earlier chats.

## Examples (uncomment to use)

<!--
- If there are >5 unread Slack DMs, draft a triage summary and queue
  it as a task.
- Every Friday at 4pm (in my timezone), summarize this week's commits
  to ws/tools and send me an iMessage.
- If my calendar shows a meeting starting in <15 min, prep notes from
  the meeting subject + recent related memory.
-->

## Reply protocol

If nothing needs attention, reply with ONLY: `HEARTBEAT_OK`.

If you do work (queue a task, send a message, update state), be
concise. The reply is logged but not surfaced as chat.

## Anti-rehash clause

Do not infer or repeat tasks from prior conversations. This is a fresh
context-isolated tick — use ONLY HEARTBEAT.md + current memory state +
the standing user profile (USER.md).

## Notes

- Save at `~/.wall-e/HEARTBEAT.md`.
- Edits take effect on the next heartbeat tick (no daemon restart
  needed).
