|
| 1 | +--- |
| 2 | +name: daily-prep |
| 3 | +description: 'Prepare for tomorrow''s meetings and tasks. Pulls calendar from Outlook via WorkIQ, cross-references open tasks and workspace context, classifies meetings, detects conflicts and day-fit issues, finds learning and deep-work slots, and generates a structured HTML prep file with productivity recommendations.' |
| 4 | +--- |
| 5 | + |
| 6 | +# Daily Prep |
| 7 | + |
| 8 | +Generate a structured prep file for the next working day with meeting details, prep bullets, linked tasks, and productivity recommendations. |
| 9 | + |
| 10 | +## When to Use |
| 11 | + |
| 12 | +- End of day: "prepare me for tomorrow" |
| 13 | +- Any time: "prep me for Friday" or "what does March 25 look like?" |
| 14 | +- Weekly planning: run for multiple days |
| 15 | + |
| 16 | +## Procedure |
| 17 | + |
| 18 | +### 1. Determine Target Date |
| 19 | + |
| 20 | +If the user specifies a date, use it. Otherwise, default to tomorrow (current date + 1 day). |
| 21 | +If tomorrow is Saturday, default to Monday. If Sunday, default to Monday. |
| 22 | +Compute the output path: `outputs/YYYY/MM/YYYY-MM-DD-prep.html` |
| 23 | + |
| 24 | +### 2. Pull Calendar via WorkIQ |
| 25 | + |
| 26 | +Use the WorkIQ MCP tool to fetch the calendar. Ask WorkIQ: |
| 27 | + |
| 28 | +> "What meetings do I have on {target date}? For each meeting, include: subject, start time, end time, organizer, all attendees with their email addresses, location, whether it's online, and whether I've accepted or declined." |
| 29 | +
|
| 30 | +If the response is insufficient, make a follow-up query: |
| 31 | + |
| 32 | +> "For the meetings on {target date}, which ones are marked as optional or tentative? Which ones are recurring?" |
| 33 | +
|
| 34 | +### 3. Classify Each Meeting |
| 35 | + |
| 36 | +Apply these labels based on attendee domains and subject: |
| 37 | + |
| 38 | +| Label | Criteria | |
| 39 | +|-------|----------| |
| 40 | +| `[Customer · HIGH]` | External attendees from customer/partner domains, or subject matches a known customer name | |
| 41 | +| `[Internal]` | Only internal company domain attendees | |
| 42 | +| `[Community]` | CoP, community, guild, learning sessions | |
| 43 | +| `[Upskilling]` | Training, workshop, certification, learning | |
| 44 | +| `[Optional · skip]` | Tentative, low importance, or known recurring optional (e.g., "Office Hours", "Open Q&A") | |
| 45 | +| `[Personal]` | Private events, non-work | |
| 46 | + |
| 47 | +#### Zone Markers |
| 48 | + |
| 49 | +For every meeting, check the organizer field and apply these additional markers: |
| 50 | + |
| 51 | +| Condition | Marker | Action | |
| 52 | +|-----------|--------|--------| |
| 53 | +| Starts ≥ 15:30 and < 16:00 (any organizer) | `⚠️ After-hours` | Recommend decline | |
| 54 | +| Starts ≥ 16:00 and **not** self-organized | `⚠️ After-hours` | Recommend decline | |
| 55 | +| Starts ≥ 16:00 and self-organized | _(no flag)_ | OK — you chose to schedule it | |
| 56 | +| Before 09:00 and **not** self-organized | `⚠️ Early` | Recommend decline — intrudes on learning window | |
| 57 | +| Before 09:00 and self-organized | _(no flag)_ | OK — you chose to schedule it | |
| 58 | +| Overlaps 12:00–13:00 | `🍽️ Lunch conflict` | Note in Calendar Notes | |
| 59 | + |
| 60 | +"Self-organized" means **you** are the meeting organizer (check the organizer field from WorkIQ). |
| 61 | + |
| 62 | +### 4. Ideal Day Structure |
| 63 | + |
| 64 | +Use this as the decision framework for all analysis steps. Every meeting must be evaluated against these zones. Users should adapt these times and targets to their personal routine. |
| 65 | + |
| 66 | +| Zone | Time | Purpose | Rules | |
| 67 | +|------|------|---------|-------| |
| 68 | +| Morning Focus | Before 09:00 | Admin, learning, personal work | Protect from others' meetings. Flag external events. | |
| 69 | +| Customer Zone | 09:00–12:00 | Customer / external meetings | Max 2 customer meetings. Prefer mornings for external calls. | |
| 70 | +| Lunch | 12:00–13:00 | Break | Protected. Flag any overlap. | |
| 71 | +| Deep Work | 13:00–15:30 | Deliverables, focused coding/writing | Minimize meetings. Flag non-essential meetings as deep work disruption. | |
| 72 | +| Protected (strict) | 15:30–16:00 | End of day wind-down | Flag all meetings regardless of organizer. | |
| 73 | +| Protected (flex) | 16:00+ | End of day | Flag others' meetings only. Self-organized OK. | |
| 74 | + |
| 75 | +**Targets per day:** |
| 76 | +- Learning hours: **1.5h** (from morning focus + gap time) |
| 77 | +- Deep work hours: **2.5h** (13:00–15:30 zone) |
| 78 | +- Customer meetings: **max 2** (preferably in 09:00–12:00) |
| 79 | + |
| 80 | +### 5. Detect Conflicts & Day Fit Issues |
| 81 | + |
| 82 | +Compare event time windows. Flag overlaps in a Conflicts table with a recommendation for each — prioritize customer meetings over internal/optional. |
| 83 | + |
| 84 | +Also detect these **day fit issues** (report in a separate "Day Fit Issues" table): |
| 85 | + |
| 86 | +| Check | Condition | Flag | |
| 87 | +|-------|-----------|------| |
| 88 | +| **Customer overload** | >2 `[Customer · HIGH]` meetings | Flag 3rd+ as "Consider rescheduling to another day" | |
| 89 | +| **Deep work disruption** | Non-essential meetings in 13:00–15:30 zone | "Disrupts deep work — consider moving to morning" | |
| 90 | +| **Non-ideal placement** | Customer meetings outside 09:00–12:00 | "Customer meeting outside preferred morning zone" | |
| 91 | +| **Early intrusion** | Others' meetings before 09:00 | "Intrudes on learning window — recommend decline" | |
| 92 | +| **Lunch conflict** | Meeting overlaps 12:00–13:00 | "Conflicts with lunch break" | |
| 93 | + |
| 94 | +### 6. Gather Context from Workspace |
| 95 | + |
| 96 | +1. Read open task files for tasks related to customer names or attendees in tomorrow's meetings |
| 97 | +2. Search workspace folders for recent files related to those customers or topics |
| 98 | +3. Check recent meeting summaries or plans for relevant prep context |
| 99 | +4. Use this to generate actionable prep bullets per meeting |
| 100 | + |
| 101 | +### 7. Generate Prep per Meeting |
| 102 | + |
| 103 | +For each meeting (chronological), include: |
| 104 | +- Time, subject, organizer |
| 105 | +- Attendee list (first name, company if external) |
| 106 | +- 3–5 actionable prep bullets based on open tasks, recent summaries, and meeting subject |
| 107 | +- If no context available, note what to ask/clarify in the meeting |
| 108 | + |
| 109 | +### 8. Find Learning & Focus Slots |
| 110 | + |
| 111 | +After generating prep per meeting, analyze the day's schedule to find open slots: |
| 112 | + |
| 113 | +1. **Morning Focus confirmation** — Verify the morning focus window is clear. If any non-self-organized event exists there, flag it. |
| 114 | + |
| 115 | +2. **Learning Slots** — Find gaps ≥ 30 min in the morning window and any other free slots suitable for upskilling. Target: **1.5h/day**. For each slot: time range, duration, suggested activity. |
| 116 | + |
| 117 | +3. **Deep Work Blocks** — Find continuous free gaps in the 13:00–15:30 zone for deliverables. For each block: time range, duration, suggested task from open tasks. |
| 118 | + |
| 119 | +4. **Report totals:** |
| 120 | + - Learning hours found vs. 1.5h target (e.g., "1.0h / 1.5h target — 0.5h short") |
| 121 | + - Deep work hours available in 13:00–15:30 (e.g., "2.0h / 2.5h available") |
| 122 | + |
| 123 | +### 9. Productivity Recommendations |
| 124 | + |
| 125 | +Analyze the full day and provide: |
| 126 | + |
| 127 | +| Section | What to Include | |
| 128 | +|---------|------------------| |
| 129 | +| **Day Fit Score** | Rate 0–100% how well the day matches the Ideal Day Structure. Criteria: (1) morning focus clear (+20%), (2) ≤2 customer meetings in 09:00–12:00 (+20%), (3) lunch 12:00–13:00 protected (+15%), (4) deep work 13:00–15:30 intact (+20%), (5) nothing after 15:30 or only self-organized after 16:00 (+15%), (6) ≥1h learning slots found (+10%). Show as: 🟢 ≥80%, 🟡 50–79%, 🔴 <50%. | |
| 130 | +| **Day Shape** | Total meeting hours, focus time available, learning hours, deep work hours, heavy/moderate/light assessment | |
| 131 | +| **Decline Candidates** | Auto-include: (1) all meetings 15:30–16:00, (2) others' meetings ≥16:00, (3) others' meetings <09:00, (4) 3rd+ customer meeting, (5) optional meetings during deep work zone. Show "Reclaim" column with minutes recovered. Self-organized meetings before 09:00 or after 16:00 are **excluded** from auto-decline. | |
| 132 | +| **Conflict Resolution** | Specific recommendation for each overlap | |
| 133 | +| **Learning Slots** | Gaps for upskilling — from Step 8. Table: Window, Duration, Suggested Activity. Show total vs. 1.5h target. | |
| 134 | +| **Deep Work Blocks** | Free gaps in 13:00–15:30 for deliverables — from Step 8. Table: Window, Duration, Suggested Task. | |
| 135 | +| **Energy Management** | Flag if >3h back-to-back customer meetings without a break | |
| 136 | +| **Top 3 Priorities** | The 3 most impactful things to accomplish (meetings + tasks combined) | |
| 137 | + |
| 138 | +### 10. Write the File |
| 139 | + |
| 140 | +Create the output file at `outputs/YYYY/MM/YYYY-MM-DD-prep.html` as a self-contained HTML file with embedded CSS (dark theme, color-coded timeline, responsive layout). |
| 141 | + |
| 142 | +If a file already exists for that date, read it first and update rather than overwrite — the user may have added manual notes. |
| 143 | + |
| 144 | +## Example Prompts |
| 145 | + |
| 146 | +- "Prepare me for tomorrow" |
| 147 | +- "What does Friday look like?" |
| 148 | +- "Daily prep for March 28" |
| 149 | +- "Prep me for next Monday — focus on customer meetings" |
| 150 | + |
| 151 | +## Requirements |
| 152 | + |
| 153 | +- **WorkIQ MCP tool** must be available for calendar access (Microsoft 365 / Outlook) |
| 154 | +- A workspace with task files and customer/project folders for context enrichment |
| 155 | +- Output is self-contained HTML — no external dependencies |
0 commit comments