Skill: task-activation
Purpose
Provides activation support to help users START tasks, not just plan them. Addresses executive function challenges by removing barriers to beginning. Based on ADHD-friendly techniques like the 5-minute rule and smallest-step extraction.
Trigger Conditions
- Slash command:
/next
- Natural phrases: ["I'm stuck", "can't get started", "overwhelmed", "what should I do", "next step", "where do I start", "jag fastnar", "kan inte börja", "vad ska jag göra", "nästa steg", "hjälp mig börja", "orkar inte", "vet inte var jag ska börja"]
- Auto-trigger: When user expresses difficulty starting or choosing tasks
Required Context (gather BEFORE starting workflow)
- Today's tasks via
tasks getTodayTasks → returns Map<roleId, Task[]> for selection
- Current energy level via
profile getCurrentEnergyLevel → returns "high"|"medium"|"low" for matching
- Profile via
profile getProfile → returns full profile for activation preferences and patterns
How to gather context:
# 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 user profile (for activation preferences)
bun run src/aida-cli.ts profile getProfile
Workflow Steps
Step 1: Assess User State
- Action: Detect user's current state from conversation
- "Jag fastnar" → Stuck, needs smallest step
- "Orkar inte" → Low energy, needs easy win
- "För mycket" → Overwhelmed, needs ONE thing
- "Vad ska jag göra?" → Choice paralysis, needs direction
- No complaint → Just asking for next action
- Output to user: None (internal assessment)
- Wait for: Continue immediately
See OVERWHELM-RESPONSE.md for state-specific responses.
Step 2: Get Available Tasks
- Action: Retrieve today's tasks via
tasks getTodayTasks
- Output to user: None
- Wait for: Continue immediately (unless no tasks - see Error Handling)
Step 3: Select Best Task
See ENERGY-AWARE-SELECTION.md for detailed selection rules.
- Action: Select ONE task based on:
- User's current energy level
- Time of day (from user's energy pattern)
- Task energy requirements
- Deadlines
- Task status (ready > planned > captured)
- Output to user: None yet
- Wait for: Continue immediately
Step 4: Apply Activation Technique
See ACTIVATION-TECHNIQUES.md for detailed techniques.
- Action: Choose technique based on user state:
- Stuck → Extract smallest first step
- Overwhelmed → One thing only, 5-minute rule
- Low energy → Easy win first
- Choice paralysis → Make the choice for them
- Output to user: None yet
- Wait for: Continue immediately
Step 5: Present Single Action
Step 6: Log Activation
Output Format
- Language: Swedish (default)
- Style: Encouraging, non-judgmental, supportive
- Action: ONE concrete step only, never multiple options
- Tone: No guilt, no pressure, frame deferrals positively
Example for simple "what's next":
🎯 Nästa steg för dig:
**Öppna rapporten** (Digitaliseringssamordnare)
- Deadline: imorgon
- Bara öppna filen och läs första stycket
5 minuter - sedan bestämmer du om du fortsätter. Kör! 🚀
Example for overwhelmed:
Jag hör dig. Låt oss göra det enkelt.
Glöm allt annat just nu. EN sak:
🎯 **Ringa banken** (2 min)
- Ta upp telefonen
- Slå numret
- Klart!
Det är allt. Resten kan vänta.
Redo?
Error Handling
- If
tasks getTodayTasks returns empty: Show message "Inga uppgifter för idag. Vill du fånga något nytt?" and suggest task-capture skill
- If no tasks match energy level: Adjust matching criteria, or suggest a break/pause with message "Alla uppgifter kräver mer energi än du har just nu. Vill du ta en paus?"
- If user is overwhelmed but no easy tasks: Find ANY task and break it into smallest possible step, even if artificially small
- If task already active: Ask "Du har redan en aktiv uppgift: [task]. Vill du byta till något annat?"
- If
setTaskStatus fails: Log error to console, inform user task activation wasn't recorded but they can still work on it
- If
journal createEntry fails: Task status is still updated, just log warning to console
- If profile doesn't exist: Use default energy level "medium" and proceed with general activation
Anti-patterns
- NEVER recommend high-energy task when energy is low - always match energy level
- NEVER skip user confirmation before marking active - always wait for user to say they're starting
- NEVER show multiple task options - always suggest ONE thing only
- NEVER use guilt or pressure - frame deferrals as rescheduling, not failure
- NEVER create new tasks - only activate existing ones (use task-capture for new tasks)
- NEVER update task details - only change status
- NEVER set status to "cancelled" - only "active" or "done" allowed
- NEVER use direct SQL - always use aida-cli.ts
- NEVER run query modules directly
Tool Contract
Allowed CLI Operations:
- tasks: getTodayTasks, getTaskById, setTaskStatus (to "active" or "done")
- journal: createEntry (type: task) - Log activation/completion
- profile: getCurrentEnergyLevel, getProfile (READ ONLY)
Forbidden Operations:
- Creating new tasks (use task-capture skill)
- Updating task details (title, description, etc.)
- Deleting tasks
- Updating profile
- Setting status to "cancelled"
Status Transition Rules:
ready|waiting → active (when starting task)
active → done (when user indicates completion during activation flow)
File Access:
- Read:
personal-profile.json
- No file writes - All operations via CLI
Supporting Documentation
- ACTIVATION-TECHNIQUES.md - 5-minute rule, smallest step, etc.
- ENERGY-AWARE-SELECTION.md - Matching tasks to energy
- OVERWHELM-RESPONSE.md - Handling stuck/overwhelmed states
Design Principles
- ONE thing - Never present multiple options
- Smallest step - Break it down until it's obvious
- 5-minute rule - Just start, decide later
- No guilt - Deferrals are rescheduling, not failure
- Energy-aware - Don't suggest high-energy tasks when user is drained
- Momentum - Small wins build confidence
1---2name: task-activation3description: Help user START tasks with activation support for ADHD. Use when user is stuck, overwhelmed, or asking what to do next. Auto-triggers on phrases like "I'm stuck", "can't get started", "overwhelmed", "what should I do", "next step", "where do I start", "jag fastnar", "kan inte börja", "vad ska jag göra", "nästa steg".4---5
6# Skill: task-activation
7
8## Purpose
9
10Provides activation support to help users START tasks, not just plan them. Addresses executive function challenges by removing barriers to beginning. Based on ADHD-friendly techniques like the 5-minute rule and smallest-step extraction.
11
12## Trigger Conditions
13
14- **Slash command:** `/next`
15- **Natural phrases:** ["I'm stuck", "can't get started", "overwhelmed", "what should I do", "next step", "where do I start", "jag fastnar", "kan inte börja", "vad ska jag göra", "nästa steg", "hjälp mig börja", "orkar inte", "vet inte var jag ska börja"]
16- **Auto-trigger:** When user expresses difficulty starting or choosing tasks
17
18## Required Context (gather BEFORE starting workflow)
19
201. Today's tasks via `tasks getTodayTasks` → returns Map<roleId, Task[]> for selection
212. Current energy level via `profile getCurrentEnergyLevel` → returns "high"|"medium"|"low" for matching
223. Profile via `profile getProfile` → returns full profile for activation preferences and patterns
23
24**How to gather context:**
25```bash
26# Get today's tasks
27bun run src/aida-cli.ts tasks getTodayTasks
28
29# Get current energy level
30bun run src/aida-cli.ts profile getCurrentEnergyLevel
31
32# Get user profile (for activation preferences)
33bun run src/aida-cli.ts profile getProfile
34```
35
36## Workflow Steps
37
38### Step 1: Assess User State
39
40- **Action:** Detect user's current state from conversation
41 - "Jag fastnar" → Stuck, needs smallest step
42 - "Orkar inte" → Low energy, needs easy win
43 - "För mycket" → Overwhelmed, needs ONE thing
44 - "Vad ska jag göra?" → Choice paralysis, needs direction
45 - No complaint → Just asking for next action
46- **Output to user:** None (internal assessment)
47- **Wait for:** Continue immediately
48
49See [OVERWHELM-RESPONSE.md](OVERWHELM-RESPONSE.md) for state-specific responses.
50
51### Step 2: Get Available Tasks
52
53- **Action:** Retrieve today's tasks via `tasks getTodayTasks`
54- **Output to user:** None
55- **Wait for:** Continue immediately (unless no tasks - see Error Handling)
56
57### Step 3: Select Best Task
58
59See [ENERGY-AWARE-SELECTION.md](ENERGY-AWARE-SELECTION.md) for detailed selection rules.
60
61- **Action:** Select ONE task based on:
62 1. User's current energy level
63 2. Time of day (from user's energy pattern)
64 3. Task energy requirements
65 4. Deadlines
66 5. Task status (ready > planned > captured)
67- **Output to user:** None yet
68- **Wait for:** Continue immediately
69
70### Step 4: Apply Activation Technique
71
72See [ACTIVATION-TECHNIQUES.md](ACTIVATION-TECHNIQUES.md) for detailed techniques.
73
74- **Action:** Choose technique based on user state:
75 - Stuck → Extract smallest first step
76 - Overwhelmed → One thing only, 5-minute rule
77 - Low energy → Easy win first
78 - Choice paralysis → Make the choice for them
79- **Output to user:** None yet
80- **Wait for:** Continue immediately
81
82### Step 5: Present Single Action
83
84- **Output to user:**
85 ```
86 🎯 Nästa steg:
87
88 [One concrete action]
89
90 Du behöver bara göra 5 minuter - sedan kan du bestämma om du vill fortsätta.
91
92 Ska vi köra?
93 ```
94- **Wait for:** User confirms they're starting (or declines)
95
96### Step 6: Log Activation
97
98- **Action when user confirms:**
99 ```bash
100 bun run src/aida-cli.ts tasks setTaskStatus [id] "active"
101 bun run src/aida-cli.ts journal createEntry '{"entry_type":"task","content":"Aktiverade: [task title]"}'
102 ```
103- **Output to user:** "Perfekt! Kör igång 🚀"
104- **Wait for:** N/A (workflow complete)
105
106## Output Format
107
108- **Language:** Swedish (default)
109- **Style:** Encouraging, non-judgmental, supportive
110- **Action:** ONE concrete step only, never multiple options
111- **Tone:** No guilt, no pressure, frame deferrals positively
112
113**Example for simple "what's next":**
114```
115🎯 Nästa steg för dig:
116
117**Öppna rapporten** (Digitaliseringssamordnare)
118- Deadline: imorgon
119- Bara öppna filen och läs första stycket
120
1215 minuter - sedan bestämmer du om du fortsätter. Kör! 🚀
122```
123
124**Example for overwhelmed:**
125```
126Jag hör dig. Låt oss göra det enkelt.
127
128Glöm allt annat just nu. EN sak:
129
130🎯 **Ringa banken** (2 min)
131 - Ta upp telefonen
132 - Slå numret
133 - Klart!
134
135Det är allt. Resten kan vänta.
136
137Redo?
138```
139
140## Error Handling
141
142- **If `tasks getTodayTasks` returns empty:** Show message "Inga uppgifter för idag. Vill du fånga något nytt?" and suggest task-capture skill
143- **If no tasks match energy level:** Adjust matching criteria, or suggest a break/pause with message "Alla uppgifter kräver mer energi än du har just nu. Vill du ta en paus?"
144- **If user is overwhelmed but no easy tasks:** Find ANY task and break it into smallest possible step, even if artificially small
145- **If task already active:** Ask "Du har redan en aktiv uppgift: [task]. Vill du byta till något annat?"
146- **If `setTaskStatus` fails:** Log error to console, inform user task activation wasn't recorded but they can still work on it
147- **If `journal createEntry` fails:** Task status is still updated, just log warning to console
148- **If profile doesn't exist:** Use default energy level "medium" and proceed with general activation
149
150## Anti-patterns
151
152- **NEVER recommend high-energy task when energy is low** - always match energy level
153- **NEVER skip user confirmation before marking active** - always wait for user to say they're starting
154- **NEVER show multiple task options** - always suggest ONE thing only
155- **NEVER use guilt or pressure** - frame deferrals as rescheduling, not failure
156- **NEVER create new tasks** - only activate existing ones (use task-capture for new tasks)
157- **NEVER update task details** - only change status
158- **NEVER set status to "cancelled"** - only "active" or "done" allowed
159- **NEVER use direct SQL** - always use aida-cli.ts
160- **NEVER run query modules directly**
161
162## Tool Contract
163
164**Allowed CLI Operations:**
165- **tasks:** getTodayTasks, getTaskById, setTaskStatus (to "active" or "done")
166- **journal:** createEntry (type: task) - Log activation/completion
167- **profile:** getCurrentEnergyLevel, getProfile (READ ONLY)
168
169**Forbidden Operations:**
170- Creating new tasks (use task-capture skill)
171- Updating task details (title, description, etc.)
172- Deleting tasks
173- Updating profile
174- Setting status to "cancelled"
175
176**Status Transition Rules:**
177- `ready|waiting → active` (when starting task)
178- `active → done` (when user indicates completion during activation flow)
179
180**File Access:**
181- **Read:** `personal-profile.json`
182- **No file writes** - All operations via CLI
183
184## Supporting Documentation
185
186- [ACTIVATION-TECHNIQUES.md](ACTIVATION-TECHNIQUES.md) - 5-minute rule, smallest step, etc.
187- [ENERGY-AWARE-SELECTION.md](ENERGY-AWARE-SELECTION.md) - Matching tasks to energy
188- [OVERWHELM-RESPONSE.md](OVERWHELM-RESPONSE.md) - Handling stuck/overwhelmed states
189
190## Design Principles
191
1921. **ONE thing** - Never present multiple options
1932. **Smallest step** - Break it down until it's obvious
1943. **5-minute rule** - Just start, decide later
1954. **No guilt** - Deferrals are rescheduling, not failure
1965. **Energy-aware** - Don't suggest high-energy tasks when user is drained
1976. **Momentum** - Small wins build confidence