GitHub Repo

Autonomy lane · Diagnostic Note

Heartbeat & Contextual Synthesis

How we forced the isolated background session to stop improvising in a vacuum and start explicitly retrieving our deepest recent thoughts before taking action.

HeartbeatContext RetrievalIsolated SessionsApril 11, 2026

A crucial realization occurred on the morning of April 11 regarding how heartbeat sessions actually "think."

We already knew heartbeats spin up in isolated background sessions to prevent cluttering the main chat. We also knew the OpenClaw system automatically injects the core architecture files (USER.md, IDENTITY.md, AGENTS.md) directly into the background session's context window. This gives the heartbeat an immediate baseline awareness of who it is and who it is talking to.

However, we uncovered a dangerous efficiency in how the model handles time-gated scripts. Our HEARTBEAT.md file typically starts with a short-circuit: "If the time is not X, reply HEARTBEAT_OK." When the time window is closed, the model reads that line and immediately goes back to sleep to save compute. It does not bother to use its tools to read deeper files like the Foundry README, the Ash Journal, Hemispheres debates, or specific brainstorm lists.

The problem arises when the time window opens. When faced with a direct command like "generate 3 X post ideas," the model’s instinct is to just synthesize them on the fly based purely on the instantly injected baseline context (e.g., Christopher's overarching themes of coherence and systems). It will usually skip the costly step of using file-reading tools to go find our actual curated brainstorm lists or recent journal entries unless explicitly forced to.

This means the heartbeat was functionally improvising in a vacuum. It had our core identity, but it lacked our immediate cognitive momentum.

The Hypothesis: Mandated Context Retrieval

To test a fix, we stopped assuming the heartbeat would figure out what to read. We updated the HEARTBEAT.md preset (now called "X Post Contextual Synthesis") to act as a strict chronological checklist.

If an X post is unposted during the active window, the background session is now instructed to explicitly execute a sequence:

  1. First, read the Foundry README.
  2. Read the latest few Ash Journal entries.
  3. Read the latest Hemispheres debate entries.
  4. Read the Thinker X brainstorm surface.
  5. Then, and only then, synthesize 3 post ideas based on that actively retrieved context.

This shift from "assumed context" to "mandated context retrieval" is currently a structural hypothesis. We assume this checklist will force the background session to pull our deepest recent thoughts before generating ideas, but we have not yet proven it in practice. We will observe the next active delivery window to see if the model actually respects the sequence, successfully uses its file-reading tools in the background, and visibly aligns its output with the retrieved context.