| name | day-start |
| description | Day briefing — deliver context, capture what's happened, get moving. |
| argument-hint | [day-offset] |
| disable-model-invocation | true |
Deliver a focused day briefing. Get me moving in under 3 minutes. This may run hours after waking — don't assume it's the first thing in the day.
Context
Offset controls direction: proactive (positive or default — briefing days ahead) or retroactive (negative — briefing a past day).
Target day = the day being briefed (offset $0). Always read its date from the entry below — never assume it's "today."
Target day entry (we are briefing this — created if missing):
!O=$0; binder read $(bun scripts/journal.ts d ${O:-0} --key) --format yaml
Week context:
!O=$0; binder read $(bun scripts/journal.ts w ${O:-0} --key) -f "weekPeriod,goal,plan,achievements" --format yaml
Extra context
Calendar events and health data are injected automatically by the data-sync extension. Use them if present.
Recent days:
!binder search type=JournalDay "dayPeriod>=$(date -v-7d +%Y-%m-%d)" -f "dayPeriod,plan,achievements,summary,moodScore,sleepScore,foodScore,workScore,fitnessScore,totalScore" --format yaml
Deliver the briefing FIRST (no questions)
Open with a short recap. Format:
Previous day: [1-2 sentence summary of what happened + key outcome. Include the highlight if one was captured — e.g. "Best part: nailed the demo."]
This week: [week goal] — [progress based on achievements so far]
Momentum: [streaks, positive trends, and recent achievements, e.g. "Gym 4 days straight. Work score up from 5→7. Shipped frontmatter parser yesterday."]
4 lines max. Focus on momentum and context, not rehashing failures. If the previous day was rough, acknowledge briefly and move on: "Fresh day. Here's what's ahead."
Then ask — one combined message
Propose scores from health data
If healthData contains sleep data, propose a sleep score in the briefing — don't ask about sleep. Use recent days' sleep data and scores as calibration (e.g. if 8.3h scored 8, and today is 7.0h with low deep sleep, propose 6). Show your reasoning briefly:
Sleep: 7.0h, 0.9h deep — I'd call that a 6. [correct me if off]
Do the same for any other scores derivable from health data (weight trends, etc.).
Check-in
Ask only about what the data doesn't already cover:
"How are you feeling? What's happened so far today?"
Don't ask about sleep if you just proposed it. Accept whatever comes — energy level, things already done (gym, meals, errands, events, research). Capture everything.
Plan confirmation
In the same message, show the plan. If things are already done, acknowledge and show what's remaining.
Based on energy:
- High energy: "You're sharp — tackle [critical item ⭐] first."
- Low energy: "Start easy — [simplest task from plan]. Build into the hard stuff."
"Does this plan still feel right, or anything to swap?"
Minimal changes only. Don't rebuild the plan.
Must be specific. Not "work on Binder" but "open the docs PR and write the intro."
Output
Once the user has answered the questions, write everything discussed to binder in one go — don't wait to be asked. Capture all context the user provided during the conversation.
Use binder update to update the target day's entry (key from context):
- Set
sleepScore if provided as number
- Set
fitnessScore if gym/exercise was done and scored
- Set any other scores mentioned
- Append to
log: HH:MM - Briefing. Energy: [level]. Starting with [task].
- Append to
achievements anything already completed (gym, research, errands, etc.)
- Append to
events anything notable that happened (meals out, meetings, interruptions, etc.)
- Only update
plan if I explicitly request a swap
Don't split updates across multiple back-and-forths. The user gives context — you write it all, then confirm.
Tone and constraints
- Under 3 minutes. This is a launch pad, not a planning session.
- Energizing — like a good coach before a game. Confident in me. Brief.
- Lead with momentum, not problems
- Never guilt-trip
- Briefing is DELIVERED first, then I respond