CedarCopilot wants to merge 0 commits into staging from feat/chat-playbook-crm-scope-default
Live on prod, no production signal yet
Strict CloudWatch fallback found 1 prod failure log lines for [run-chat-agent-sdk] query() failed (Claude Code process aborted by user) in the last 24h while checking /playbooks/chat_agent.md, seedchatagentplaybookfile, chat_agent, cedar:crm-scope-default v1.
Strict CloudWatch fallback found 116 prod failure log lines for sync.provider_read_failed_served_snapshot (Requested entity was not found.) in the last 24h while checking /playbooks/chat_agent.md, failed, hubspot, chat_agent, apply-crm-scope-chat-playbook, up from 27 in the.
OTEL fallback found no prod spans matching find-crm-conversations (crmSynced filter) since deploy.
OTEL fallback found no prod spans matching find-crm-conversations (crmSynced filter) since deploy.
OTEL fallback found no prod spans matching chat agent deal-query response since deploy.
OTEL fallback found no prod spans matching apply-crm-scope-chat-playbook rollout job since deploy.
Libra has verdicts on 0 of 5 tracked behaviors on prod; 5 are still being checked. Libra has 1 low-confidence degraded verdict it is still confirming. Libra checks hourly for 3 days after each deploy.
When a rep asks the in-app chat agent for "my deals" / "my pipeline" / "a rundown across my deals", it currently includes every email-derived conversation Cedar tracks , because every customer-comms thread becomes a conversation. For reps who sync a CRM, the deals they actually own get buried among non-CRM conversations. (Surfaced by Vooma's Jesse Taylor: "when I ask chat for a rundown on all my deals, it's still including a bunch of things that either aren't mine, or aren't active.")
The crmSynced filter already exists on find-crm-conversations , this change just makes the agent default to it (transparently, overridably), rather than adding a hidden query mutation.
seed-playbook.ts , the seeded chat-playbook default (buildChatAgentPlaybookContent) now includes a generic Deal scope rule: when a CRM is synced, default deal queries to CRM-linked deals; widen only when the user asks for "all". Every newly-seeded user gets it automatically. Provider-agnostic (the default seeds all orgs, incl. non-CRM ones).account-setup-from-transcript skill , documents that CHAT_AGENT.md is auto-created (Phase 2C) but never personalized, and adds a lightweight Phase-5 step to personalize it from the rep's stated style/tone/behavior preferences, and to name the provider for single-CRM orgs.apply-crm-scope-chat-playbook.ts (+ runner) , one-off rollout that appended the provider-specific rule to the 18 existing reps across Vooma/Pirros (HubSpot) and Aspireiq/Listenlabs (Salesforce). Append-only, idempotent (marker-guarded), dry-run by default. Already applied , all 18 verified with correct provider per org.đŸ¤– Generated with Claude Code
This PR adds CRM-linked deal scoping to newly seeded chat-agent playbooks, documents setup-time personalization, and adds an organization-specific rollout script and runner.
The rollout should be corrected before merging because its explicit no-document path persists duplicate and potentially conflicting Deal scope instructions.
Seeding already writes the marker and generic scope section, but the rollout immediately appends a second provider-specific section for users whose playbook was initially absent; the remaining import-convention issue is non-blocking.
Files Needing Attention: apps/server/scripts/apply-crm-scope-chat-playbook.ts; apps/server/scripts/run-apply-crm-scope-chat-playbook.mjs
| Filename | Overview |
|---|---|
| apps/server/scripts/apply-crm-scope-chat-playbook.ts | Adds an append-only CRM-scope rollout, but its create path seeds and then duplicates the already-seeded scope block. |
| apps/server/scripts/run-apply-crm-scope-chat-playbook.mjs | Adds an esbuild-based runner consistent with sibling scripts, though its relative imports conflict with the repository import rule. |
| apps/server/src/services/playbook/seed-playbook.ts | Adds the generic Deal scope block to canonical newly seeded chat playbooks. |
| .claude/skills/account-setup-from-transcript/SKILL.md | Documents setup-time chat-playbook personalization while preserving the seeded Deal scope rule. |
Libra has not measured any production surfaces for this change yet.