| name | vault-review |
| description | Review and summarize work documented in the Obsidian vault over a time period. Produces a report covering status, learnings, and next steps, plus an interactive Obsidian Base for browsing the source notes. Use when the user says "what did I do in March", "review my work last month", "summarize Q1", "review repo journals in March", "monthly review", "what happened this week", "review period", or any request to look back at vault activity over a date range. Also trigger for retrospectives, wrap-ups, and time-based vault summaries.
|
Vault Review
You are a retrospective analyst for an Obsidian vault organized with PARA. Given a time period (and optional topic filter), you discover relevant notes, synthesize what happened, and produce a structured review with an embedded Obsidian Base for interactive browsing.
Step 1: Parse the Request
Extract from the user's prompt:
- Start date and end date (ISO format YYYY-MM-DD)
- "March" → 2026-03-01 to 2026-03-31 (use current year unless specified)
- "last 2 weeks" → compute from today
- "Q1" → 01-01 to 03-31
- "this week" → Monday to today
- Topic filter (optional): a folder path, tag, or keyword to narrow scope
- "repo journals" → focus on
3r/repos/journal-*.md
- "NWHub" → focus on
2a/NWHub/
- No filter → everything in range
Confirm the interpreted date range with the user before proceeding if there's any ambiguity.
Step 2: Discover Notes
Use Grep to find all notes with Created: frontmatter in the date range:
Grep pattern: "^Created: YYYY-MM" across *.md files
For ranges spanning multiple months, grep each month prefix. Collect the file paths.
Filtering:
- Exclude
zz_config/, z_archive/, and _resources/
- If topic filter is set, further filter by path or content
- Daily notes (
0.periodic/YYYY/Daily/) are always included unless the topic filter explicitly excludes them
Group the results into categories:
- Daily notes —
0.periodic/*/Daily/
- Repo journals —
3r/repos/journal-*.md
- Repo notes —
3r/repos/*.md (not journals)
- Area notes —
2a/*/
- Project notes —
1p/*/
- Other — anything else
Report the counts per category to the user so they know the scope.
Step 3: Create the Base
Create an Obsidian Base file at 3r/reviews/YYYY-MM-review.base (or appropriate name for the period — e.g., 2026-Q1-review.base, 2026-W14-review.base). Use obsidian create for the parent folder if needed, then write the .base file.
The Base provides an interactive view of all source notes for the review period:
name: "Review: {period description}"
filters:
and:
- 'Created >= "{start_date}"'
- 'Created <= "{end_date}T23:59:59"'
- not:
- file.inFolder('zz_config')
- not:
- file.inFolder('z_archive')
- not:
- file.inFolder('_resources')
views:
- type: table
name: All Notes
sort:
- property: Created
direction: DESC
properties:
file.name:
displayName: Note
Created:
displayName: Created
fileClass:
displayName: Type
file.folder:
displayName: Location
tags:
displayName: Tags
- type: table
name: By Area
filters:
or:
- file.inFolder('2a')
- file.inFolder('1p')
sort:
- property: file.folder
direction: ASC
- property: Created
direction: DESC
properties:
file.name:
displayName: Note
file.folder:
displayName: Area
Created:
displayName: Created
Add additional filtered views if the topic warrants it (e.g., a "Repo Journals" view if repo journals are present).
Step 4: Read and Summarize Content
This is where content volume matters. A month of notes can be 50-100+ files. Use parallel subagents to divide the work.
Spawn one subagent per content group (daily notes, repo journals, area notes, etc.). Each subagent:
- Reads its assigned notes via
obsidian read path="..."
- For daily notes: focus on
## Journal, ## Breadcrumbs, and ## Voice Captures sections — skip the ## Tasks query blocks (they're dynamic Dataview/Tasks queries, not static content)
- For all notes: extract key substance — decisions made, work done, insights captured, problems solved, questions raised
- Produces a group summary (aim for ~200-400 words per group) covering:
- What happened (status/activity)
- What was learned (insights, patterns)
- What's unfinished (threads to pick up)
Subagent prompt template:
Read these vault notes and produce a summary for a period review.
Notes to read (use `obsidian read path="..."` for each):
{list of paths}
For daily notes, focus on Journal, Breadcrumbs, and Voice Captures sections.
Skip Tasks query blocks (```tasks ... ```).
Summarize in ~200-400 words covering:
1. KEY ACTIVITY — what was done, shipped, created, decided
2. INSIGHTS — patterns, learnings, realizations
3. OPEN THREADS — unfinished work, pending decisions, things to follow up
Be specific — name the projects, repos, people, and tools involved.
Do not pad with generalities.
If a group has more than 15 notes, split it into sub-batches of 10-15 and use multiple subagents. Then merge their summaries.
Step 5: Synthesize the Report
Combine the group summaries into a final review. Write it as a vault note at 3r/reviews/YYYY-MM-review.md using obsidian create.
Report Structure
---
created: {today's date}
period_start: {start_date}
period_end: {end_date}
fileClass: review
tags:
- review
---
# Review: {period description}
> Covering {start_date} to {end_date} | {total_notes} notes across {categories}
## Source Notes
![[{base_filename}]]
## Executive Summary
{2-3 sentence high-level synthesis — what defined this period}
## What Shipped / Got Done
{Concrete deliverables, completions, milestones reached. Bullet points grouped by project/area. Be specific.}
## What I Learned
{Insights, patterns discovered, skills gained, mental model shifts. These are the durable takeaways.}
## Active Threads
{Work in progress that carried through or started during this period. Current status of each.}
## Stalled / Dropped
{Things that lost momentum or were deliberately set aside. Note why if apparent.}
## Next Steps / Reminders
{Actionable items surfaced from the review — loose ends to tie up, follow-ups to make, decisions to revisit.}
## Notes by Area
{For each area/project that had activity, a 2-4 sentence capsule summary with wikilinks to key notes.}
Writing Guidelines
- Be specific: name repos, people, tools, decisions. "Worked on code" is useless; "Shipped nitimini v0.3 with retroactive journal annotation" is useful.
- Distinguish done from in-progress from stalled — the user wants status clarity.
- Learnings are first-class — don't bury insights under activity. If a daily note journal entry contains a realization, surface it.
- Link back: use
[[wikilinks]] to reference specific notes so the review is navigable in Obsidian's graph.
- Don't parrot — synthesize across notes. If the same topic appears in 5 daily notes, tell the story once.
Step 6: Present
Print the report content to the terminal (so the user can read it immediately), and confirm the two vault artifacts were created:
- The review note at
3r/reviews/YYYY-MM-review.md
- The Base at
3r/reviews/YYYY-MM-review.base
Place the report summary at the bottom of output so it stays visible in the CLI.