Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

docs(cedar-configuration): document the scheduled-task/cross-cutting-rule gap

merged#2811CedarCopilot

CedarCopilot wants to merge 0 commits into staging from docs/scheduled-task-crosscutting-gap

Live on prod, no production signal yetTimeline and evidence
  1. Opened
    Sep 17, 2026, 2:58 PM
  2. Merged
    Sep 17, 2026, 8:41 PM
  3. Live on prod
    Sep 17, 2026, 8:41 PM
  4. Observed 1 hour
    Sep 17, 2026, 8:41 PM
  5. Unobserved

    Live on prod, no production signal yet

    Sep 17, 2026, 8:41 PM
  6. Pipelines steady after this deploy
    Sep 17, 2026, 8:41 PM

Libra has no production signal for this change on prod yet. Libra checks hourly for 3 days after each deploy.

Summary

  • A scheduled task's dueDate fire runs the generic on-event orchestrator, not the subagent document that created it , the only continuity is whatever text is in notes. Nothing in cedar-configuration said this, so it read as if the creating subagent's own context/behavior carried forward.
  • That scheduled-task run is still gated by the owning playbook's full <cross-cutting> block, exactly like an inbound email would be. A common IGNORE-rule pattern ("cold outbound, handled by the sequencer elsewhere") will catch a sequencer's own scheduled steps unless an explicit exception is added next to it.
  • A self-scheduling agent has two structurally different dispatch paths (its entry-point trigger, and each of its own scheduled tasks firing later) , testing one proves nothing about the other, and building-an-agent's verification checklist didn't call that out.

Why

Traced directly to a live incident: Jacob's (Aspire) zeke-the-sequencer scheduled 12 outreach steps as agentExecutionEnabled: true tasks with the full email copy in notes. Its own document claimed "the notification is handled by the task reminder system" , there is no such system. Every scheduled step silently self-skipped for a week: the generic executor independently re-checked the cross-cutting rules, read the cold-outbound IGNORE rule, and concluded (wrongly) that this was a fresh cold-outbound decision rather than the sequencer's own step , while the execution log still reported success. Fixed live by adding an explicit marker to the task notes and a matching cross-cutting exception; this PR adds the missing knowledge so the next agent authoring a similar pattern gets it right the first time instead of needing Sherlock to find it a week later.

Changes

  • surfaces-and-delivery.md , clarifies what "the agent executes at dueDate" actually means and what it does/doesn't carry forward.
  • choosing-a-trigger.md , IGNORE-rules section now covers self-scheduled tasks, not just inbound events.
  • building-an-agent.md , verification checklist now calls out testing each dispatch path of a self-scheduling agent separately.

Docs only , no code changes, no runtime behavior change.

Test plan

  • Diff scoped to the 3 doc files only (git diff --stat)
  • N/A , documentation change, no tests to run

šŸ¤– Generated with Claude Code

RetriggerConfidence Score: 4/5

The documentation is safe to merge, with a non-blocking gap in the new verification checklist because it does not explain how to exercise the scheduled due-date dispatch path.

Findings

  1. P2Ā Scheduled path lacks procedure ā–¶
Fix with agent prompt
### Issue 1
apps/server/.claude/skills/cedar-configuration/building-an-agent.md:119
The checklist says to test-run every dispatch shape, but the documented test-run interfaces do not fire an existing task through the due-date generic executor. An author could therefore rerun the creating subagent and believe both paths were covered while leaving the cross-cutting-rule failure described here untested. Please document the real due-date test procedure or explicitly require authors to report that this path could not be exercised.

Note: If this suggestion doesn't mat
Show production surfaces and changed-file mapping

Production surfaces

Libra has not measured any production surfaces for this change yet.

Changed files → surfaces

  • apps/server/.claude/skills/cedar-configuration/building-an-agent.mdno production surface mapped
  • apps/server/.claude/skills/cedar-configuration/choosing-a-trigger.mdno production surface mapped
  • apps/server/.claude/skills/cedar-configuration/surfaces-and-delivery.mdno production surface mapped