Weekly Review
Generate a weekly note at journal/weekly/YYYY-[W]WW.md by reading the current week's daily notes, aggregating wins, open tasks, progress bullets, and project status, then drafting a structured review note. Intended to run on Fridays or on-demand.
Settings
Read .claude/bulletjournal.local.md (use Read tool). Parse YAML frontmatter:
| Variable | Key | Default |
|---|---|---|
DAILY_PATH |
daily_path |
daily |
JOURNAL_PATH |
journal_path |
journal |
PROJECTS_PATH |
projects_path |
10-Projects |
QMD_BIN |
qmd_bin |
qmd |
Run /bulletjournal:init to create this file. Use these variables for all path references below.
Vault Layout
- Daily notes:
{DAILY_PATH}/YYYY-MM-DD.md - Weekly notes:
{JOURNAL_PATH}/weekly/YYYY-[W]WW.md(e.g.,2026-W14.md) - Project notes:
{PROJECTS_PATH}/with#actiontag and frontmatter fieldsstatus,next-action
qmd MCP Tool Signatures
Before making any qmd calls, load schemas with:
ToolSearch select:mcp__qmd__get,mcp__qmd__query,mcp__qmd__search
Correct parameter signatures:
mcp__qmd__get→{ path: "relative/path.md" }mcp__qmd__query→{ query: "text", limit?: number }mcp__qmd__search→{ query: "text", limit?: number }
Step-by-Step Procedure
0. Refresh the qmd index
Run in Bash before any searches. The || true ensures a failure does not abort the review:
${QMD_BIN} update && ${QMD_BIN} embed || true
1. Determine the current ISO week
Calculate today's ISO week number and the Monday–Friday date range. For example: Week 14, 2026-03-30 to 2026-04-04.
2. Check for existing weekly note
Use qmd get journal/weekly/YYYY-[W]WW.md or Glob to check if the file already exists.
- If it exists: do not overwrite. Warn the user:
Weekly note already exists: journal/weekly/2026-W14.md — append '-v2' suffix or abort?Then stop and wait for confirmation.
3. Retrieve the week's daily notes
Use Glob on daily/YYYY-MM-*.md to find all daily notes, then filter to dates within the Mon–Sun window for the target week. Optionally supplement with qmd search if needed.
- If no daily notes exist for the week: report that and create nothing. Message:
No daily notes found for week 2026-W14. Nothing to review.
4. Aggregate content from daily notes
Read each daily note and collect:
| Data | Source |
|---|---|
| Completed tasks | - [x] lines and tasks with ✅ emoji |
| Incomplete tasks | - [ ] lines |
| Progress bullets | Lines tagged with #progress (inline tag, e.g. - Fixed auth bug #progress) |
| Project links | [[...]] wiki-links appearing in task or progress lines |
| Log entries | Lines under ## Log sections |
Group incomplete tasks by the project they reference (if any [[link]] is present on the line or nearby).
5. Fetch project status for referenced projects
For each unique [[Project Name]] found in step 4, run:
qmd get "10-Projects/Project Name.md"
Extract status and next-action from frontmatter. Use these to populate the "Still open" and "Stalled / blocked" sections.
6. Identify stalled items
An item is stalled if it appeared as incomplete in 3 or more daily notes this week with no associated #progress tagged bullet. Note these with a brief "why" if discernible from the log entries.
7. Generate the weekly note
Write the file at journal/weekly/YYYY-[W]WW.md using this structure:
---
type: weekly
week: 2026-W14
start: 2026-03-30
end: 2026-04-04
created: 2026-04-04
---
# Week 14 — Mar 30 – Apr 4, 2026
## Wins
- (completed tasks and #progress bullets from the week)
## Still open
- (incomplete tasks grouped by project/area)
## Migration decisions
| Task | Action |
|------|--------|
| ... | carry → next week / move → project note / drop / delegate |
## Next week focus
- (2–4 priorities inferred from open items and project status)
## Stalled / blocked
- (items that didn't move, with why if discernible)
## Week summary
(2–3 sentence narrative of the week based on wins and progress)
Draft the Week summary as a concise narrative: what moved, what didn't, overall character of the week.
For Migration decisions: propose a disposition for each open task based on age, urgency, and project match. The user reviews and edits this table — do not auto-decide.
For Next week focus: infer 2–4 priorities from incomplete high-urgency tasks and project next-action fields.
8. Write the file
Write the generated note with Write.
9. Print confirmation
Weekly note created → journal/weekly/2026-W14.md
Edge Cases
- Partial week (e.g., running on Monday): generate from available days, note in the summary that the week is in progress.
- Week note already exists: warn and stop — never overwrite. Suggest
-v2suffix. - No daily notes: report and create nothing.
- Project note not found by qmd: skip that project's status fetch; note "status unknown" in the review.
Additional Resources
.claude/skills/README.md— Overview of all BuJo skills and how to use them