ワンクリックで
draft-follow-up
Draft a follow-up email or Slack message for a given person or thread, using the correct account. Never sends.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Draft a follow-up email or Slack message for a given person or thread, using the correct account. Never sends.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Pull the latest changes from the upstream openbrain-claude-starter repo, diff against this vault's infrastructure, and interactively apply each change with user approval.
Genericize vault improvements and open a PR against the upstream openbrain-claude-starter repo — strips personal data, diffs, and creates a GitHub PR automatically after PII review.
Discovery pass across Gmail, Google Calendar, Slack, and Fathom to find organizations not yet captured in + Atlas/Organizations/. Stages candidates in + Inbox/org-candidates/ for review. Mirrors /sync-people, but for organizations rather than people.
Produce today's daily briefing across all Google Calendars, Gmail accounts, Slack workspaces, and Asana. Writes to + Atlas/Daily/YYYY-MM-DD.md and surfaces anything that needs the user's attention today. Safe to re-run — refreshes the `## Morning brief` section in place.
Scan sent messages across configured Google and Slack accounts to derive a personalized writing-style profile (email vs Slack, by audience size), then update CLAUDE.md §6 in place. Run after initial bootstrap or anytime you want to refresh.
Triage + Inbox/ together with fresh items in Gmail and Slack across all accounts. Proposes classification per CLAUDE.md §4 and surfaces anything needing a reply.
| name | draft-follow-up |
| description | Draft a follow-up email or Slack message for a given person or thread, using the correct account. Never sends. |
$1: person name OR gmail thread id OR slack permalink.$2 (optional): intent hint — e.g. "nudge on roadmap", "thank them for the intro", "follow up on action items from last meeting".+ Atlas/People/<name>.md. Default channel = email if emails is populated, else Slack.google_* MCP; channel = email.google_* account slug. If the person is in relationship: [work], default to the work google_* MCP (see CLAUDE.md §12 for the configured work Google slug).slack: frontmatter.+ Atlas/Interactions/, the open commitments section from the person note, and the last email/Slack thread excerpt./learn-writing-style.)gmail_draft_email on the matching google_* MCP with mimeType: "multipart/alternative", body (plain-text mirror), and htmlBody (HTML body per CLAUDE.md §6). For in-thread replies, set threadId and inReplyTo. Report the returned draft id.slack_drafts_create on the matching mcp__slack_<workspace>__ MCP with channel_id (+ optional thread_ts for thread replies). Only one draft per channel is allowed — if one already exists, call slack_drafts_edit instead. Report the returned draft.id (format Dr0B...).
channel_id must be an IM channel id (D...), not a user id. Look up an existing IM via slack_channels_list types=im (match against the user id from slack_users_search). Opening a new DM via slack_conversations_open currently fails with missing_scope on the OpenBrain Slack OAuth grant — if no existing IM channel is found, fall back to outputting the draft text inline only and note that it wasn't stored server-side.$1 resolved to a person note, append a bullet under its ## Threads section so /what-am-i-missing and future lookups can see the pending draft:
- <YYYY-MM-DD> · drafted follow-up (<channel>:<draft-id>) — <intent or one-line gist>
Do not update last_contact — a draft is not a touchpoint.chat:write scope is missing for a Slack workspace, fall back to outputting the draft text inline only, with a note that it wasn't stored server-side.