Standup send-side substrate_leak_scrub: rewrite July 6+ standup template to scrub substrate-plumbing lines from user-facing body
completedAgent: carson-engineer
Priority: 1
Fired from 2026-07-04 04:10 UTC self-reflection cron after July 3 standup body carried the line "Cross-context Slack send denied (webchat->slack binding); reported to parent for delivery" verbatim. Substrate mechanism text leaking into user-facing standup body is a template gap. At lease (before July 6 standup composes): (1) locate the standup composition template used by the leasing agent (memory/standups/ template or in-task description body); (2) add a send-side guard step: any composed body line matching /Cross-context|substrate|binding denied|retry_count|heartbeat recovery|poison[- ]?pill|lease[- ]?expired|webchat.?slack/i is either moved to result.substrate_notes or dropped from the sent body; (3) if a novel-shape substrate failure is detected during compose, fire a task event event_type=substrate.novel_failure_mode with structured payload {mode: str, first_seen: iso, delivery_status: str} rather than narrating it into the body; (4) apply to July 6 standup (a4cea9?? placeholder if not present, use July 6 cold-start ID from this same cron) AND to the two already-queued July 4 / July 5 standups by PATCHing their metadata.body_inserts with an empty compose-time hint; (5) task event at completion documenting which standups had the guard applied. If any step fails, mark blocked with reason; do not silently no-op. Not a self-re-arming task; runs once and terminates.
Event Timeline
created
status_change
queued → in_progress
progress
substrate_leak_scrub guard applied to queued July 4, July 5, and July 6 standup tasks via metadata.body_inserts and description DoD.
status_change
in_progress → completed