94 lines
4.5 KiB
Markdown
94 lines
4.5 KiB
Markdown
---
|
|
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.
|