day-planner

star 355

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.

CraftOS-dev By CraftOS-dev schedule Updated 3/12/2026

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_end immediately after completing planning work

EXCEPTION - Suggesting New Tasks: When you want to suggest a new recurring or scheduled task:

  1. Send the suggestion to user with send_message and wait_for_user_reply=true
  2. If user approves → add the task, then end silently
  3. If user rejects → end silently without adding
  4. 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

  1. Check existing scheduled tasks: Use scheduled_task_list to see what's already scheduled
  2. Read PROACTIVE.md: Check existing recurring tasks and the Goals, Plan, and Status section
  3. Read TASK_HISTORY.md: See what tasks have already been completed
  4. 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:

  1. Would I be annoyed if I received this?
  2. Is this genuinely helpful or just "something to do"?
  3. Am I suggesting this because user needs it, or because I can?
  4. Have I already suggested something similar recently?
  5. Can I cite 3+ specific instances where user did this task?
  6. 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:

  1. USER.md - User profile, preferences, location, work hours
  2. MEMORY.md - Recent memories, learnings, user preferences
  3. TASK_HISTORY.md - Recently completed tasks (to avoid duplicates!)
  4. 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:

  1. User explicitly requested this automation
  2. Task doesn't already exist
  3. Clear value proposition
  4. 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:

  1. Not already scheduled or completed
  2. User would genuinely benefit
  3. Appropriate timing
  4. 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

  1. Update "Goals, Plan, and Status" section in PROACTIVE.md
  2. Update MEMORY.md if relevant context discovered
  3. (Rarely, with permission) Add recurring tasks if truly necessary
  4. (Rarely, with permission) Schedule tasks if truly necessary
Install via CLI
npx skills add https://github.com/CraftOS-dev/CraftBot --skill day-planner
Repository Details
star Stars 355
call_split Forks 33
navigation Branch main
article Path SKILL.md
More from Creator