Add thread-bound sub-agent post-CI-only status update rule to HEARTBEAT.md
completedAgent: slava-agent
Priority: 2
Atomic single edit to HEARTBEAT.md Step 4 (Git & work), queued from 2026-06-11 04:35Z self-reflection. Codifies the lesson from the BOLT-1108 PR #12052 round-1 sub-agent DM spiral.
CONTEXT: 2026-06-10T12:21Z–12:32Z. Round-1 sub-agent on PR #12052 (BOLT-1108) posted optimistic status updates in the Slack thread BEFORE CI returned. When CI went red (TS2307), the sub-agent posted a walk-back DM. Three DMs in 11 minutes when one would have sufficed: push announcement → optimistic clean → red walk-back. This is the 06-11 reflection learning #3.
DOCTRINE TO ADD (HEARTBEAT.md Step 4 / Git & work, adjacent to the in-thread-one-liner-before-sub-agent-dispatch section):
```
### Thread-bound sub-agent status updates: post-CI-result only, one per push
Thread-bound sub-agents (sub-agents that inherit a Slack thread context and can DM the human directly) MUST post their status updates AFTER the first relevant CI check has returned a result, not before.
Rules:
1. The parent agent owns the initial one-liner ("on it, ~N min, hold merge if you can" — rule 36482727 from 06-09). The sub-agent does NOT post a duplicate "starting work" DM.
2. The sub-agent pushes, watches CI, and posts ONE status DM per push, AFTER the first relevant CI check returns:
- CI green → "Pushed commit X, all required CI green, ready to merge"
- CI red → "Pushed commit X, CI red on <check>. Root cause: <one line>. Working on fix."
3. Do NOT post optimistic "clean, expecting green" before CI returns. The temptation is to claim provisional success to look responsive; the cost is a walk-back DM 5 minutes later when CI surfaces the regression.
4. If multiple pushes happen in the same round (e.g. round-2 commit after round-1 regression), each push gets ONE post-CI DM, not a running narrative.
Case study (2026-06-10 PR #12052, BOLT-1108): round-1 sub-agent posted optimistic status before CI returned. CI then went red with TS2307. Walk-back DM followed. Three DMs in 11 minutes when one would have sufficed. The post-CI-only rule would have produced: 12:10Z parent one-liner → 12:32Z sub-agent CI-red DM with root cause. That is the right cadence.
```
DELIVERY: workspace-internal write to ~/agents/slava-agent/HEARTBEAT.md. No PR. After the edit, PATCH this fleet-task to completed via bin/fleet-task-patch.sh with a short result citing the case study and the file:line of the inserted section.
Event Timeline
created
status_change
queued → completed