4.5 KiB
| name | description | triggers | |||||
|---|---|---|---|---|---|---|---|
| daily-briefing | Morning briefing that pulls today's tasks from Vikunja, reviews the daily note, checks gratitude, and surfaces the weekly theme. |
|
Daily Briefing
One command to start the day. Pull tasks, review the daily note, check gratitude, and surface the weekly theme.
When to Use
Run this at the start of your day.
Audio overview mode: If Connor asks for an audio briefing, "audio overview," or "morning brief as audio," produce the briefing as spoken-word audio using the audio-summary skill instead of text. Write the briefing to a temp file, generate the MP3 with edge-tts (en-US-AvaNeural, --volume=-90%), and deliver via MEDIA: + [[audio_as_voice]]. Also include a short text summary alongside the audio. Clean up temp files after.
Dictations are always queried — regardless of whether the output is text or audio, always fetch yesterday's dictations and incorporate any planning/priority content.
Instructions
Step 1: Gather data
Run these in parallel:
vik t up 0to get tasks active as of today from Vikunja- Read today's daily note at
~/notes/dn_YYMMDD.md(where YYMMDD is today's date) - Read yesterday's daily note at
~/notes/dn_YYMMDD Yesterday.mdfor any "what I should do today" or planning context - Read the weekly note (see Step 4 for filename logic)
- Query yesterday's dictations from MongoDB (
notes.dictations) for any planning or priority notes
Dictations query: Use the MongoDB skill. Query documents where created_at starts with yesterday's YYMMDD prefix. Read the content field of any dictations that mention tomorrow's plans, priorities, or tasks. Surface these in the briefing as a separate section ("Voice note priorities" or similar).
Step 2: Combine and deduplicate
Sources: Vikunja tasks, today's daily note (target tasks + "I could also"), yesterday's daily note (forward-looking plans), and yesterday's dictations (planning notes).
Deduplicate all sources into a single task/priority list.
Deduplication rules:
- If a daily note task contains a Vikunja link like
https://tasks.connorrhodes.com/tasks/XXX, match on that task ID against the Vikunja output - If no task link/ID is present, match on title similarity
- When a task appears in both sources, present it once
- Note which source(s) each task came from (this helps Connor see if something is in Vikunja but not his daily note, or vice versa)
Step 3: Produce the briefing
Output Format
Daily Briefing — [Weekday, Month Day]
Today's Tasks [Combined, deduplicated list. Numbered. Group target tasks first, then "I could also" tasks. After each item, note the source in parentheses: vik, daily note, or both.]
In Vikunja but not in daily note [Only show if there are tasks from vik that didn't match anything in the daily note.]
In daily note but not in Vikunja [Only show if there are tasks from the daily note that didn't match anything in vik.]
Step 4: Gratitude check
Check the I'm grateful for section in today's daily note.
- If it has content (non-empty bullet points): Display the gratitude entries under a "Gratitude" heading in the briefing.
- If it's empty: After the briefing output, ask Connor what he's grateful for today. Wait for his response, then edit the daily note file to fill in the
I'm grateful forsection with his answers.
Step 5: Weekly theme
Read the weekly theme from the # Theme heading in the weekly note.
Weekly note filename logic:
- Calculate the Monday of the current week (ISO week, Monday = day 1)
- If today is Saturday or Sunday (ISO day 6 or 7), use the Monday of the following week instead
- The filename is
week_YYMMDD.mdusing that Monday's date - The file lives at
~/notes/week_YYMMDD.md
Display the theme at the bottom of the briefing:
This Week's Theme: [theme text] [Include the one-line description if present]
If no weekly note exists for the calculated date: Include a notification line: "No weekly note found for this week." Still produce the rest of the briefing.
Rules
- Keep it scannable. Short lines, clear sections.
- Don't editorialize. Present the tasks as written. Let Connor decide priorities.
- If a section has no items, omit that section header.
- Use the Edit tool (not Write) when updating the gratitude section in the daily note.
- Date calculations should use today's actual date, not hardcoded values.