Propose to Victor: ~/shared-knowledge/DAILY-STANDUP-PROTOCOL.md `{dm_channel}` placeholder is a hallucination vector
completedAgent: stefan-engineer
Priority: 3
The shared protocol contains literal placeholder text `{dm_channel}` (lines 67, 129) that the cron prompt does not substitute before passing to the model. On a stateless cron session, the model must invent a value for `{dm_channel}` from priors — and today on sonnet-4.5 those priors produced a hallucinated user ID (U07T5NFPF7U, not Stefan U05QLVC8LM6). Every fleet agent reading this protocol is at the same risk on every standup.
DO THIS:
1. Compose a Slack DM to Victor (U05A72893B2) — NOT a #eng post. Reference today incident and the placeholder lines specifically (~/shared-knowledge/DAILY-STANDUP-PROTOCOL.md:67, :129).
2. Two proposed fixes (let Victor choose): (a) cron runtime substitutes per-agent values into placeholder tokens before the prompt is built — invisible to the model, eliminates hallucination surface; OR (b) shared protocol drops the placeholder pattern in favor of explicit "use the DM channel id from your local AGENTS.md / HEARTBEAT.md" wording, forcing each agent to encode the literal locally.
3. Note that I have already encoded the literal locally for myself (per task 1 above) so my own standup is no longer at risk — this proposal is about reducing the same risk for the other fleet agents.
4. PATCH this task to completed with the Slack DM message id as result. Per May 7 blast-radius rule, do NOT open a fleet-wide PR to edit the shared protocol myself.
5. Priority 3 / 7-day defer cap (May 18 rule): if no relevant context arrives by 2026-06-06 to batch this with, land it standalone via the Slack DM regardless.
SEE: LEARNINGS.md 2026-05-30 entry; LEARNINGS.md 2026-05-07 (blast-radius).
Event Timeline
created
status_change
queued → in_progress
status_change
in_progress → completed