whats-next
Use when user asks what to focus on next, what's next, what they should do, or needs help prioritizing their immediate work
When & Why to Use This Skill
The 'What's Next' skill is a high-performance productivity agent designed to eliminate decision fatigue and streamline task prioritization. By integrating real-time data from macOS Calendar and OmniFocus, it analyzes your current schedule, hard deadlines, and task urgency to provide a single, directive recommendation. Unlike traditional assistants that offer multiple choices, this skill takes a proactive stance—calculating your available time windows and context to tell you exactly what to focus on right now, ensuring maximum efficiency and focus.
Use Cases
- Overcoming Decision Fatigue: When overwhelmed by a long to-do list, use this skill to receive a single, data-driven directive on the most important task to tackle next.
- Optimizing Between-Meeting Gaps: Automatically identify 'quick win' tasks that fit into specific time windows (e.g., 15-30 minutes) before your next calendar event.
- Context Switching Recovery: Quickly regain momentum after a break or meeting by letting the agent analyze your OmniFocus flags and deadlines to reset your focus.
- Energy-Aware Workload Management: Receive recommendations to either push through high-priority items or wrap up for the day based on your remaining time and task complexity.
- Deadline-Driven Prioritization: Ensure critical projects are never missed by allowing the agent to cross-reference calendar deadlines with available OmniFocus tasks.
| name | whats-next |
|---|---|
| description | Use when user asks what to focus on next, what's next, what they should do, or needs help prioritizing their immediate work |
What's Next
Overview
Core principle: Query both data sources (OmniFocus + macOS Calendar), integrate the timeline, and give 1-2 directive next actions. Never present options—YOU decide based on context.
When to Use
- User asks "What's next?", "What should I work on?", "What do I focus on now?"
- User seems overwhelmed or has decision fatigue
- User is context-switching and needs direction
Quick Reference
- Fetch macOS Calendar events → Find next hard deadline
- Query OmniFocus tasks → Get flagged, due, next, and available items
- Analyze time window → Calculate available time until next deadline
- Make context-aware choice → Consider energy, estimates, flags, defer dates
- Give 1-2 directive actions → Not options. Decide.
Implementation
Step 1: Query macOS Calendar
# Get events from now through end of day
osascript -e 'tell application "Calendar"
set startDate to current date
set endDate to startDate + (1 * days)
set theEvents to {}
repeat with cal in calendars
set calEvents to (every event of cal whose start date ≥ startDate and start date ≤ endDate)
set theEvents to theEvents & calEvents
end repeat
repeat with evt in theEvents
log (summary of evt) & " | " & (start date of evt as string)
end repeat
end tell'
Step 2: Query OmniFocus
// Get tasks in priority order
mcp__OmniFocus__query_omnifocus({
entity: "tasks",
filters: {
status: ["Next", "Available", "DueSoon", "Overdue"]
},
includeCompleted: false,
fields: ["name", "dueDate", "deferDate", "estimatedMinutes", "flagged", "projectName", "taskStatus"]
})
Step 3: Integrate and Decide
Find next hard deadline:
- Next calendar event OR next task due date
- Calculate available time window
Context-aware selection:
- If exhausted/EOD → Quick wins (< 20 min) OR "stop for today"
- If < 30 min available → Quick wins only
- If 1-2 hours → Flagged items OR next available tasks that fit
- Defer dates → Highlight newly-available tasks
- Overdue flagged → Address if time permits, else communicate plan
Output format:
Next: [Specific task name]
Why: [Time available] + [context reason]
NOT:
You could do A, B, or C. What do you think?
Common Mistakes
| Mistake | Fix |
|---|---|
| "What would you like to focus on?" | Query data sources. YOU decide. |
| "Here are 3 options: A, B, C" | Give 1-2 directive recommendations. |
| "Should you continue debugging or switch?" | Make the choice based on data. |
| Recommending 70 min of work when user is exhausted | Consider "stop for today" or < 15 min tasks. |
| Forgetting to query actual data sources | ALWAYS fetch Calendar + OmniFocus data. |
| Ignoring defer dates | Call out newly-available deferred tasks. |
Red Flags - STOP
These thoughts mean you're avoiding responsibility:
- "Let me ask what you prefer"
- "I could present some options"
- "It depends on what you want"
- "Let me get clarification first" (before querying data)
All of these mean: Query the data. Make the decision. Give directive guidance.
Special Cases
User is debugging/in middle of work: Check if that work is tracked in OmniFocus. If not, ask progress status. If stuck > 2 hours, recommend context switch.
User says "I'm beat": Consider stopping for the day. If work remains, suggest < 15 min tasks or defer to tomorrow.
Conflicting priorities: Time window wins. If meeting in 30 min and boss asked about 1.5 hour task, recommend preparing for meeting + communicating timeline for other task.
Empty or sparse data:
- OmniFocus empty → "Add tasks to your OmniFocus for what needs doing today."
- Calendar empty + OmniFocus has tasks → "No meetings today. Focus on: [specific flagged/next task]"
- Both empty → "You're clear. Take the day off." (If user pushes back, THEN suggest adding tasks)
NEVER say "either... or..." even with sparse data. Stay directive. Choose ONE recommendation.
User asks for options: Acknowledge but redirect: "Let me give you a clear recommendation instead." Then query data and decide.
User disagrees with recommendation: Defer to their preference. You're directive about initial recommendations, not dogmatic when they have different context.