CedarCopilot wants to merge 5 commits into staging from fix/orchestrator-parallel-dispatch
Live on prod, no production signal yet
Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.
Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.
Verification reached its 120s wall-clock budget before a tied verdict. Libra is keeping this intent verifying until the next check.
Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.
Libra has verdicts on 0 of 4 tracked behaviors on prod; 4 are still being checked. Libra checks hourly for 3 days after each deploy.
{drafter, strategist, inbound-email-notifier} depends on either of the other two's output. The AI SDK's tool executor already runs every tool call returned in one model turn concurrently (Promise.all), so this is a prompt change, not new infrastructure: crm-updater still runs first alone (it can trigger a stage transition), next-steps still runs last alone (it needs to see what drafter/strategist produced), and the three independent subagents now dispatch together as simultaneous tool calls in between. This is a fixed, hardcoded exception for exactly these three names, not a general "batch anything independent" heuristic the model has to judge on its own.New eval harness (apps/server/.claude/skills/playbook-instruction-eval/parallel-dispatch-eval.ts), run against claude-sonnet-5, 8 trials per variant, reconstructing the real prior prompt via anchor-based extraction (not retyped) so the baseline comparison is faithful:
| full 3-way batch | crm-updater/next-steps wrongly swept into a batch | |
|---|---|---|
| Baseline (current prod prompt) | 0/8 | 6/8 |
| This change | 8/8 | 0/8 |
Worth noting: the baseline already batches tool calls unpredictably 6/8 of the time (mostly next-steps + inbound-email-notifier together) , just never in a sanctioned or tested combination. This change replaces that unintentional behavior with a deliberate, validated one, not just a latency fix.
Also refreshed fixtures/on-event-orchestrator-instructions.md, which had drifted from the live orchestrator file (still referenced a retired run-post-event-executor tool call from before the drafter-dispatch refactor) and would have silently invalidated any eval run against it.
pnpm --filter @zero/server run types clean on the changed filestrategist/next-steps to the tail of each account's <trigger type="any"> playbook text, so the documents themselves describe this order (not required for correctness , this prompt change already overrides text order for these names , but requested so the docs stop describing a sequence that isn't what happens)š¤ Generated with Claude Code
https://claude.ai/code/session_01WDwXHeMTJKLmcSjj1msiuS
This PR changes the event orchestrator prompt so CRM updates complete first, drafter/strategist/notifier calls run concurrently, and next-steps runs afterward. It also adds a model-based evaluation and refreshed prompt fixture.
The PR is not safe to merge until concurrent drafting is arbitrated atomically and the explicit type-assertion rule violation is resolved.
The parallel batch can make the drafter and notifier pass the e
Libra has not measured any production surfaces for this change yet.