name: daily-plan description: Generate context-aware daily plan with calendar, tasks, and priorities. Integrates with morning journaling if enabled.
Purpose
Generate your daily plan with full context awareness. Automatically gathers information from your calendar, tasks, meetings, and relationships to create a focused plan.
Usage
/daily-plan— Create today's daily plan/daily-plan tomorrow— Plan for tomorrow (evening planning)/daily-plan --setup— Re-run integration setup
Tone Calibration
Before executing this command, read System/user-profile.yaml → communication section and adapt:
Career Level Adaptations:
- Junior: More encouraging, explain "why" behind prioritization, suggest asking for help
- Mid: Collaborative, focus on impact and ownership
- Senior/Leadership: Strategic questions, challenge priorities, focus on delegation
- C-Suite: High-level, strategic focus, organizational outcomes
Directness:
- Very direct: Brief bullets, action-focused, minimal context
- Balanced: Context + action (default)
- Supportive: More encouragement, explain reasoning
Detail Level:
- Concise: Brief summary, top 3 priorities
- Balanced: Standard daily plan format
- Comprehensive: Extended context, dependencies, risks
See CLAUDE.md → "Communication Adaptation" for full guidelines.
Step 0: Demo Mode Check
Before anything else, check if demo mode is active:
- Read
System/user-profile.yaml - Check
demo_modevalue - If
demo_mode: true:- Display banner: "Demo Mode Active — Using sample data from System/Demo/"
- Use these paths instead of normal paths:
System/Demo/03-Tasks/Tasks.mdinstead of03-Tasks/Tasks.mdSystem/Demo/00-Inbox/instead of00-Inbox/System/Demo/05-Areas/People/instead of05-Areas/People/System/Demo/04-Projects/instead of04-Projects/
- Skip calendar/Granola integrations (use demo meeting data)
- Write output to
System/Demo/07-Archives/Plans/
- If
demo_mode: false: Proceed normally
Step 1: Check for Updates (Background)
Silently check if Dex has updates available:
Call update checker MCP:
check_for_updates(force=False)- This respects the 7-day interval
- Won't check if checked recently
- Won't block if network issues
If update available:
- Store notification message for prepending to final output
- Format: "🎁 Dex v{version} is available. Run /dex-update to see what's new and update."
- Continue immediately (don't wait for user)
If no update or too recent:
- Continue silently (don't mention)
- No user-facing output
If error (network, API limit):
- Continue silently (don't mention)
- Will retry tomorrow
Note: This runs in background. Don't announce "Checking for updates..." or wait for user input. Just proceed with daily planning.
Step 2: Morning Journal Check (If Enabled)
Check if morning journaling is enabled:
- Read
System/user-profile.yaml - Check
journaling.morningvalue - If
journaling.morning: true:- Check if today's morning journal exists in
00-Inbox/Journals/YYYY/MM-Month/Morning/YYYY-MM-DD-morning.md - If missing:
- Prompt: "Let's start with a quick morning reflection first. It'll take 5 minutes and helps you plan with more intention."
- Guide through morning journal (see
/journalcommand) - After completion, continue to Step 2
- If exists: Continue to Step 2
- Check if today's morning journal exists in
- If
journaling.morning: false: Skip to Step 2
Step 3: Monday Weekly Planning Gate
If today is Monday, check if the week is planned:
Check current day of week
If Monday:
Read
00-Inbox/Weekly_Plans.mdCheck the
Week of:date in frontmatter/headerIf week is not current week:
Prompt user:
"It's Monday and this week isn't planned yet.
Planning your week first helps ensure today's work aligns with what matters most. (Takes 5-10 min)
[Plan the week first] — Run
/week-planthen come back to daily plan [Skip to today] — I'll plan the week later"- If user chooses "Plan the week first" → Run
/week-plan→ Then return to daily planning - If user chooses "Skip to today" → Continue to Step 3, but note in output that week isn't planned
- If user chooses "Plan the week first" → Run
If week is current week: Continue to Step 3
If not Monday: Continue to Step 3
Step 4: Yesterday's Review Check (Soft Gate)
Unlike a hard block, this is a gentle check:
- Calculate yesterday's date (skip weekends if not a work day)
- Look for
00-Inbox/Daily_Reviews/Daily_Review_YYYY-MM-DD.md - If exists: Extract context:
- Open Loops → Items that need attention today
- Tomorrow's Focus → Today's starting point
- Blocked items → Check if resolved
- If missing: Warn but continue:
"I notice yesterday's review is missing. I can still plan today, but you might want to run
/reviewlater to capture what you accomplished."
Step 3.5: Level-Up Check (Smart Trigger)
Check if it's time to surface /dex-level-up:
- Read
System/usage_log.mdto checklast_dex_level_up_promptdate (stored at bottom of file) - If 7+ days since last prompt OR field doesn't exist:
- Count unchecked features in usage log
- If 3+ unchecked features exist:
- Add this to the daily plan output (in a "Tips" or "System" section):
--- 💡 **Tip:** You're using {{X}} of {{Y}} Dex features. Run `/dex-level-up` to see what you might be missing. - Update
last_dex_level_up_prompt: YYYY-MM-DDin usage_log.md
- Add this to the daily plan output (in a "Tips" or "System" section):
- Otherwise: Skip this check
Step 3.6: Self-Learning Checks (Background)
Run automated self-learning checks before gathering context. These are fast, throttled checks that keep Dex up-to-date.
Execute silently in background:
Changelog Check (if 6+ hours since last check)
node .scripts/check-anthropic-changelog.cjs 2>/dev/null &- Respects 6-hour minimum interval
- Writes alert file if updates found
- Non-blocking (runs in background)
Learning Review Check (if not checked today)
bash .scripts/learning-review-prompt.sh 2>/dev/null &- Counts pending learnings from past 7 days
- Creates alert if 5+ pending
- Updates
.last-learning-checkfile with today's date
Note: These checks also run at session start via hooks, but running here ensures they happen during daily planning even if hooks aren't configured. The interval throttling prevents duplicate work.
If alert files exist, they will be surfaced in Step 4 context.
Step 5: Context Gathering
Gather context from all available sources in parallel:
From Calendar (if enabled)
Use: calendar_get_events_with_attendees for today
Extract:
- Today's meetings with times
- Attendees (for People/ lookup)
- Back-to-back meeting detection
- Free time blocks
From Granola (if enabled)
Check for recent meeting notes that might have action items.
From 03-Tasks/Tasks.md
Use: list_tasks with status filter
Extract:
- P0 items (must do)
- P1 items (important)
- Started but not completed
- Overdue items
From Week Priorities
Read 00-Inbox/Weekly_Plans.md:
- This week's Top 3
- Key meetings
- Pillar balance check
From Work Summary (Work MCP)
Use: get_work_summary()
Extract:
- Quarterly goals with progress (if quarterly planning enabled)
- Weekly priorities with completion status
- Tasks grouped by priority link
- Warnings about stalled goals or orphaned work
This provides strategic context for the day: "Your tasks today contribute to Priority 2, which advances Goal 1"
From People/
For each meeting attendee:
- Look up
People/External/orPeople/Internal/ - Surface recent context, open items with them
From Self-Learning Alerts
Check for pending alerts created by background automation:
Changelog Updates: Read
System/changelog-updates-pending.mdif exists- Extract: Latest version, update date
- Surface: "🆕 New Claude Code features available - run
/dex-whats-new"
Learning Reviews: Read
System/learning-review-pending.mdif exists- Extract: Count of pending learnings
- Surface: "📚 {count} pending learnings from this week - run
/dex-whats-new --learnings"
Include in daily plan output if present - these are actionable items for improving your system.
Step 6: Synthesis
Combine all gathered context into recommendations:
Focus Recommendation
Based on:
- P0 tasks (highest weight)
- Yesterday's "Tomorrow Focus"
- Meeting prep needs
- Week Priorities alignment
Generate 3 recommended focus items.
Meeting Prep
For each meeting:
- Who's attending (with People/ context)
- Related tasks or projects
- Suggested prep if none exists
Heads Up
Flag potential issues:
- Back-to-back meetings
- P0 items with no time blocked
- People you owe follow-ups to
Step 7: Generate Daily Plan
Before displaying the plan:
If update notification was captured in Step 1, prepend it to the output:
🎁 Dex v{version} is available. Run /dex-whats-new for details.
---
[Daily plan follows below]
Then create the plan:
Create 07-Archives/Plans/YYYY-MM-DD.md:
---
date: YYYY-MM-DD
type: daily-plan
integrations_used: [calendar, tasks, people]
---
# Daily Plan — {{Day}}, {{Month}} {{DD}}
## TL;DR
- {{1-2 sentence summary}}
- {{X}} meetings today
- {{Key focus area}}
---
## Strategic Context (if quarterly planning enabled)
**This Week's Priority:** {{Priority 2}} — Ship beta version
**Advances Goal:** Q1-2026-goal-1 (Launch Product v2.0) — Currently at 55%
**Today's Contribution:**
- Your P0 tasks contribute to this week's priority
- Completing them moves Goal 1 toward 60%
---
## Career Development (if Career system enabled)
**If `05-Areas/Career/` exists and today's work has career metadata:**
> 💡 **Career Growth Today:**
>
> Today's work develops these skills:
> - **[Skill 1]** — From [Goal/Priority Title]
> - **[Skill 2]** — From [Goal/Priority Title]
>
> These map to your target role: [Target Role from Growth_Goals.md]
**Optional: Show stale skills:**
> ⚠️ **Skill to practice:** You haven't worked on "[Stale Skill]" in [X] days — required for [target level]
**Tag reminder:**
> **Tip:** Add `# Career: [skill]` to tasks that develop specific skills for evidence tracking.
---
## Carried From Yesterday
> From yesterday's review (if exists)
### Open Loops
- [ ] {{Items from yesterday's review}}
### Yesterday's Focus → Today's Starting Point
1. {{Priority 1}}
2. {{Priority 2}}
---
## Today's Focus
**If I only do three things today:**
1. [ ] {{Focus item 1}} — {{Pillar}} *(supports Week Priority #X)*
2. [ ] {{Focus item 2}} — {{Pillar}} *(supports Week Priority #Y)*
3. [ ] {{Focus item 3}} — {{Pillar}}
> 📍 **This week's priorities:** [Link to Week Priorities.md or brief reference]
---
## Schedule
| Time | Meeting/Block | Who | Prep |
|------|---------------|-----|------|
| {{Time}} | {{Meeting}} | {{Attendees}} | {{Prep link or "None needed"}} |
| ... | ... | ... | ... |
### Free Blocks
- {{Time range}}: {{Suggested use}}
---
## Tasks by Priority
### P0 - Must Do Today
- [ ] {{Task}}
### P1 - Important
- [ ] {{Task}}
### P2 - If Time Allows
- [ ] {{Task}}
---
## People Context
### Meeting with {{Name}}
- Role: {{From People/ page}}
- Last interaction: {{Date}}
- Open items: {{Any pending tasks involving them}}
---
## Heads Up
{{Flags and warnings}}
- ⚠️ Back-to-back meetings from X to Y
- ⏰ P0 item "{{task}}" has no time blocked
- 📞 You owe {{Name}} a follow-up from {{Date}}
---
*Generated: {{timestamp}}*
*Integrations: {{list}}*
Step 8: Track Usage (Silent)
After generating the daily plan, silently update usage tracking:
- Read
System/usage_log.md - Update these items:
- [ ] Daily planning (/daily-plan)→- [x] Daily planning (/daily-plan)- Update
First daily plan: YYYY-MM-DDif not set
- No announcement to user
Graceful Degradation
The plan works at multiple levels:
Full Context (Calendar + Granola + Tasks + People)
- Complete schedule with attendee lookup
- Meeting prep suggestions
- Relationship context
Partial Context (Tasks + People only)
- Focus recommendations from tasks
- No schedule section
- Still useful for prioritization
Minimal Context (Tasks only)
- Basic focus list
- Task priorities
- Prompt for manual schedule input
No Context (Nothing configured)
- Interactive flow asking about priorities
- Creates basic daily note
- Encourages setting up integrations
Evening Planning Variant
/daily-plan tomorrow:
- Check for evening journal (if journaling enabled)
- Gather tomorrow's calendar
- Review unfinished tasks from today
- Generate tomorrow's draft plan
- Save as
07-Archives/Plans/YYYY-MM-DD-draft.md
MCP Dependencies
| Integration | MCP Server | Tools Used |
|---|---|---|
| Calendar | dex-calendar-mcp | calendar_get_today, calendar_get_events_with_attendees |
| Granola | dex-granola-mcp | get_recent_meetings |
| Work | dex-work-mcp | list_tasks, list_week_priorities, suggest_focus |
Setup Instructions
Calendar MCP Setup
- Ensure
core/mcp/calendar_server.pyexists - Add to Claude Desktop config at
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dex-calendar": {
"command": "python",
"args": ["/path/to/dex/core/mcp/calendar_server.py"],
"env": {
"VAULT_PATH": "/path/to/dex"
}
}
}
}
- Restart Claude Desktop
- Run
/daily-plan --setupto configure
Granola MCP Setup
- Install Granola app (macOS only)
- Ensure
core/mcp/granola_server.pyexists - Add to Claude Desktop config (same file, similar pattern)
- Granola will auto-detect from local cache at
~/Library/Application Support/Granola/cache-v3.json