Skill: daily-planning
Purpose
Provides context-aware daily check-ins that adapt based on time of day, existing plan, and user energy. Helps structure the day with minimal cognitive overhead through morning planning, midday adjustments, and evening reviews.
Trigger Conditions
- Slash command:
/checkin
- Natural phrases: ["plan my day", "morning planning", "morgonplanering", "let's check in", "how's my day going", "kolla läget", "evening review", "kvällsreflektion", "day review"]
- Auto-trigger: Time-based (morning/midday/evening detection)
Required Context (gather BEFORE starting workflow)
- Time period via
profile getCurrentTimePeriod → returns "morning"|"midday"|"evening"
- Plan exists via
plan planHasContent → returns true|false
- Today's check-ins via
journal getTodayEntries → filter for entry_type="checkin"
- Today's tasks via
tasks getTodayTasks → returns Map<roleId, Task[]>
- Energy level via
profile getCurrentEnergyLevel → returns "high"|"medium"|"low"
- Overdue tasks via
tasks getOverdueTasks → returns Task[]
How to gather context:
# Get time period
bun run src/aida-cli.ts profile getCurrentTimePeriod
# Check if plan exists
bun run src/aida-cli.ts plan planHasContent
# Get today's journal entries
bun run src/aida-cli.ts journal getTodayEntries
# Get today's tasks
bun run src/aida-cli.ts tasks getTodayTasks
# Get current energy level
bun run src/aida-cli.ts profile getCurrentEnergyLevel
# Get overdue tasks
bun run src/aida-cli.ts tasks getOverdueTasks
Workflow Steps
Flow Selection (first match wins)
| Condition |
Flow |
| time >= 18:00 AND plan exists AND has check-in |
Evening |
| time 11:00-17:59 AND plan exists |
Midday |
| Otherwise (morning OR no plan OR first check-in) |
Morning |
Morning Flow
See MORNING-FLOW.md for detailed procedure.
Summary:
- Action: Display task summary by role
- Output: Energy-matched focus suggestions (1-3 items)
- Wait for: User confirms focus items and scheduled events
- Action: Create plan via
plan createDailyPlan {...}
- Action: Log check-in via
journal createEntry {"entry_type":"checkin",...}
- Output: First action suggestion
Midday Flow
See MIDDAY-FLOW.md for detailed procedure.
Summary:
- Review progress vs morning plan
- Query completed tasks since morning
- Ask about current energy level
- Adjust remaining priorities if needed
- Update journal entry (type='checkin')
- Suggest next action
Evening Flow
See EVENING-FLOW.md for detailed procedure.
Summary:
- Summarize day's accomplishments
- Note what rolled over (not completed)
- Create reflection journal entry (type='reflection')
- Archive plan to log via
plan archivePlanToLog
- Clear daily plan via
plan clearDailyPlan
- Optionally prepare tomorrow's focus
Output Format
- Language: Swedish (default)
- Style: Concise, encouraging, non-judgmental
- Focus items: 1-3 maximum, never full task list
- Energy awareness: Match suggestions to current energy level
Example morning output:
God morgon! ☀️
Idag ser jag tre fokusområden baserat på din energi:
1. **Färdigställ arkitekturdokumentation** (Developer)
- Hög energi på morgonen - perfekt för detta
- Deadline: idag
2. **Team standup 09:00** (Work)
- Förberedelsetid: 10 minuter
3. **Träning** (Personal)
- Schemalagt: 18:00
Vad ska vi börja med först?
Error Handling
- If
profile getCurrentTimePeriod returns null: Default to "morning" flow
- If
tasks getTodayTasks returns empty: Show message "Inga uppgifter för idag. Vill du lägga till någon?" and suggest task-capture
- If
plan planHasContent fails: Assume no plan exists, run Morning flow
- If
journal createEntry fails: Log error to console, continue workflow, inform user that logging failed but plan was created
- If no roles exist: Guide user to profile-management skill to set up roles first
- If profile doesn't exist: Guide user to profile-management skill with message "Du behöver först skapa en profil. Vill du göra det nu?"
Anti-patterns
- NEVER create tasks directly - use task-capture skill
- NEVER modify task status - use task-activation skill or let user do it
- NEVER show all tasks - always filter to 1-3 focus items based on energy and priority
- NEVER skip energy matching when suggesting tasks
- NEVER write directly to
0-JOURNAL/1-DAILY/*.md (auto-generated from database)
- NEVER delete data - only archive or clear as specified in workflow
- NEVER use direct SQL - always use aida-cli.ts
- NEVER run query modules directly (e.g.,
bun run src/database/queries/tasks.ts)
Tool Contract
Allowed CLI Operations:
- plan: planHasContent, readDailyPlan, createDailyPlan, archivePlanToLog, clearDailyPlan
- tasks: getTodayTasks, getOverdueTasks, getTaskById (READ ONLY)
- roles: getActiveRoles, getRoleById (READ ONLY)
- journal: getTodayEntries, createEntry (types: checkin, reflection)
- profile: getCurrentTimePeriod, getCurrentEnergyLevel, getProfile (READ ONLY)
Forbidden Operations:
- Creating tasks (use task-capture skill)
- Modifying task status (user action or task-activation skill)
- Updating profile (use profile-management skill)
- Deleting any data
File Access:
- Read:
0-JOURNAL/PLAN.md, personal-profile.json
- Write:
0-JOURNAL/PLAN.md only (overwritten morning, cleared evening)
- Never write:
0-JOURNAL/1-DAILY/*.md (generated from database)
Supporting Documentation
- MORNING-FLOW.md - Detailed morning check-in procedure
- MIDDAY-FLOW.md - Midday adjustment procedure
- EVENING-FLOW.md - Evening closure procedure
- ENERGY-MATCHING.md - How to match tasks to energy levels
Design Principles
- Activation over perfection - Help START the day, not just plan it
- One thing at a time - Suggest 1-3 focus items max, never the full list
- Energy-aware - Match task suggestions to user's energy patterns
- Non-judgmental - Frame progress positively, deferrals as rescheduling
1---2name: daily-planning3description: Context-aware daily check-ins for morning planning, midday adjustments, and evening reviews. Use when the user wants to plan their day, check in on progress, or review their evening. Auto-triggers on phrases like "plan my day", "morning planning", "let's check in", "how's my day going", "evening review".4---5
6# Skill: daily-planning
7
8## Purpose
9
10Provides context-aware daily check-ins that adapt based on time of day, existing plan, and user energy. Helps structure the day with minimal cognitive overhead through morning planning, midday adjustments, and evening reviews.
11
12## Trigger Conditions
13
14- **Slash command:** `/checkin`
15- **Natural phrases:** ["plan my day", "morning planning", "morgonplanering", "let's check in", "how's my day going", "kolla läget", "evening review", "kvällsreflektion", "day review"]
16- **Auto-trigger:** Time-based (morning/midday/evening detection)
17
18## Required Context (gather BEFORE starting workflow)
19
201. Time period via `profile getCurrentTimePeriod` → returns "morning"|"midday"|"evening"
212. Plan exists via `plan planHasContent` → returns true|false
223. Today's check-ins via `journal getTodayEntries` → filter for entry_type="checkin"
234. Today's tasks via `tasks getTodayTasks` → returns Map<roleId, Task[]>
245. Energy level via `profile getCurrentEnergyLevel` → returns "high"|"medium"|"low"
256. Overdue tasks via `tasks getOverdueTasks` → returns Task[]
26
27**How to gather context:**
28```bash
29# Get time period
30bun run src/aida-cli.ts profile getCurrentTimePeriod
31
32# Check if plan exists
33bun run src/aida-cli.ts plan planHasContent
34
35# Get today's journal entries
36bun run src/aida-cli.ts journal getTodayEntries
37
38# Get today's tasks
39bun run src/aida-cli.ts tasks getTodayTasks
40
41# Get current energy level
42bun run src/aida-cli.ts profile getCurrentEnergyLevel
43
44# Get overdue tasks
45bun run src/aida-cli.ts tasks getOverdueTasks
46```
47
48## Workflow Steps
49
50### Flow Selection (first match wins)
51
52| Condition | Flow |
53|-----------|------|
54| time >= 18:00 AND plan exists AND has check-in | Evening |
55| time 11:00-17:59 AND plan exists | Midday |
56| Otherwise (morning OR no plan OR first check-in) | Morning |
57
58### Morning Flow
59
60See [MORNING-FLOW.md](MORNING-FLOW.md) for detailed procedure.
61
62**Summary:**
631. Action: Display task summary by role
642. Output: Energy-matched focus suggestions (1-3 items)
653. Wait for: User confirms focus items and scheduled events
664. Action: Create plan via `plan createDailyPlan {...}`
675. Action: Log check-in via `journal createEntry {"entry_type":"checkin",...}`
686. Output: First action suggestion
69
70### Midday Flow
71
72See [MIDDAY-FLOW.md](MIDDAY-FLOW.md) for detailed procedure.
73
74**Summary:**
751. Review progress vs morning plan
762. Query completed tasks since morning
773. Ask about current energy level
784. Adjust remaining priorities if needed
795. Update journal entry (type='checkin')
806. Suggest next action
81
82### Evening Flow
83
84See [EVENING-FLOW.md](EVENING-FLOW.md) for detailed procedure.
85
86**Summary:**
871. Summarize day's accomplishments
882. Note what rolled over (not completed)
893. Create reflection journal entry (type='reflection')
904. Archive plan to log via `plan archivePlanToLog`
915. Clear daily plan via `plan clearDailyPlan`
926. Optionally prepare tomorrow's focus
93
94## Output Format
95
96- **Language:** Swedish (default)
97- **Style:** Concise, encouraging, non-judgmental
98- **Focus items:** 1-3 maximum, never full task list
99- **Energy awareness:** Match suggestions to current energy level
100
101**Example morning output:**
102```
103God morgon! ☀️
104
105Idag ser jag tre fokusområden baserat på din energi:
106
1071. **Färdigställ arkitekturdokumentation** (Developer)
108 - Hög energi på morgonen - perfekt för detta
109 - Deadline: idag
110
1112. **Team standup 09:00** (Work)
112 - Förberedelsetid: 10 minuter
113
1143. **Träning** (Personal)
115 - Schemalagt: 18:00
116
117Vad ska vi börja med först?
118```
119
120## Error Handling
121
122- **If `profile getCurrentTimePeriod` returns null:** Default to "morning" flow
123- **If `tasks getTodayTasks` returns empty:** Show message "Inga uppgifter för idag. Vill du lägga till någon?" and suggest task-capture
124- **If `plan planHasContent` fails:** Assume no plan exists, run Morning flow
125- **If `journal createEntry` fails:** Log error to console, continue workflow, inform user that logging failed but plan was created
126- **If no roles exist:** Guide user to profile-management skill to set up roles first
127- **If profile doesn't exist:** Guide user to profile-management skill with message "Du behöver först skapa en profil. Vill du göra det nu?"
128
129## Anti-patterns
130
131- **NEVER create tasks directly** - use task-capture skill
132- **NEVER modify task status** - use task-activation skill or let user do it
133- **NEVER show all tasks** - always filter to 1-3 focus items based on energy and priority
134- **NEVER skip energy matching** when suggesting tasks
135- **NEVER write directly to** `0-JOURNAL/1-DAILY/*.md` (auto-generated from database)
136- **NEVER delete data** - only archive or clear as specified in workflow
137- **NEVER use direct SQL** - always use aida-cli.ts
138- **NEVER run query modules directly** (e.g., `bun run src/database/queries/tasks.ts`)
139
140## Tool Contract
141
142**Allowed CLI Operations:**
143- **plan:** planHasContent, readDailyPlan, createDailyPlan, archivePlanToLog, clearDailyPlan
144- **tasks:** getTodayTasks, getOverdueTasks, getTaskById (READ ONLY)
145- **roles:** getActiveRoles, getRoleById (READ ONLY)
146- **journal:** getTodayEntries, createEntry (types: checkin, reflection)
147- **profile:** getCurrentTimePeriod, getCurrentEnergyLevel, getProfile (READ ONLY)
148
149**Forbidden Operations:**
150- Creating tasks (use task-capture skill)
151- Modifying task status (user action or task-activation skill)
152- Updating profile (use profile-management skill)
153- Deleting any data
154
155**File Access:**
156- **Read:** `0-JOURNAL/PLAN.md`, `personal-profile.json`
157- **Write:** `0-JOURNAL/PLAN.md` only (overwritten morning, cleared evening)
158- **Never write:** `0-JOURNAL/1-DAILY/*.md` (generated from database)
159
160## Supporting Documentation
161
162- [MORNING-FLOW.md](MORNING-FLOW.md) - Detailed morning check-in procedure
163- [MIDDAY-FLOW.md](MIDDAY-FLOW.md) - Midday adjustment procedure
164- [EVENING-FLOW.md](EVENING-FLOW.md) - Evening closure procedure
165- [ENERGY-MATCHING.md](ENERGY-MATCHING.md) - How to match tasks to energy levels
166
167## Design Principles
168
1691. **Activation over perfection** - Help START the day, not just plan it
1702. **One thing at a time** - Suggest 1-3 focus items max, never the full list
1713. **Energy-aware** - Match task suggestions to user's energy patterns
1724. **Non-judgmental** - Frame progress positively, deferrals as rescheduling