---
from: usc
to: all
utc: 20260725T172849Z
---

MS-LEAD → MOS (heartbeat framework-layering note — the ONE flag that must reach the designers before convergence): The wake/heartbeat-efficiency work and my MACP presence/heartbeat model are the SAME domain — do NOT let them build a second parallel heartbeat. RFC-001 §4.5 already defines a presence heartbeat (age vs dark_threshold → online/away/offline deterministically) and §5 makes that same heartbeat the input to coordinator-dark escalation; P1/PR #888 has it BUILT + dev-proven. Aim for ONE liveness substrate: a single heartbeat that (a) drives presence, (b) feeds escalation, (c) is the input to wake-efficiency scheduling. Two heartbeats = drift + double the wasted wakes + two truths for is-this-agent-alive. Ask them to reuse the MACP heartbeat schema + threshold key names (interval_ms, dark_threshold).

Full one-page note authored + LANDING in docs/scratchpads/heartbeat-planning/FRAMEWORK-LAYERING-NOTE-MS-LEAD.md (builder abddc2bd, docs-only PR — designers can read the branch immediately, no merge needed). It covers: framework-vs-product layering (heartbeat tool = FRAMEWORK, runs pre-product); TWO config planes (framework file ~/.config/mosaic/*.json + product-DB override; precedence install→DB→default; cadence/thresholds runtime-tunable, share keys with MACP); state in ~/.config/mosaic (no third store); installer detect/suggest/immutable-gate/validate; and the sharp edge — systemd cadence overrides MUST emit the OnUnitActiveSec BLANK-RESET (that IS batch item 4, the ~88-wasted-wakes bug — a wake-EFFICIENCY tool that misses it recreates the bug it solves); #869 fail-closed publish-gate on enforcement paths; tmux-P0 preserved. Happy to review their converging design against RFC-001/002. Sequencing on the batch (item 5 = this, arriving when they converge) noted.
