name: day-planner description: Daily planning skill that reviews recent interactions, scans external environment, identifies tasks for today, and updates the Goals, Plan, and Status section in PROACTIVE.md. user-invocable: false action-sets: - file_operations - proactive - scheduler - google_calendar - notion - web
Day Planner
Daily planning for proactive agent behavior. This skill runs early each morning to plan the day's activities based on user goals and context.
Trigger Context
You receive a planner trigger with:
scope: "day"type: "proactive_planner"
CRITICAL: Silent Execution (Override Standard Task Rules)
This skill overrides standard task completion rules. Unlike regular tasks:
- NO acknowledgement: Do NOT acknowledge task receipt to user
- NO confirmation: Do NOT wait for user confirmation before ending
- MUST end silently: Use
task_endimmediately after completing planning work
EXCEPTION - Suggesting New Tasks: When you want to suggest a new recurring or scheduled task:
- Send the suggestion to user with
send_messageandwait_for_user_reply=true - If user approves → add the task, then end silently
- If user rejects → end silently without adding
- If user does not reply within 20 hours → end task silently WITHOUT adding the suggested task
Why? Planner tasks run automatically. Waiting for confirmation would cause tasks to pile up.
Core Question
Ask yourself: "How can I help the user get SLIGHTLY closer to their goals TODAY?"
Focus only on what can realistically be accomplished in a single day. Do not over-plan.
CRITICAL RULES - READ BEFORE DOING ANYTHING
Before Planning - ALWAYS Do These Checks
- Check existing scheduled tasks: Use
scheduled_task_listto see what's already scheduled - Read PROACTIVE.md: Check existing recurring tasks and the Goals, Plan, and Status section
- Read TASK_HISTORY.md: See what tasks have already been completed
- Read MEMORY.md: Understand user context, preferences, and past interactions
Duplicate Prevention (EXTREMELY IMPORTANT)
- NEVER suggest a task the user has already performed (check TASK_HISTORY.md)
- NEVER suggest a task that already exists as a recurring or scheduled task
- NEVER add a recurring task that duplicates an existing one
- If user performed a one-time task before and you suggest it again = VERY BAD
Permission Requirements
- Recurring tasks: MUST get explicit user permission before adding ANY new recurring task
- Immediate tasks: MUST get user permission, unless it's a tier 0 task
- Scheduled tasks: MUST get user permission before scheduling regardless of tier
Conservatism Principle
It MUST be EXTREMELY HARD for you to suggest ANYTHING:
- Add new recurring tasks → ONLY if user explicitly said "I want this automated"
- Suggest new tasks to the user → ONLY if user did this 3+ times AND it's genuinely valuable
- Schedule tasks → ONLY if user explicitly requested scheduling
DO NOT annoy the user by suggesting things they did not ask for. DO NOT suggest based on a single occurrence - this is a critical mistake. WHEN IN DOUBT, DO NOT SUGGEST.
Guiding Principles
Evidence over assumption: Only act on what user has said or done, never on what you think they might want.
Silence over noise: Most days should have NO new suggestions. Better to do nothing than annoy.
Quality over quantity: One genuinely valuable suggestion per week beats five mediocre ones per day.
Stop signals: If user says "stop", "later", ignores suggestions, or disables tasks you suggested - reduce intervention.
Know the user, not the universe: Only check external sources relevant to THIS user based on their profile, goal, career, time/location or demonstrated interests.
Determining If User Needs Proactive Assistance
DEFAULT STANCE: DO NOT SUGGEST ANYTHING.
Before suggesting ANY proactive task, you must have OVERWHELMING evidence. Most planner runs should result in ZERO suggestions.
The 3+ Rule (MANDATORY)
A single occurrence of ANYTHING is NEVER sufficient to suggest a task.
- User asked for weather ONCE → DO NOT suggest weather task
- User checked email ONCE → DO NOT suggest email task
- User mentioned something ONCE → DO NOT suggest anything
MINIMUM threshold for ANY suggestion:
- User did the EXACT same task 3+ times manually, OR
- User explicitly said "I want you to do X automatically/regularly"
NO EXCEPTIONS. If you cannot point to 3+ occurrences or an explicit request, DO NOT SUGGEST.
Evidence-Based Need Assessment
| Question | If YES | If NO |
|---|---|---|
| Did the user explicitly request this type of help? | Consider suggesting | Do NOT suggest |
| Has the user repeatedly done this task manually? | May automate ONLY if 3+ times | Do NOT automate |
| Did the user mention this as a pain point? | Consider helping ONLY if mentioned 3+ times | Do NOT assume |
| Is this blocking user's stated goals? | May be valuable | Probably not urgent |
| Has user rejected similar suggestions before? | Do NOT suggest again | N/A |
Evidence Types (Strongest to Weakest)
| Evidence Level | Description | Action |
|---|---|---|
| Explicit Request | User said "I want X automated/recurring" | Safe to suggest |
| Repeated Behavior | User did X 3+ times manually | May suggest with permission |
| Stated Pain Point | User complained about X multiple times | May suggest as solution |
| Single Occurrence | User did X once | ABSOLUTELY DO NOT suggest |
| Your Assumption | You think user might want X | ABSOLUTELY DO NOT suggest |
Red Flags - DO NOT Proceed If:
- User has not interacted in 24+ hours (they may be busy)
- User dismissed similar suggestions recently
- Task would interrupt user's current focus
- No clear evidence user wants this help
- You're assuming user needs something they never mentioned
- User only did this task 1-2 times (NOT ENOUGH)
- You cannot cite 3+ specific instances from TASK_HISTORY.md
Green Flags - May Consider If:
- User explicitly asked for proactive help with this area and it is not processed yet
- User has done this exact task 3+ times manually (with evidence in TASK_HISTORY.md)
- User explicitly said "I want this automated" or "Can you do this regularly"
- Task is tier 0 (silent, no interruption)
What Makes a GOOD Proactive Task
A good proactive task has ALL of these qualities:
| Quality | Description | Bad Example | Good Example |
|---|---|---|---|
| Explicit Need | User asked for it or clearly needs it | "User might like email summaries" | "User asked me to summarize emails daily" |
| Clear Value | Obvious benefit to user | "Check random websites" | "Monitor competitor pricing user tracks" |
| Appropriate Frequency | Not too often, not too rare | "Remind user every hour" | "Weekly report on Sundays" |
| Measurable Outcome | You can tell if it worked | "Help user be productive" | "Compile daily standup notes by 9am" |
| Non-Intrusive | Respects user's attention | "Send 5 notifications daily" | "Silently prepare draft, notify once" |
| Reversible | User can undo or cancel | "Automatically send emails" | "Draft email for user review" |
Task Quality Checklist
Before suggesting ANY task, it must pass ALL checks:
- User explicitly requested or clearly needs this
- Not duplicating existing task or completed work
- Frequency is appropriate (not annoying)
- Value is clear and measurable
- Tier/permission level is appropriate
- User can easily disable or modify it
Annoyance Prevention
Guiding Principles
ASSUME THE USER DOES NOT WANT SUGGESTIONS. You must have overwhelming evidence to override this assumption.
- Frequency: Suggest EXTREMELY sparingly - most weeks should have no new suggestions
- Spacing: Give user breathing room between any suggestions
- Recurring tasks: ALMOST NEVER suggest new recurring tasks
- Rejection: If user rejected something, do not suggest it again
- Single occurrence: NEVER suggest based on something user did only once
Signals User is Annoyed (STOP SUGGESTING)
- User says "stop", "enough", "later", "not now"
- User ignores 2+ consecutive suggestions
- User disables a task you suggested
- User reduces notification frequency
- User mentions being "busy" or "overwhelmed"
Quality Over Quantity
- Better to suggest nothing than something mediocre
- Better to wait than rush a suggestion
- Better to ask once than nag
- Better to be silent than be annoying
- 99% of planner runs should produce ZERO suggestions
The Annoyance Test
Before ANY suggestion, ask:
- Would I be annoyed if I received this?
- Is this genuinely helpful or just "something to do"?
- Am I suggesting this because user needs it, or because I can?
- Have I already suggested something similar recently?
- Can I cite 3+ specific instances where user did this task?
- Did user EXPLICITLY ask for this to be automated?
If you hesitate on ANY of these → DO NOT suggest. If you cannot answer YES to question 5 or 6 → DO NOT suggest.
Context Layers
Layer 1: WHO is the user? (USER.md - static profile)
↓
Layer 2: WHAT's their situation? (PROACTIVE.md - dynamic context)
↓
Layer 3: WHAT's happening now? (External sources - selective)
Use Layer 1 + Layer 2 to determine which external sources to check in Layer 3.
Workflow
Step 1: Gather Internal Context
Read the following files:
- USER.md - User profile, preferences, location, work hours
- MEMORY.md - Recent memories, learnings, user preferences
- TASK_HISTORY.md - Recently completed tasks (to avoid duplicates!)
- PROACTIVE.md - Current recurring tasks and Goals/Plan/Status via
recurring_read
Also check:
scheduled_task_list- What's already scheduled (to avoid duplicates!)
Step 2: Scan External Environment (Selective)
Based on USER.md interests and connected integrations, check ONLY what's relevant to this user.
Here are some examples:
Calendar & Schedule (if Google Calendar connected):
check_calendar_availability(start_date="today", end_date="today")
- Note: meetings, busy times, deadlines for today
- Look for: conflicts, free blocks for focused work
Task Management (check what's connected):
IF Notion connected:
search_notion(query="tasks")
query_notion_database(database_id="[task_db_id]", filter={"property": "Status", "select": {"does_not_equal": "Done"}})
IF Apple Reminders (macOS):
remindctl today
remindctl overdue
- Note: overdue items, high-priority tasks due today
Communication (only if user engages with these):
IF Gmail connected AND user checks email regularly:
→ Note unread important emails, deadline mentions
IF Slack connected AND user uses actively:
→ Note urgent DMs or mentions
Real-Time Context (based on user interests from USER.md):
IF user has outdoor activities planned:
→ Check today's weather
IF user is traveling:
→ Check destination info relevant to today
IF user works in specific domain (tech, finance, etc.):
→ Check relevant news ONLY if they've engaged with it before
SKIP if:
- User has never mentioned or used the integration
- User has ignored suggestions from this source before
- No evidence user cares about this domain
Step 3: Analyze Today's Context
Consider from internal files:
- What day of the week is it?
- What are the user's long-term goals? (from Goals, Plan, and Status)
- What did the user work on yesterday? (from TASK_HISTORY.md)
- Are there any recurring tasks enabled for today?
- What is the user's current focus area?
Consider from external scan:
- What meetings/events does user have today?
- Are there overdue tasks from connected tools?
- Any conflicts or scheduling issues?
- Any external factors affecting today (weather, news, etc.)?
Step 4: Plan the Day
Create a concise day plan focusing on:
- Daily priorities: 1-3 key items aligned with weekly objectives
- Recurring tasks due today: What will run automatically
- Context notes: Brief notes relevant to today
Updating PROACTIVE.md
Weave internal and external context naturally into the existing sections. Do NOT create new subsections.
Upcoming Priorities (Primary Responsibility)
### Upcoming Priorities
<!-- Updated by day planner -->
Today (March 12):
- Complete API review before 2pm client call
- 3 overdue Notion tasks from Project Alpha - address in morning
- PR #142 needs review (CI passing)
Today's context: 3 meetings (10am, 2pm, 4pm). Morning and late afternoon clear for focused work. Weather: rain - user's outdoor run may need indoor alternative.
Guidelines:
- Include external context inline (meetings, deadlines from tools)
- Note relevant environmental factors (weather, travel)
- Maximum 3-5 priorities with context
- Connect to weekly/monthly goals
Current Focus (Secondary)
### Current Focus
<!-- Updated by week/day planner -->
[What the user should focus on today]
Guidelines:
- Align with week planner's direction
- Update only if today requires different focus
Recent Accomplishments
### Recent Accomplishments
<!-- Updated by planners after task completion -->
- [Date]: [Accomplishment]
Guidelines:
- Only add if user completed something significant
- Keep last 5-7 entries
Recording Patterns (Inline)
When you observe patterns, record them inline in existing sections:
**Observed:** User most productive 9-11am. Prefers no interruptions during this window.
**Observed:** User engages with tech news but ignores crypto updates.
Do NOT create a dedicated "Patterns" or "Context Notes" subsection.
Updating MEMORY.md
When to Update MEMORY.md
Update MEMORY.md when you discover:
- User preferences not previously recorded
- Important context for future tasks
- Patterns in user behavior
- Deadlines or commitments user mentioned
- Facts that affect how you should help user
What to Store
| Store In MEMORY.md | Do NOT Store |
|---|---|
| User's stated preferences | Your assumptions |
| Facts user shared | Temporary info |
| Patterns you observed | Trivial details |
| Important deadlines | Already in TASK_HISTORY |
| Context for future help | Duplicate information |
Format
## [Category]
### [Date] - [Brief Title]
[Factual observation or user statement]
Outputs
Output 1: Update PROACTIVE.md
Update "Upcoming Priorities" and optionally "Current Focus" and "Recent Accomplishments".
Output 2: Update MEMORY.md
Only if you discovered important context during analysis.
Output 3: Manage Recurring Tasks (WITH PERMISSION - RARE)
Only if ALL of these are true:
- User explicitly requested this automation
- Task doesn't already exist
- Clear value proposition
- Appropriate frequency
recurring_add(
name="Task Name",
frequency="daily",
instruction="...",
time="09:00",
permission_tier=1,
enabled=true
)
Output 4: Suggest Immediate/Scheduled Tasks (WITH PERMISSION - RARE)
Only if ALL of these are true:
- Not already scheduled or completed
- User would genuinely benefit
- Appropriate timing
- Not annoying
For tasks that should run later:
schedule_task(
name="Evening Reminder",
instruction="...",
schedule="at 8pm",
mode="simple"
)
Allowed Actions
Core: recurring_read, recurring_add, recurring_update_task, scheduled_task_list,
schedule_task, read_file, stream_read, stream_edit, memory_search,
send_message, task_update_todos, task_end
External Integrations (use selectively based on user):
- Calendar:
check_calendar_availability - Notion:
search_notion,query_notion_database,get_notion_page - Web:
web_search,web_fetch
Output Format
- Update "Goals, Plan, and Status" section in PROACTIVE.md
- Update MEMORY.md if relevant context discovered
- (Rarely, with permission) Add recurring tasks if truly necessary
- (Rarely, with permission) Schedule tasks if truly necessary