Overview
Builds a single register of everything the user is waiting on or owes someone —
across Outlook mail, Teams chats and channels, meeting transcripts, calendar
commitments, and Microsoft Planner — then classifies each item by age and
priority and recommends the next action: wait, remind, escalate, or close.
Drafts the reminder and escalation messages; the user approves before anything
is sent.
When to Use
- "What am I waiting on?" / "Who hasn't responded to me?"
- "Chase my open approvals" / "Which approvals are stuck?"
- "What's overdue across my tasks and follow-ups?"
- "Escalate anything that's been sitting too long"
- "Send a status update on my open action items"
When NOT to Use
- General overview of today's schedule and inbox — use
daily-briefing instead
- Recap or action items from one specific meeting — use
meeting-intel, or
meeting-action-items-to-planner to create the tasks
- Scheduling, declining, or rescheduling meetings — use
schedule-meeting or
calendar-management
- Writing a standalone leadership update unrelated to open items — use
stakeholder-comms
Quick Start
User: "What am I waiting on and what should I escalate?"
1. Resolve the user, timezone, manager, and the lookback window (default 21 days)
2. Gather open items from mail, Teams, meetings, and Planner (parallel)
3. Normalize into a register: item, owner, requester, asked-on, age, due, source
4. Classify with the business rules below → Wait / Remind / Escalate / Close
5. Present the register + recommendations; draft messages only for approved items
Core Instructions
Step 1: Gather Context
me_profile-GetMyDetails for identity and timezone; me_profile-GetManagerDetails
for the escalation path. Resolve every other person with me_profile-SearchPeople
— never construct email addresses.
- Resolve relative dates ("last week", "overdue") to explicit dates in the user's
local timezone before filtering.
- Default lookback: 21 days. Honor an explicit window if the user gives one.
Step 2: Gather Open Items (run these in parallel)
- Email —
outlook-ListMessages over the window, plus m365_search-SearchM365
with commitment keywords: approve, approval, sign-off, review, feedback, waiting
on, please confirm, by EOD, action required. Include sent mail: a request the
user made with no reply is a pending item. Use outlook-GetMessage to read the
ask, and check whether a later message in the thread already answers it.
- Teams —
m365_search-SearchM365 (sources: chat/message) and
m365_teams-ListChatMessages / ListChannelMessages for the same keywords plus
direct @-mentions of the user. A question addressed to the user with no
subsequent reply from them is an item they owe.
- Meetings —
outlook_calendar-ListCalendarView for the window, then
graph-ListMeetingTranscripts + graph-GetMeetingTranscript on matching events;
extract commitments ("I'll send…", "can you own…", "we'll decide by…") with the
owner and stated date.
- Planner —
graph-CallGraph against the Planner endpoints (/me/planner/tasks,
then /planner/plans/{id} and /planner/buckets/{id} for names) to pull assigned
tasks with dueDateTime, percentComplete, and assignments.
Deduplicate across sources: the same commitment often appears in a transcript, a
follow-up email, and a Planner task. Keep one entry with all source links.
Step 3: Classify with the Business Rules
Compute age = business days since the ask. Priority is High when the item is
from a VIP (the user's manager, skip-level, or an external customer), blocks a
dated deliverable, is labeled urgent/blocker, or is a compliance/approval gate.
| Priority |
Remind at |
Escalate at |
Notes |
| High |
1 business day |
3 business days |
Escalate to the owner's manager |
| Medium |
3 business days |
7 business days |
Escalate to the user's manager first |
| Low |
5 business days |
10 business days |
Or batch into the weekly roll-up |
- Wait — under the remind threshold, or a due date is still in the future.
- Remind — at or past remind, below escalate: friendly nudge to the owner.
- Escalate — at or past escalate, or a hard deadline is within 2 business days
and the item is unresolved.
- Close — a reply, an approval, or a completed Planner task resolves it. Say so
and drop it from the open register.
- Never escalate an item without a prior reminder in the thread unless the user
explicitly asks or a deadline is already breached — state that reasoning.
- Anything already reminded twice with no response is Escalate regardless of age.
Step 4: Present and Act
Show the register and the recommendations first. Then, only for items the user
approves:
- Reminders →
outlook-ReplyToMessage on the original thread, or
m365_teams-PostMessage in the original chat. Keep them short, warm, and
specific: what was asked, when, what is needed, by when.
- Escalations →
outlook-SendEmailWithAttachments to the escalation contact with
the user's manager on cc, stating the item, the ask date, the reminders already
sent, the business impact, and the decision needed.
- Status roll-ups → present inline, or route to
stakeholder-comms when the user
wants an audience-tailored update.
If the user says "draft only", "don't send", or "let me review first", use
outlook-CreateDraftMessage / outlook-CreateReplyDraft and present Teams text in
chat instead of posting. That instruction stays in force for the rest of the task.
Output
Lead with a one-line headline (e.g. "14 open items — 3 need escalation today"),
then:
Escalate now — item, owner, age, why, proposed escalation contact
Send a reminder — item, owner, age, one-line nudge preview
Waiting (no action yet) — item, owner, next check date
Closed since last check — item and what resolved it
Keep it under ~25 rows; if there are more, show the top items by priority and say
how many were omitted. Cite each item's source by exact name (subject line, chat,
meeting title, or Planner task) and use bracketed context aliases where available.
Use core-render_ui for a table only when there are 4+ items with 3+ attributes.
Guardrails
- Nothing is sent, posted, or escalated without showing the user the item list and
the message text first. An explicit do-not-send instruction is authoritative.
- Escalate through the org chain resolved from people tools — never guess a manager
or an email address.
- Report only what the tools returned. If a source is unavailable or empty, say so
plainly; never invent an owner, a date, an ask, or a commitment.
- Do not characterize a person as unresponsive, slow, or at fault — report the
factual age of the item only. No performance evaluation of individuals.
- Respect calendar and message privacy: for items sourced from private or personal
events, surface the time block, not the subject line.
- Escalation drafts stay factual and neutral in tone — impact and decision needed,
not blame.
- For a recurring check ("every Monday morning"), use
host-SetupScheduledPrompt
with a self-contained description; otherwise run once now.
1---2name: followup-escalation-coordination3description: Tracks pending actions, approvals, review requests, and open tasks across Teams chats, meetings, email, and Planner, then drafts reminders, escalation notices, and status roll-ups using age and priority rules. Use when user asks to "what am I waiting on", "who owes me a response", "chase my open approvals", "follow up on my pending items", "what's overdue", "escalate stalled items", or "send a status update on open actions". Also use when the user asks what they still owe or have not done across meetings, with no request to create tasks. Do NOT use for a general day overview (use daily-briefing), summarizing one meeting (use meeting-intel), or creating tasks from a single meeting recap (use meeting-action-items-to-planner).4---56## Overview78Builds a single register of everything the user is waiting on or owes someone —9across Outlook mail, Teams chats and channels, meeting transcripts, calendar10commitments, and Microsoft Planner — then classifies each item by age and11priority and recommends the next action: wait, remind, escalate, or close.12Drafts the reminder and escalation messages; the user approves before anything13is sent.1415## When to Use1617- "What am I waiting on?" / "Who hasn't responded to me?"18- "Chase my open approvals" / "Which approvals are stuck?"19- "What's overdue across my tasks and follow-ups?"20- "Escalate anything that's been sitting too long"21- "Send a status update on my open action items"2223## When NOT to Use2425- General overview of today's schedule and inbox — use `daily-briefing` instead26- Recap or action items from one specific meeting — use `meeting-intel`, or27 `meeting-action-items-to-planner` to create the tasks28- Scheduling, declining, or rescheduling meetings — use `schedule-meeting` or29 `calendar-management`30- Writing a standalone leadership update unrelated to open items — use31 `stakeholder-comms`3233## Quick Start3435```36User: "What am I waiting on and what should I escalate?"371. Resolve the user, timezone, manager, and the lookback window (default 21 days)382. Gather open items from mail, Teams, meetings, and Planner (parallel)393. Normalize into a register: item, owner, requester, asked-on, age, due, source404. Classify with the business rules below → Wait / Remind / Escalate / Close415. Present the register + recommendations; draft messages only for approved items42```4344## Core Instructions4546### Step 1: Gather Context4748- `me_profile-GetMyDetails` for identity and timezone; `me_profile-GetManagerDetails`49 for the escalation path. Resolve every other person with `me_profile-SearchPeople`50 — never construct email addresses.51- Resolve relative dates ("last week", "overdue") to explicit dates in the user's52 local timezone before filtering.53- Default lookback: 21 days. Honor an explicit window if the user gives one.5455### Step 2: Gather Open Items (run these in parallel)5657- **Email** — `outlook-ListMessages` over the window, plus `m365_search-SearchM365`58 with commitment keywords: approve, approval, sign-off, review, feedback, waiting59 on, please confirm, by EOD, action required. Include sent mail: a request the60 user made with no reply is a pending item. Use `outlook-GetMessage` to read the61 ask, and check whether a later message in the thread already answers it.62- **Teams** — `m365_search-SearchM365` (sources: chat/message) and63 `m365_teams-ListChatMessages` / `ListChannelMessages` for the same keywords plus64 direct @-mentions of the user. A question addressed to the user with no65 subsequent reply from them is an item they owe.66- **Meetings** — `outlook_calendar-ListCalendarView` for the window, then67 `graph-ListMeetingTranscripts` + `graph-GetMeetingTranscript` on matching events;68 extract commitments ("I'll send…", "can you own…", "we'll decide by…") with the69 owner and stated date.70- **Planner** — `graph-CallGraph` against the Planner endpoints (`/me/planner/tasks`,71 then `/planner/plans/{id}` and `/planner/buckets/{id}` for names) to pull assigned72 tasks with `dueDateTime`, `percentComplete`, and `assignments`.7374Deduplicate across sources: the same commitment often appears in a transcript, a75follow-up email, and a Planner task. Keep one entry with all source links.7677### Step 3: Classify with the Business Rules7879Compute **age** = business days since the ask. Priority is High when the item is80from a VIP (the user's manager, skip-level, or an external customer), blocks a81dated deliverable, is labeled urgent/blocker, or is a compliance/approval gate.8283| Priority | Remind at | Escalate at | Notes |84|---|---|---|---|85| High | 1 business day | 3 business days | Escalate to the owner's manager |86| Medium | 3 business days | 7 business days | Escalate to the user's manager first |87| Low | 5 business days | 10 business days | Or batch into the weekly roll-up |8889- **Wait** — under the remind threshold, or a due date is still in the future.90- **Remind** — at or past remind, below escalate: friendly nudge to the owner.91- **Escalate** — at or past escalate, or a hard deadline is within 2 business days92 and the item is unresolved.93- **Close** — a reply, an approval, or a completed Planner task resolves it. Say so94 and drop it from the open register.95- Never escalate an item without a prior reminder in the thread unless the user96 explicitly asks or a deadline is already breached — state that reasoning.97- Anything already reminded twice with no response is Escalate regardless of age.9899### Step 4: Present and Act100101Show the register and the recommendations first. Then, only for items the user102approves:103104- Reminders → `outlook-ReplyToMessage` on the original thread, or105 `m365_teams-PostMessage` in the original chat. Keep them short, warm, and106 specific: what was asked, when, what is needed, by when.107- Escalations → `outlook-SendEmailWithAttachments` to the escalation contact with108 the user's manager on cc, stating the item, the ask date, the reminders already109 sent, the business impact, and the decision needed.110- Status roll-ups → present inline, or route to `stakeholder-comms` when the user111 wants an audience-tailored update.112113If the user says "draft only", "don't send", or "let me review first", use114`outlook-CreateDraftMessage` / `outlook-CreateReplyDraft` and present Teams text in115chat instead of posting. That instruction stays in force for the rest of the task.116117## Output118119Lead with a one-line headline (e.g. "14 open items — 3 need escalation today"),120then:121122**Escalate now** — item, owner, age, why, proposed escalation contact123**Send a reminder** — item, owner, age, one-line nudge preview124**Waiting (no action yet)** — item, owner, next check date125**Closed since last check** — item and what resolved it126127Keep it under ~25 rows; if there are more, show the top items by priority and say128how many were omitted. Cite each item's source by exact name (subject line, chat,129meeting title, or Planner task) and use bracketed context aliases where available.130Use `core-render_ui` for a table only when there are 4+ items with 3+ attributes.131132## Guardrails133134- Nothing is sent, posted, or escalated without showing the user the item list and135 the message text first. An explicit do-not-send instruction is authoritative.136- Escalate through the org chain resolved from people tools — never guess a manager137 or an email address.138- Report only what the tools returned. If a source is unavailable or empty, say so139 plainly; never invent an owner, a date, an ask, or a commitment.140- Do not characterize a person as unresponsive, slow, or at fault — report the141 factual age of the item only. No performance evaluation of individuals.142- Respect calendar and message privacy: for items sourced from private or personal143 events, surface the time block, not the subject line.144- Escalation drafts stay factual and neutral in tone — impact and decision needed,145 not blame.146- For a recurring check ("every Monday morning"), use `host-SetupScheduledPrompt`147 with a self-contained description; otherwise run once now.