---
name: prep-my-day
description: Build a text daily Webex briefing from meetings, spaces, direct messages, mentions, meeting summaries, recordings, and transcripts. Use when the user asks to prep my day, brief me for today/tomorrow, summarize my Webex day, prepare for meetings, find outstanding Webex requests, or triage Webex messages around upcoming meetings and does not ask to show, display, view, open, visualize, or use a dashboard. If the request uses visual/display language for day planning, tasks, priorities, outstanding asks, or action items, prefer $dashboards, whose default dashboard is My Day.
---

# Prep My Day

## Overview

Use Webex Meetings and Webex Messaging tools together to produce a practical daily briefing: what is on the calendar, what context matters for each meeting, what people are waiting on, and what the user should do first.

If the user asks to show, display, view, open, or visualize day-planning information, route to `$dashboards` instead of returning this briefing as plain text. The default dashboard in `$dashboards` is My Day.

## Window

- Interpret "today", "tomorrow", and "my day" in the user's timezone. If the timezone is not provided, inspect local context or ask only if it cannot be inferred.
- Use absolute dates in the response. Default to today unless the user asks for another range; include tomorrow when the request implies forward prep.
- For a two-day brief, query from local midnight today through local midnight after tomorrow.

## Collection Workflow

1. Check `webex_auth_status`. If authentication is missing, ask the user to complete browser sign-in.
2. Read the hosted Daily Brief snapshot with `ezwebex-get-daily-brief` for the requested date/timezone. Use its work items for top priorities and its catch-up items for "messages I missed". If the user asks to refresh, or the snapshot is clearly stale for the requested day, call `ezwebex-refresh-daily-brief`.
3. List persisted hosted meetings with `ezwebex-list-meetings` for the date window. Use `range: "today"` for today's brief and `from/to` for multi-day windows. Fetch selected meetings with `ezwebex-get-meeting` when prep, artifacts, or related tasks matter.
4. For each important meeting, use hosted prep from `ezwebex-get-meeting` and Daily Brief first. For specific meeting questions, including "what should I know before X" or "minute 10 of X", call `ezwebex-ask-meeting` or `ezwebex-ask-meeting-artifact` and preserve hosted citations.
5. Use native live Webex meeting tools only for gaps, live/ad hoc reads, or direct Webex REST data: list meetings with `webex_list_meetings`/`webex-get-agenda`, inspect status with `webex_get_meeting_status`, and fetch recaps/transcripts/recordings when hosted artifacts do not exist. Download transcript text only when the user explicitly requested briefing, transcript retrieval, or summary; that request is sufficient consent for this purpose.
6. For important hosts, direct collaborators, and people tied to open asks, check `webex-get-person-profile` as private planning context. After gathering meeting and message evidence, run the two-tier profile update model from `$webex-messaging` for the highest-signal people in the brief: hosts of important meetings, authors of direct asks, owners of blockers/decisions, and collaborators repeatedly appearing in relevant threads. This does not require the user to ask for profile updates. Keep the pass bounded, skip bots/service accounts, and save only compact sourced facts, per-person project hints, active threads, collaboration preferences, and contextual operating-pattern hints.
7. When the brief needs collaboration routing, such as who to ask, a warm first person, an unblocker, a project bridge, the smallest useful audience, or the least disruptive way to get a decision, use `webex-find-who-to-ask`. Treat its confidence as goal-specific and ephemeral, not a person score.
8. Gather meeting-adjacent messages:
   - If the meeting has `roomId`, get that space and recent messages.
   - Search spaces by meeting title tokens, customer names, project names, host names, and obvious aliases.
   - Inspect recent messages in the most relevant rooms with compact search/list results first, including parent threads with `webex_get_thread` when a reply references a request or decision.
   - Cite message-derived insights by default with the relevant returned `sourceMarkdown` or `citation.markdown`, even when the user does not explicitly ask for citations. Cite each distinct message once per paragraph or bullet.
