| name | brain-recap |
| description | Recap journal entries for a given period (day, week, month, year). Use when the user says "recap my day", "what did I do this week", "weekly recap", "monthly summary", "year in review", or asks what happened on a specific date. |
Brain Recap
Summarize journal entries for a requested time period.
Determine the Period
- Parse the user's request to identify the granularity: day, week, month, or year.
- Identify the specific period. If none is specified, default to the current one (today, this ISO week, this month, this year).
- Compute the file path(s) to read.
File Resolution
For each granularity, try the primary file first. If it doesn't exist, fall back to synthesizing from lower-tier entries.
| Granularity | Primary file | Fallback |
|---|
| Day | journal/daily/YYYY-MM-DD.md | None — report no entry |
| Week | journal/weekly/YYYY-WNN.md | Read all journal/daily/*.md for that ISO week |
| Month | journal/monthly/YYYY-MM.md | Read all journal/weekly/*.md for that month, else dailies |
| Year | journal/yearly/YYYY.md | Read all journal/monthly/*.md for that year |
Computing ISO week dates
To find dailies for a given ISO week YYYY-WNN:
- ISO weeks start on Monday.
- Jan 4 is always in week 1. Use this to compute the Monday of week 1, then offset by
(NN - 1) * 7 days to get the target week's Monday. Read dailies for Monday through Sunday.
Computing month boundaries for weeklies
A weekly YYYY-WNN.md belongs to a month if the majority of its days (i.e. its Thursday) falls in that month.
Present the Recap
Read the resolved file(s) and present a concise summary to the user:
- Key accomplishments — what was completed or shipped
- Ongoing work — things in progress, partially done
- Blockers — anything stalled or waiting on others
- Notable notes — decisions, insights, or observations worth highlighting
- Referenced projects and tasks — list any
[[wiki-links]] found
For fallback (synthesized) recaps, combine information across the source files and deduplicate. Present it as a cohesive summary, not a file-by-file dump.
Edge Cases
- If no entries exist for the requested period, tell the user: "No journal entries found for [period]."
- If the period is in the future, tell the user it hasn't happened yet.
- If only some days in a week/month have entries, summarize what's available and note the gaps.