ProductivityMCPv1.0.0By uristocrat

CEO To-Do — Daily

A connector-powered agent that runs the CEO To-Do loop against your real inboxes on a daily schedule. It sweeps your Gmail (through Claude's native Google Workspace connector) and Slack (through Claude's native Slack connector) READ-ONLY for commitments you're now on the hook for, clarifies and captures them into the same canonical single-source-of-truth markdown doc the CEO To-Do skill maintains, runs the state transitions (open→stale after 7 days, waiting-past-reply-by→flag, done→archive), never auto-closes a [user-added] item, and surfaces the day's P0/P1 shortlist. It is read-only and human-in-the-loop on everything outbound: it never sends email, never replies in Slack, and never takes any write action in either tool — the Gmail connector cannot send by design, which is the guardrail. Every mutating run on the doc is fail-closed on a bundled deterministic validator, snapshot-backed, append/archive-only, validated before and after the write, and ends with a postcondition report. v1 runs in Claude on the native connectors — there is no third-party MCP to install and nothing to self-host. The single-doc format is based on the system Brian Halligan (co-founder of HubSpot) shared publicly (https://x.com/bhalligan/status/2054689082857730097). For the manual, no-connector version, see the CEO To-Do skill.

productivitygtdgetting-things-doneceoexecutivegmailslackmcp

CEO To-Do — Daily (Gmail + Slack)

The automated version of the CEO To-Do skill. Once a day it sweeps your Gmail and Slack for commitments you’re now on the hook for, captures them into your one canonical markdown doc, runs the same state transitions the skill uses, and surfaces the day’s P0/P1 shortlist.

Read-only and human-in-the-loop

  • Gmail via Claude’s native Google Workspace connector — reads and searches only. It can draft but cannot send; that is the guardrail, by construction.
  • Slack via Claude’s official Slack connector — reads channels, mentions, and DMs only. Never posts, replies, or reacts.
  • Any outbound stays with you. The agent captures and surfaces; you act.

v1 runs in Claude on these native connectors — no third-party MCP to install, nothing to self-host.

The daily sweep

  1. Confirm both connectors are enabled and the bundled validator can execute (fail-closed if not).
  2. Read recent Gmail threads (default: since the last run / last 24h) for commitments, asks, decisions, and delegations.
  3. Read recent Slack mentions and DMs over the same window.
  4. Clarify and capture each real commitment into the canonical doc with an owner, a priority, and a stable ID.
  5. Dedup by commitment, not by text — the same ask often lands in both Gmail and Slack; capture it once.
  6. Run the transitions: open→stale (>7 days, prioritized only), waiting-past-reply-by→flag, done→archive. Never auto-close a [user-added] item.
  7. Print today’s P0/P1 shortlist and the flagged items.

The reliability guarantee

Every write to the doc is fail-closed on the bundled validator, snapshot-backed, append/archive-only, validated before and after the write, and ends with a postcondition report (items in/out, archived, IDs added/moved, validator PASS/FAIL). The invariants live in code, not in this prompt.

Credit

The single-doc format is based on the system Brian Halligan (co-founder of HubSpot) shared publicly (thread).

MCP dependencies

Gmail (Google Workspace connector)

Claude's native Google Workspace connector. Reads and searches Gmail read-only to find commitments — it can draft but cannot send, which is the built-in outbound guardrail. Enabled in Claude's connector settings; no third-party MCP to install.

Slack connector

Claude's official Slack connector. Reads channels, mentions, and DMs read-only to find commitments. The agent never posts, replies, or reacts. Enabled in Claude's connector settings.

Setup, step by step

1

Install Claude

Download the desktop app from claude.ai/download and sign in. The daily sweep runs in Claude on the native connectors — there is no third-party MCP to stand up.

2

Enable the Google Workspace (Gmail) connector

In Claude, open Settings → Connectors and enable the Google Workspace connector, then authorize your Google account. This connector reads and searches Gmail and can draft, but cannot send — that is the read-only guardrail, enforced by the connector rather than by the agent's instructions.

3

Enable the Slack connector

In the same Connectors settings, enable the Slack connector and authorize your workspace. The agent reads channels, mentions, and DMs read-only and never posts.

4

Add the agent instructions

Open a Project in Claude, open Project instructions, and paste in the full contents of this agent's file (linked on this page). This gives Claude the sweep procedure, the canonical-doc format, and the reliability procedure.

5

Schedule the daily sweep

Create a Claude scheduled task that runs once a day (e.g. 7am local) and invokes the agent — or just say run my daily to-do sweep each morning. The sweep reads Gmail and Slack read-only, captures new commitments into your canonical doc, runs the state transitions, and prints the day's P0/P1 shortlist. Every write to the doc is snapshot-backed and gated by the bundled validator.

Install the skill

Install

Connector-powered — enable two native connectors, no MCP to install

This agent runs inside Claude on its native Google Workspace and Slack connectors. There is no third-party MCP server to configure or self-host — you enable two connectors, paste the agent instructions, and schedule the daily sweep. The full step-by-step is in the Runbook below.

  1. 1

    Enable the Google Workspace (Gmail) connector

    In Claude, open Settings → Connectors, enable the Google Workspace connector, and authorize your Google account. It reads and searches Gmail and can draft but cannot send — that is the read-only guardrail, enforced by the connector.

  2. 2

    Enable the Slack connector

    In the same Connectors settings, enable the Slack connector and authorize your workspace. The agent reads channels, mentions, and DMs read-only and never posts.

  3. 3

    Paste in the agent instructions

    Open a Project in Claude, open Project instructions, and paste in the full contents of the agent file (button below).

  4. 4

    Schedule the daily sweep

    Create a Claude scheduled task that runs the agent once a day — or say run my daily to-do sweep each morning. Every write to your canonical doc is snapshot-backed and gated by the bundled validator.

View the agent instructions on GitHub
Troubleshooting
Symptom

The agent says a connector isn't available

Fix

Open Settings → Connectors in Claude and confirm both the Google Workspace and Slack connectors are enabled and authorized. The agent will not run a partial sweep that silently skips a source — it tells you which one is missing so you can enable it before re-running.

Symptom

OAuth sign-in loops or fails when authorizing Google or Slack

Fix

Sign in to the corresponding account in the same browser first (Google account for Gmail, your Slack workspace for Slack), then retry the connector authorization. Make sure you're authorizing the account/workspace that actually holds the mail and messages you want swept.

Symptom

The sweep comes back empty or pulls in way too much

Fix

Tell the agent the time window explicitly (e.g. 'sweep the last 24 hours' or 'since yesterday 5pm'). An empty sweep usually means the window had no new commitments; an over-broad one usually means the window was too wide. Anything the agent can't confidently classify is parked in the doc's ## NEEDS-REVIEW section rather than guessed.

Symptom

You want the agent to reply to an email or Slack message

Fix

It won't, by design — this agent is read-only and human-in-the-loop on everything outbound, and the Gmail connector cannot send anyway. It captures 'reply to X' as a next-action in your doc; you send the reply yourself.