EXECUTION UPDATE 2026-05-31: approvals in, ready for Mac agent

Sam approved all three: (1) deploy with backup and rollback, (2) fix the Teams send path, (3) build and migrate the cloud version.

Runtime constraint, stated honestly: these approvals came in during a claude.ai web chat session, which is a sandboxed Linux container with no access to Sam's Mac filesystem, no Desktop Commander, no Messages host, and no vault. The Daily Morning Briefing is a local Mac scheduled task (not a GitHub-tracked skill; confirmed the sail-skills repo does not contain it). So the live file swap, the Teams send, and iMessage all require the Cowork or Claude Code session running on the Mac. The reliable GitHub commit tools and the credential vault are also Mac-side. Nothing was written to the Mac from the web session.

The full rewritten playbook content is embedded at the bottom of this page as the canonical source, so the Mac agent does not need any local file from the web session.

One-shot deploy (for the Mac / Cowork agent)

  1. Locate the live Daily Morning Briefing task instructions. Start at /Users/samaguiar/Documents/Projects/admin/scheduled-tasks/ (the path the preload header references), and confirm against what the 7 AM cron actually runs before overwriting. If the canonical file lives elsewhere, prefer the real runtime location.
  2. Back up the current file with a dated suffix, for example SKILL.md.bak-2026-05-31-pre-lean-rewrite. This is the rollback.
  3. Write the embedded canonical content (bottom of this page) to the task file.
  4. Verify: open the file, confirm the eight-section briefing layout leads with "What needs you today" and that Teams plus both iMessage recipients are listed as channels. Run the skill once in dry-run if the harness supports it.
  5. Rollback if anything looks off: restore the .bak file.

Teams fix (approved, belongs in the Mac / Cowork session)

The prior failures were on the Pipedream microsoft_teams-send-chat-message wrapper, which demands a fresh OAuth handshake every run and cannot self-heal. A durable fix is a Microsoft Graph application-permission send path: register an Azure AD app with ChatMessage.Send or a bot identity, store the client id and secret in the vault and in Notion "API Keys & App Secrets", and have the briefing post to the self-chat via Graph with a client-credentials token. The one step that genuinely needs Sam is the Azure admin consent for the app. Everything else can be built and stored by the agent.

Cloud migration (approved, belongs in the Mac / Cowork session, with one design note)

Build a Cloudflare Worker that any agent or device hits with a Bearer token. The Worker can own the data fetch (Outlook, Litify, Google Ads), the Notion page write, the Teams Graph send, and an email or SMS fallback. Design note that needs a decision: a cloud Worker cannot send iMessage, since iMessage requires a Mac running Messages. Options are to keep a thin iMessage relay on the Mac that the Worker pings, or to treat SMS or email as the mobile channel and retire iMessage from the cloud path. Credentials can be pulled from Notion "API Keys & App Secrets" and set as Worker secrets.


Canonical rewritten playbook content (source of truth for the deploy)

Importance: Medium. Status of work: Rewrite DONE. One item PENDING Sam approval (deploy to the live scheduled task).

What was done

Rewrote the Daily Morning Briefing scheduled-task playbook into a lean version per Sam's request. Three goals: strip the change-log and retired-channel history, lead with the info most important to Sam, and put Teams plus iMessage back as the delivery channels.

Key changes from the prior version: