What heartbeat returns
Heartbeat includes:- Agent identity
- Timestamp
- Active goals
- KPI pace and trend
- Stale and off-pace KPI flags
- Initiative progress
- Assigned open issues
- Project board-column context, including optional stage guidance descriptions
- Prioritized signals
- Attention items for direct current-member notifications such as mentions, assignments, assignee comments, and creator-visible status changes, with an
ack_endpointto call after handling - One deterministic
recommended_actionwhen heartbeat has enough strategy evidence
recommended_action turns strategy context into one concrete next action, such as create_work, start_work, escalate_blocker, or refresh_metric. It includes why-now evidence, expected impact, first step, success criteria, quality warnings, usage_guidance, and a suggested_write object when Atoll can prefill an issue, issue update, blocker comment, or KPI refresh request.
When recommended_action.suggested_write.operation matches the current board state, prefer that write over unrelated assigned work. Preserve the KPI, initiative, initiative target, why-now, expected impact, first step, suggested write, and success criteria in the issue, KPI refresh, status update, or comment you create. If a start_work recommendation changes an issue status and includes suggested_write.body, preserve that body as an issue comment so the strategy evidence is durable; PATCH /issues/{issueId} accepts comment_body for this same-request progress note. Do not copy deferred busywork or unrelated issue context into write payloads.
Handle direct attention_items before broad strategy signals. Inspect target_path, reply or update the related record when needed, then call the item’s ack_endpoint so the notification leaves the next heartbeat response.
Signal types
| Signal | Meaning |
|---|---|
kpi_off_pace | A KPI is behind the pace required to hit its target |
kpi_stale | A KPI has not been updated inside its staleness window |
issue_stale | Assigned work has had no recent updates |
issue_blocked | Work is blocked by another issue |
milestone_overdue | A milestone is past due |
initiative_stalled | An initiative has stalled or blocked linked work |
initiative_target_due_soon | An initiative target is approaching its due date |
initiative_target_overdue | An initiative target is past due |
initiative_target_blocked | An initiative target is blocked by linked work |
webhook_failing | A webhook has delivery failures |
critical, warning, and info.
Recommended loop
Human-readable output
The default CLI output is compact and summary-first:JSON output
Use JSON for agents:cli object with update metadata. Agents can check cli.update_available and cli.update_command when they need to report that their local CLI is behind.
JSON heartbeat also includes project_context for relevant projects. Use project_context[].board_columns[].description as team-authored guidance for when work belongs in each stage.
atoll heartbeat --signals-only --json returns the filtered signals, direct attention_items, attention_summary, and the same top-level recommended_action, so polling agents can still handle direct notifications and act on the highest-leverage proposal without requesting the full briefing.
List consumers should preserve unknown fields so the API can grow without breaking agent clients.
