Use when the user asks for a weekly status update, status report, weekly summary, or what they worked on last week. Reads Obsidian diary entries for the last N days and produces a themed summary. Accepts optional number of days argument (default 7).
Generate a status update from Obsidian vault diary entries. Accepts an optional argument for the number of days to summarise (default: 7). Usage: /weekly-status [days] — e.g. /weekly-status 14 for a two-week summary.
Parse the optional days argument. If a positive integer is provided, use it as N. Otherwise default to 7. Determine today's date. Compute the last N calendar days (today minus N-1 through today) as YYYY-MM-DD strings. Note which YYYY/MM month directories are needed — there may be multiple if the range spans month boundaries.
For each month directory in the range, call mcp__obsidian__list_directory with path Diary/YYYY/MM. Filter returned filenames to only those matching dates in the N-day range. If the range spans multiple months, list all relevant directories.
Build paths as Diary/YYYY/MM/YYYY-MM-DD.md for each file found. Call mcp__obsidian__read_multiple_notes with all paths (max 10 per batch — if N > 10, split into multiple calls). Set includeFrontmatter: false.
Parse each entry's bullet points:
-) and checked tasks (- [x]) — these are completed work.- [ ]) from the summary. However, collect any - [ ] items that have a 📅 YYYY-MM-DD due date falling within the next 7 days (today+1 through today+7) for the "Next week" section."- ").GitHub links — match pattern https://github.com/[owner]/[repo]/(pull|issues)/[number]:
gh pr view <URL> --json title,state --jq '"\\(.title) (\\(.state))"'gh issue view <URL> --json title,state --jq '"\\(.title) (\\(.state))"'[text]().gh fails, fall back to WebFetch or include the raw link.Wikilinks — match pattern [[note-name]]:
[[2026-04-01]]).mcp__obsidian__read_note.Last Week section:
## Last Week[text](url) link.Next Week section (conditional):
- [ ] tasks with due dates in the next 7 days were found, add ## Next Week after the Last Week section.-), stripped of all Obsidian Tasks emoji (⏫, 🔼, 📅, ✅, etc.) and date annotations. Output only the task description text.After displaying the composed Markdown in the conversation:
/tmp/weekly-status.md using the Write tool.pandoc -f markdown -t html /tmp/weekly-status.md | wl-copy --type text/html && rm /tmp/weekly-status.mdIf the Bash command fails (e.g., wl-copy cannot connect to a Wayland display), inform the user that clipboard copy failed and they can copy the Markdown from the conversation instead. Do not retry.
## Last Week
- **Theme/Project Name**
- Completed contribution or activity
- Another task with PR context (title, merged/open)
- **Another Theme**
- Activity with [[linked note]] context (brief summary)
## Next Week
- Task description without emoji or dates
- Another upcoming task
read_multiple_notes calls (max 10 per batch). Warn the user if many entries exist — output may be lengthy."- ".wl-copy fails (no Wayland session, SSH without display forwarding), inform the user and skip clipboard copy. The Markdown output in the conversation is still usable.