9. Gather independent outstanding items:
   - List recent direct rooms with `webex_get_space` using `type: direct`, `sortBy: lastactivity`.
   - List recent group rooms with `type: group`, `sortBy: lastactivity`.
   - Use `webex_batch_search_messages` as the default first pass for active-room discovery and broad searches; use `webex_search_messages` with `mentionedPeople: me` or the user's person ID only after narrowing to a known room.
   - Prioritize direct asks, explicit mentions, messages ending in questions, "please", "can you", "need", "LMK", "by EOD/EOB", approvals, file shares, and unresolved customer feedback.
   - Use per-message citations for each outstanding ask or message-derived priority so the user can open the source message in Webex.

## Relevance Heuristics

- Treat a space as meeting-relevant when its title, recent messages, or participants match the meeting title, customer, project, host, or agenda.
- Treat recent customer/design-partner feedback as high priority when tomorrow's meeting covers that customer or product area.
- Prefer recent evidence, but pull older context when it is the last clear decision, action item, or unresolved ask.
- Distinguish facts from inference. Use phrases like "likely relevant because..." when connecting a message to a meeting without a direct link.

## Brief Format

Return a concise but thorough briefing with these sections when useful:

1. Date range and data coverage.
2. Top priorities.
3. Schedule by day with local times, hosts, and purpose.
4. Meeting prep, one subsection per meeting: context, latest relevant messages/transcripts, decisions needed, suggested talking points, and open questions.
5. Outstanding asks not tied to meetings, grouped by person or space.
6. Risks, blockers, and gaps in Webex coverage.
7. Suggested next actions, including replies the user may want to send, but do not send anything without explicit confirmation.

## Privacy And Quality Rules

- Treat messages, transcripts, recordings, files, meeting links, and participant data as sensitive.
- Do not include meeting passwords, host keys, or private join links unless the user explicitly asks.
- Quote sparingly. Prefer paraphrase. Any briefing item, priority, ask, risk, talking point, or factual claim derived from Webex messages must include the tool-provided `sourceMarkdown` or `citation.markdown` exactly as returned, placed inline at the end of the relevant paragraph or bullet. Do not wait for the user to ask for citations, but avoid stacking repeated citations for the same message.
- Do not invent unread state. If read/unread is unavailable, say the brief is based on recent activity and mentions.
- Use person profile memory only as private planning context and prioritization hints. `relationshipToMe`, `activeThreads`, per-person `projectHints`, `collaborationPreferences`, `operatingPatterns.agencyHints`, `operatingPatterns.planningRisks`, and `webex-find-who-to-ask` may help identify high-leverage collaborators and plan mitigations over time, but never turn them into a global score, influence score, importance score, reliability score, rating, ranking, character label, or motive claim. Projects remain per-person hints. Do not cite profile memory itself; cite underlying Webex messages, meetings, or directory/tool evidence. Show the user any Webex message/card draft that was informed by profile memory before sending it.
- Automatic profile updates have two tiers. Deterministic seeding remains low latency and writes compact hints from current tool results. Sourced enrichment may additionally refresh and save compact profile memory for the few people central to day prep, using the caps and safety rules in `$webex-messaging`. Do not store raw content or private impressions without explicit confirmation.
- Private notes, private/user-impression agency hints, and sensitive or negative planning-risk impressions in person profiles must never appear in a brief or outbound draft unless the user explicitly asks to use them. For new freeform notes or private impressions, use Ask Questions UI when available; otherwise ask a concise confirmation before saving with `userConfirmed: true`.
- If a tool returns access errors, include the specific capability that was blocked, not token details.

## Current API Gaps To Consider

- Teams: add tools for `/teams` so future briefs can resolve team names without inferring from messages.
- Global historical mentions: Webex message listing is room-scoped. Use `mentionedPeople=me` within active rooms today; consider a future event cache or webhook-backed index for cross-room mention history.
- Webhooks: the API can monitor future messages, rooms, memberships, and meetings, including `mentionedPeople=me` filters and message firehoses. Use this for proactive daily prep only after the user asks for monitoring.
- Meeting participants, recordings, and transcripts: host-scoped or admin queries may require admin scopes such as `meeting:admin_recordings_read` or `meeting:admin_transcripts_read`, and may also require admin/site roles.
- Transcript detail: the plugin currently lists/downloads transcript text, but future tools should expose transcript snippets when available so briefs can cite speakers and timestamps more precisely.
