Agent skill
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
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/whats-next
SKILL.md
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.
Didn't find tool you were looking for?