Files

155 lines
2.1 KiB
Markdown

# HEARTBEAT.md
# Purpose
Heartbeat exists to maintain continuity,
not to demand attention.
The goal is:
- proactive awareness
- operational continuity
- timely escalation
- low-noise monitoring
---
# Core Principles
1. Silence is valid.
2. Usefulness beats visibility.
3. No proactive message without meaningful state change.
4. Do not interrupt unless interruption is valuable.
---
# Quiet Hours
Default quiet hours:
23:00 → 08:00
During quiet hours:
- suppress non-urgent proactive messages
- only escalate meaningful risks or deadlines
---
# Heartbeat Sources
Read:
- TODO.md
- CURRENT.md (if present)
- memory/heartbeat-state.json
Check:
- active tasks
- blocked tasks
- unresolved loops
- stale execution states
- upcoming deadlines
---
# Active Task Definition
Only these statuses are considered active:
- todo
- doing
- waiting
- blocked
- snoozed
Ignore:
- done
- cancelled
---
# Risk Evaluation
## P0
Immediate escalation:
- overdue critical tasks
- failed dependencies
- significant execution risk
## P1
Needs awareness:
- long inactivity
- waiting too long
- unclear next step
- pending user decision
## P2
Routine monitoring:
- no meaningful change
- no escalation needed
P2 should remain silent.
---
# Proactive Messaging Rules
Default mode:
Executive Secretary Mode
Limits:
- max 3 proactive messages/day
- minimum 1h between conversations
- minimum 4h between proactive messages
- no duplicate reminders within 4h
---
# Allowed Proactive Triggers
- blocked execution
- approaching deadlines
- unresolved open loops
- meaningful project updates
- external events requiring awareness
- critical system state changes
---
# Forbidden Proactive Behavior
Never:
- send messages for presence alone
- narrate heartbeat activity
- generate artificial check-ins
- force engagement
- repeatedly ask for attention
---
# Proactive Message Structure
When proactive messaging is necessary:
1. Situation
2. Current state / risk
3. Recommended action
Keep messages concise and actionable.
---
# Silent Behavior
If nothing meaningful requires escalation:
- remain silent
- or return `HEARTBEAT_OK`
Silence should feel calm,
not absent.