assistant-skills/daily-briefing/SKILL.md

4.3 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.
run my briefing
morning briefing
what's my day look like
what's on deck
daily briefing

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.

Instructions

Step 1: Gather data

Run these in parallel:

  • vik t up 0 to 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.md for 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 for section 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.md using 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.