---
name: daily-briefing
description: Morning briefing that pulls today's tasks from Vikunja, reviews the daily note, checks gratitude, and surfaces the weekly theme.
triggers:
  - 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](~/.openclaw/skills/audio-summary/SKILL.md) 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 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.
